Can Database be count as actor in use case diagram?


I am creating application for Diabetes log system. I am confused whether database in UML -Use case diagram count as actor or not ?

the application is recording the diabetes glucose reading which will be saved in firebase and it can also retrieve the readings for showing the progress in chart format.

please can someone help me?

thank you.


No, databases should not be included in a Use Case Diagram of an isolated system. Databases are a static internal part of a system and do not directly take part without a front interface (i.e. your system itself).

However, if your database is an external entity i.e. it is being shared between different systems then maybe it would be wise to show it as an actor.


That depends on what use case diagram are you working on. UML standard does not attach diagrams to levels of abstraction.

You can create use case for the behaviour of the whole product with all surrounding system and human users - from the point of view of an external user. And you can create it for better explanation of behaviour of a small sub-sub-subsystem.

In the first case even the main application won't appear as an agent or meant as a subject. In the second case, if that subsystem works with DB, DB will be an agent.

UML is a free enough standard and rarely strictly forbid something.


  • Spark DataFrame write to JDBC - Can't get JDBC type for array
  • How do DHT22 and gpio's work?
  • Creating a nested dictionary comprehension in Python 2.7
  • Orientation type of the sensor
  • updating and compacting sqlite database in android
  • Is it good to have multiple database running in a same project?
  • Plotly and ggplot with facet_grid in R: How to to get yaxis labels to use ticktext value instead of
  • angular2 chart and events
  • parameterized queries in oursql
  • css font-size and line-height not matching the baseline
  • dismiss Progress Dialog in another Activity … Android
  • MySQL: Difference between `… ADD INDEX(a); … ADD INDEX(b);` and `… ADD INDEX(a,b);`?
  • Certain Arabic text gets incorrectly shown while other Arabic text gets showed normally?
  • HighCharts - Show tooltip on column where value is 0 or null
  • How to synchronize two scrollview in Android?
  • How do you create a Fuseki SPARQL server using the Apache Jena Java API?
  • How to implement Deep Linking in Roku SG application?
  • select function not working in 3.5.4 version of d3.js
  • Exception gevent.hub.LoopExit: LoopExit('This operation would block forever',)
  • how to set variables in a php include file?
  • Unable to get column index with table.getColumn method using custom table Model
  • Eloquent paginate function in Slim 3 project using twig
  • ActiveRecord query for a count of new users by day
  • Can I display google adwords (AdView) in javafx on android
  • What is Eclipse's Declaration View used for?
  • Can I make an Android app that runs a web view in Chrome 39?
  • How to make Safari send if-modified-since header?
  • Font Awesome Showing Box instead of Icons
  • Jquery - Jquery Wysiwyg return html as a string
  • Properly structure and highlight a GtkPopoverMenu using PyGObject
  • How to pass list parameters for each object using Spring MVC?
  • SVN: Merging two branches together
  • How do I rollback to a specific git commit
  • File upload with ng-file-upload throwing error
  • -fvisibility=hidden not passed by compiler for Debug builds
  • Setting background image for body element in xhtml (for different monitors and resolutions)
  • Is it possible to post an object from jquery to bottle.py?
  • Append folder name and increment by 1 using batch script
  • JaxB to read class hierarchy
  • Python/Django TangoWithDjango Models and Databases