Upload
tranthevinhkts
View
221
Download
0
Embed Size (px)
Citation preview
8/2/2019 MIS Architectural Design
1/25
Museum Information System
Page 1
Museum Information System
Architectural Design
Presented to:
Dr. Shahriar Ameri
Prepared by Team1:
Claudia ARDELEANU [email protected] FARES [email protected]
Liviu ISTRATE [email protected] Oxana KHODAKOVSCAYA [email protected]
Pedro Maroun EID [email protected] Brandon NGUYEN [email protected]
8/2/2019 MIS Architectural Design
2/25
Museum Information System
Page 2
Table of Contents
1. Introduction ........................................................................................ 32. System Design ................................................................................... 4
2.1 System Architecture ........................................................................ 4
3. User Interface Layer........................................................................... 63.1 Prototype ......................................................................................... 7
4. Business Layer................................................................................... 84.1 Class Diagram................................................................................. 84.2 Sequence Diagrams..................................................................... 94.3 State Diagrams .......................................................................... 18
5. Persistence Layer ............................................................................ 195.1 Database Assumption ................................................................... 195.2 Class Diagram for the persistence layer ....................................... 19
5.3 Data Model Diagram ..................................................................... 195.3 Database Schema......................................................................... 22
8/2/2019 MIS Architectural Design
3/25
Museum Information System
Page 3
1. Introduction
The Architectural Design document provides a high-level overview of the structural and
architecture of the entire system. Also the Architectural Design document provides amore detailed description of the components of the system. Information is provided oninteractions and relationships among various sub-components of the system as well asa detailed description of the pages corresponding to each function and each module.The databases design is a list of everything a designer, programmer, or tester needs toknow to set up the database and to provide the connection between each function andthe database tables.
8/2/2019 MIS Architectural Design
4/25
Museum Information System
Page 4
2. System Design
The system includes the following subsystems:
Client: The client interacts with the system through a classic Windows interface. Theusers will access the system in different ways depending on their privileges.
Server: The server is represented by the database server that stores the entireinformation of the Museum system.
2.1System Architecture
The system is design as an N-tier application that is divided into discrete logical parts:user interface, business logic and data. In this model, processing is distributed betweenthe client and the server, and business logic is captured in a middle tier.
Tier (layer) Descript ion
User interfaceand navigation-View
This layer comprises the entire user experience.
Not only does this layer provide a graphical interface so thatusers can interact with the application, input data, and viewthe results of requests, it also manages the manipulation andformatting of data once the client receives it.
The GUI will be a classic Windows interface implemented inVC.
Business logic-Model
-Controller
Between the interface and data services layers, this layer isthe domain of the application developer. Business logic,which captures the rules that govern application processing,
connects the user at one end with the data at the other.The business rules mimic everyday business tasks, and canbe a single task or a series of tasks.
The business tier allows components to be written once andreused multiple times to serve multiple clients and purposes.
he business tier is implemented by VC classes.
Data services-Persistencelayer
Data services are provided by a structured data store, whichmanages and provides access to the application data.
Data services are provided by MS Access database
8/2/2019 MIS Architectural Design
5/25
Museum Information System
Page 5
GUI Controller Main
Engine
DB
Helper
DB_Museum
Figure. System component diagram for the Museum Information System
8/2/2019 MIS Architectural Design
6/25
Museum Information System
Page 6
3. User Interface Layer
The user interface class contains the code for the user interface part of an applicationand is design as a Windows based application.
FigureUI flow diagram
Main Page
Administrator User
Login
Museums Map
Museums
ItemsCollection
*book*simulation
*audio*computer
Select an option
Search Page
Update Page
Result on Page
Museums Map
Museums
ItemsCollection
*book*simulation
*audio*computer
Select an option
Search Page
Result on Page
8/2/2019 MIS Architectural Design
7/25
Museum Information System
Page 7
3.1 Prototype
To design a good interface we decided to create a first prototype that implements themain functions of the system. The prototype will help us to receive feedback from thecustomers and change in right of first stages of designing the GUI classes.
8/2/2019 MIS Architectural Design
8/25
Museum Information System
Page 8
4. Business Layer
4.1 Class Diagram
8/2/2019 MIS Architectural Design
9/25
Museum Information System
Page 9
4.2 Sequence Diagrams
4.2.1 Item
Create an i tem
- The administrator logs into the system- The GUI creates an administrator controller- The admin controller creates a session- The session creates an item object based on the information provided by the
administrator.- This item is manipulated in this session- At the end, the changes are committed to the DB by the session- The item object is destroyed
Controller
Session : Session
DBHelper :
DBHelper
CreateItem(ID, ...)Exists(Integer)
CheckConsistency(LocationID, Type)
RecordRequest(Type, ID, .. .)
Create Item which the
Administrator accesses
through all the layers after
loging in. It enables him to
create a new item.
Edit an Item
- Same operations as Creating an item- The created session gets the data from DB for the corresponding item- The session creates an item object based on that data- This item is manipulated in this session- At the end, the changes are committed to the DB by the commit command
8/2/2019 MIS Architectural Design
10/25
Museum Information System
Page 10
Controller
Session : Session
DBHelper :
DBHelper
User Interface
EditItem(const ID, ...)
Exists(ID)
CheckConsistency(LocationID, Type)
RecordRequest(Type, ID, ...)Record()
Edit()
Edit Item which only the
Administrator can access
through all the layers after
loging in. It enables him to
edit an item.
Delete an i tem
- Same operations as Editing an item- The created session gets the data from DB for the corresponding item
- The session creates an item object based on that data- This item is marked as deleted in this session- At the end, the deletion is committed to the DB by the commit command to the
corresponding item.
Controller
Session : Session
DBHelper :
DBHelper
DeleteItem(Const ID, Cause)Exists(Integer)
RecordRequest(Type, ID, ...)
Delete Item which the
Administrator accesses
through all the layers after
loging in. It enables him to
delete an existing item.
8/2/2019 MIS Architectural Design
11/25
Museum Information System
Page 11
Committing to DB
- This command is used whenever the administrator or the system sees a need toapply the changes made to the DB.
- The command comes from the controller through the session and to the DB
interface. Then, the interface is responsible to commit those changes physically.
Controller
MO_CItem : Sess ion
DBHelper :
DBHelper
Commit( )
The Confirmation Command to
apply all performed changes to
the DataBase. Used byAministrator.
Searching DB
- It is used by all users to check or fetch items or any objects existing in the DB.- The user asks for a search on a given string; this string could be an id, a type, a
date, a part of the description, etc...- All possibly needed search functions will be provided.- After this command goes to the session, the session gets the information from
the DB interface and returns a response or search results to the user through thecontroller and to his GUI.
User : General User Sess ion : Session
Search()
Response()
The Search option which the
General User/Visitor canaccess to retreive items.
8/2/2019 MIS Architectural Design
12/25
Museum Information System
Page 12
4.2.2 Collection
Create a collection
- The administrator login into the system- The GUI creates an administrator controller- The admin controller creates a session- The session creates a collection object based on the name provided by the
admin- This collection is manipulated in this session- At the end, the changes are committed to the DB by the session- The collection object is destroyed
AdministratorU I Adm in :
CO_CAdministrator
The Collection :
MO_CCollection
: DBAccess
: Session
Login()
createAdminC ntl(passw ord)
createCollection(Name)
createSession()
return(The Collection)
comm it('create', The collection)
des troy(The C ollection)
Figure 1. Create Collection
8/2/2019 MIS Architectural Design
13/25
Museum Information System
Page 13
Update a collection
- The administrator login into the system- The GUI creates an administrator controller- The admin controller creates a session
- The session gets the data from DB for the collection to be updated- The session creates a collection object based on the information got from the DB- This collection is manipulated in this session- At the end, the changes are committed to the DB by the session- The collection object is destroyed
Admin :
CO_CAdministrator
AdministratorUI
: Session
: DBAccess
The Collection :
CO_CCollection
Login()
createAdminCntl(password)createSession()
getCollection(Name)
return(The Collection)
commit('update', The Collection)
return(The Collection)
destroy(The Collection)
createCollection('update',Name)
Figure 2. Update Collection
8/2/2019 MIS Architectural Design
14/25
Museum Information System
Page 14
Delete a collection
- The administrator login into the system- The GUI creates an administrator controller- The admin controller creates a session
- The session gets the data from DB for the collection to be deleted- The session creates a collection object based on the information got from the DB- This collection is manipulated in this session- At the end, the changes are committed to the DB by the session- The collection object is destroyed
AdministratorUI Admin :
CO_CAdministrator
: Session
: DBAccess
The Collection :
CO_CCollection
Login()createAdminCntl(password)
createSession()
getCollection(Name)
return(The Collection)
createCollection('delete', Name)
commit('delete', The Collection)
return(The Collection)
destroy(The Collection)
Figure 3. Delete Collect ion
8/2/2019 MIS Architectural Design
15/25
Museum Information System
Page 15
4.2.3 Exhibition
Create an exhibition
- The administrator login into the system
- The GUI creates an administrator controller- The admin controller creates a session- The session creates an exhibition object based on the name provided by the
admin- This exhibition is manipulated in this session- At the end, the changes are committed to the DB by the session- The exhibition object is destroyed
AdministratorUI Adm in :
CO_CAdministrator
The Exhibition :
MO_CExhibition
: DBAccess
: Sess ion
Login()createAdminCntl(password)
comm it('create', The Exhibition)
destroy(The Exhibition)
createExhibition(Name)
createSession()
return(The Exhibition)
Figure 4. Create Exhibition
8/2/2019 MIS Architectural Design
16/25
Museum Information System
Page 16
Update an exhibition
- The administrator login into the system- The GUI creates an administrator controller- The admin controller creates a session
- The session gets the data from DB for the exhibition to be updated- The session creates a collection object based on the information got from the DB- This exhibition is manipulated in this session- At the end, the changes are committed to the DB by the session- The exhibition object is destroyed
AdministratorUI Admin :
CO_CAdministrator
: Session
: DBAccess
The Exhibition :
MO_CExhibition
Login()
createAdminCntl(password)
commit('update', The Exhibition)
getExhibition(Name)
return(The Exhibition)
return(The Exhibition)
destroy(The Exhibition)
createSession()
createExhibition('update', Name)
Figure 5. Update Exhibit ion
8/2/2019 MIS Architectural Design
17/25
Museum Information System
Page 17
Delete an exhibition
- The administrator login into the system- The GUI creates an administrator controller- The admin controller creates a session- The session gets the data from DB for the exhibition to be deleted
- The session creates an exhibition object based on the information got from theDB
- This collection is manipulated in this session- At the end, the changes are committed to the DB by the session- The exhibition object is destroyed
AdministratorUI Admin :
CO_CAdministrator
: Session
: DBAccess
The Exhibition :
MO_CExhibition
Login()createAdminCntl(password)
comm it('delete', The Exhibition )
createSession()
getExhibition(Name)
return(The Exhibition)
createExhibition('delete', Name)
return(The Exhibition)
destroy(The Exhibition)
Figure 6. Delete Exbition
8/2/2019 MIS Architectural Design
18/25
Museum Information System
Page 18
4.3 State Diagrams
4.3.1 Collection state
Start
End
Stored
On D isplay
create()makeOnDisplay()
destroy()
Figure. Collection
4.3.2 I tem state
Start
End
Normal Edited
Committed
commit()
Deleted
delete()
destroy()
commit()
ed it()
delete()
commit()
create()
Figure. Item
8/2/2019 MIS Architectural Design
19/25
Museum Information System
Page 19
5. Persistence Layer
5.1 Database Assumption
Based on the previous requirement analysis and characteristics of the MuseumInformation System, we established some assumptions and constraints in order todevelop an abstract description of the data to be stored in the database. Theseassumption and constraints are listed as follows:
A collection is a set of zero or many item. Items can be added to a collectionindividually or following a rule.An item can be part of zero or many collectionsA collection can have zero or many itemsAn exhibition is a set of collections that are on display. An exhibition can becomposed by zero or many collections.A collection can be displayed in zero or many exhibition.
An item which is on displayed has assigned only one room.A book can have one or many authors.
5.2 Class Diagram for the persistence layer
In the persistence layer it will be only one class: DBHelper. The object of this class willmanage the connections for a user, and it will do all the operations on the database:retrieve, insert, delete, and update. The objects of type DBHelper will only receivemessages from the class MO_CSession, which is on the MainEngine layer.
DBHelper
m_strConnection
m_vCollectionList
m_vItemList
m_vExhibitionList
OpenConnection() : String
CloseConnection() : String
FindItem()
FindCollection()
FindRoom()
Commit() : String
CheckConsistency() : String
The DB_Helper objects
manage the operations on
the database.
Figure. Class Diagram for the persistence layer
5.3 Data Model Diagram
The database design is described bellow in the data model diagram in two versions.The first diagram gives only the table name and the relations between them, while thesecond diagram fully lists all the field names.
8/2/2019 MIS Architectural Design
20/25
Museum Information System
Page 20
Figure. Data Model Diagram tables and relations
T_UserAccount
T_Exhibition
PK_T_ExhibitionCode()
T_Person
PK_T_PersonID()T_ExhibitionCollection
FK_T_CollectionID()
FK_T_ExhibitionID() TC_T_ExhibitionIDCollectionID()
0..*
1
0..*
1
T_BookAuthor
FK_T_ItemCode()
FK_T_PersonID()
TC_T_PersonIDItemCode()
0..*
1
0..*
1
T_Collection
PK_T_CollectionID()
0..*
1
0..*
1
T_Computer
PK_T_ItemCode()
FK_T_ItemCode()
T_AudioVideo
PK_T_ItemCode() FK_T_ItemCode()
T_Simulation
PK_T_ItemCode() FK_T_ItemCode()
T_Book
PK_T_ItemCode()
FK_T_ItemCode()
0..*
1
0..*
1
T_Room
PK_T_RoomID()
T_ItemCollection
FK_T_CollectionID()
FK_T_ItemCollection25()
TC_T_ItemCodeCollectionID()
0..*
1
0..*
1
T_Item
PK_T_ItemCode()
FK_T_RoomCode()
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0..*
1
0..*
1
0..*
1
0..*
1
8/2/2019 MIS Architectural Design
21/25
Museum Information System
Page 21
T_UserAccount
T_Exhibition
COL_ExhibitionID : SMALLINT
COL_ExhibitionStartDate : DATETIME
COL_ExhibitionEndDate : DATETIME
COL_ExhibitionDescription : VARCHAR(2000)
COL_ExhibitionName : VARCHAR(100)
PK_T_ExhibitionCode()
T_Person
COL_PersonID : VARCHAR(20)
COL_PersonLastName : VARCHAR(50)
COL_PersonBirthDate : DATETIME
COL_PersonFirstName : VARCHAR(50)
COL_PersonCurriculum : VARCHAR(2000)
PK_T_PersonID()
T_ExhibitionCollection
COL_CollectionID : SMALLINT
COL_ExhibitionID : SMALLINT
FK_T_CollectionID()
FK_T_ExhibitionID()
TC_T_ExhibitionIDCollectionID()
0..*
1
0..*
1
T_BookAuthor
COL_ItemCode : VARCHAR(20)
COL_PersonID : VARCHAR(20)
FK_T_ItemCode()
FK_T_PersonID()
TC_T_PersonIDItemCode()
0..*
1
0..*
1
T_Collection
COL_CollectionID : SMALLINTCOL_CollectionDescription : VARCHAR(2000)
COL_CollectionName : VARCHAR(100)
PK_T_CollectionID()
0..*
1
0..*
1
T_Computer
COL_ItemCode : VARCHAR(20)
COL_ComputerModel : VARCHAR(20)
COL_ComputerCompanyName : VARCHAR(50)
COL_ComputerHertz : SMALLINT
COL_ComputerRAM : SMALLINT
COL_ComputerMIPS : SMALLINT
COL_ComputerDescription : VARCHAR(2000)
PK_T_ItemCode()
FK_T_ItemCode()
T_AudioVideoCOL_AudioVideoLength : SMALLINT
COL_AudioVideoFormat : VARCHAR(50)
COL_ItemCode : VARCHAR(20)
COL_AudioVideoDescription : VARCHAR(2000)
PK_T_ItemCode()
FK_T_ItemCode()
T_Simulation
COL_SimultationOS : VARCHAR(50)
COL_ItemCode : VARCHAR(20)
COL_SimultationGoalDescription : VARCHAR(2000)
PK_T_ItemCode()
FK_T_ItemCode()
T_Book
COL_ItemCode : VARCHAR(20)
COL_BookDescription : VARCHAR(2000)COL_BookPublisher : VARCHAR(50)
PK_T_ItemCode()
FK_T_ItemCode()
0..*
1
0..*
1
T_Room
COL_RoomCode : VARCHAR(10)
COL_RoomName : VARCHAR(50)COL_RoomFloor : VARCHAR(10)
COL_RoomDescription : VARCHAR(2000)
COL_RoomSize : SMALLINT
PK_T_RoomID()
T_ItemCollection
COL_CollectionID : SMALLINT
COL_ItemCode : VARCHAR(20)
FK_T_CollectionID() FK_T_ItemCollection25()
TC_T_ItemCodeCollectionID()
0..*
1
0..*
1
T_Item
COL_ItemCode : VARCHAR(20)
COL_ItemName : VARCHAR(50)
COL_ItemCreationData : DATETIMECOL_ItemEntryDate : DATETIME
COL_ItemOwner : VARCHAR(50)
COL_ItemDescription : VARCHAR(500)
COL_ItemType : VARCHAR(2)
COL_ItemRegion : VARCHAR(50)
COL_RoomCode : VARCHAR(10)
PK_T_ItemCode()
FK_T_RoomCode()
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0..*
1
0..*
1
0..*
1
0..*
1
Figure Data Model Diagram fully developed database design
8/2/2019 MIS Architectural Design
22/25
Museum Information System
Page 22
5.3 Database Schema
The following database schema results from applying a forward engineering process onthe above data model diagram in Rational Rose. The database specification target is
Microsoft Access.
An exhibition can display one or more collections.A collection can be displayed in different exhibitions in different periods.CREATE TABLE S_Museum.T_ExhibitionCollection (
COL_CollectionID SMALLINT NOT NULL,COL_ExhibitionID SMALLINT NOT NULL,CONSTRAINT TC_T_ExhibitionIDCollectionID UNIQUE NONCLUSTERED
(COL_ExhibitionID, COL_CollectionID))
CREATE TABLE S_Museum.T_Room (COL_RoomCode VARCHAR ( 10 ) NOT NULL,COL_RoomName VARCHAR ( 50 ),COL_RoomFloor VARCHAR ( 10 ) NOT NULL,COL_RoomDescription VARCHAR ( 2000 ),COL_RoomSize SMALLINT NOT NULL,CONSTRAINT PK_T_RoomID PRIMARY KEY NONCLUSTERED
(COL_RoomCode))
A collection can have one or more items.
An item can be part of one or more collections.CREATE TABLE S_Museum.T_ItemCollection (
COL_CollectionID SMALLINT NOT NULL,COL_ItemCode VARCHAR ( 20 ) NOT NULL,CONSTRAINT TC_T_ItemCodeCollectionID UNIQUE NONCLUSTERED
(COL_ItemCode, COL_CollectionID))
CREATE TABLE S_Museum.T_Collection (COL_CollectionID SMALLINT NOT NULL,COL_CollectionDescription VARCHAR ( 2000 ),
COL_CollectionName VARCHAR ( 100 ) NOT NULL,CONSTRAINT PK_T_CollectionID PRIMARY KEY NONCLUSTERED(COL_CollectionID)
)
CREATE TABLE S_Museum.T_Exhibition (
8/2/2019 MIS Architectural Design
23/25
Museum Information System
Page 23
COL_ExhibitionID SMALLINT NOT NULL,COL_ExhibitionStartDate DATETIME,COL_ExhibitionEndDate DATETIME,COL_ExhibitionDescription VARCHAR ( 2000 ),COL_ExhibitionName VARCHAR ( 100 ) NOT NULL,CONSTRAINT PK_T_ExhibitionCode PRIMARY KEY NONCLUSTERED
(COL_ExhibitionID))
A person can be:- an author of one/more books/software programs/audiovideo records/computers,- the owner/member of a company- the owner of an user account- the owner of an item
CREATE TABLE S_Museum.T_Person (COL_PersonID VARCHAR ( 20 ) NOT NULL,
COL_PersonLastName VARCHAR ( 50 ) NOT NULL,COL_PersonBirthDate DATETIME,COL_PersonFirstName VARCHAR ( 50 ),COL_PersonCurriculum VARCHAR ( 2000 ),CONSTRAINT PK_T_PersonID PRIMARY KEY NONCLUSTERED
(COL_PersonID))
Specific information about items of type book. This table can only be used together withthe T_Item table.CREATE TABLE S_Museum.T_Book (
COL_ItemCode VARCHAR ( 20 ) NOT NULL,More detailed description of the book.COL_BookDescription VARCHAR ( 2000 ),COL_BookPublisher VARCHAR ( 50 ),CONSTRAINT PK_T_ItemCode PRIMARY KEY NONCLUSTERED
(COL_ItemCode))
Intermediate table: link a book to one or more authors (person/company)CREATE TABLE S_Museum.T_BookAuthor (
COL_ItemCode VARCHAR ( 20 ) NOT NULL,
COL_PersonID VARCHAR ( 20 ) NOT NULL,CONSTRAINT TC_T_PersonIDItemCode UNIQUE NONCLUSTERED(COL_PersonID, COL_ItemCode)
)
CREATE TABLE S_Museum.T_Computer (COL_ItemCode VARCHAR ( 20 ) NOT NULL,COL_ComputerModel VARCHAR ( 20 ),
8/2/2019 MIS Architectural Design
24/25
Museum Information System
Page 24
COL_ComputerCompanyName VARCHAR ( 50 ),COL_ComputerHertz SMALLINT,COL_ComputerRAM SMALLINT,COL_ComputerMIPS SMALLINT,COL_ComputerDescription VARCHAR ( 2000 ),CONSTRAINT PK_T_Computer20 PRIMARY KEY NONCLUSTERED
(COL_ItemCode))
CREATE TABLE S_Museum.T_Simulation (Operating System nameCOL_SimultationOS VARCHAR ( 50 ),COL_ItemCode VARCHAR ( 20 ) NOT NULL,COL_SimultationGoalDescription VARCHAR ( 2000 ),CONSTRAINT PK_T_Simulation21 PRIMARY KEY NONCLUSTERED
(COL_ItemCode))
CREATE TABLE S_Museum.T_AudioVideo (Minutes/SecondsCOL_AudioVideoLength SMALLINT NOT NULL,Name of the audio/video format.COL_AudioVideoFormat VARCHAR ( 50 ) NOT NULL,COL_ItemCode VARCHAR ( 20 ) NOT NULL,COL_AudioVideoDescription VARCHAR ( 2000 ),CONSTRAINT PK_T_AudioVideo22 PRIMARY KEY NONCLUSTERED
(COL_ItemCode))
Table of items of the museum. This table contains common information about items,regardless of their type. Each specific item type has a separate table, linked byItemCode field.CREATE TABLE S_Museum.T_Item (
COL_ItemCode VARCHAR ( 20 ) NOT NULL,COL_ItemName VARCHAR ( 50 ) NOT NULL,The day the item was pubblicizedCOL_ItemCreationData DATETIME NOT NULL,The day the museum acquired or received the item.COL_ItemEntryDate DATETIME NOT NULL,
Owner name. The owner can be a person, a group of people, or a company(including the museum itself).There is also a separate reference field to the owner table.COL_ItemOwner VARCHAR ( 50 ) NOT NULL,Short description of the item. A more complete description can be found in the
specific item tables.COL_ItemDescription VARCHAR ( 500 ) NOT NULL,BK - BooksSW - SoftwareCM - Computers
8/2/2019 MIS Architectural Design
25/25
Museum Information System
AV - Audio VideoCOL_ItemType VARCHAR ( 2 ) NOT NULL,COL_ItemRegion VARCHAR ( 50 ) NOT NULL,COL_RoomCode VARCHAR ( 10 ) NOT NULL,CONSTRAINT PK_T_Item23 PRIMARY KEY NONCLUSTERED
(COL_ItemCode)
)ALTER TABLE S_Museum.T_ExhibitionCollection ADD CONSTRAINTFK_T_CollectionID FOREIGN KEY (COL_CollectionID) REFERENCESS_Museum.T_Collection (COL_CollectionID)
ALTER TABLE S_Museum.T_ExhibitionCollection ADD CONSTRAINTFK_T_ExhibitionID FOREIGN KEY (COL_ExhibitionID) REFERENCESS_Museum.T_Exhibition (COL_ExhibitionID)
ALTER TABLE S_Museum.T_ItemCollection ADD CONSTRAINTTC_T_ItemCollection212 FOREIGN KEY (COL_CollectionID) REFERENCES
S_Museum.T_Collection (COL_CollectionID)
ALTER TABLE S_Museum.T_ItemCollection ADD CONSTRAINTFK_T_ItemCollection25 FOREIGN KEY (COL_ItemCode) REFERENCESS_Museum.T_Item (COL_ItemCode)
ALTER TABLE S_Museum.T_Book ADD CONSTRAINT FK_T_ItemCode FOREIGNKEY (COL_ItemCode) REFERENCES S_Museum.T_Item (COL_ItemCode)
ALTER TABLE S_Museum.T_BookAuthor ADD CONSTRAINT TC_T_BookAuthor213FOREIGN KEY (COL_ItemCode) REFERENCES S_Museum.T_Book (COL_ItemCode)
ALTER TABLE S_Museum.T_BookAuthor ADD CONSTRAINT FK_T_PersonIDFOREIGN KEY (COL_PersonID) REFERENCES S_Museum.T_Person(COL_PersonID)
ALTER TABLE S_Museum.T_Computer ADD CONSTRAINT TC_T_Computer214FOREIGN KEY (COL_ItemCode) REFERENCES S_Museum.T_Item (COL_ItemCode)
ALTER TABLE S_Museum.T_Simulation ADD CONSTRAINT TC_T_Simulation215FOREIGN KEY (COL_ItemCode) REFERENCES S_Museum.T_Item (COL_ItemCode)
ALTER TABLE S_Museum.T_AudioVideo ADD CONSTRAINT TC_T_AudioVideo216FOREIGN KEY (COL_ItemCode) REFERENCES S_Museum.T_Item (COL_ItemCode)
ALTER TABLE S_Museum.T_Item ADD CONSTRAINT FK_T_RoomCode FOREIGNKEY (COL_RoomCode) REFERENCES S_Museum.T_Room (COL_RoomCode)