• Nie Znaleziono Wyników

Database Foundations

N/A
N/A
Protected

Academic year: 2021

Share "Database Foundations"

Copied!
12
0
0

Pełen tekst

(1)

October 2005 Functional Programming for DB DB Foundations 1 data design separated from process design

Database Foundations

the effect of process structure omitted for data design

relationships between data and processes are of the first-order type thus the final ‘technical’’ design is achieved by linear superposition

October 2005 Functional Programming for DB DB Foundations 2

CONCEPTUAL MODEL VIEW A

VIEW B

VIEW C

INTERNAL MODEL

D B M

S mapping between

CONCEPTUAL and INTERNAL models mapping between CONCEPTUAL and EXTERNAL models

(2)

October 2005 Functional Programming for DB DB Foundations 3

•Data redundancy minimized

•Data shared amongst applications

•Data maintained centrally

•Common processes between applications

•Application software transparent

benefits

R = (r

1

, r

2

, …r

i-1

, r

i

, r

i+1

, …r

n

)

• none of r

i

= (r

i1

, r

i2

, …) Relational Model

• ∃ k = (r

i

, r

j

, …): [ΠR(k)] ≡ [R]

{R

i

} is closed under Π, σ, η, ...

FD: X → Y holds for R = (..., X, Y, ...) iff ∀ x

X, [Πσ R(X=x)Y] ≤ 1

1NF

relational closure identifier (PK)

functional dependency relation as a constrained subset of a product of simple domains

(3)

October 2005 Functional Programming for DB DB Foundations 5

{R

i

} → {S

k

}

• No transaction may

• violate entity integrity

• carry any risk of inconsistent updating

• cause loss of information

Relational Optimisation

• Minimized data redundancy

delete anomaly insert anomaly update anomaly

October 2005 Functional Programming for DB DB Foundations 6

R is in BCNF X1 X2 X3 X4 X5 X6 X7

χ

A 1NF relation R(X

1

, X

2

, ...X

n

) is in BCNF iff:

for every attribute collection

χ

of R

if any attribute not in

χ

is functionally dependent on

χ

then all attributes in R are functionally dependent on

χ

Boyce-Codd Normal Form

(4)

October 2005 Functional Programming for DB DB Foundations 7

apply to a pair of relations with comparable attributes apply to a pair of union

compatible relations

UNION binary

DIFFERENCE binary INTERSECTION binary PRODUCT binary PROJECTION unary RESTRICTION unary SELECTION unary

JOIN binary

DIVISION binary conventional set-operations

complementary algebra operations

P R

P Q R

{ }

{ }

unary

binary

Relational Closure Relational Algebra

PROJECT X

X

!

SELECT X=

X A

B

C D

D ! G

E H

F G H I

RESTRICT X= Y

X Y

A B

C A

D ! E

E G

F G

(5)

October 2005 Functional Programming for DB DB Foundations 9

JOIN X= S

U W X Y Q R S

A 1

B > < 12

C 43

D

U W X Y Q R S

A 12

C 1

D 12

DIVIDE

A B C D X

A B C

October 2005 Functional Programming for DB DB Foundations 10

[example] :-) print subject class class_name --- --- C1 FICTION C2 SCIENCE-FICTION C3 NON-FICTION C4 SCIENTIFIC C5 POETRY C6 DRAMA

Message: Relation subject returned.

[example] :-) print book reference author title

--- --- --- ---

R003 JOYCE ULYSSES R004 JOYCE ULYSSES R023 GREENE SHORT STORIES R025 ORWELL ANIMAL FARM R033 LEM ROBOTS TALES

R034 LEM RETURN FROM THE STARS R036 GOLDING LORD OF THE FLIES R028 KING STRENGTH TO LOVE R143 HEMINGWAY DEATH IN THE AFTERNOON R149 HEMINGWAY TO HAVE AND HAVE NOT Message: Relation book returned.

http://leap.sourceforge.net/

[example] :-) print index

author title class shelf --- --- --- --- JOYCE ULYSSES C1 12 GREENE SHORT STORIES C1 14 ORWELL ANIMAL FARM C1 12 LEM ROBOTS TALES C2 23 LEM RETURN FROM THE STARS C2 23 GOLDING LORD OF THE FLIES C1 12 KING STRENGTH TO LOVE C3 24 HEMINGWAY DEATH IN THE AFTERNOON C3 22 HEMINGWAY TO HAVE AND HAVE NOT C1 12 Message: Relation index returned.

(6)

October 2005 Functional Programming for DB DB Foundations 11 [example] :-) b=(project (subject) (class))

difference

(project (index) (class)) Message: Relation b returned.

[example] :-) print b

class --- C4 C5 C6

Message: Relation b returned.

[example] :-) quit

Message: Closing [s] database……

Π

SUBJECT

Π

INDEX diff

[example] :-) a = project (select (join (subject)(index)

(subject.class = index.class)) (class_name = 'SCIENCE-FICTION'))

(title) Message: Relation a returned.

[example] :-) print a

title

--- ROBOTS TALES

RETURN FROM STARS

Message: Relation zzgxic returned.

[example] :-) quit

Message: Closing [s] database……

Π

SUBJECT σ

INDEX

><

Π

SUBJECT σ

INDEX

><

(7)

October 2005 Functional Programming for DB DB Foundations 13

• separation of physical & logical aspects

• data - process independence

• high level of data abstraction

• universal & uniform data structure

• global behavioural rules

• set of higher-level operations

• structure optimisation algorithm

Why relational model has been so attractive ?

October 2005 Functional Programming for DB DB Foundations 14

• data - process independence divorce from ADT

the only sensible way to do it:

→ make all operations universally applicable to every structure

the only sensible way to do it:

→ have one universal primitive

How was it possible

(8)

October 2005 Functional Programming for DB DB Foundations 15

any kind of ordering (set inclusion, tree, graph, convolution) imposed on a structure contradicts relational foundations

→ evolution of RDB imminent Conclusion

Objectives

• structural simplicity → structural uniformity (regularity)

• separation of logical and physical aspects of database processing

• set-oriented processing → algebra-oriented processing

(9)

October 2005 Functional Programming for DB DB Foundations 17

M

0

= {ADT, procedures}

M

1

= {relations, r-operations} E. Codd M

2

= {nested relations, xr-operations} H. Korth at al.

M

3

= {L, operations} D. Scott

M

4

= {algebra (components, operations), transformations}

October 2005 Functional Programming for DB DB Foundations 18

KNOWLEDGE ::=

ELEMENTARY FACTS

• John Doe was born in London on 19 Nov 1962

• The car with a number plate B1 BYE is a Ferrari

SIMPLE RULES

• Every man has necessarily two parents of whom he is the child

• A person has sometimes a spouse and if X is the spouse of Y then Y is the spouse of X

• A car has (if any) only one owner. Conversely, an owner may have zero, one or several cars

COMPLEX RULES

• The sex of a person is not subject to any change

• A single person who marries may not be single again in the future

• A person may not be, at a given time, in two different places

DEDUCTIVE RULES

• if x > y then BIG:= x else BIG:= y

• square() = twice (twice ())

Abrial’s Binary Model

(10)

October 2005 Functional Programming for DB DB Foundations 19 WHEN THE MODEL DOES NOT KNOW A FACT OR A LAW ABOUT REALITY

THIS DOES NOT MEAN THAT THIS FACT OR LAW DOES NOT EXISTS,

CONSEQUENCE:

IF

THE MODEL HAS EXACTLY THE SAME KNOWLEDGE OF TWO OBJECTS IT DOES NOT FOLLOW THEY ARE ONE AND THE SAME OBJECT.

THEREFORE

AN OBJECT ENTERING THE 'PERCEPTION FIELD' OF THE MODEL MUST IDENTIFY ITSELF AS either NEW OBJECT or ALREADY KNOWN OBJECT

THE DESCRIPTION OF AN OBJECT INSIDE THE MODEL IS GIVEN VIA THE CONNECTIONS (access functions) IT HAS WITH OTHER OBJECTS

person_of_sex (MALE) = {JOHN, PETER}

person_of_sex (FEMALE) = {JANE, MARY}

age (JOHN) = {27}

person_of_age (50) = {PETER, MARY}

child (PETER) = {JANE}

parent (JANE) = {PETER, MARY}

. . .

JO HN

JANE

FEMALE

20

PETER

MARY

MALE 27

50 spouse

spouse person_of_sex

child par

ent

(11)

October 2005 Functional Programming for DB DB Foundations 21 CATEGORIES

JOHN, JANE, PETER, MARY are PERSONs

27, 50, 20 are NUMBERs

MALE, FEMALE are SEXes

THUS, THE STRUCTURE OF THE EXAMPLE CAN BE ABSTRACTED INTO

NUMBER PERSO N SEX

spou s e

ild ch par

ent

spou s e

AND FURTHER STILL INTO

CATEGO RY

Access functiom Access functiom

October 2005 Functional Programming for DB DB Foundations 22

CONNECTIONS MAY THEMSELVES REQUIRE SOME INFORMATION

EXAMPLE: PETER was_invited_by (PAUL and JANE) to PARIS on 15Jul1993

THIS CAN BE DESCRIBED BY BUILDING A NEW CATEGORY- INVITATION AND THE FOLLOWING STRUCTURE

INVITATION

PERSON PLACE DATE

invitation# 1257

PAUL Paris 15 July 1993

JANE PETER

inviting invited

(12)

October 2005 Functional Programming for DB DB Foundations 23 defn CATEGORIES

PERSON = cat there is new category

JOHN = generate PERSON create new object of category x ← generate PERSON

kill JOHN, kill x

NUMBER PERSO N SEX

spou s e

ild ch par

ent

spou s e

age sex

of-sex of-age

r1 = rel (PERSON, SEX, sex = fun(1, 1), of_sex = fun (0, )) r2 = rel (PERSON, NUMBER, age = fun(1, 1), of_age = fun (0, )) r3 = rel (PERSON, PERSON, spouse = fun(0, 1), spouse)

r4 = rel (PERSON, PERSON, parent = fun(2, 2), child = fun (0, ))8 8 8

a person has exactly one sex, one age, two parents, zero or one spouse and any number of children

min max

Cytaty

Powiązane dokumenty

Based on the definitions and scope of Collaboration Engineering in the previous chapter we can state that the main purpose of the Collaboration Engineering process design is to

Ondanks de toenemende zorgen over de kwaliteit van het vo en mbo in het afgelopen decennium, en in mindere mate ook over de kwaliteit van het hoger onderwijs, zijn er geen duidelijke

Dalsze odniesienia do tej rozprawy z podaniem w naw iasach odpow iednich num erów stron.... Barańczak Podróż zimowa, Poznań

The hypothesis test will be evaluated using a significance level of α = 0.05. We want to consider the data under the scenario that the null hypothesis is true. In this case, the

Presentation of the functional programming paradigm, its attributes and structures to achieve deeper insight into the database architecture and thus better design... October

September 03 Functional Programming for DB Case Study 1 Case Study AIRLINE

SOME COMMENTS ON THE CHANGES IN THE CHANNEL CROSS-SECTION

•łatwość zmiany formatu oraz możliwość łączenia różnych formatów. przesyłanych danych w jednej sieci