This activity reviews the creation of a Data-to-Process CRUD matrix, which is important in the synchronization of system models. Without such synchronization, we would have two sets of incomplete diagrams, data model diagrams and process model diagrams, without any way to determine what is missing from each. You will use this matrix in your projects and document its entries in the description box for each attribute in the data model. (I.e. The attribute is Created by process A, Read or used by processes B, C, ..., Updated by processes 1, 2, ..., and Deleted by process Z.)
Consider the Textbook Inventory System for which we developed a process model in Activity 11. The data model for this system is given below, followed by its Data-to-Process CRUD matrix. Note that the processes in the D-to-P CRUD matrix are taken from the Systems Diagram in Activity 11.
The entities in this system are TextBook, Purchase Order, Packing Slip, and Book List. These were discovered by looking at the data stores in the System Diagram in Activity 11. Every data store in the System Diagram must correspond to an Entity in the data model.
The relationship matrix is as follows:
Textbook Purchase Order Packing slip Book List
Textbook ordered through listed on contained in
Purchase Order orders generates
Packing Slip lists generated by
Book List contains
The Context data model is as follows:
___________________ __________
| Purchase Order | generates | Packing|
| |-++------------------------------+<-| SLIP |
------------------- ----------
W W
0 0
| |
orders |
| |
+ |
M |
-------------- |
| Textbook | listed on |
| |->+-------------------------------------------
--------------
W
+
|
contained in
|
0
M
-------------
| Book List |
|___________|
The Primary Keys of the entities are: ISBN for Textbook, PO-Number for Purchase Order, Student-ID, Date, and Time for Book-List, and Pack-Slip-No for the Packing Slip. The relationships between all the entities is many-to-many, except for the Purchase Order to Packing Slip which is 1 to many. (It is possible for the items on one purchase order to be delivered in several batches, thus generating several packing slips). All the many-to-many relationships must be replaced by Associative Entities yielding the following key-based ERD:
________________ __________________
|Purchase Order| generates | Packing Slip |
|---Key Data-- |-++---------------------------------+<-|---Key Data-----|
|PO-Number[PK1]| |Pack-Slip-No[PK1]
---------------- |PO-Number [FK] |
+ ------------------
+ +
| +
orders contains
| |
+ +
M M
------------------- -----------------------
| Textbook-PO | |Textbook-Packing Slip|
|-----Key Data----| |-----Key Data--------|
| ISBN [PK1][FK] | |ISBN [PK1] [FK] |
|PO-Number[PK1][FK] |Pack-Slip-No[PK1][FK]|
-------W----------- ----------W------------
0 includes +
|-----------------------------------------| |
| includes
| |
+ +
+ +
-------------------- ------------
|Textbook-Book-List| lists |Textbook |
|---Key Data-------|->+-----------------------0+-|-Key Data-|
| ISBN [PK1][FK] | |ISBN [PK1]|
|Student-ID[PK1][FK] ------------
| Date [PK1][FK] |
| Time [PK1][FK] |
--------------------
W
+
|
contained in
|
+
+
----------------
| Book-List |
|---Key-Data---|
|Student-ID[PK1]
|Date [PK1] |
|Time [PK1] |
----------------
The fully articulated data model is as follows:
________________ __________________
|Purchase Order| generates | Packing Slip |
|---Key Data-- |-++---------------------------------+<-|---Key Data-----|
|PO-Number[PK1]| |Pack-Slip-No[PK1]
|-Non-Key-Data-| |PO-Number [FK] |
|Company-Name | |--Non-Key-Data--|
|Company-Add. | |Date-Shipped |
|PO-Date | |Ship-Method |
---------------- ------------------
+ +
+ +
| |
orders contains
| |
+ +
M M
------------------- -----------------------
| Textbook-PO | |Textbook-Packing Slip|
|-----Key Data----| |-----Key Data--------|
| ISBN [PK1][FK] | |ISBN [PK1] [FK] |
|PO-Number[PK1][FK] |Pack-Slip-No[PK1][FK]|
|---Non-Key-Data--| |----Non-Key-Data-----|
|Quantity-Ordered | |Quantity-Shipped |
-------W----------- ----------W------------
0 includes +
|-----------------------------------------| |
| includes
| |
+ +
+ +
-------------------- ----------------
|Textbook-Book-List| lists |Textbook |
|---Key Data-------|->+-----------------------0+-|---Key Data---|
| ISBN [PK1][FK] | |ISBN [PK1] |
|Student-ID[PK1][FK] |-Non-Key-Data-|
| Date [PK1][FK] | |Title |
| Time [PK1][FK] | |Author |
-------------------- |Edition |
W |Publisher |
+ |Price |
| |Quant-on-hand |
contained in ----------------
|
+
+
----------------
| Book-List |
|---Key-Data---|
|Student-ID[PK1]
|Date [PK1] |
|Time [PK1] |
|-Non-Key-Data-|
|Student-Name |
|Student-Phone |
|Student-Add. |
----------------
The Data-to-Process CRUD matrix is as follows:
1 2 3 4 5 6 7 Purchase-Order C R R PO-Number C R Company-Name C U R Company-Address C U R PO-Date C R R Packing-Slip C R Pack-slip-No C R Date-Shipped C R Ship-Method C R Textbook-PO C R R Quantity-Ordered C R Textbook-Packing-Slip C R Quantity-Shipped C R Textbook-Book-List C U R R Textbook CU U R R R U R ISBN CU R R R R R R Title CU U R R R U R Author CU U Edition CU U Publisher CU U Price CU U R R R Quantity-on-Hand C U R U Book-List C R R R Student-ID C R Date C R Time C Student-Name CU R Student-Phone CU Student-Address CU
The following processes correspond to the numbers at the top of the
CRUD matrix.:
These will be handed out in class.
Return to the
List of Activities