The Relational Model

The Relational Model

Faloutsos SCS 15-415/615 The Relational Model CMU SCS 15-415/615 C. Faloutsos Lecture #3 R & G, Chap. 3 Outline • Introduction • Integrity constraints (IC) • Enforcing IC • Querying Relational Data • ER to tables • Intro to Views • Destroying/altering tables Faloutsos 15-415/615 2 Why 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 • Object-oriented concepts have merged in – object-relational model • Informix->IBM DB2, Oracle 8i Faloutsos 15-415/615 3 1 Faloutsos SCS 15-415/615 Relational Database: Definitions • Relational database: a set of relations • (relation = table) • specifically Faloutsos 15-415/615 4 Relational Database: Definitions • Relation: made up of 2 parts: – Schema : specifies name of relation, plus name and type of each column. – Instance : a table, with rows and columns. • #rows = cardinality • #fields = degree / arity Faloutsos 15-415/615 5 Relational Database: Definitions • relation: a set of rows or tuples. – all rows are distinct – no order among rows (why?) Faloutsos 15-415/615 6 2 Faloutsos SCS 15-415/615 Ex: Instance of Students Relation • Cardinality = 3, arity = 5 , • all rows distinct • Q: do values in a column need to be distinct? Faloutsos 15-415/615 7 SQL - A language for Relational DBs • SQL* (a.k.a. “Sequel”), standard language • Data Definition Language (DDL) – create, modify, delete relations – specify constraints – administer users, security, etc. * Structured Query Language Faloutsos 15-415/615 8 SQL - A language for Relational DBs • Data Manipulation Language (DML) – Specify queries to find tuples that satisfy criteria – add, modify, remove tuples Faloutsos 15-415/615 9 3 Faloutsos SCS 15-415/615 SQL Overview • CREATE TABLE <name> ( <field> <domain>, … ) • INSERT INTO <name> (<field names>) VALUES (<field values>) • DELETE FROM <name> WHERE <condition> Faloutsos 15-415/615 10 SQL Overview • UPDATE <name> SET <field name> = <value> WHERE <condition> • SELECT <fields> FROM <name> WHERE <condition> Faloutsos 15-415/615 11 Creating Relations in SQL • Creates the Students relation. CREATE TABLE Students (sid CHAR(20), name CHAR(20), login CHAR(10), age INTEGER, gpa FLOAT) Faloutsos 15-415/615 12 4 Faloutsos SCS 15-415/615 Creating Relations in SQL • Creates the Students relation. – Note: the type (domain) of each field is specified, and enforced by the DBMS whenever tuples are added or modified. Faloutsos 15-415/615 13 Table Creation (continued) • Another example: CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2)) Faloutsos 15-415/615 14 Adding and Deleting Tuples • Can insert a single tuple using: INSERT INTO Students (sid, name, login, age, gpa) VALUES (‘53688’, ‘Smith’, ‘smith@cs’, 18, 3.2) Faloutsos 15-415/615 15 5 Faloutsos SCS 15-415/615 Adding and Deleting Tuples • Can delete all tuples satisfying some condition (e.g., name = Smith): DELETE FROM Students S WHERE S.name = ‘Smith’ Powerful variants of these commands: more later! Faloutsos 15-415/615 16 Outline • Introduction • Integrity constraints (IC) • Enforcing IC • Querying Relational Data • ER to tables • Intro to Views • Destroying/altering tables Faloutsos 15-415/615 17 Keys • Keys help associate tuples in different relations • Keys are one form of integrity constraint (IC) Enrolled Students Faloutsos 15-415/615 18 6 Faloutsos SCS 15-415/615 Keys • Keys help associate tuples in different relations • Keys are one form of integrity constraint (IC) Enrolled Students FOREIGN Key PRIMARY Key Faloutsos 15-415/615 19 Primary Keys • A set of fields is a superkey if: – No two distinct tuples can have same values in all key fields • A set of fields is a key for a relation if : – minimal superkey Faloutsos 15-415/615 20 Primary Keys • what if >1 key for a relation? Faloutsos 15-415/615 21 7 Faloutsos SCS 15-415/615 Primary Keys • what if >1 key for a relation? – one of the keys is chosen (by DBA) to be the primary key. Other keys are called candidate keys.. – Q: example? Faloutsos 15-415/615 22 Primary Keys • E.g. – sid is a key for Students. – What about name? – The set {sid, gpa} is a superkey. Faloutsos 15-415/615 23 Primary and Candidate Keys in SQL • Possibly many candidate keys (specified using UNIQUE), one of which is chosen as the primary key. • Keys must be used carefully! • “For a given student and course, there is a single grade.” Faloutsos 15-415/615 24 8 Faloutsos SCS 15-415/615 Primary and Candidate Keys in SQL CREATE TABLE Enrolled CREATE TABLE Enrolled (sid CHAR(20) (sid CHAR(20) cid CHAR(20), cid CHAR(20), vs. grade CHAR(2), grade CHAR(2), PRIMARY KEY (sid,cid)) PRIMARY KEY (sid), UNIQUE (cid, grade)) Faloutsos 15-415/615 25 Primary and Candidate Keys in SQL CREATE TABLE Enrolled CREATE TABLE Enrolled (sid CHAR(20) (sid CHAR(20) cid CHAR(20), cid CHAR(20), vs. grade CHAR(2), grade CHAR(2), PRIMARY KEY (sid,cid)) PRIMARY KEY (sid), UNIQUE (cid, grade)) Q: what does this mean? Faloutsos 15-415/615 26 Primary and Candidate Keys in SQL CREATE TABLE Enrolled CREATE TABLE Enrolled (sid CHAR(20) (sid CHAR(20) cid CHAR(20), cid CHAR(20), vs. grade CHAR(2), grade CHAR(2), PRIMARY KEY (sid,cid)) PRIMARY KEY (sid), UNIQUE (cid, grade)) “Students can take only one course, and no two students in a course receive the same grade.” Faloutsos 15-415/615 27 9 Faloutsos SCS 15-415/615 Foreign Keys Enrolled Students Faloutsos 15-415/615 28 Foreign Keys, Referential Integrity • Foreign key : Set of fields `refering’ to a tuple in another relation. – Must correspond to the primary key of the other relation. – Like a `logical pointer’. • foreign key constraints enforce referential integrity (i.e., no dangling references.) Faloutsos 15-415/615 29 Foreign Keys in SQL Example: Only existing students may enroll for courses. – sid is a foreign key referring to Students: Enrolled Students Faloutsos 15-415/615 30 10 Faloutsos SCS 15-415/615 Foreign Keys in SQL CREATE TABLE Enrolled (sid CHAR(20),cid CHAR(20),grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students ) Enrolled Students Faloutsos 15-415/615 31 Outline • Introduction • Integrity constraints (IC) • Enforcing IC • Querying Relational Data • ER to tables • Intro to Views • Destroying/altering tables Faloutsos 15-415/615 32 Enforcing Referential Integrity • Subtle issues: • What should be done if an Enrolled tuple with a non-existent student id is inserted? Enrolled Students Faloutsos 15-415/615 33 11 Faloutsos SCS 15-415/615 Enforcing Referential Integrity • Subtle issues: • What should be done if an Enrolled tuple with a non-existent student id is inserted? (Reject it!) Faloutsos 15-415/615 34 Enforcing Referential Integrity • Subtle issues, cont’d: • What should be done if a Student’s tuple is deleted? Enrolled Students Faloutsos 15-415/615 35 Enforcing Referential Integrity • Subtle issues, cont’d: • What should be done if a Students tuple is deleted? – Also delete all Enrolled tuples that refer to it? – Disallow deletion of a Students tuple that is referred to? – Set sid in Enrolled tuples that refer to it to a default sid? – (In SQL, also: Set sid in Enrolled tuples that refer to it to a special value null, denoting `unknown’ or `inapplicable’.) Faloutsos 15-415/615 36 12 Faloutsos SCS 15-415/615 Enforcing Referential Integrity • Similar issues arise if primary key of Students tuple is updated. Faloutsos 15-415/615 37 Integrity Constraints (ICs) • IC: condition that must be true for any instance of the database; e.g., domain constraints. – ICs are specified when schema is defined. – ICs are checked when relations are modified. Faloutsos 15-415/615 38 Integrity Constraints (ICs) • A legal instance of a relation: satisfies all specified ICs. – DBMS should not allow illegal instances. • we prefer that ICs are enforced by DBMS (as opposed to ?) – Blocks data entry errors, too! Faloutsos 15-415/615 39 13 Faloutsos SCS 15-415/615 Where do ICs Come From? Faloutsos 15-415/615 40 Where do ICs Come From? • the application! Faloutsos 15-415/615 41 Where do ICs Come From? • Subtle point: • We can check a database instance to see if an IC is violated, but we can NEVER infer that an IC is true by looking at an instance. – An IC is a statement about all possible instances! – From example, we know name is not a key, but the assertion that sid is a key is given to us. Faloutsos 15-415/615 42 14 Faloutsos SCS 15-415/615 Where do ICs Come From? • Key and foreign key ICs are the most common; more general ICs supported too. Faloutsos 15-415/615 43 Outline • Introduction • Integrity constraints (IC) • Enforcing IC • Querying Relational Data • ER to tables • Intro to Views • Destroying/altering tables Faloutsos 15-415/615 44 ER to tables outline: • strong entities • weak entities • (binary) relationships – 1-to-1, 1-to-many, etc – total/partial participation • ternary relationships • ISA-hierarchies • aggregation Faloutsos 15-415/615 45 15 Faloutsos SCS 15-415/615 Logical DB Design: ER to Relational • (strong) entity sets to tables. name ssn lot Employees Faloutsos 15-415/615 46 Logical DB Design: ER to Relational • (strong) entity sets to tables. name ssn lot Employees CREATE TABLE Employees (ssn CHAR(11), name CHAR(20), lot INTEGER, PRIMARY KEY (ssn)) Faloutsos 15-415/615 47 Relationship Sets to Tables Many-to-many: since name dname ssn lot did budget Employees Works_In Departments Faloutsos 15-415/615 48 16 Faloutsos SCS 15-415/615 Relationship Sets to Tables Many-to-many: since name dname ssn lot did budget Employees Works_In Departments Faloutsos 15-415/615 49 Relationship Sets to Tables CREATE TABLE Works_In( • key of many-to-many ssn CHAR(11), relationships: did INTEGER, – Keys from participating since DATE, PRIMARY KEY (ssn, did), entity sets (as foreign FOREIGN KEY (ssn) keys).

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    28 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us