顺序图
顺序图是一种展示对象之间交互的 UML(Unified Modeling Language) 图表,它描述了对象之间的消息传递顺序。在数据库系统中,顺序图可以用于说明系统中不同模块或组件之间的交互过程。以下是一个简单的数据库交互的顺序图示例:
假设我们有一个简单的图书馆管理系统,其中包括图书管理员(Librarian)和学生(Student)两个对象。学生可以向图书管理员借书,下面是一个简化的交互顺序图:
+--------------+ +----------------+
| Librarian | | Student |
+--------------+ +----------------+
| |
| requestBook() |
| -----------------------------> |
| |
| |
| checkAvailability() |
| <----------------------------- |
| |
| |
| approveRequest() |
| -----------------------------> |
| |
| |
| issueBook() |
| <----------------------------- |
| |
| |
解释:
Librarian对象收到Student对象的requestBook()消息,表示学生想要借书。Librarian对象调用checkAvailability()方法,检查图书是否可用。Librarian对象发送approveRequest()消息,表示同意学生借书请求。Student对象收到approveRequest()消息后,调用issueBook()方法,表示领取图书。
通信图/协作图
通信图(Communication Diagram)和协作图(Collaboration Diagram)是 UML(Unified Modeling Language) 中用于描述对象之间协作关系的两种图表。它们都突出了对象之间的消息传递和合作。这两种图表在一些文献中被认为是相似的,而在另一些文献中则认为有细微的差异。以下是一个简单的数据库系统协作图的示例:
+---------------------+ +------------------+
| Librarian | | Student |
+---------------------+ +------------------+
| -employeeID: int | | -studentID: int |
| -name: string | | -name: string |
| | | -booksCheckedOut:|
| +checkAvailability()| | int |
| +approveRequest() | | +requestBook() |
| +issueBook() | | +returnBook() |
+---------------------+ +------------------+
| | employs
| |
| V
| +---------------------+
| | Book |
| +---------------------+
| | -ISBN: string |
| | -title: string |
| | -author: string |
| | -isAvailable: bool |
| | |
| | +checkAvailability()|
| | +requestBook() |
| | +returnBook() |
| +---------------------+
|
| requests
|
V
+---------------------+
| Database |
+---------------------+
| -books: Collection |
| |
| +addBook(book: Book)|
| +removeBook(book: |
| Book) |
| +getBook(ISBN: |
| string): Book |
+---------------------+
解释:
- Librarian、Student、Book 和 Database 是系统中的四个对象,分别表示图书管理员、学生、图书和数据库。
- 消息传递用箭头表示,例如,Librarian 对象通过 "employs" 的关系向 Database 对象发起 "addBook" 的消息。
- 协作图强调对象之间的交互和协作关系,通过消息传递展示了对象之间的协同工作。