650 likes | 781 Views
Relational Database Systems. Higher Information Systems. The Relational Model. data is grouped into entities which are related, in order to minimise data duplication and achieve data integrity many-to-many relationships between entities are removed and replaced with one-to-many relationships.
E N D
Relational Database Systems Higher Information Systems
The Relational Model • data is grouped into entities which are related, in order to minimise data duplication and achieve data integrity • many-to-many relationships between entities are removed and replaced with one-to-many relationships
Entity-Occurrence Modelling • Lines indicate howthe instances ofeach entity arelinked • E.g. Member 1034 has rented DVDs 002 and 015 • DVD 003 has been rented by members 1012 1056
Entity-Occurrence Modelling • Each DVD can berented by manyMembers • Each Member canrent many DVDs • So there is a many-to-many relationship between Member and DVD
Entity-Occurrence Modelling • This method isonly as good asthe available data • Make up “dummy”data if necessary tofill in the gaps
More about keys • An atomic key consists of one attribute • MEMBER(Member Number, Name, Telephone Number) • A compound key consists of two or more attributes • MEMBER(Member Number, Name, Telephone Number) • A surrogate key is a made up attribute designed to identify a record • Member Number is a surrogate key
Choosing a key • An atomic key is better than a compound key • A numeric attribute is better than a text attribute • KISS = Keep It Short and Simple • A key must have a value—it cannot be blank (or “null”) • A key should not change over time
The flat file revisited… • What is a suitable key? • DVD Code? • Member Number? • (DVD Code, Member Number)?
Update Anomalies • There is no way of storing the details of a member who hasn’t rented any DVDs • A value must be provided for both DVD Code and Member Number for the key • This is called an “insertion anomaly”
Update Anomalies • If a member’s details have to be amended, this must be done in each record with those details • This can lead to data inconsistency if there is an error or omission in making the change • This is called a “modification anomaly”
Update Anomalies • If a DVD is removed from the database, then it may also remove the only record of a member’s details • This is called a “deletion anomaly”
Update Anomalies • Insertion anomalies • Modification anomalies • Deletion anomalies • These are characteristics of poorly designed databases • The solution is to use a relational database • We use normalisation to help work out what tables are required and which data items should be stored in each table
Un-normalised Form (UNF) • Identify an entity • List all the attributes • Identify a key
Un-normalised Form (UNF) • Identify repeating data items
Un-normalised Form (UNF) • Identify repeating data items
First Normal Form (1NF) • Remove repeating data items to form a new entity • Take the key with you!
First Normal Form (1NF) • Remove repeating data items to form a new entity • Take the key with you!
First Normal Form (1NF) • Identify a key for the new entity • It will be a compound key • Use the original key and add to it
First Normal Form (1NF) • Identify a key for the new entity • It will be a compound key • Use the original key and add to it • Label the foreign key • Order Number is both part of the compound primary key and also a foreign key.
First Normal Form (1NF) • A data model is in 1NF if it has no multi-valued attributes
First Normal Form (1NF) • But what if there were lots of orders for large deluxe red widgets…? • There are still update anomalies
Second Normal Form (2NF) • Examine any entity with a compound key (in this case ORDER_ITEM) • See if any attributes are dependent on just one part of the compound key • These are called partial dependencies
Second Normal Form (2NF) • Order Number is part of the key • Item Code is part of the key • Description is dependent on the Item Code • Unit Cost is dependent on the Item Code • Quantity is dependent on both Order Number and Item Code.
Second Normal Form (2NF) • Description and Unit Cost are partial dependencies • They are dependent on Item Code • Remove these attributes to a new entity • Take a copy of the attribute they are dependent on
Second Normal Form (2NF) • Item Code becomes the key of the new entity • And becomes a foreign key in ORDER-ITEM
Second Normal Form (2NF) • A data model is in 2NF if it is in 1NF and there are no partial dependencies
Second Normal Form (2NF) • We can add an item to the Item table without it having to be on an order • We can delete an order in the Order table without deleting details of the items on the order • We can update item details once in the Item table without affecting the orders for that item in the Order-Item table
Second Normal Form (2NF) • But there are still update anomalies with the Order entity
Third Normal Form (3NF) • Examine all the entities produced so far • See if there are any non-key attributes which are dependent on any other non-key attributes • These are called non-key dependencies
Third Normal Form (3NF) • In the ORDER entity, Customer Name, Address, Post Code and Telephone Number are all dependent on Customer Number
Third Normal Form (3NF) • Remove these attributes to a new entity
Third Normal Form (3NF) • Remove these attributes to a new entity • Customer Number is the key of the new entity • Leave Customer Number behind as a foreign key
Third Normal Form (3NF) • A data model is in 3NF if it is in 2NF and there are no non-key dependencies
Third Normal Form (3NF) • We can add a customer to the Customer table without the customer having to place an order • We can delete an order in the Order table without deleting details of the customer who placed the order • We can update a customer’s details once in the Customer table without affecting the orders placed by that customer in the Order table
Memory Aid • In 3NF, each attribute is dependent on • the key • the whole key • and nothing but the key
Entity-Relationship Diagram • The foreign key is always at the “many” end of the relationship
Source documents • List all the attributes which must be stored in the database
Source documents • List all the attributes which must be stored in the database • Identify a key
Source documents • There are two attributes called Title
Source documents • There are two attributes called Title • Member Number is the same as Member
Source documents • There are two attributes called Title • Member Number is the same as Member • Number or No?
Source documents • Tidy up UNF • Carry on as before to 3NF
Database Design • For each attribute you must decide • its name • its data type • its properties
Database Design • For each attribute you must decide • its name • Choose sensible and meaningful field names • Be consistent! • e.g. Number/Num/No/#
Database Design • For each attribute you must decide • its name • its data type • text (alphanumeric, string) • numeric (integer, real, currency) • date or time • Boolean (yes or no) • link • object (e.g. picture, sound, file)