DOC PREVIEW
UH COSC 6340 - The Relational Model Chapter 3

This preview shows page 1-2-3-4-5 out of 15 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 15 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

The Relational ModelWhy Study the Relational Model?The SQL Query LanguageSummary Relational Data Model ISummary Relational Data Model IICreating Relations in SQLGraphical Short Notations for Relational SchemasPrimary Key ConstraintsPrimary and Candidate Keys in SQLForeign Keys, Referential IntegrityForeign Keys in SQLEnforcing Referential IntegrityReferential Integrity in SQL/92Slide 14Relational Integrity RulesRelational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions1The Relational ModelChapter 3Relational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions2Why Study the Relational Model? •Most widely used model.•Vendors: IBM, Informix, Microsoft, Oracle, Sybase, etc.•“Legacy systems” in older models •E.G., IBM’s IMS•Recent competitor: object-oriented model •ObjectStore, Versant, Ontos•A synthesis emerging: object-relational model•Informix Universal Server, UniSQL, O2, Oracle, DB2Relational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions3The SQL Query Language•Developed by IBM (system R) in the 1970s•Need for a standard since it is used by many vendors•Standards: •SQL-86•SQL-89 (minor revision)•SQL-92 (major revision, current standard)•SQL-99 (major extensions)Relational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions4Summary Relational Data Model I1. A relation database consists of a set of relations (tables)2. Each relation consist of a set of attribute/domain pairs3. Attributes have to be single-valued. Additionally, “null” values are supported4. The attributes of a relation are unordered 5. Attribute values have to be atomic (cannot be tuples or relations)6. Relations store sets of tuples (queries return bags of tuples!!); each tuple of a relation stores a value for each attribute of the relation; all tuples stored in a relation must be different7. Tuples in a relation are unorderedRelational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions5Summary Relational Data Model II8. Each relation has one primary key that consists of a set of attributes that uniquely identifies the tuples in a relation).9. Relationships between object in the real world are represented in the relational data model by “exporting primary keys of the objects that participate in the relationship”. The exported keys are called foreign keys.10. Multi-values attributes can be presented either by using a separate relation or by representing the object through multiple tuples (one for each value of the multi-valued attribute).11. Optional attributes (attributes that not necessarily have a value) can be represented using null values; furthermore, they can also be represented by using a separate relation that stores the relation’s primary key attributes and the optional attribute.Relational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions6Creating Relations in SQL•Creates the Students relation. Observe that the type (domain) of each field is specified, and enforced by the DBMS whenever tuples are added or modified. •As another example, the Enrolled table holds information about courses that students take.CREATE TABLE Students(sid: CHAR(20), name: CHAR(20), login: CHAR(10), age: INTEGER, gpa: REAL) CREATE TABLE Enrolled(sid: CHAR(20), cid: CHAR(20), grade: CHAR(2))Relational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions7Graphical Short Notations forRelational Schemas•R(A,B,C), S(D,E) meaning: {A,B} is a primary key for R; D is a primary key for S•S(D,E) meaning:T(X,Y,Z)X is a foreign key in T that references attribute D of relation T: T[X]  S[D]Remark: The graphical short notation only specifies relationnames, attributes, primary keys, and foreign keys but omitsother schema information (such as attribute domains, uniquenessconstraints, …)Relational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions8Primary Key Constraints•A set of fields is a candidate key for a relation if :1. No two distinct tuples can have same values in all key fields, and2. This is not true for any subset of the candidate key.•Part 2 false? A superkey.•If there’s >1 key for a relation, one of the keys is chosen (by DBA) to be the primary key.•E.g., sid is a candidate key for Students. (What about name?) The set {sid, gpa} is a superkey.•Remark: Sometimes people say ‘key’ when the refer to candidate keys.Relational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions9Primary and Candidate Keys in SQL•Possibly many candidate keys (specified using UNIQUE), one of which is chosen as the primary key, if necessary.CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid) )“For a given student and course, there is a single grade.” vs. “Students can take only one course, and receive a single grade for that course; further, no two students in a course receive the same grade.”Used carelessly, an IC can prevent the storage of database instances that arise in practice!CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid), UNIQUE (cid, grade) )Relational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions10Foreign Keys, Referential Integrity•Foreign key : Set of fields in one relation that is used to `refer’ to a tuple in another relation. (Must correspond to primary key of the second relation.) Like a `logical pointer’.•E.g. sid is a foreign key referring to Students:•Enrolled(sid: string, cid: string, grade: string)•If all foreign key constraints are enforced, referential integrity is achieved, i.e., no dangling references.•Can you name a data model w/o referential integrity? •Links in HTML!Relational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions11Foreign Keys in SQL•Only students listed in the Students relation should be allowed to enroll for courses.CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students )sid name login age gpa53666 Jones jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 19 3.8sid cid grade53666 Carnatic101 C53666 Reggae203 B53650 Topology112 A53666 History105 BEnrolledStudentsRelational Data Model, R. Ramakrishnan and J. Gehrke with Dr. Eick’s additions12Enforcing Referential


View Full Document

UH COSC 6340 - The Relational Model Chapter 3

Download The Relational Model Chapter 3
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view The Relational Model Chapter 3 and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view The Relational Model Chapter 3 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?