1 Database Course. 2 General Information TAs: –Gideon Rothschild, office hours: Sun 16:00- 17:00...

50
1 Database Course Database Course
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    216
  • download

    0

Transcript of 1 Database Course. 2 General Information TAs: –Gideon Rothschild, office hours: Sun 16:00- 17:00...

1

Database CourseDatabase Course

2

General InformationGeneral Information

• TAs:

– Gideon Rothschild, office hours: Sun 16:00-17:00 at Ross 109

– Aron Matskin, office hours: TBA

• Course Homepage: http://www.cs.huji.ac.il/~db

• Course Email: [email protected]

• Moderated Newsgroup: local.course.db.ta

• Students Newsgroup: local.course.db.stud

3

TA LecturesTA Lectures

• Tue – Wed – Sun cycle• Same TA during the cycle• If a TA lecture falls out on a holiday,

students should plan to attend another lecture during the same cycle

• Students are responsible for all the material for the final exam. That includes lectures, TA lectures, slides, and homework

4

Assignments (1)Assignments (1)

• About 10-12 assignments• Assignments are 25% of the final grade• All assignments must be handed in!• Assignments are to be done alone

(not in pairs)!• Must include name, login, student

number. Points will be taken off if login is omitted

5

Assignments (2)Assignments (2)

• Assignment submission:– Theoretical assignments - box in Ross

-2– Programming assignments -

electronically • Assignments are returned in Ross –2,

grades available on the internet• Make sure that you have a grade when

the exercise is returned!

6

Appeals and ExtensionsAppeals and Extensions

• Appeals are submitted to box in Ross -2

• Appeal form available on the course site

• Appeals should be submitted no later than

1 week after assignments are returned

• Extensions are possible in special cases (i.e.,

miluim, childbirth, etc.).

• Ask for the extension before the due date

7

Course BooksCourse Books

• Database Management Systems, by Raghu

Ramakrishnan

• Principles of Database and Knowledge-

Base Systems, Volumes I and II, by Jeffery

Ullman (essentially chapter 7 concerning

Design Theory)

• Oracle 8i: The Complete Reference, by

Kevin Loney and George Koch

8

Entity-Relationship DiagramsEntity-Relationship Diagrams

Database Course, Fall 2005

9

ScenarioScenario

• http://www.imdb.com wants to maintain a

movie database

• The design approach we now consider:

– Conceptual Database Design: high level

description of data to be stored (ER model)

– Logical Database Design: translation of ER

diagrams into a relational database schema

(description of tables)

10

Movie Database Requirements Movie Database Requirements (1)(1)

• For actors and directors, we want to store their name, a unique identification number, address, and birthday

• For actors, we also want to store a picture

• For movies, we want to store the title, year of production, and type

• We want to know who directed and who acted in each movie. Every movie has one director

• We store the pay of each actor for each movie

11

Movie Database Requirements Movie Database Requirements (2)(2)

• An actor can receive an award for his part in a movie. We store information about who got which award for which movie, along with the name of the award and year.

• We also store the name and telephone number of the organization that gave the award. Two different organizations can give an award with the same name. A single organization does not give more than one award with a particular name in the same year.

12

Entities, Entity SetsEntities, Entity Sets

• Entity (ישות): An object in the world that can be

distinguished from other objects

• Entity set ( ישויות A set of similar entities :(קבוצת

Entity sets are drawn as rectangles

• Compare to objects and classes in OOD

Q: What are some of the entity sets in our

movie database?

13

AttributesAttributes

• Attributes (תכונות): Used to describe

entities

– All entities in the set have the same

attributes

Attributes are drawn using ovals

– A minimal set of attributes that uniquely

identify an entity is called a key

The names of the attributes which make

up the key are underlined

14

ExampleExample

Actorid

name address

birthday

15

Another Option for a Key?Another Option for a Key?

Actorid

name address

birthday

16

Relationships, Relationship SetsRelationships, Relationship Sets

• Relationship (קשר): Association among two or more entities

– Relationships may have attributes

• Relationship Set ( קשרים Set of :(קבוצתsimilar relationshipsRelationship sets are drawn using

diamonds

Q: Could you name some of the relationship sets in the movie database?

17

ExampleExample

Actorid

name

address

birthday

Acted In Movie

title

type

year

Where does the salary attribute belong?

salary

18

Recursive RelationshipsRecursive Relationships

Employeeid

name

address

phone number

Manages

• An entity set can participate more than once in a relationship

• In this case, we add a description of the role to the ER-diagram

manager

worker

19

nn-ary Relationship-ary Relationship

• An n-ary relationship set R involves exactly n

entity sets: E1, …, En

• Each relationship in R involves exactly n

entities: e1E1, …, en En

• Formally, R E1x …x En

Actorid

name

Produced Movie title

Directorid name

20

Another Option: Another Option: Remember Recursive Remember Recursive

RelationshipsRelationships

Person

id

name

titleproduce

d Movie

director

actor

21

Binary vs. Ternary Binary vs. Ternary RelationshipRelationship

קורסמרצה לימד

שם קורס שם מרצה מספר קטלוגימס זהות

שם מוסדמוסד

קורסמרצה

לימד ב

שם קורס שם מרצה מספר קטלוגימס זהות

מוסד

שם מוסד

לימד את

ניתן ב

22

Important NoteImportant Note

id

name

Actor Acted In Movie

• The entities in a relationship set identify the relationship

• Suppose we wanted to store the role of an actor in a movie

• How would we store information about a person who acted in one movie in several roles?

role

titleRole

title

25

Key Constraints (Key Constraints ( אילוצי אילוצי((מפתחמפתח

• Key constraints specify whether an entity can

participate in one, or more than one, relationships in

a relationship set

• When there is no key constraint, an entity can

participate any number of times

• When there is a key constraint, the entity can

participate at most one time

Key constraints are drawn using an arrow from the

entity set to the relationship set

26

Many-to-ManyMany-to-Many

A movie is directed by any number of directors

A director can direct any number of movies

Directorid

name

Directed Movie title

Director Directed Movie

27

One-to-ManyOne-to-Many

A movie is directed by at most one director

A director can direct any number of movies

Directorid

name

Directed Movie title

Director Directed Movie

28

One-to-OneOne-to-One

A movie is directed by at most one director

A director can direct at most one movie

Directorid

name

Directed Movie title

Director Directed Movie

29

Another ExampleAnother Example

Personid

name

age

FatherOf

Where would you put the arrow?

father

child

30

Another ExampleAnother Example

Personid

name

age

FatherOf

father

child

31

Key Constraints in Key Constraints in Ternary RelationshipsTernary Relationships

Directorid

name

produced Movie title

Actorid name

What does this mean?

A movie has at most one actor and one director

32

Participation Constraints Participation Constraints השתתפות השתתפות אילוצי ((((אילוצי

• When there is no participation constraint, it

is possible that an entity will not participate

in a relationship set

• When there is a participation constraint, the

entity must participate at least once

Participation constraints are drawn using a

thick line from the entity set to the

relationship set

33

Example (1)Example (1)

• A movie has at least one director

• A director can direct any number of movies

Directorid

name

Directed Movie title

Director Directed Movie

Do you think that there

should be a participation constraint

from Director to Directed?

34

Example (2)Example (2)

• We can combine key and participation constraints.

• What does this diagram mean?

Directorid

name

Directed Movie title

A movie has exactly one director.

A director directs at least one movie.

35

Weak Entity Sets (1)Weak Entity Sets (1)

Award

year name

organization

What is the problem here?

36

Weak Entity Sets (2)Weak Entity Sets (2)

Award

Organization

Gives

year

name

name

phonenumber

Does this solve the problem?

37

Weak Entity Sets (3)Weak Entity Sets (3)

• Weak entity sets are entity sets that are

not uniquely identified by their

attributes

• A weak entity set has an "identifying

relationship“ ( זיהוי with an entity (תלות

set that is the "identifying owner“

( המזהה of the weak entity set (הבעלים

38

Weak Entity Sets (4)Weak Entity Sets (4)

A weak entity set must:– participate fully in the identifying

relationship ( a thick line)

– participate in a one to many relationship with the identifying owner ( an arrow)

Weak entity sets have a thick rectangle, their keys are underlined with a broken line, and the identifying relationship has a thick diamond

39

Weak Entity Sets (5)Weak Entity Sets (5)

Award

Organization

Gives

year

name

name

phonenumber

40

ExampleExample

Booktitle

author

isbn

Copy

copy number condition

Copy Of

Borrowed

Person

id

41

What if We Store What if We Store Information About Many Information About Many

Libraries?Libraries?

Booktitle

author

isbn

Copy

copy number condition

Copy Of

Borrowed

Person

id

Owned ByLibraryname

42

ISA HierarchiesISA Hierarchies

ISA Relationships: Define a hierarchy

between entity sets

– ISA is similar to inheritance

ISA relationships are drawn as a triangle

with the word ISA inside it. The "super

entity-set" is above the triangle and the

"sub entity-sets" are below

43

ExampleExample

What are the keys of:

1. Movie Person

2. Actor

3. Director

Movie Person

ISA

Actor

id

name

address

birthday

picture Director

44

Overlap ConstraintsOverlap Constraints

• Overlap constraints: Determine

whether two sub-entity sets can

contain the same entity

– Example: Can an Actor be a Director?

Write "Actor OVERLAPS Director". If not

written, assume no overlap

45

Covering ConstraintsCovering Constraints

• Covering constraints: Determine

whether every entity in the super-entity

set is also in at least one of the sub-

entity sets

– Example: Is every movie person either an

Actor or a Director?

Write "Actor AND Director COVER Movie

Person". If not written, assume no covering

46

child Person Married

name id

ParentOf

parent woman

man

ExampleExample

Is this good?

A man can be married to a man and a woman to a woman!

47

ExampleExample

Person

ISA

Man Woman

ParentOf

Married

child

parent name

id

Man AND Woman COVER Person

48

AggregationAggregation

• Aggregation: Allows us to indicate

that a relationship set participates in a

relationship set

49

Is this good? (1)Is this good? (1)

Actorpicture

Movieyear

typetitle

Acted Insalary

Award

• Each movie has received at least one award

• Each actor has received at least one award

50

Is this good? (2)Is this good? (2)

Actorpicture

Movieyear

typetitle

Acted Insalary

AwardWon

The same award can be granted to an actor A and to a movie F although the actor A has not acted in the movie F.

51

Solution: Use AggregationSolution: Use Aggregation

Actorpicture

Movieyear

typetitle

Acted Insalary

Award

Won

52

Movie Person

ISA

Actor

id

name

address

birthday

picture Director

Movieyear

typetitle

Acted In Directedsalary

Award

Organization

Gives

year

name

name

phonenumber

Won