49
Unit 3/Fall04/Melikyan The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How can be data created and modified? How can data be manipulated and queried? How can we create, modify and query tables using SQL? How do we obtain a relational db design from an ER diagram?

Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Embed Size (px)

Citation preview

Page 1: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 1

The Relational ModelChapter 3

• How is data represented in the relational model?

• What integrity constraints can be expressed?

• How can be data created and modified?

• How can data be manipulated and queried?

• How can we create, modify and query tables using SQL?

• How do we obtain a relational db design from an ER diagram?

• What are views and where are they used?

Page 2: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 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

Recent competitor: object-oriented model

– ObjectStore, Versant, Ontos

– A synthesis emerging: object-relational model Informix Universal Server, UniSQL, O2, Oracle, DB2

Page 3: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 3

Data Definition Language (DDL)

The standard language for creating, manipulating, and

querying data in relational DBMS.

We will discuss the concept of relation and show how to

create relation using the SQL language

We will use DDL to specify conditions that must be satisfied

by the data (ICs) - integrity constraints

Then we turn to the mechanism for accessing data from DB

and introduce the querying features of SQL

Page 4: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 4

Relational Database: Definitions

Relational database: a set of relations

Relation: made up of 2 parts:Instance : a table, with rows and columns.

# Rows = cardinality, # Fields = degree / arity.

Schema :the relation schema specifies the relations name, the

name of each field and the domain of each field:

Students(sid: string, name: string, login: string, age: integer, gpa: real).

Can think of a relation as a set of rows or tuples (i.e., all rows are distinct).

Page 5: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 5

Example Instance of Students Relation

sid name login age gpa

53666 Jones jones@cs 18 3.4

53688 Smith smith@eecs 18 3.2

53650 Smith smith@math 19 3.8

Cardinality = 3, degree = 5, all rows distinct

Do all columns in a relation instance have to be distinct?

An instance of relation is a set of tuples, also called records. An instence of the students relation

Page 6: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 6

Creating 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.

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))

As another example, the Enrolled table holds information

about courses that students take.

Page 7: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 7

Adding and Deleting Tuples

Can insert a single tuple using:

INSERT INTO Students (sid, name, login, age, gpa)VALUES (53688, ‘Smith’, ‘smith@ee’, 18, 3.2)

Can delete all tuples satisfying some condition (e.g., name = Smith):

DELETE FROM Students SWHERE S.name = ‘Smith’

Powerful variants of these commands are available; more later!

Page 8: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 8

Destroying and Altering Relations

Destroys the relation Students. The schema information and the tuples are deleted.

DROP TABLE Students

The schema of Students is altered by adding a new field;

every tuple in the current instance is extended with a null

value in the new field.

ALTER TABLE Students ADD COLUMN firstYear: integer

Page 9: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 9

Update

We can modify the column values in existing row using the

update command

UPDATE Stidents S

SET S.age = S.age + 1, S.gpa = S.gpa – 1

WHERE S.sid = 53688

Where clause is applied first to determine which roe are to be modified.

Page 10: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 10

Relational Query Languages

A major strength of the relational model: supports simple, powerful querying of data.

Queries can be written intuitively, and the DBMS is responsible for efficient evaluation.

– The key: precise semantics for relational queries.

– Allows the optimizer to extensively re-order operations, and still ensure that the answer does not change.

Page 11: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 11

The 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)

Page 12: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 12

The SQL Query Language

To find all 18 year old students, we can write:

SELECT *FROM Students SWHERE S.age=18

•To find just names and logins, replace the first line:

SELECT S.name, S.login

sid name login age gpa

53666 Jones jones@cs 18 3.4

53688 Smith smith@ee 18 3.2

Page 13: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 13

Querying Multiple Relations

What does the following query compute?

SELECT S.name, E.cidFROM Students S, Enrolled EWHERE S.sid = E.sid AND E.grade=“A”

Given the following instance of Enrolled (is this possible if the DBMS ensures referential integrity?):

Page 14: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 14

Who Got an A ?

sid cid grade 53831 COMP3300 C 53831 MATH1100 B 53650 Topology112 A 53666 History105 B

sid name login age gpa

53666 Jones jones@cs 18 3.4

53688 Smith smith@eecs 18 3.2

53650 Smith smith@math 19 3.8

S.name E.cid

Smith Topology112

Result

Page 15: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 15

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.

A legal instance of a relation is one that satisfies all specified ICs.

– DBMS should not allow illegal instances.

If the DBMS checks ICs, stored data is more faithful to real-world meaning.

– Avoids data entry errors, too!

Page 16: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 16

Primary Key Constraints

A set of fields is a key for a relation if

1. No two distinct tuples can have same values in all key fields, and

2. This is not true for any subset of the 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 key for Students.

(What about name?)

The set {sid, gpa} is a superkey.

Page 17: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 17

Primary and Candidate Keys in SQLPossibly many candidate keys (specified using UNIQUE), one of

which is chosen as the primary key.

CREATE TABLE Students

(sid: CHAR(20), name:

CHAR(20), login:

CHAR(10), age: INTEGER, gpa: REAL,

UNIQUE (name, age),CONSTRAINT StudentsKey PRIMARY KEY (sid))

Page 18: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 18

More About Keys

For a given student and course, there is a single grade.” vs.“Students can take only one course, and receive a single grade for thatcourse; further, no two students in a course receive the same grade.” Used carelessly, an IC can prevent the storage of Database instances thatarise in practice!

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), grade CHAR(2), PRIMARY KEY (sid), UNIQUE (cid, grade) )

Page 19: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 19

Foreign Keys, Referential IntegrityForeign 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:

Students(sid: string, name: string, login: string, age: integer, gpa: real).

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!

Page 20: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 20

Foreign 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 gpa

53666 Jones jones@cs 18 3.453688 Smith smith@eecs 18 3.253650 Smith smith@math 19 3.8

sid cid grade53666 Carnatic101 C53666 Reggae203 B53650 Topology112 A53666 History105 B

Enrolled Students

Page 21: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 21

Enforcing Referential Integrity

Consider Students and Enrolled; sid in Enrolled is a foreign keythat references Students.What should be done if an Enrolled tuple with a non-existentstudent id is inserted? (Reject it!)

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’.)Similar if primary key of Students tuple is updated.

Page 22: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 22

Referential Integrity in SQL/92

SQL/92 supports all 4 options on deletes and updates.

Default is NO ACTION (delete/update is rejected)

CASCADE (also delete all tuples that refer to deleted tuple)

SET NULL / SET DEFAULT (sets foreign key value of referencing tuple)

CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students ON DELETE CASCADE ON UPDATE SET DEFAULT )

Page 23: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 23

Where do ICs Come From?

ICs are based upon the semantics of the real-world enterprise that is being described in the database relations.

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.

Key and foreign key ICs are the most common; more general ICs supported too.

Page 24: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 24

Transactions and ConstraintsBy default, a constraint is checked at the end of SQL statement

CREATE TABLE Students

(sid: CHAR(20),

name: CHAR(20),

login: CHAR(10),

age: INTEGER,

honors CHAR(10) NOT NULL,

gpa: REAL,

PRIMARY KEY (sid),

FOREIGN KEY (honors)

References Courses (cid) )

CREATE TABLE Courses

(cid: CHAR(10),

cname: CHAR(10),

credits: INTEGER,

grader: CHAR(20) NOT NULL,

PRIMARY KEY (cid),

FOREIGN KEY (grader)

References Students (sid) )SQL allows a constraint to be in

DEFERRED and IMMEDIATE mode

SET CONSTRAINT Foo DEFERRED.It is checked at commit time

Page 25: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 25

Views

A view is just a relation, but we store a definition, rather than a set of tuples.

CREATE VIEW YoungActiveStudents (name, grade)

AS SELECT S.name, E.gradeFROM Students S, Enrolled EWHERE S.sid = E.sid and S.age<21

Views can be dropped using the DROP VIEW

command.How to handle DROP TABLE if there’s a view on the

table? DROP TABLE command has options to let the user

specify this.

Page 26: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 26

Views and Security

Views can be used to present necessary information (or a summary), while hiding details in underlying relation(s).

– Given YoungStudents, but not Students or Enrolled, we can find students s who have are enrolled, but not the cid’s of the courses they are enrolled in.

Page 27: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 27

Logical DB Design: ER to Relational

Entity sets to tables.

CREATE TABLE Employees (ssn CHAR(11), name CHAR(20), lot INTEGER, PRIMARY KEY (ssn))

Employees

ssnname

lot

Page 28: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 28

Relationship Sets to Tables (Without constraints)

In translating a relationship set to a relation, attributes of the relation 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(1), did INTEGER, since DATE, PRIMARY KEY (ssn, did), FOREIGN KEY (ssn) REFERENCES Employees, FOREIGN KEY (did) REFERENCES Departments)

Page 29: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 29

Review: Key Constraints

Each dept has at most one manager, according to the key constraint on Manages.

Translation to relational model?

Many-to-Many1-to-1 1-to Many Many-to-1

dname

budgetdid

since

lot

name

ssn

ManagesEmployees Departments

Page 30: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 30

Translating ER Diagrams with Key Constraints

Map relationship to a table:

Note that did is the key now!

Separate tables for Employees and Departments.

Since each department has a unique manager, we could instead combine

Manages and Departments.

CREATE TABLE Manages( ssn CHAR(11), did INTEGER, since DATE, PRIMARY KEY (did), FOREIGN KEY (ssn) REFERENCES Employees, FOREIGN KEY (did) REFERENCES Departments)

CREATE TABLE Dept_Mgr( did INTEGER, dname CHAR(20), budget REAL, ssn CHAR(11), since DATE, PRIMARY KEY (did), FOREIGN KEY (ssn) REFERENCES Employees)

Page 31: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 31

Review: Participation ConstraintsDoes 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!)

lot

name dnamebudgetdid

sincename dname

budgetdid

since

Manages

since

DepartmentsEmployees

ssn

Works_In

Page 32: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 32

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, dname CHAR(20), budget REAL, ssn CHAR(11) NOT NULL, since DATE, PRIMARY KEY (did), FOREIGN KEY (ssn) REFERENCES Employees, ON DELETE NO ACTION)

Page 33: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 33

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

name

agepname

DependentsEmployees

ssn

Policy

cost

Page 34: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 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.

CREATE TABLE Dep_Policy ( pname CHAR(20), age INTEGER, cost REAL, ssn CHAR(11) NOT NULL, PRIMARY KEY (pname, ssn), FOREIGN KEY (ssn) REFERENCES Employees, ON DELETE CASCADE)

Page 35: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 35

Review: ISA Hierarchies

Contract_Emps

namessn

Employees

lot

hourly_wages

ISA

Hourly_Emps

contractid

hours_worked

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. 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)

Page 36: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 36

Translating ISA Hierarchies to Relations

General approach:

– 3 relations: 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).

Queries involving all employees easy, those involving just Hourly_Emps require a join to get some attributes.

Alternative: Just Hourly_Emps and Contract_Emps.

– Hourly_Emps: ssn, name, lot, hourly_wages, hours_worked.

– Each employee must be in one of these two subclasses.

Page 37: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 37

Review: Binary vs. Ternary Relationships

If each policy is

owned by just 1

employee:

Key constraint on

Policies would mean

policy can only

cover 1 dependent!

What are the

additional

constraints in the

2nd diagram?

agepname

DependentsCovers

name

Employees

ssn lot

Policies

policyid cost

Beneficiary

agepname

Dependents

policyid cost

Policies

Purchaser

name

Employees

ssn lot

Bad design

Better design

Page 38: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 38

Binary vs. Ternary Relationships (Contd.)

The key constraints allow us to combine Purchaser with Policies and Beneficiary with Dependents.

Participation constraints lead to NOT NULL

constraints.

What if Policies is a weak entity set?

CREATE TABLE Policies ( policyid INTEGER, cost REAL, ssn CHAR(11) NOT NULL, PRIMARY KEY (policyid). FOREIGN KEY (ssn) REFERENCES Employees, ON DELETE CASCADE)

CREATE TABLE Dependents ( pname CHAR(20), age INTEGER, policyid INTEGER, PRIMARY KEY (pname, policyid). FOREIGN KEY (policyid) REFERENCES Policies, ON DELETE CASCADE)

Page 39: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 39

Relational Model: Summary

A tabular representation of data.

Simple and intuitive, currently the most widely used.

Integrity constraints can be specified by the DBA, based on application semantics. DBMS checks for violations.

– Two important ICs: primary and foreign keys

– In addition, we always have domain constraints.

Powerful and natural query languages exist.

Rules to translate ER to relational model

Page 40: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 40

Homework#2 Problem 2.2

A university database contains information about

Professors (identifed by social security number, or SSN)

and

Courses (identifed by courseid).

Professors teach courses; each of the following situations

concerns the Teaches relationship set.

For each situation, draw an ER diagram that describes it

(assuming that no further constraints hold).

Page 41: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 41

Solutions for HW2

1. Professors can teach the same course in several semesters, and each offering must be recorded.

Page 42: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 42

2. Professors can teach the same course in several semesters, and only the most recent such offering needs to be recorded. (Assume this condition applies in all subsequent questions.)

Page 43: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 43

3. Every professor must teach some course.

Page 44: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 44

4. Every professor teaches exactly one course (no more, no less).

Page 45: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 45

5. Every professor teaches exactly one course (no more, no less), and every course must be taught by some professor.

Page 46: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 46

Now suppose that certain courses can be taught by a team of professors jointly, but it is possible that no one professor in a team can teach the course. Model this situation, introducing additional entity sets and relationship sets if necessary.

Page 47: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 47

Solutions for 2.3

Page 48: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 48

Solution for 2.4

Page 49: Unit 3/Fall04/Melikyan1 The Relational Model Chapter 3 How is data represented in the relational model? What integrity constraints can be expressed? How

Unit 3/Fall04/Melikyan 49

HW #3

HOMEWORK:

Answer the following questions from your textbook, page 95-96    

Ex 3.1,  3.2,  3.3, 3.4, 3.5, 3.6, 3.8, 3.12 

Assigned 09/ 16 /04 Due 09/23/04

SUBMIT: hard copy by the beginning of class