The Relational Model. Roadmap. Relational Database: Definitions. Why Study the Relational Model? Relational database: a set of relations

Similar documents
Relational Databases BORROWED WITH MINOR ADAPTATION FROM PROF. CHRISTOS FALOUTSOS, CMU /615

The Relational Model. Outline. Why Study the Relational Model? Faloutsos SCS object-relational model

The Relational Model. Chapter 3

The Relational Model. Chapter 3. Database Management Systems, R. Ramakrishnan and J. Gehrke 1

The Relational Model. Chapter 3. Comp 521 Files and Databases Fall

The Relational Model 2. Week 3

The Relational Model. Chapter 3. Comp 521 Files and Databases Fall

The Relational Model. Why Study the Relational Model? Relational Database: Definitions

Database Applications (15-415)

Relational Model. Topics. Relational Model. Why Study the Relational Model? Linda Wu (CMPT )

Why Study the Relational Model? The Relational Model. Relational Database: Definitions. The SQL Query Language. Relational Query Languages

Data Modeling. Yanlei Diao UMass Amherst. Slides Courtesy of R. Ramakrishnan and J. Gehrke

Introduction to Data Management. Lecture #4 (E-R à Relational Design)

Database Systems ( 資料庫系統 )

Introduction to Data Management. Lecture #4 (E-R Relational Translation)

Database Applications (15-415)

The Relational Model (ii)

CIS 330: Applied Database Systems

Database Systems. Course Administration

Database Management Systems. Chapter 3 Part 2

High-Level Database Models (ii)

High Level Database Models

Relational data model

Review. The Relational Model. Glossary. Review. Data Models. Why Study the Relational Model? Why use a DBMS? OS provides RAM and disk

CIS 330: Applied Database Systems. ER to Relational Relational Algebra

From ER to Relational Model. Book Chapter 3 (part 2 )

The Relational Model. Relational Data Model Relational Query Language (DDL + DML) Integrity Constraints (IC)

Introduction to Data Management. Lecture #5 (E-R Relational, Cont.)

The Entity-Relationship Model

Introduction to Data Management. Lecture #5 Relational Model (Cont.) & E-Rà Relational Mapping

The Relational Data Model. Data Model

The Entity-Relationship Model. Overview of Database Design

Administrivia. The Relational Model. Review. Review. Review. Some useful terms

The Relational Model. Week 2

Introduction to Data Management. Lecture #6 E-Rà Relational Mapping (Cont.)

The Relational Model

The Relational Model of Data (ii)

EGCI 321: Database Systems. Dr. Tanasanee Phienthrakul

Overview of db design Requirement analysis Data to be stored Applications to be built Operations (most frequent) subject to performance requirement

Database Management Systems. Chapter 3 Part 1

LAB 3 Notes. Codd proposed the relational model in 70 Main advantage of Relational Model : Simple representation (relationstables(row,

ER to Relational Mapping. ER Model: Overview

Translation of ER-diagram into Relational Schema. Dr. Sunnie S. Chung CIS430/530

Introduction to Data Management. Lecture #3 (E-R Design, Cont d.)

CONCEPTUAL DESIGN: ER TO RELATIONAL TO SQL

The Relational Model

Comp 5311 Database Management Systems. 4b. Structured Query Language 3

Database Management Systems. Session 2. Instructor: Vinnie Costa

Database Systems. Lecture2:E-R model. Juan Huo( 霍娟 )

OVERVIEW OF DATABASE DEVELOPMENT

Database Design & Deployment

CompSci 516 Database Systems. Lecture 2 SQL. Instructor: Sudeepa Roy

Introduction to Database Design

Contents. Database. Information Policy. C03. Entity Relationship Model WKU-IP-C03 Database / Entity Relationship Model

Introduction to Database Design

Entity-Relationship Diagrams

Databases Model the Real World. The Entity- Relationship Model. Conceptual Design. Steps in Database Design. ER Model Basics. ER Model Basics (Contd.

CSC 261/461 Database Systems Lecture 10

MIS Database Systems Entity-Relationship Model.

Lecture 2 SQL. Instructor: Sudeepa Roy. CompSci 516: Data Intensive Computing Systems

The Relational Model

Database Applications (15-415)

The Entity-Relationship Model

Introduction to Databases

CSE 530A. ER Model to Relational Schema. Washington University Fall 2013

Lecture 2 SQL. Announcements. Recap: Lecture 1. Today s topic. Semi-structured Data and XML. XML: an overview 8/30/17. Instructor: Sudeepa Roy

COMP Instructor: Dimitris Papadias WWW page:

Introduction to Database Design

Conceptual Design. The Entity-Relationship (ER) Model

The Relational Model. Database Management Systems

The Entity-Relationship Model

Database Design. ER Model. Overview. Introduction to Database Design. UVic C SC 370. Database design can be divided in six major steps:

Translating an ER Diagram to a Relational Schema

The Entity-Relationship Model. Overview of Database Design. ER Model Basics. (Ramakrishnan&Gehrke, Chapter 2)

Overview. Introduction to Database Design. ER Model. Database Design

The Entity-Relationship (ER) Model

DBMS. Relational Model. Module Title?

CIS 330: Web-driven Web Applications. Lecture 2: Introduction to ER Modeling

CS/INFO 330 Entity-Relationship Modeling. Announcements. Goals of This Lecture. Mirek Riedewald

Database Applications (15-415)

CS275 Intro to Databases

Conceptual Design. The Entity-Relationship (ER) Model

Introduction to Database Design. Dr. Kanda Runapongsa Dept of Computer Engineering Khon Kaen University

ER Model Overview. The Entity-Relationship Model. Database Design Process. ER Model Basics

The Entity-Relationship (ER) Model 2

Keys, SQL, and Views CMPSCI 645

The Entity-Relationship Model. Steps in Database Design

Announcements If you are enrolled to the class, but have not received the from Piazza, please send me an . Recap: Lecture 1.

Translation of ER-diagram into Relational Schema. Dr. Sunnie S. Chung CIS430/530

Administrivia. Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications. Course Topics. Problem

Introduction to Data Management. Lecture #3 (Conceptual DB Design) Instructor: Chen Li

Databases Model the Real World. The Entity- Relationship Model. Conceptual Design. Steps in Database Design. ER Model Basics. ER Model Basics (Contd.

Integrity constraints, relationships. CS634 Lecture 2

Database Management Systems. Chapter 2 Part 2

Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications. Problem. Faloutsos - Pavlo CMU SCS /615

L3 The Relational Model. Eugene Wu Fall 2018

CSC 261/461 Database Systems Lecture 8. Spring 2018

CSC 261/461 Database Systems Lecture 8. Fall 2017

VARDHAMAN COLLEGE OF ENGINEERING Shamshabad , Hyderabad B.Tech. CSE IV Semester (VCE - R11) T P C 3+1* -- 4 (A1511) DATABASE MANAGEMENT SYSTEMS

Problem. Carnegie Mellon Univ. Dept. of Computer Science /615 - DB Applications

Transcription:

The Relational Model CMU SCS 15-415/615 C. Faloutsos A. Pavlo Lecture #3 R & G, Chap. 3 Roadmap Introduction Integrity constraints (IC) Enforcing IC Querying Relational Data ER to tables Intro to Views Destroying/altering tables Faloutsos - Pavlo, 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 Relational Database: Definitions Relational database: a set of relations (relation = table) specifically Faloutsos - Pavlo, 15-415/615 3 Faloutsos - Pavlo, 15-415/615 4 1

Relational Database: Definitions Relation: made up of 2 parts: Schema : specifies of relation, plus and type of each column. Instance : a table, with rows and columns. #rows = cardinality #fields = degree / arity Relational Database: Definitions relation: a set of rows or tuples. all rows are distinct no order among rows (why?) Faloutsos - Pavlo, 15-415/615 5 Faloutsos - Pavlo, 15-415/615 6 Ex: Instance of Students Relation Cardinality = 3, arity = 5, all rows distinct Q: do values in a column need to be distinct? 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. E.g.: create table student ( fixed, char(20)); * Structured Query Language Faloutsos - Pavlo, 15-415/615 7 Faloutsos - Pavlo, 15-415/615 8 2

SQL - A language for Relational DBs Data Manipulation Language (DML) Specify queries to find tuples that satisfy criteria add, modify, remove tuples select * from student ; update takes set grade=4 where = smith and cid = db ; SQL Overview CREATE TABLE <> ( <field> <domain>, ) INSERT INTO <> (<field s>) VALUES (<field values>) DELETE FROM <> WHERE <condition> Faloutsos - Pavlo, 15-415/615 9 Faloutsos - Pavlo, 15-415/615 10 SQL Overview UPDATE <> SET <field > = <value> WHERE <condition> SELECT <fields> FROM <> WHERE <condition> Creating Relations in SQL Creates the Students relation. CREATE TABLE Students (sid CHAR(20), CHAR(20), login CHAR(10), age INTEGER, gpa FLOAT) Faloutsos - Pavlo, 15-415/615 11 Faloutsos - Pavlo, 15-415/615 12 3

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. CREATE TABLE Students (sid CHAR(20), CHAR(20), login CHAR(10), age INTEGER, gpa FLOAT) Faloutsos - Pavlo, 15-415/615 13 Table Creation (continued) Another example: CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2)) Faloutsos - Pavlo, 15-415/615 14 Adding and Deleting Tuples Can insert a single tuple using: INSERT INTO Students (sid,, login, age, gpa) VALUES ( 53688, Smith, smith@cs, 18, 3.2) Adding and Deleting Tuples mass -delete (all Smiths!) : DELETE FROM Students S WHERE S. = Smith Faloutsos - Pavlo, 15-415/615 15 Faloutsos - Pavlo, 15-415/615 16 4

Roadmap Introduction Integrity constraints (IC) Enforcing IC Querying Relational Data ER to tables Intro to Views Destroying/altering tables Keys Keys help associate tuples in different relations Keys are one form of integrity constraint (IC) Enrolled Students Faloutsos - Pavlo, 15-415/615 17 Faloutsos - Pavlo, 15-415/615 18 (Motivation: ) In flat files, how would you check for duplicate, in a student file? (horror stories, if is duplicate?) Keys Keys help associate tuples in different relations Keys are one form of integrity constraint (IC) Enrolled Students FOREIGN Key PRIMARY Key Faloutsos - Pavlo, 15-415/615 19 Faloutsos - Pavlo, 15-415/615 20 5

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 Student (,, address) {,}: superkey {}: superkey, AND key {}: not superkey Faloutsos - Pavlo, 15-415/615 21 Primary Keys what if >1 key for a relation? Faloutsos - Pavlo, 15-415/615 22 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 of >1 superkeys? Faloutsos - Pavlo, 15-415/615 23 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 of >1 superkeys? A1: student: {}, {student-id#}, {driving license#, state} A2: Employee: {}, {phone#}, {room#} A3: computer: {mac-address}, {serial#} Faloutsos - Pavlo, 15-415/615 24 6

Primary Keys E.g. sid is a key for Students. What about? The set {sid, gpa} is a superkey. Syntax: CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2)) Faloutsos - Pavlo, 15-415/615 25 Faloutsos - Pavlo, 15-415/615 26 Syntax: Drill: CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid)) CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), vs. grade CHAR(2), PRIMARY KEY (sid,cid)) CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid), UNIQUE (cid, grade)) PRIMARY KEY == UNIQUE, NOT NULL Faloutsos - Pavlo, 15-415/615 27 Faloutsos - Pavlo, 15-415/615 28 7

Drill: Primary and Candidate Keys in SQL CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), vs. grade CHAR(2), PRIMARY KEY (sid,cid)) CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid), UNIQUE (cid, grade)) CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), vs. grade CHAR(2), PRIMARY KEY (sid,cid)) CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid), UNIQUE (cid, grade)) Q: what does this mean? Faloutsos - Pavlo, 15-415/615 29 Students can take only one course, and no two students in a course receive the same grade. Faloutsos - Pavlo, 15-415/615 30 Enrolled Foreign Keys Students 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 - Pavlo, 15-415/615 31 Faloutsos - Pavlo, 15-415/615 32 8

Foreign Keys in SQL Example: Only existing students may enroll for courses. sid is a foreign key referring to Students: 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 Enrolled Students Faloutsos - Pavlo, 15-415/615 33 Faloutsos - Pavlo, 15-415/615 34 Roadmap Introduction Integrity constraints (IC) Enforcing IC Querying Relational Data ER to tables Intro to Views Destroying/altering tables Enforcing Referential Integrity Subtle issues: What should be done if an Enrolled tuple with a non-existent student id is inserted? Enrolled Students Faloutsos - Pavlo, 15-415/615 35 Faloutsos - Pavlo, 15-415/615 36 9

Enforcing Referential Integrity Subtle issues: What should be done if an Enrolled tuple with a non-existent student id is inserted? (Reject it!) Enforcing Referential Integrity Subtle issues, cont d: What should be done if a Student s tuple is deleted? Enrolled Students Enrolled Students Faloutsos - Pavlo, 15-415/615 37 Faloutsos - Pavlo, 15-415/615 38 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 - Pavlo, 15-415/615 39 Enforcing Referential Integrity Similar issues arise if primary key of Students tuple is updated. Faloutsos - Pavlo, 15-415/615 40 10

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. 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 - Pavlo, 15-415/615 41 Faloutsos - Pavlo, 15-415/615 42 Where do ICs Come From? Where do ICs Come From? the application! Faloutsos - Pavlo, 15-415/615 43 Faloutsos - Pavlo, 15-415/615 44 11

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! Eg., is not a key, but the assertion that sid is a key is given to us. Where do ICs Come From? Key and foreign key ICs are the most common; more general ICs supported too. Faloutsos - Pavlo, 15-415/615 45 Faloutsos - Pavlo, 15-415/615 46 Roadmap ER to tables outline: Introduction Integrity constraints (IC) Enforcing IC Querying Relational Data ER to tables Intro to Views Destroying/altering tables strong entities weak entities (binary) relationships 1-to-1, 1-to-many, etc total/partial participation ternary relationships ISA-hierarchies aggregation Faloutsos - Pavlo, 15-415/615 47 Faloutsos - Pavlo, 15-415/615 48 12

Logical DB Design: ER to Relational Logical DB Design: ER to Relational (strong) entity sets to tables. lot (strong) entity sets to tables. lot Ssn Name Lot 123-22-6666 Attishoo 48 233-31-5363 Smiley 22 131-24-3650 Smethurst 35 Faloutsos - Pavlo, 15-415/615 49 CREATE TABLE ( CHAR(11), CHAR(20), lot INTEGER, PRIMARY KEY ()) Faloutsos - Pavlo, 15-415/615 50 Relationship Sets to Tables Many-to-many: Relationship Sets to Tables Many-to-many: since d since d lot did budget lot did budget Works_In Departments Works_In Departments Ssn Name Lot 123-22-6666 Attishoo 48 233-31-5363 Smiley 22 131-24-3650 Smethurst 35 Ssn did since 123-22-6666 51 1/1/91 123-22-6666 56 3/3/93 233-31-5363 51 2/2/92 Faloutsos - Pavlo, 15-415/615 51 Faloutsos - Pavlo, 15-415/615 52 13

Relationship Sets to Tables key of many-to-many relationships: Keys from participating entity sets (as foreign keys). CREATE TABLE Works_In( CHAR(11), did INTEGER, since DATE, PRIMARY KEY (, did), FOREIGN KEY () REFERENCES, FOREIGN KEY (did) REFERENCES Departments) Ssn did since 123-22-6666 51 1/1/91 123-22-6666 56 3/3/93 233-31-5363 51 2/2/92 Faloutsos - Pavlo, 15-415/615 53 1-to-many: Review: Key Constraints in ER since d lot did budget Manages Departments Faloutsos - Pavlo, 15-415/615 54 Review: Key Constraints in ER ER to tables - summary of basics 1-to-1 1-to Many Many-to-1 Many-to-Many strong entities: key -> primary key (binary) relationships: get keys from all participating entities - pr. key: 1-to-1 -> either key (other: cand. key ) 1-to-N -> the key of the N part M-to-N -> both keys Faloutsos - Pavlo, 15-415/615 55 Faloutsos - Pavlo, 15-415/615 56 14

A subtle point (1-to-many) since d lot did budget Manages Departments Faloutsos - Pavlo, 15-415/615 57 Translating ER with Key Constraints since CREATE TABLE Manages( CHAR(11), did INTEGER, since DATE, PRIMARY KEY (did), FOREIGN KEY () REFERENCES, FOREIGN KEY (did) REFERENCES Departments) lot Manages d budget Faloutsos - Pavlo, 15-415/615 58 did Departments CREATE TABLE Departments( did INTEGER), d CHAR(20), budget REAL, PRIMARY KEY (did), ) Two-table-solution Translating ER with Key Constraints since d lot did budget Translating ER with Key Constraints since d lot did budget Manages Departments Manages Departments CREATE TABLE Dept_Mgr( CHAR(11), did INTEGER, since DATE, d CHAR(20), budget REAL, PRIMARY KEY (did), FOREIGN KEY () REFERENCES ) Single-table-solution Faloutsos - Pavlo, 15-415/615 59 CREATE TABLE Manages( CHAR(11), did INTEGER, since DATE, Vs. PRIMARY KEY (did), FOREIGN KEY () REFERENCES, FOREIGN KEY (did) REFERENCES Departments) CREATE TABLE Dept_Mgr( CHAR(11), did INTEGER, since DATE, d CHAR(20), budget REAL, PRIMARY KEY (did), FOREIGN KEY () REFERENCES ) Faloutsos - Pavlo, 15-415/615 60 15

Pros and cons? Drill: What if the toy department has no manager (yet)? Faloutsos - Pavlo, 15-415/615 61 CREATE TABLE Dept_Mgr( did INTEGER, d CHAR(20), budget REAL, CHAR(11), since DATE, PRIMARY KEY (did), FOREIGN KEY () REFERENCES ) Faloutsos - Pavlo, 15-415/615 62 Drill: What if the toy department has no manager (yet)? A: one-table solution can not handle that. (ie., helps enforce thick arrow see next) CREATE TABLE Dept_Mgr( did INTEGER, d CHAR(20), budget REAL, CHAR(11), since DATE, PRIMARY KEY (did), FOREIGN KEY () REFERENCES ) Faloutsos - Pavlo, 15-415/615 63 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 - Pavlo, 15-415/615 64 16

Review: Participation Constraints Does every department have a manager? If so, this is a participation constraint: the participation of Departments in Manages is said to be total (vs. partial). Every did value in Departments table must appear in a row of the Manages table (with a non-null value!) lot since Manages Works_In d budget since Faloutsos - Pavlo, 15-415/615 65 did Departments Participation Constraints in SQL We can capture participation constraints involving one entity set in a binary relationship, but little else (without resorting to CHECK constraints). CREATE TABLE Dept_Mgr( did INTEGER, d CHAR(20), budget REAL, CHAR(11) NOT NULL, since DATE, PRIMARY KEY (did), FOREIGN KEY () REFERENCES, ON DELETE NO ACTION) Faloutsos - Pavlo, 15-415/615 66 Participation Constraints in SQL Participation Constraints in SQL Total participation ( no action -> do NOT do the delete) Ie, a department MUST have a nanager CREATE TABLE Dept_Mgr( did INTEGER, d CHAR(20), budget REAL, CHAR(11) NOT NULL, since DATE, PRIMARY KEY (did), FOREIGN KEY () REFERENCES, ON DELETE NO ACTION) Faloutsos - Pavlo, 15-415/615 67 Partial partipation, ie, a department may be headless CREATE TABLE Dept_Mgr( did INTEGER, d CHAR(20), budget REAL, CHAR(11) NOT NULL, since DATE, PRIMARY KEY (did), FOREIGN KEY () REFERENCES, ON DELETE SET NULL) Faloutsos - Pavlo, 15-415/615 68 17

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 Review: Weak Entities A weak entity can be identified uniquely only by considering the primary key of another (owner) entity. Owner entity set and weak entity set must participate in a one-to-many relationship set (1 owner, many weak entities). Weak entity set must have total participation in this identifying relationship set. lot cost d age Policy Dependents Faloutsos - Pavlo, 15-415/615 69 Faloutsos - Pavlo, 15-415/615 70 Review: Weak Entities How to turn Dependents into a table? Translating Weak Entity Sets Weak entity set and identifying relationship set are translated into a single table. lot cost Policy d Dependents age CREATE TABLE Dep_Policy ( d CHAR(20), age INTEGER, cost REAL, CHAR(11) NOT NULL, PRIMARY KEY (d, ), FOREIGN KEY () REFERENCES, ON DELETE CASCADE) Faloutsos - Pavlo, 15-415/615 71 Faloutsos - Pavlo, 15-415/615 72 18

Translating Weak Entity Sets Weak entity set and identifying relationship set are translated into a single table. When the owner entity is deleted, all owned weak entities must also be deleted (-> CASCADE ) CREATE TABLE Dep_Policy ( d CHAR(20), age INTEGER, cost REAL, CHAR(11) NOT NULL, PRIMARY KEY (d, ), FOREIGN KEY () REFERENCES, ON DELETE CASCADE) Faloutsos - Pavlo, 15-415/615 73 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 - Pavlo, 15-415/615 74 lot Review: ISA Hierarchies Drill: hourly_wages hours_worked ISA contractid What would you do? Hourly_Emps Contract_Emps lot Overlap constraints: Can Joe be an Hourly_Emps as well as a Contract_Emps entity? (Allowed/disallowed) Covering constraints: Does every entity also have to be an Hourly_Emps or a Contract_Emps entity? (Yes/no) hourly_wages hours_worked ISA contractid Hourly_Emps Contract_Emps Faloutsos - Pavlo, 15-415/615 75 Faloutsos - Pavlo, 15-415/615 76 19

Translating ISA Hierarchies to Relations General approach: 3 relations:, Hourly_Emps and Contract_Emps. how many times do we record an employee? what to do on deletion? how to retrieve all info about an employee? EMP (,, lot) Translating ISA Hierarchies to Relations Alternative: Just Hourly_Emps and Contract_Emps. Hourly_Emps:,, lot, hourly_wages, hours_worked. Each employee must be in one of these two subclasses. EMP (,, lot) H_EMP(, h_wg, h_wk) CONTR(, cid) H_EMP(, h_wg, h_wk,, lot) CONTR(, cid,, lot) Faloutsos - Pavlo, 15-415/615 77 Notice: black is gone! Faloutsos - Pavlo, 15-415/615 78 Not in book why NOT 1 table + nulls? Not in book why NOT 1 table + nulls? TYPE h_wg cid h_wg cid all hourly contractors all hourly contractors Faloutsos - Pavlo, 15-415/615 79 Faloutsos - Pavlo, 15-415/615 80 20

ER to tables outline: Ternary relationships; aggregation strong entities weak entities (binary) relationships 1-to-1, 1-to-many, etc total/partial participation ternary relationships ISA-hierarchies aggregation rare keep keys of all participating entity sets (or: avoid such situations: break into 2-way relationships or ) add an auto-generated key Faloutsos - Pavlo, 15-415/615 81 Faloutsos - Pavlo, 15-415/615 82 Roadmap Views Introduction Integrity constraints (IC) Enforcing IC Querying Relational Data ER to tables Intro to Views Destroying/altering tables Virtual tables CREATE VIEW YoungActiveStudents (,grade) AS SELECT S., E.grade FROM Students S, Enrolled E WHERE S.sid=E.sid and S.age<21 DROP VIEW Faloutsos - Pavlo, 15-415/615 83 Faloutsos - Pavlo, 15-415/615 84 21

Views and Security Roadmap DBA: grants authorization to a view for a user user can only see the view - nothing else Introduction Integrity constraints (IC) Enforcing IC Querying Relational Data ER to tables Intro to Views Destroying/altering tables Faloutsos - Pavlo, 15-415/615 85 Faloutsos - Pavlo, 15-415/615 86 Table changes DROP TABLE ALTER TABLE, e.g. ALTER TABLE students ADD COLUMN maiden- CHAR(10) Relational Model: Summary A tabular representation of data. Simple and intuitive; widely used Integrity constraints can be specified by the DBA, based on customer specs. DBMS checks for violations. Two important ICs: primary and foreign keys also: not null, unique In addition, we always have domain constraints. Mapping from ER to Relational is (fairly) straightforward: Faloutsos - Pavlo, 15-415/615 87 Faloutsos - Pavlo, 15-415/615 88 22

ER to tables - summary of basics ER to tables - summary of advanced strong entities: key -> primary key (binary) relationships: get keys from all participating entities - pr. key: 1:1 -> either key 1:N -> the key of the N part M:N -> both keys weak entities: strong key + partial key -> primary key... ON DELETE CASCADE Faloutsos - Pavlo, 15-415/615 89 total/partial participation: NOT NULL; ON DELETE NO ACTION ternary relationships: get keys from all; decide which one(s) -> prim. key aggregation: like relationships ISA: 2 tables ( total coverage ) 3 tables (most general) ISA Faloutsos - Pavlo, 15-415/615 90 23