Database Systems. Course Administration

Similar documents
Database Systems ( 資料庫系統 )

The Relational Model. Chapter 3

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

The Relational Model 2. Week 3

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

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

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

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

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

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

Database Applications (15-415)

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

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

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

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

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

The Relational Model

Database Management Systems. Chapter 3 Part 2

CIS 330: Applied Database Systems

The Relational Model

The Entity-Relationship Model. Overview of Database Design

Relational data model

The Entity-Relationship Model

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

Database Management Systems. Chapter 3 Part 1

High-Level Database Models (ii)

The Relational Model (ii)

The Relational Data Model. Data Model

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

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

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

High Level Database Models

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

Conceptual Design with ER Model

The Entity-Relationship Model

OVERVIEW OF DATABASE DEVELOPMENT

The Relational Model of Data (ii)

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

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

MIS Database Systems Entity-Relationship Model.

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

The Relational Model. Week 2

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

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

The Entity-Relationship Model

Introduction to Database Design

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

Database Applications (15-415)

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

ER Model. CSC 343 Winter 2018 MICHAEL LIUT

The Entity-Relationship (ER) Model

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

The Entity-Relationship (ER) Model 2

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

Introduction to Database Design

Introduction to Database Design

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

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

CS 405G: Introduction to Database Systems. Database Design II

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

Database Applications (15-415)

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

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

Database Management Systems. Session 2. Instructor: Vinnie Costa

The Entity-Relationship Model. Steps in Database Design

Database Applications (15-415)

CONCEPTUAL DESIGN: ER TO RELATIONAL TO SQL

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

Entity-Relationship Model. Purpose of E/R Model

Database Management Systems. Chapter 2 Part 2

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

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

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

Entity-Relationship Diagrams

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

COMP Instructor: Dimitris Papadias WWW page:

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

ER to Relational Mapping. ER Model: Overview

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

Database Design CENG 351

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

CSE 530A. ER Model. Washington University Fall 2013

The Relational Model

Entity-Relationship Model

Introduction to Data Management. Lecture #3 (Conceptual DB Design)

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

ENTITY-RELATIONSHIP MODEL. CS 564- Spring 2018

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

Keys, SQL, and Views CMPSCI 645

Introduction to Data Management. Lecture #3 (Conceptual DB Design)

e e Conceptual design begins with the collection of requirements and results needed from the database (ER Diag.)

SYLLABUS ADMIN DATABASE SYSTEMS I WEEK 2 THE ENTITY-RELATIONSHIP MODEL. Assignment #2 changed. A2Q1 moved to A3Q1

Database Design & Deployment

Introduction to Databases

CSC 261/461 Database Systems Lecture 10

Introduction to Data Management. Lecture #4 E-R Model, Still Going

EGCI 321: Database Systems. Dr. Tanasanee Phienthrakul

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

Conceptual Design. The Entity-Relationship (ER) Model

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

Transcription:

Database Systems ( ) September 20, 2004 Lecture #2 By Hao-hua Chu ( ) 1 Course Administration Can everyone get the textbook? HW #1 is out on the course homepage It is due one week from today. Next week reading: R&G Chapters 4.1~4.2 & 5 2 1

Ubicomp Project of the Week: ActiveBelt (Keio University) Obtain directional information with tactile (touch) display. Why is better than visual & audio displays? Free your eyes & ears Won t look lost Better direction 3 Chapter 2 Introduction to Database Design 4 2

Database Design Step 1: Requirements Analysis Discuss what data to store in the database. Discuss what application (e.g., queries, updates,..) needs from the database. Step 2: Conceptual Database Design Come up with the design The Entity-Relation (ER) model is the most popular data model. The E/R model allows us to sketch the design of a database informally using pictures called entity-relationship diagrams. Step 3: Logical Database Design Implement the design The relational data model is the most popular data model. Easy to map ER diagrams into logical schema (in the relational data model) -> CH 3. 5 (123: integer) ER Model: Entity ssn ( Joe : string) Employees (Joe, Alice,..) Proposed by Peter Chen (BS NTU EE 68) in 1976. Entity: Real-world object distinguishable from other objects (e.g., Joe). An entity is described by a set of attributes. Each attribute has a domain of possible values. Entity Set: a collection of similar entities Each entity in an entity set is uniquely identified by a key attribute. 6 3

ER Model: Relationship (5/2001) since d ssn did budget Employees Works_In Departments (finance dept) (Joe) Relationship: Association among two or more entities Joe works in finance department. A relationship can have description attributes. Joe has worked in finance department since 5/2001. Relationship Set: Collection of similar relationships. 7 Ternary Relationship ssn since did d budget (Joe) Employees Works_In Departments (finance dept) address Locations capacity (Taipei) 8 4

Roles in Relationship ssn Employees (Roles) supervisor subordinate Reports_To 9 Key Constraints It can describe Manages relationship that each department has at most one manager. One department can appear at most once in Manages relationship set, also called one-to-many relation. ssn since did d budget Employees Manages Departments Mary Joe Alice Peter Finance Accounting Research Legal 10 5

More Key Constraints Women Gave Birth Babies 1-to-1 1-to Many Many-to-Many Men Married Women Men Befriends Women 11 Participation Constraints Must every department have a manager? If yes, this is a participation constraint: the participation of Departments in Manages is said to be total. ssn lot since did d budget Employees Manages Departments Works_In since 12 6

Weak Entities A weak entity can be identified uniquely only by considering the key of another (owner) entity. P = partial key Owner entity set and weak entity set must participate in a one-to-many relationship set (one owner, many weak entities). Weak entity set must have total participation in this identifying relationship set. ssn cost (Alicia) (2) p age Employees Policy Dependents 13 ISA ( ìs a ) Hierarchies ssn Employees superclass entity hourly_wages hours_worked ISA contractid subclass entities Hourly_Emps Contract_Emps As in C++ and OO languages, attributes are inherited from superclass. If we declare A ISA B, every A entity is also considered to be a B entity. Reason for using ISA: Add descriptive attributes specific (make sense) to a subclass. Identify entities that participate in a relationship. 14 7

ISA ( ìs a ) Constraints ssn Employees hourly_wages hours_worked ISA contractid Hourly_Emps Contract_Emps Overlap constraints: Can Joe be an Hourly_Emps as well as a Contract_Emps entity? (Allowed/disallowed) Covering constraints: Does every Employees entity also have to be an Hourly_Emps or a Contract_Emps entity? (Yes/no) 15 Aggregation Create relationship set from relationship sets. Aggregation allows us to treat a relationship set as an entity set, for the purposes of participation in (other) relationships. pid ssn started_on pbudget Employees Monitors since did until d budget Projects Sponsors Departments 16 8

Design Techniques 1. Avoid redundancy. 2. Dont use an entity set when an attribute will do. 3. Limit the use of weak entity sets. 17 Avoiding Redundancy Redundancy occurs when we say the same thing in two different ways. Redundancy wastes space and (more importantly) encourages inconsistency. The two instances of the same fact may become inconsistent if we change one and forget to change the other, related version. 9

Example: Good addr Beers ManfBy Manfs 19 Example: Bad addr Beers ManfBy Manfs manf 20 10

Example: Bad manf manfaddr Beers 21 Entity Sets Versus Attributes An entity set should satisfy at least one of the following conditions: It is more than the of something; it has at least one nonkey attribute. or It is the many in a many-one or many-many relationship. 22 11

Example: Good addr Beers ManfBy Manfs! " # $!# 23 Example: Good manf Beers " % 24 12

Example: Bad Beers ManfBy Manfs &% % 25 Dont Overuse Weak Entity Sets Beginning database designers often doubt that anything could be a key by itself. They make all entity sets weak, supported by all other entity sets to which they are linked. In reality, we usually create unique IDs for entity sets. Examples include social-security numbers, automobile VINs etc. 26 13

When Do We Need Weak Entity Sets? The usual reason is that there is no global authority capable of creating unique IDs. Example: it is unlikely that there could be an agreement to assign unique player numbers across all football teams in the world. 27 Summary ER model is popular for conceptual design Sketch the design of a database informally using pictures Basic constructs in ER model: entities, relationships, and attributes (of entities and relationships). Some additional constructs: weak entities, ISA hierarchies, and aggregation. Several kinds of integrity constraints: key constraints, participation constraints, and overlap/covering constraints for ISA hierarchies. Design Techniques in ER model 28 14

Relational Model Chapter 3 29 Relational Model It is the most widely used model. Vendors: Oracle, Microsoft, IBM (DB2), Sybase, It is simple and elegant. A relational database is a collection of relations. Each relation is represented as a table of rows and columns. Why do people like it? Simple tabular data representation, easy to understand. Ease of expressing complex query (using SQL) on the data Efficient query evaluation (using query optimization) 30 15

Example of a Relation This is a Students relation. A relation has two parts: Relational Schema defines column heads of the table. Relational Instance contains the data rows (called tuples or records) of the table. 31 Relational Schema (1) A relational schema specifies: of the relation: Students s of fields: (sid,, login, age, and gpa) domain of each field: it is type of possible values (some of built-in types in SQL are integer, real, string, and date.) A field can also be called an attribute or a column. Students 32 16

Relational Schema (2) We can refer to the field by Field (more common): the order of fields does not matter. Position of the field (less common): the order of fields matters. A relational schema can be written using the following notation: relation- (field--1: domain--1, field--2: domain--2,, field--n: domain--n) Example: Students(sid: string, : string, login: string, age: integer, gpa: real) 33 Relational Instance A relation instance contains a set of tuples A relation instance is referred to as a relation. A tuple can also be called a record or a row. A relation instance is a set, and it has no duplicate tuples. Order of tuples is not important. 34 17

Degree and Cardinality Degree is the number of fields in schema (=5 in the table below) Cardinality is the number of tuples in relation (=3 in the table below) 35 Domain Constraints Values in the tuple fields must satisfy the specified domain in the schema. Similar to type matching in compilation Example of domain constraint violation: Schema: Students(sid: string, : string, login: string, age: integer, gpa: real) A tuple: <sid: 50000, : 38, login: dave@cs, age:.5, gpa: 3.3> There are other types of integrity constraints: Key constraints, foreign key constraints, and general constraints. 36

Outline on SQL Basics History Basic commands Integrity constraints 37 SQL History It is a query language for relational databases. Developed by IBM (system R) in the 1970s Need for a standard since it is used by many database vendors. Two standard organizations ANSI (American National Standard Institutes) ISO (International Organization for Standardization) Standards: SQL-86, SQL-89, SQL-92, SQL-99 (current standard) 38 19

SQL Basic Commands create table: create a table drop table: delete a table alter table: alter a field in a table insert: add a tuple delete: delete a tuple update: change field values in a tuple 39 SQL: create table create table Students (sid char(20), char(20), login char(10), age integer, gpa real) Use built-in types: integer, real, char(#) Similar to type definition in programming language You can define your own types (describe in CH5) sid login age gpa 40 20

SQL: delete table drop table Students 41 SQL: alter table Add a new field in a table alter table Students add dept char[20] sid login age gpa dept Delete a field in a table alter table Students drop gpa sid login age dept 42 21

SQL: insert insert into Students (sid,, login, age, gpa) values ( 53688, Smith, smith@cs,, 3.2) or you can omit the fields insert into Students values ( 53688, Smith, smith@cs,, 3.2) sid login age gpa 53688 Smith Smith@cs 3.2 43 SQL: delete delete from Students as S where S. = Smith or you can omit as and the tuple variable S delete from Students where = Smith sid 53666 Jones login Jones@cs age gpa 3.3 53688 Smith Smith@cs 3.2 53650 Smith Smith@math 19 3.7 44 22

SQL: update update Students S set S.age = S.age + 1, S.gpa = S.gpa 1 where S.sid = 53688 sid login age gpa 53666 Jones Jones@cs 3.3 53688 Smith Smith@cs 19 3.2 2.2 53650 Smith Smith@math 19 3.7 45 Integrity Constraints (IC) IC: condition that must be true for any instance of the database; e.g., domain constraints. ICs are specified when schema is defined, (create table) ICs are checked when relations are modified (add, remove, and update). A legal instance of a relation is one that satisfies all specified ICs. DBMS should not allow illegal instances. DBMS checks ICs to prevent data entry errors, or command errors. 46 23

Types of Integrity Constraints Domain constraint Key constraint Foreign key constraint (referential integrity) Other constraints 47 Key Constraint A key is a set of minimal fields that can uniquely identify a tuple in a relation. 1. No two distinct tuples can have same values in all key fields, and 2. It is minimal, (no subset of the key is another key). Part 2 false? A superkey. If #key >1, one of the keys is chosen (by DBA) to be the primary key. Why is this a constraint? When a table is modified (e.g., by adding a new tuple), DBMS checks to make sure that the specified keys remain valid keys (e.g., the new tuple has a unique key value). 48 24

Examples of Keys Valid keys: {sid}, {, age} and {login} Invalid keys: {} and {age} Valid Superkeys: {sid, gpa}, {sid, age}, and {sid,, login, age, gpa) sid login age gpa 50000 Dave Dave@cs 19 3.2 53666 Jones Jones@cs 3.3 53688 Smith Smith@cs 3.2 53650 Smith Smith@math 19 3.7 53831 Madayan Madayan@music 11 1.8 49 Primary and Candidate Keys A relation can have many possible keys, called candidate keys. But only one is chosen as the primary key. DBMS may create an index on primary key to optimize tuple lookup (using primary key). Specify keys in SQL: create table Students (sid char(20), char(20), login char(10), age integer, gpa real, unique (, age), constraint StudentsKey primary key (sid)) constraint 50 25

Foreign Key Constraint Suppose some fields in one relation refer to some fields in another relation: studid in Enrolled -> sid in Students. Example: delete a tuple from Students A tuple in Enrolled relation becomes invalid. Invalid Why? Invalid studid studid They are related sid 53666 53688 Jones Smith login Jones@cs Smith@cs age gpa 3.3 3.2 cid Database141 Topology112 grade B A studid 53666 53650 53650 Smith Smith@math 19 Students Relation 3.7 Enrolled Relation 51 Foreign Key Studid is called a foreign key. A foreign key is like a pointer in C, referencing a unique tuple/field in the referenced relation. A foreign key constraint makes sure that there is no dangling pointer. Primary key Foreign key sid 53666 53688 Jones Smith login Jones@cs Smith@cs age gpa 3.3 3.2 cid Database141 Topology112 grade B A studid 53666 53650 53650 Smith Smith@math 19 3.7 Students Relation Enrolled Relation 52 26

More on Foreign Key The foreign key must refer to primary key in the referenced relation Why? Foreign key is used to create links between tuples in two relations. Like a memory pointer, it must be able to uniquely identify the tuple in the referenced relation. The foreign key needs not be a candidate key. Why? It is only used to uniquely identify a tuple in the referenced relation. If all foreign key constraints are enforced, referential integrity is achieved, i.e., no dangling pointers. Can you a data model w/o referential integrity? Bad links in HTML! 53 Specify Foreign Keys in SQL Constraint: only students listed in the Students relation should be allowed to enroll for courses. create table Enrolled (studid char(20), cid char(20), grade char(20), primary key (studid, cid), foreign key (studid) references Students) Primary key Foreign key sid 53666 53688 Jones Smith login Jones@cs Smith@cs age gpa 3.3 3.2 cid Database141 Topology112 grade B A studid 53666 53650 53650 Smith Smith@math 19 3.7 Students Relation Enrolled Relation 54 27

Foreign Key Constraint Violations They can happen in delete, insert and update commands. Primary key Foreign key sid login age gpa cid grade studid 53666 Jones Jones@cs 3.3 Database141 B 53666 53688 Smith Smith@cs 3.2 Topology112 A 53650 53650 Smith sid 53666 Jones 53688 Smith 53650 Smith 54321 Smith@math login Jones@cs Smith@cs Smith@math 19 age 19 3.7 gpa 3.3 3.2 3.7 cid grade Database141 B Topology112 A History 123 B insert studid 53666 53650 12345 55 Self-Referral Foreign Key A foreign key can refer to the same relation. Example: each student could have a partner. If a student hasn t found a partner, the value can be set to null. It is ok to have null value in foreign key field. It is NOT ok to have null value in primary key field. Primary key Foreign key sid login age partner gpa 53666 Jones Jones@cs null 3.3 56 28

General Constraints An example of a general constraint: say students ages must be over 16 years old. create table Students (sid char(20), char(20), login char(10), age integer, gpa real, unique (, age), constraint StudentsKey primary key (sid), check (age > 16)) Two types of general constraints: Table constraint: associate with a single table (above example) Assertions: associate with multiple tables (if 1/3 of courses taken by a student has a grade = F in the Enrolled relation, the status of the student in the Students relation must be set to In Trouble. ) 57 Enforcing Referential Integrity What should be done if an Enrolled tuple with a non-existent student id is inserted? (Reject it!) What should be done if a Students tuple is deleted? Option 1: Also delete all Enrolled tuples that refer to it. Option 2: Disallow deletion of a Students tuple that is referred to. Option 3: Set studid in Enrolled tuples that refer to it to a default sid. Option 4: (In SQL, also: Set studid in Enrolled tuples that refer to it to a special value null, denoting `unknown or `inapplicable.) Similar if primary key of Students tuple is updated. 58 29

Referential Integrity in SQL Option 1: Default is NO ACTION (delete/update is rejected) Option 2: CASCADE (also delete all tuples that refer to deleted tuple) Options ¾: SET NULL / SET DEFAULT (sets foreign key value of referencing tuple) CREATE TABLE Enrolled (studid CHAR(20) default 00000, cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students ON DELETE CASCADE ON UPDATE SET DEFAULT ) 59 Translate ER Model to Relational Model An entity set to a table A relationship set without constraints to a table A relationship set with only key constraints to a table A relationship set with participation constraints to a table A weak entity set to a table ISA hierarchies to a table 60 30

Entity Sets to Tables key attribute attributes ssn lot Employees CREATE TABLE Employees (ssn CHAR(11), CHAR(20), lot INTEGER, PRIMARY KEY (ssn)) 61 ssn did Employees d Relationship Sets (without Constraints) to Tables budget Departments since Works_In descriptive attribute CREATE TABLE Works_In( ssn CHAR(11), did INTEGER, since DATE, PRIMARY KEY (ssn, did), FOREIGN KEY (ssn) REFERENCES Employees, FOREIGN KEY (did) REFERENCES Departments) 62 31

Relationship Sets to Tables Fields (attributes) of a table must include: Keys for each participating entity set (as foreign keys). This set of attributes forms a superkey for the relation. All descriptive attributes. CREATE TABLE Works_In( ssn CHAR(11), did INTEGER, since DATE, PRIMARY KEY (ssn, did), FOREIGN KEY (ssn) REFERENCES Employees, FOREIGN KEY (did) REFERENCES Departments) 63 Review: Key Constraints Each dept has at most one manager, according to the key constraint on Manages. ssn lot Employees since Manages d did budget Departments 1-to-1 1-to Many Many-to-1 Many-to-Many 64 32

Relationship Sets (with key Constraints) to Tables Map a relationship set to a table: Note that did is the key now! Why? Since each department has a unique manager, we could instead combine Manages and Departments. Second approach: Map Manages into the Departments table.!" "!#$ %& '!&() *+", ) -!" )./ *,+0 1&(. + 2)./ *,+0 1&(. + -3(!" "!#$ -4%3& *+", ) '!&() 56!$)! 7*%!10 1&()./ *,+0 1&(. + 2( 65 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 ssn value!) ssn lot since did d budget Employees Manages Departments 66 33

Participation Constraints in SQL!" "!#$ -4%3& *+", 8 '!&() 56!$) '!&(+/"+9$$):: 6;< -!" ) 7*%!10 1&()./ *,+0 1&(. + 2( ssn lot since did d budget Employees Manages Departments 67 Review: Weak Entities A weak entity can be identified uniquely only by considering the primary key of another (owner) entity. One-to-many relationship set (1 owner, many weak entities). Total participation in this identifying relationship set. ssn lot cost p age Employees Policy Dependents 68 34

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.!" "!#$ -47 2& '!&() *+", )!$) '!&(+/"+9$$) 7*%!10 1& )()./ *,+0 1&(. + 2) /+- $ "!!- ( 69 Review: ISA Hierarchies As in C++, or other PLs, attributes are inherited. If we declare A ISA B, every A entity is also considered to be a B entity. ssn Employees lot hourly_wages hours_worked ISA contractid Hourly_Emps Contract_Emps 70 35

Translating ISA Hierarchies to Tables General approach: 3 tables: Employees, Hourly_Emps and Contract_Emps. Hourly_Emps: Every employee is recorded in Employees. For hourly emps, extra info recorded in Hourly_Emps (hourly_wages, hours_worked, ssn). Must delete Hourly_Emps tuple if referenced Employees tuple is deleted).!" "!#$ 2& '!&() '!&() *+", ) 7*%!10 1&(( CREATE TABLE hourly_emps ( hourly_wages INTEGER, hours_worked INTEGER, ssn CHAR(11), PRIMARY KEY (ssn) FOREIGN KEY (ssn) REFERNECES employees) hourly_wages ssn hours_worked Hourly_Emps Employees ISA lot contractid Contract_Emps 71 Views A view is just a relation, but we only store its definition, rather than its tuples/rows in database.!" =* > 6*'32& )(! $ " )./% 6) 3 >'? 6?@'32A =B536-/7=* > 'B -/7"!#$ C3A;B5 D E -/7"!#$ 63C2 72 36

Views and Security Views can be used to present necessary information (or a summary), while hiding details in underlying relation(s). Example: a student can use the view StudentsInHistory105 to find out his/her classmates. But a student cannot find out the gpa of his/her classmates. 73 Summary Relational model is about tabular representation of data. Simple and intuitive, currently the most widely used. Integrity constraints Domain constraints, key constraints, foreign key constraints, general constraints Basic SQL commands Create, update, and delete tables Insert and delete tuples Rules to translate ER to relational model Define views for security 74 37