131
1 ΒΑΣΕΙΣ ∆Ε∆ΟΜΕΝΩΝ Ι

Βάσεις Δεδομένων 1

Embed Size (px)

Citation preview

Page 1: Βάσεις Δεδομένων 1

1

ΒΑΣΕΙΣ ∆Ε∆ΟΜΕΝΩΝ Ι

Page 2: Βάσεις Δεδομένων 1

2

ΒΑΣΕΙΣ ∆Ε∆ΟΜΕΝΩΝ Ι

Σκοπός - Περιεχόµενο µαθήµατοςΗ µελέτη του θεωρητικού υποβάθρου και των εργαλείων που απαιτούνται για τα συστήµατα βάσεων δεδοµένων

• Εισαγωγή- ιστορία-παραδείγµατα, • Αρχιτεκτονική συστηµάτων Β∆ • Μοντέλο Οντοτήτων-Συσχετίσεων (ΟΣ)• Σχεσιακό µοντέλο και σχήµα βάσεων δεδοµένων• Κανονικοποίηση δεδοµένων• Σχεσιακή Άλγεβρα • SQL σχεσιακή γλώσσα χειρισµού δεδοµένων• SQL σχεσιακή γλώσσα ορισµού δεδοµένων

Page 3: Βάσεις Δεδομένων 1

3

ΒΑΣΕΙΣ ∆Ε∆ΟΜΕΝΩΝ Ι

Ενδεικτική Βιβλιογραφία

C.J. Date, An Introduction to Data Base Systems, Vοlume 1, 6th Edition, 1997

R. Elmasri, S.B.Navathe: Fundamentals of Database Systems, Τοµ Α,Β, Athens, 1996

H. Korth, A. Silberschatz, and S. Sudarshan,Database System Concepts, 3rd Edition, McGraw-Hill, 1998.

J. Ullman and J. Widom, A First Course in Database Systems, Prentice Hall, 1997.

R. Ramakrishnan, Database Management Systems, 1998.

D.M. Kroenke, Database processing (7thEdition):Fundamentals, design & implementation,Prentice Hall. 2000.

Ξένος Μ. και Χριστοδουλάκης ∆., Εισαγωγή στις Βάσεις ∆εδοµένων, Αναπτυξιακή Προσέγγιση, 2002

Βασιλακόπουλος Γ., Σχεδιασµός Βάσεων ∆εδοµένων & dBase IV/SQL, 1993

Page 4: Βάσεις Δεδομένων 1

4

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

Βάση ∆εδοµένων-DB: συλλογή από σχετιζόµενα δεδοµένα

Σύστηµα ∆ιαχείρισης Βάσεων ∆εδοµένων(Σ∆Β∆-DBMS): λογισµικό για δηµιουργία και χρήση µιας βάσης δεδοµένων

Σύστηµα Βάσης ∆εδοµένων (ΣΒ∆-DBS): η βάση και το αντίστοιχο λογισµικό µαζί

Τι είναι µια βάση δεδοµένων (Database-DB);

Β∆

Σ∆Β∆

Σύστηµα Βάσεων ∆εδοµένων

Page 5: Βάσεις Δεδομένων 1

5

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ- Σκοπός των Β∆

Τα συστήµατα διαχείρισης βάσεων δεδοµένων αναπτύχθηκαν για να χειρίζονται και ελέγχουν τις παρακάτω δυσκολίες των τυπικών συστηµάτων διαχείρισης αρχείων που υποστηρίζονταν από τα συµβατικά λειτουργικά συστήµατα

Προβλήµατα Ασυνέπειας και πλεονασµού δεδοµένων

Προβλήµατα Ακεραιότητας ∆εδοµένων

∆υσκολίες προσπέλασης ∆εδοµένων

Προβλήµατα Ασφάλειας

Προβλήµατα Ανεξαρτησίας ∆εδοµένων (πολλαπλά αρχεία και formats)

∆υσκολίες ενηµέρωσης πολλών αρχείων

Προβλήµατα ταυτόχρονης προσπέλασης από πολλούς χρήστες

Page 6: Βάσεις Δεδομένων 1

6

ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ

∆ιαχειρίζονται τεράστια ποσότητα δεδοµένων

Εύκολη Επεξεργασία δεδοµένων -

- εύρεση πληροφορίας σχετικής µε µια συγκεκριµένη ερώτηση

η Β∆ εξυπηρετεί µία ή περισσότερες εφαρµογές

επιτρέποντας κοινή και ελεγχόµενη αντιµετώπιση της

πρόσθεσης, τροποποίησης και ανάκλησης δεδοµένων

Page 7: Βάσεις Δεδομένων 1

7

ΙΣΤΟΡΙΑ

Εισαγωγή- Ιστορία

∆εκαετία του 1950

Κάρτες και ταινίες (σειριακή επεξεργασία) :

Εξελίξεις σε συσκευές µαζικής αποθήκευσης τυχαίας πρόσβασης και αύξηση υπολογιστικής ισχύος θέτουν τις προϋποθέσεις για την ανάπτυξη συστηµάτων διαχείρισης δεδοµένων σε αντικατάσταση των συστηµάτων διαχείρισης αρχείων.

Αρχή του 1960

Πρώτες βάσεις δεδοµένων, πρώτα συστήµατα διαχείρισης βάσεων δεδοµένων (Σ∆Β∆), στηριγµένα στο δικτυωτό µοντέλο

network data model του Charles Bachman (1st Turing Award, 1973)

Page 8: Βάσεις Δεδομένων 1

8

ΙΣΤΟΡΙΑ

Εισαγωγή- Ιστορία

Τέλη του 1960

Βάσεις δεδοµένων και συστήµατα διαχείρισης βάσεων δεδοµένων (Σ∆Β∆), στηριγµένα στο ιεραρχικό µοντέλο δεδοµένων -Information Management System (IMS της ΙΒΜ)-

1970

Ορισµός του σχεσιακού µοντέλου από τον Coddτης IBM.

Edgar Codd (IBM, San Jose) relational data model (Turing Award, 1981)

Ερευνητικά Προγράµµατα: System R, INGRES - Γλώσσες: SEQUEL, QBE, QUEL

Page 9: Βάσεις Δεδομένων 1

9

ΙΣΤΟΡΙΑ

Εισαγωγή- Ιστορία

1976

Το µοντέλο οντοτήτων-συσχετίσεων (Chen)

Το σχεσιακό µοντέλο δεν επιτυγχάνει εµπορικά µέχρι τη δεκαετία του 80. Συστήµατα: System R (IBM), INGRESS (Berkley)

Αρχές του 1980

SQL (µέρος του System R) αντικατέστησε την QUEL στο σύστηµα INGRES

Η έννοια του transaction management (Jim Gray, Turing Award, 1999)

Τάσεις: αντικειµενοστραφή, αρχιτεκτονική πελάτη-εξυπηρέτη, κατανεµηµένες βάσεις δεδοµένων

Page 10: Βάσεις Δεδομένων 1

10

ΙΣΤΟΡΙΑ

Εισαγωγή- Ιστορία

∆εκαετία του 1980

Β∆ σε προσωπικούς υπολογιστές, σχεσιακά συστήµατα σε pc. : DBase II (Ashton Tate) εξελίχτηκε µέχρι τις µέρες µας ως Paradox, Microsoft ACCESS.

Σχεσιακά συστήµατα µε µεγάλη διάδοση:Oracle, SQL Server,Sybase, Informix, DB2

∆εκαετία του 1990 µέχρι σήµερα

αντικειµενοστραφή συστήµατα Β∆

σύνδεση Β∆ στο διαδίκτυο, ευρύτατη διάδοση τεχνολογίας που επιτρέπει την επικοινωνία των χρηστών µε Β∆ µέσω διαδικτύου (HTML, XML, ASP κλπ)

Page 11: Βάσεις Δεδομένων 1

11

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Μια Β∆ αναπαριστά ένα µικρόκοσµο.

Παραδείγµατα τέτοιων µικρόκοσµων είναι

ένα πανεπιστήµιο (καθηγητές - φοιτητές -µαθήµατα - αίθουσες κλπ.),

µια εταιρία (υπάλληλοι -τµήµατα - κτίρια κλπ.),

ένα κατάστηµα λιανικής (προϊόντα - ράφια -πελάτες - προµηθευτές κλπ.),

µια βιβλιοθήκη (βιβλία - θέσεις αποθήκευσης -δανειζόµενοι κλπ.).

Page 12: Βάσεις Δεδομένων 1

12

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Σηµαντικό χαρακτηριστικό των πληροφοριών που περιέχονται σε µια Β∆ είναι ότι αυτές είναι συσχετιζόµενες.

Για παράδειγµα, στο µικρόκοσµο του πανεπιστήµιου, οι καθηγητές διδάσκουν µαθήµατα, τα οποία παρακολουθούνται από φοιτητές κοκ.

Αν µια πληροφορία δεν σχετίζεται µε άλλες µέσα στον µικρόκοσµο, τότε δεν ανήκει στη συγκεκριµένη Β∆

Page 13: Βάσεις Δεδομένων 1

13

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Αρχιτεκτονική τριών επιπέδων

Ένα σύστηµα βάσεων δεδοµένων παρέχει στους χρήστες µια αφαιρετική άποψη. Το σύστηµα κρύβει (από τους χρήστες) ορισµένες λεπτοµέρειες για το πώς τα δεδοµένα αποθηκεύονται και διατηρούνται. Γι' αυτό υπάρχουν τρία επίπεδα αφαίρεσης:

(α) φυσικό επίπεδο: είναι το χαµηλότερο επίπεδο αφαίρεσης και περιγράφει πώς αποθηκεύονται τα δεδοµένα.

(β) εννοιολογικό επίπεδο: το αµέσως υψηλότερο επίπεδο αφαίρεσης. περιγράφει τι είδους δεδοµένα αποθηκεύονται και τις συσχετίσεις µεταξύ αυτών των δεδοµένων.

(γ) Επίπεδο άποψης: το πιο υψηλό επίπεδο και περιγράφει τµήµατα της βάσης δεδοµένων για κάθε συγκεκριµένη οµάδα χρηστών.

µπορεί να υπάρχουν πολλές διαφορετικές απόψεις Π.χ. οι ταµίες σε µια τράπεζα παίρνουν µια άποψη των απολογισµών πελατών, αλλά όχι των δεδοµένων µισθοδοτικών καταστάσεων.

Page 14: Βάσεις Δεδομένων 1

14

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Αρχιτεκτονική τριών επιπέδων

Φυσικό επίπεδο

Εννοιολογικό επίπεδο

Άποψη 1 Άποψη 2 Άποψη N

• • • • •

Page 15: Βάσεις Δεδομένων 1

15

ΕΝΝΟΙΕΣ ΒΑΣΗΣ ∆Ε∆ΟΜΕΝΩΝ

Η γενική ιδέα της Βάσης ∆εδοµένων

ΠΡΟΓΡΑΜΜΑΠΕΛΑΤΩΝ

ΠΡΟΓΡΑΜΜΑΠΡΟΜΗΘΕΥΤ

ΩΝΠΡΟΓΡΑΜΜΑΓΕΝΙΚΗΣ

ΛΟΓΙΣΤΙΚΗΣ

ΠΡΟΓΡΑΜΜΑΑΠΟΘΗΚΗΣ

ΣΥΣΤΗΜΑ ∆ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΗΣ ∆Ε∆ΟΜΕΝΩΝ

ΓΕΝΙΚΗΛΟΓΙΣΤΙΚΗ

ΠΕΛΑΤΕΣ

ΠΡΟΜΗΘΕΥΤΕΣ

ΑΠΟΘΗΚΗ

ΠΡΟΓΡΑΜΜΑΠΕΛΑΤΩΝ

ΠΡΟΓΡΑΜΜΑΠΡΟΜΗΘΕΥΤ

ΩΝΠΡΟΓΡΑΜΜΑΓΕΝΙΚΗΣ

ΛΟΓΙΣΤΙΚΗΣ

ΠΡΟΓΡΑΜΜΑΑΠΟΘΗΚΗΣ

ΣΥΣΤΗΜΑ ∆ΙΑΧΕΙΡΙΣΗΣ ΒΑΣΗΣ ∆Ε∆ΟΜΕΝΩΝ

ΓΕΝΙΚΗΛΟΓΙΣΤΙΚΗ

ΠΕΛΑΤΕΣ

ΠΡΟΜΗΘΕΥΤΕΣ

ΑΠΟΘΗΚΗ

Page 16: Βάσεις Δεδομένων 1

16

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Αρχιτεκτονική τριών επιπέδων

Ανεξαρτησία ∆εδοµένων: η αλλαγή του σχήµατος ενός επιπέδου δεν επηρεάζει το σχήµα του αµέσως υψηλότερου επιπέδου

• Λογική Ανεξαρτησία ∆εδοµένων

αλλαγή του εννοιολογικού δεν επηρεάζει τα εξωτερικά σχήµατα ή τα προγράµµατα εφαρµογών

• Φυσική Ανεξαρτησία ∆εδοµένων

αλλαγή του εσωτερικού σχήµατος χωρίς να χρειάζεται αλλαγή του εννοιολογικού

Page 17: Βάσεις Δεδομένων 1

17

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Μοντελοποίηση - υλοποίηση

ΜΕΡΟΣ 1

Μοντελοποίηση µε µοντέλο δεδοµένων

ΜΕΡΟΣ 2

Υλοποίηση µε Σ∆Β∆ ∆ηµιουργία/Κατασκευή

Εισαγωγή ∆εδοµένων

Επεξεργασία ∆εδοµένων

Page 18: Βάσεις Δεδομένων 1

18

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Μοντέλα δεδοµένων

Μοντέλο ∆εδοµένων: ένα σύνολο από έννοιες που µπορούν να χρησιµοποιηθούν για την περιγραφή της δοµής της Β∆

• Υψηλού επιπέδου (εννοιολογικά) µοντέλα

Μοντέλο Οντοτήτων/Συσχετίσεων

• Παραστατικά µοντέλα ή µοντέλα υλοποίησης

Σχεσιακό Μοντέλο, Ιεραρχικό Μοντέλο, ∆ικτυωτό Μοντέλο

Page 19: Βάσεις Δεδομένων 1

19

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Υψηλού επιπέδου (εννοιολογικά) µοντέλα- Μοντέλο Οντοτήτων/Συσχετίσεων (Entity-Relationship) επιτρέπει τη δηµιουργία ενός διαγράµµατος Ο/Σ (E-R diagram) που αναπαριστά µε γραφικό τρόπο όλες τις πληροφορίες της Β∆

Page 20: Βάσεις Δεδομένων 1

20

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Μοντέλα δεδοµένων

•Παραστατικά µοντέλα ή µοντέλα υλοποίησης

Σχεσιακό Μοντέλο, Ιεραρχικό Μοντέλο, ∆ικτυωτό Μοντέλο

Τα παραστατικά µοντέλα δεδοµένων παριστάνουν δεδοµένα χρησιµοποιώντας δοµές εγγραφών και γι' αυτό µερικές φορές ονοµάζονται βασισµένα σε εγγραφές (record-based) µοντέλα δεδοµένων

Page 21: Βάσεις Δεδομένων 1

21

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Μοντέλα δεδοµένων

Από ένα σχεσιακό µοντέλο δεδοµένων προκύπτει η περιγραφή της βάσης δεδοµένων που ονοµάζεται σχήµα Β∆.

Το σχήµα αφορά τη δοµή της βάσης δεδοµένων χωρίς τα στιγµιότυπα των δεδοµένων (εγγραφές).

Τα πραγµατικά δεδοµένα σε µια βάση δεδοµένων µπορεί να αλλάζουν συχνά.

κατάσταση Β∆ ή σύνολο στιγµιότυπωνονοµάζεται το σύνολο των δεδοµένων που ευρίσκονται στη βάση δεδοµένων σε κάποια συγκεκριµένη χρονική στιγµή

Το Σ∆Β∆ µεριµνά κάθε κατάσταση να είναι έγκυρη

Page 22: Βάσεις Δεδομένων 1

22

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Μοντέλα δεδοµένων- σχεσιακό µοντέλο

Σχήµα µίας Πανεπιστηµιακής Β∆

Page 23: Βάσεις Δεδομένων 1

23

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Μοντελοποίηση - υλοποίηση

ΒΗΜΑ 1: Μοντελοποίηση - µε µοντέλο δεδοµένων

Εννοιολογικό Μοντέλο (µοντέλο Οντοτήτων/Συσχετίσεων)Μοντέλο Υλοποίησης (σχεσιακό µοντέλο)

ΒΗΜΑ 2: Υλοποίηση - µε κάποια γλώσσα Σ∆Β∆

Ορισµός Σχέσεων (σχήµα)Εισαγωγή Στοιχείων (δηµιουργία αρχικού

στιγµιότυπου)∆ιατύπωση Ερωτήσεων

Page 24: Βάσεις Δεδομένων 1

24

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Γλώσσες Σ∆Β∆

Γλώσσα Ορισµού ∆εδοµένων (data definition language)

Γλώσσα Αποθήκευσης ∆εδοµένων

Γλώσσα Ορισµού ∆εδοµένων

Γλώσσα Ορισµού Όψεων

Γλώσσα Χειρισµού ∆εδοµένων (data manipulation language)

(εισαγωγή, διαγραφή, τροποποίηση και ανάκτηση δεδοµένων)

δυνατότητα εµφύτευσης σε µια γλώσσα υψηλού επιπέδου

µίας εγγραφής τη φορά ή συνόλου τη φορά

διαδικαστικές και µη διαδικαστικές (δηλωτικές)

Page 25: Βάσεις Δεδομένων 1

25

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Γλώσσες Σ∆Β∆ -SQL

(Data definition/ Data manipulation)

DDL-SQL: επιτρέπει τον ορισµό, τροποποίηση ή διαγραφή πινάκων.

CREATE | DROP | ALTER TABLE (base table)

CREATE | DROP | ALTER VIEW (virtual table)

CREATE | DROP | ALTER INDEX (index table)

DML-SQL: επιτρέπει τη διαχείριση των στοιχείων πινάκων του

συστήµατος

SELECT αναζήτηση

INSERT εισαγωγή εγγραφής

DELETE διαγραφή εγγραφής

UPDATE τροποποίηση εγγραφής

Page 26: Βάσεις Δεδομένων 1

26

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Γλώσσες Σ∆Β∆

ΒΗΜΑ 2: Υλοποίηση – σε σχεσιακό Σ∆Β∆

Ορισµός Σχέσεων (πρόθεση/σχήµα)Εισαγωγή Στοιχείων (δηµιουργία του αρχικού

στιγµιότυπου)∆ιατύπωση Ερωτήσεων

create table R(A1 T1, A2, T2, …)

insert/delete

selectfrom where

Page 27: Βάσεις Δεδομένων 1

27

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Γλώσσες Σ∆Β∆

∆ιατύπωση Ερωτήσεων µε SQL-DML

select [ distinct ] target_listfrom tuple_variable_list

[ where qualification ][ group by grouping_attributes ][ having group_condition ][ order by target_list_subset ]

Μια επερώτηση αποτιµάται πρώτα µε την εφαρµογή της WHERE πρότασης, µετά των GROUP-BY και HAVING (προαιρετικά), και τέλος της SELECT πρότασης (στόχος λίστα γνωρισµάτων) – µε ταξινόµηση των πλειάδων στην απάντηση ή διαγραφή διπλών τιµών, αν απαιτείται από την ORDER BY πρόταση ή το DISTINCT (επίσης προαιρετικά).

Page 28: Βάσεις Δεδομένων 1

28

ΕΝΝΟΙΕΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

∆ιεπαφές Σ∆Β∆

• Βασιζόµενες σε µενού (κατάλογο από επιλογές)

• Γραφικών

• Βασιζόµενες σε φόρµες

• Φυσικής γλώσσας

• Για παραµετρικούς χρήστες

• Για το ∆Β∆

Page 29: Βάσεις Δεδομένων 1

29

ΕΝΝΟΙΕΣ ΒΑΣΗΣ ∆Ε∆ΟΜΕΝΩΝ

(DataBase DB)

Βάση δεδοµένων είναι µία συλλογή καλά οργανωµένων σχετιζόµενων δεδοµένων µέσα σε κοινά διαθέσιµο µέσο µαζικής αποθήκευσης

Αρχεία δεδοµένων

Αρχεία ευρετηρίουΚατάλογος

συστήµατος ΒΑΣΗ ∆Ε∆ΟΜΕΝΩΝ

Αν µια πληροφορία δεν σχετίζεται µε άλλες µέσα στη βάση, τότε δεν ανήκει στη συγκεκριµένη Β∆

Page 30: Βάσεις Δεδομένων 1

30

ΕΝΝΟΙΕΣ ΒΑΣΗΣ ∆Ε∆ΟΜΕΝΩΝ

DataBase Management System - DBMS

Σύστηµα διαχείρισης βάσεως δεδοµένων (Σ∆Β∆) είναι ένα σύνολο προγραµµάτωνπου

επιτρέπουν στους χρήστες να δηµιουργούνκαι να συντηρούν µια βάση δεδοµένων.

Page 31: Βάσεις Δεδομένων 1

31

ΕΝΝΟΙΕΣ ΒΑΣΗΣ ∆Ε∆ΟΜΕΝΩΝ

Σύστηµα Βάσης δεδοµένων

Είναι η βάση δεδοµένων µαζί µε το λογισµικό (Σ∆Β∆)

Σ∆Β∆

Β∆ ΣΒ∆

Page 32: Βάσεις Δεδομένων 1

32

ΕΝΝΟΙΕΣ ΒΑΣΗΣ ∆Ε∆ΟΜΕΝΩΝ

naive application sophisticated databaseusers programmers users administrator

Application interfaces

application program

query databasescheme

users

Applicationprogramsobject code

EmbeddedDMLprecompiler

DMLcompiler

DDLinterpreter

QueryEvaluation engine

Transactionmanager

Buffermanager

File manager

IndicesData files Data dictionary

Query processor

storagemanager

Data

base

Page 33: Βάσεις Δεδομένων 1

33

ΣΥΣΤΗΜΑ ΒΑΣΗΣ ∆Ε∆ΟΜΕΝΩΝ

Απλοποιηµένη εικόνα ενός συστήµατος βάσης δεδοµένων

Σύστηµα Βάσεων ∆εδοµένων (Database System) είναι το λογισµικό DBMS µαζί µε τη Βάση δεδοµένων

Page 34: Βάσεις Δεδομένων 1

34

ΣΥΣΤΑΤΙΚΑ ΣΤΟΙΧΕΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΒΑΣΗΣ ∆Ε∆ΟΜΕΝΩΝ

ΤΑ ∆Ε∆ΟΜΕΝΑ (DATA)

ενοποιηµένα integrated

µεριζόµενα shared , κοινόχρηστα

ΤΟ ΥΛΙΚΟ (HARDWARE)

µέσα αποθήκευσης, backup ..

ΤΟ ΛΟΓΙΣΜΙΚΟ (SOFTWARE)

µεταξύ δεδοµένων και χρηστών υπάρχει το DBMS (Database management system ή σύστηµα διαχείρισης βάσεων δεδοµένων)

ΟΙ ΧΡΗΣΤΕΣ (USERS)

προγραµµατιστές εφαρµογών

τελικοί χρήστες

υπεύθυνος διαχείρισης βάσεων δεδοµένων (database administrator)

Page 35: Βάσεις Δεδομένων 1

35

∆Ε∆ΟΜΕΝΑ

- ∆εδοµένα εισόδου

- ∆εδοµένα εξόδου

Ενοποίηση δεδοµένων (data integration) εννοούµε, µια βάση δεδοµένων που µπορεί να περιλαµβάνει ένα αρχείο ΥΠΑΛΛΗΛΟΙ, που περιέχει τα ονόµατα, τις διευθύνσεις, τα τµήµατα, τους µισθούς κ.λπ. των υπαλλήλων, και ένα αρχείο ΣΥΜΜΕΤΟΧΕΣ, που αντιπροσωπεύει τις συµµετοχές υπαλλήλων σε κάποια σεµινάρια

Μερισµός δεδοµένων (data sharing)εννοούµε ότι τα µεµονωµένα στοιχεία δεδοµένων της βάσης δεδοµένων µπορούν να τα µοιράζονται πολλοί διαφορετικοί χρήστες

Page 36: Βάσεις Δεδομένων 1

36

ΠΑΡΑ∆ΕΙΓΜΑΤΑ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Αντιπροσωπεία Αυτοκινήτων (Αγορές-Πωλήσεις-Ενοικιάσεις)

Βάση Εφαρµογών Λογισµικού (Εταιρείες, Κατηγορίες, Λογισµικά)

Βιβλίο Εσόδων-Εξόδων (Κατηγορίες, Κινήσεις, Πελάτες, Προµηθευτές)

∆ιαχείριση εστιατορίου (Υπάλληλοι, Κινήσεις-Παραγγελίες, Τραπέζια)

Εµπορικό κύκλωµα (Πελάτες, Προµηθευτές, Κινήσεις, Αποθήκη)

Εταιρεία εύρεσης προσωπικού επιχειρήσεων (Επιχειρήσεις, Άνεργοι, Ειδικότητες, Κινήσεις)

Πολιτικό γραφείο (Ραντεβού, Ψηφοφόροι, Επαγγέλµατα, Πόλεις)

Σχολείο (Μαθητές, Καθηγητές, Τµήµατα, Μαθήµατα, Αίθουσες)

Ταµείο Επιχείρησης (Εσοδα, Εξοδα, Αξιόγραφα, Πελάτες, Προµηθευτές)

Τεχνική Εταιρεία (Έργα, Υλικά, Πελάτες, Προµηθευτές, Υπεργολάβοι, Εργάτες)

Page 37: Βάσεις Δεδομένων 1

37

ΠΛΕΟΝΕΚΤΗΜΑΤΑ ΤΗΣ ΧΡΗΣΗΣ ΒΑΣΕΩΝ ∆Ε∆ΟΜΕΝΩΝ

Μείωση του πλεονασµού (επανάληψη)

των αποθηκευµένων δεδοµένων (redundancy)

Αποφυγή ασυνεπειών

Κοινόχρηστα δεδοµένα

Επιβολή προτύπων για την αναπαράσταση δεδοµένων, που διευκολύνει την ανταλλαγή δεδοµένων

Εφαρµογή περιορισµών ασφαλείας

∆ιατήρηση της ακεραιότητας

Ταυτόχρονη προσπέλαση και ανάρρωση από σφάλµατα

Πολλαπλές ∆ιεπαφές και Όψεις

•Οικονοµία χώρου

•ταχύτητα

•λιγότερος κόπος

•άµεση πληροφόρηση

Page 38: Βάσεις Δεδομένων 1

38

ΜΕΙΟΝΕΚΤΗΜΑΤΑ ΒΑΣΕΩΝ∆Ε∆ΟΜΕΝΩΝ

Ορισµένα µειονεκτήµατα είναι τα εξής:

1. Η ασφάλεια µπορεί να είναι µειωµένη (αν δεν υπάρχουν καλοί έλεγχοι)

2. Η ακεραιότητα µπορεί να είναι µειωµένη (αν δεν υπάρχουν καλοί έλεγχοι)

3. Μπορεί να απαιτείται πρόσθετο υλικό

4. Μπορεί να υπάρχει σηµαντική επιβάρυνση στην απόδοση

5. Η επιτυχηµένη λειτουργία έχει κρίσιµη σηµασία (η επιχείρηση µπορεί να γίνει εξαιρετικά ευάλωτη σε σφάλµατα)

6. Το σύστηµα µπορεί να είναι πολύπλοκο (αν και αυτή η πολυπλοκότητα θα πρέπει να µένει κρυφή από το χρήστη

Page 39: Βάσεις Δεδομένων 1

39

ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ∆Ε∆ΟΜΕΝΩΝ

Συστήµατααντιστραµµένης λίστας

CA-DATACOM/DBτης Computer AssociatesInternational Inc.

Ιεραρχικά συστήµατα IMS της IBM Corporation

∆ικτυωτά συστήµατα CA-IDMS/DBτης Computer AssociatesInternational Inc.

Σχεσιακά συστήµαταπου εµφανίζονται στις αρχές του1980

DB2 της IBM Corporation

INGRES της Ingres Inc.

ORACLE της OracleCorporation

SYBASE της Sybase Inc.

Page 40: Βάσεις Δεδομένων 1

40

ΙΕΡΑΡΧΙΚΑ ΜΟΝΤΕΛΑ ∆Ε∆ΟΜΕΝΩΝ

(hierarchic system): εδώ τα δεδοµέναπαρουσιάζονται µε τη µορφή ενός συνόλουδενδροειδών δοµών (ιεραρχιών), και στουςτελεστές για το χειρισµό αυτών των δοµώνπεριλαµβάνονται τελεστές για να διατρέχονται οιιεραρχικές διαδροµές προς την κορυφή ή προς τηβάση των δένδρων

Αναγνώστης

Συγγραφέας1

Ένα µε πολλά

Ένα µε πολλά

Βιβλίο 2Βιβλίο 1 Βιβλίο 3

Συγγραφέας2

Συγγραφέας3

Συγγραφέας4

Page 41: Βάσεις Δεδομένων 1

41

∆ΙΚΤΥΩΤΑ ΜΟΝΤΕΛΑ ∆Ε∆ΟΜΕΝΩΝ

τα δικτυωτά συστήµατα (network system) έχουν πια ιστορική αξία

Αναγνώστης 1 Αναγνώστης 2

πολλά µε πολλά

Συγγραφέας1

πολλά µε πολλά

Συγγραφέας2

Συγγραφέας3

Βιβλίο 1 Βιβλίο 2 Βιβλίο 3

Συγγραφέας4

Page 42: Βάσεις Δεδομένων 1

42

ΣΧΕΣΙΑΚΑ ΜΟΝΤΕΛΑ ∆Ε∆ΟΜΕΝΩΝ - ΠΙΝΑΚΕΣ

Κωδικόςαναγνώστη

Όνοµα ∆ιεύθυνση Τηλ. Τµήµα

053 Ματθέου Κ. Βηλαρά 28 45893 ΠΛΗΡΟΦΟΡΙΚΗ

109 Παππάς Ι. Λαµπρίδη 45 97155 ΜΑΘΗΜΑΤΙΚΟ

027 Αλεξίου Μ. Τσακάλωφ 9 66202 ΙΑΤΡΙΚΗ

212 Μπέης Γ. Σµύρνης 12 70359 ΦΥΣΙΚΟ

310 Χατζής Ν. Σαράφη 6 32078 ΙΑΤΡΙΚΗ

ΘεµατικέςενότητεςΒιβλία

πολλά µε πολλά

Αναγνώστες

Πολλά µε έναένα µε

πολλά

Παραγγελίες

Page 43: Βάσεις Δεδομένων 1

43

ΣΧΕΣΙΑΚΗ ∆ΟΜΗ -ΠΛΕΟΝΕΚΤΗΜΑΤΑ

Η σχεσιακή δοµή έχει πολλά πλεονεκτήµατα σε σχέση µε την ιεραρχική και τη δικτυωτή, όπως:

• Η σχεσιακή δοµή παρέχει διαφάνεια και σαφήνεια

• Είναι εύκολη η µετατροπή κάθε άλλης δοµής σε σχεσιακή.

• Είναι εύκολη η αναπαραγωγή και υλοποίηση νέων σχέσεων, από τις υπάρχουσες, για ειδικές εφαρµογές.

• Η αναζήτηση δεδοµένων είναι πολύ ταχύτερηαπό κάποια άλλη δοµή που απαιτεί µία σειρά από δείκτες.

• Η σχεσιακή δοµή µπορεί να τροποποιηθεί πολύ ευκολότερα από την ιεραρχική ή τη δικτυωτή και αυτό προσδίνει ευελιξία στο σύστηµα.

Page 44: Βάσεις Δεδομένων 1

44

ΣΧΕΣΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Με δύο λόγια, σχεσιακό είναι ένα σύστηµα που:

1. Ο χρήστης αντιλαµβάνεται τα δεδοµένα ως σχέσεις (κανονικοποιηµένους πίνακες).

2. Οι σχεσιακοί τελεστές πράξεων που έχει στη διάθεση του ο χρήστης (για παράδειγµα, για την ανάκληση δεδοµένων) είναι τελεστές που δηµιουργούν νέες σχέσεις (πίνακες).

Για παράδειγµα, υπάρχει ένας τελεστής για την εξαγωγή ενός υποσυνόλου των γραµµών ενός πίνακα, και ένας άλλος τελεστής για την εξαγωγή ενός υποσυνόλου των στηλών του — και φυσικά, ένα υποσύνολο των γραµµών και ένα υποσύνολο των στηλών ενός πίνακα µπορούν και τα δύο να θεωρηθούν επίσης πίνακες.

Page 45: Βάσεις Δεδομένων 1

45

ΣΧΕΣΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Σχεσιακή βάση δεδοµένων που αποθηκεύει φοιτητές και βαθµούς

Page 46: Βάσεις Δεδομένων 1

46

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ

∆Ε∆ΟΜΕΝΩΝ

Η τυποποιηµένη (ANSI/SPARC) αρχιτεκτονική 3-επιπέδων.

∆ιακρίνονται 3 επίπεδα - "σχήµατα": το εξωτερικό, το εννοιολογικό και το εσωτερικό/φυσικό, καθώς και οι αντίστοιχεςδιαπαφές από το ένα σχήµα στο άλλο και προς τη Β∆

Page 47: Βάσεις Δεδομένων 1

47

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ

∆Ε∆ΟΜΕΝΩΝ

Η τυποποιηµένη (ANSI/SPARC) αρχιτεκτονική 3-επιπέδων.ANSI - American National Standards InstituteSPARC - Standards Planning and Requirements Committee

Όλοι οι χρήστεςΕξωτερικό επίπεδο

Εννοιολογικό επίπεδο

Προγραµµατιστές-Αναλυτές εφαρµογών

∆ιαχειριστής συστήµατος βάσης δεδοµένων

Εσωτερικό επίπεδο

Page 48: Βάσεις Δεδομένων 1

48

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ

∆Ε∆ΟΜΕΝΩΝ

Η τυποποιηµένη (ANSI/SPARC) αρχιτεκτονική 3-επιπέδων.

Αποτελέσµατα σχεσιακών πράξεων

Εξωτερικό επίπεδο

Εννοιολογικό επίπεδοΣχεσιακοί πίνακες, σχεσιακοί τελεστές πράξεων

Μη σχεσιακό (αποθηκευµένες εγγραφές, δείκτες, ευρετήρια, κ.λπ.)

Εσωτερικό επίπεδο

Page 49: Βάσεις Δεδομένων 1

49

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ

∆Ε∆ΟΜΕΝΩΝΗ τυποποιηµένη (ANSI/SPARC) αρχιτεκτονική 3-επιπέδων.

Το εξωτερικό επίπεδο (external level) είναι αυτό που βρίσκεται πιο κοντά στους χρήστες (απόψειςµεµονωµένων χρηστών).

Π.χ. ένας χρήστης από το Τµήµα Προσωπικού µιας εταιρείας µπορεί να θεωρεί τη βάση δεδοµένων ως µια συλλογή από παρουσίες εγγραφών τµηµάτων συν µια συλλογή από παρουσίες εγγραφών υπαλλήλων, και

µπορεί να αγνοεί εντελώς τις παρουσίες εγγραφών προµηθευτών και εξαρτηµάτων που βλέπουν οι χρήστες από το Τµήµα Προµηθειών της εταιρείας

Page 50: Βάσεις Δεδομένων 1

50

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ

∆Ε∆ΟΜΕΝΩΝ

Η τυποποιηµένη (ANSI/SPARC) αρχιτεκτονική 3-επιπέδων.

Το εσωτερικό επίπεδο (internal level) είναι αυτό που βρίσκεται πιο κοντά στη φυσική αποθήκευση— (άποψη αποθήκευσης).

Ορίζει τους διαφόρους τύπους αποθηκευµένων εγγραφών αλλά καθορίζει επίσης ποια ευρετήρια υπάρχουν, πώς αναπαριστώνται τα αποθηκευµένα πεδία, µε ποια φυσική σειρά είναι τοποθετηµένες οι αποθηκευµένες εγγραφές, κ.ο.κ.

Page 51: Βάσεις Δεδομένων 1

51

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ

∆Ε∆ΟΜΕΝΩΝ

Η τυποποιηµένη (ANSI/SPARC) αρχιτεκτονική 3-επιπέδων.

Το εννοιολογικό επίπεδο (conceptual level) είναι ένα "ενδιάµεσο επίπεδο" που συνδέει τα δύο προηγούµενα, και περιγράφει τον µικρόκοσµο, τη Βάση ∆εδοµένων που θέλουµε να υλοποιήσουµε

Για να επιτευχθεί η ανεξαρτησία των δεδοµένων, οι ορισµοί της εννοιολογικής άποψης δεν ασχολούνται καθόλου µε την αποθηκευτική δοµή ή µε την τεχνική προσπέλασης — πρέπει να είναι µόνο ορισµοί πληροφοριακού περιεχοµένου.

∆εν υπάρχει στο εννοιολογικό σχήµα καµία αναφορά σε αποθηκευµένες αναπαραστάσεις πεδίων, στη σειρά των αποθηκευµένων εγγραφών, σε ευρετήρια, σε δείκτες, ή σε οποιεσδήποτε άλλες λεπτοµέρειες της αποθήκευσης και της προσπέλασης

Page 52: Βάσεις Δεδομένων 1

52

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ

∆Ε∆ΟΜΕΝΩΝΗ τυποποιηµένη (ANSI/SPARC) αρχιτεκτονική 3-επιπέδων.Εστω για παράδειγµα µια Βάση ∆εδοµένων για ένα Πανεπιστήµιο.α) Εξωτερικό σχήµα (View) µπορεί να είναι µία οποιαδήποτε όψη:Φοιτητές που έχουν περάσει ένα µάθηµαΠΛΗΡΟΦΟΡΙΕΣΜΑΘΗΜΑΤΟΣ (ΚωδΜαθ:string,count(ΑΜ):integer)β) Εννοιολογικό σχήµα θα µπορούσε να είναι:ΦΟΙΤΗΤΕΣ (ΑΜ:string, Όνοµα:string, Επώνυµο:string, ΗµΓεν:date)ΜΑΘΗΜΑΤΑ (ΚωδΜαθ:string, Περιγραφή:string, ∆ιδΜονάδ:integer) ΚΑΤΩΧΗΡΩΣΕΙΣΜΑΘΗΜΑΤΩΝ (ΑΜ:string, ΚωδΜαθ:string, Βαθµός:string)γ) Φυσικό σχήµα θα µπορούσε να είναι:Σχέσεις αποθηκευµένες σε αρχεία∆είκτης στην 1η στήλη του ΦΟΙΤΗΤΕΣ

Page 53: Βάσεις Δεδομένων 1

53

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΩΝ ΣΥΣΤΗΜΑΤΩΝ ΒΑΣΕΩΝ

∆Ε∆ΟΜΕΝΩΝ

Page 54: Βάσεις Δεδομένων 1

54

ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ

ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ

Page 55: Βάσεις Δεδομένων 1

55

ΣΧΕ∆ΙΑΣΜΟΣ

Σχεδιασµός µιας Β∆

• η ανάλυση ποιας πληροφορίας και της σχέσης ανάµεσα στα στοιχεία της

• η περιγραφή της δοµής - σχήµα σε διάφορους συµβολισµούς ή µοντέλα όπως το

Μοντέλο Οντοτήτων - Συσχετίσεων

γραφικό µοντέλο (εννοιολογικό)

• η Μετατροπή σε σχεσιακό µοντέλο

Page 56: Βάσεις Δεδομένων 1

56

ΣΧΕ∆ΙΑΣΜΟΣ - ΒΗΜΑΤΑ

1. Ανάλυση απαιτήσεων

2. Εννοιολογικός Σχεδιασµός (υψηλού επιπέδου περιγραφή των δοµών δεδοµένων και των περιορισµών)

3. Λογικός Σχεδιασµός (επιλογή Σ∆Β∆ και µετατροπή του εννοιολογικού σχεδιασµού σε ένα σχήµα στο µοντέλο που υποστηρίζει το Σ∆Β∆ που επιλέξαµε)

.

Μικρόκοσµος

Συλλογή Απαιτήσεων και Ανάλυση

Εννοιολογικός Σχεδιασµός Βάσης (π.χ., µε E-R Model)

Απαιτήσεις Β∆

Εννοιολογικό Μοντέλο(Σχήµα)

E-R ∆ιάγραµµα

Λογικός Σχεδιασµός Βάσης

(π.χ., µε ΣχεσιακόΜοντέλο)

Ανεξάρτητα του DBMS Εξαρτώµενο του επιλεγµένου DBMS

Λογικό Μοντέλο --Σχήµατα / Όψεις

Φυσικός Σχεδιασµός Βάσης

Φυσικό ΜοντέλοΕσωτερικό Σχήµα

Πλήρωση ΒάσηςΒάση

∆εδοµένων

Page 57: Βάσεις Δεδομένων 1

57

Μοντέλο Οντοτήτων-Συσχετίσεων

Το µοντέλο οντοτήτων-συσχετίσεων (entity-relationship model) προτάθηκε από τον P.P.Chen το 1976 για να περιγράψει µε γραφικά σύµβολα τα δεδοµένα ως οντότητες, συσχετίσεις και γνωρίσµατα αυτών.

Χρησιµοποιείται κατά το στάδιο του εννοιολογικού σχεδιασµού (conceptual design) της βάσης δεδοµένων.

Page 58: Βάσεις Δεδομένων 1

58

Μοντέλο Οντοτήτων-Συσχετίσεων

∆ιάγραµµα ΟΝΤΟΤΗΤΩΝ-ΣΥΣΧΕΤΙΣΕΩΝ για µία Β∆ τράπεζας

Page 59: Βάσεις Δεδομένων 1

59

ΟΝΤΟΤΗΤΕΣ -ΣΥΣΧΕΤΙΣΕΙΣ

Οντότητα• (ένα αντικείµενο µε φυσική ύπαρξη)

• Κάθε οντότητα έχει συγκεκριµένα-γνωρίσµατα• Μια συγκεκριµένη οντότητα θα έχει µια τιµή για καθένα από τα γνωρίσµατα

Τύπος οντοτήτων• Oρίζει ένα σύνολο από οντότητες που έχουν τα ίδια γνωρίσµαταό πως προϊόντα, αυτοκίνητα, σπίτια, τµήµατα, φοιτητές ή εργαζόµενοι

• Περιγράφεται από ένα όνοµα και µια λίστα γνωρισµάτων

ΣυσχετίσειςΤύπος συσχέτισης R ορίζει µια σύνδεση (σχέση) µεταξύ n τύπων οντοτήτων

Page 60: Βάσεις Δεδομένων 1

60

ΟΝΤΟΤΗΤΕΣ -ΣΥΣΧΕΤΙΣΕΙΣΣΥΜΒΟΛΙΣΜΟΣ

• Τύπος Οντοτήτων

• Γνώρισµα

ΕΡΓΑΖΟΜΕΝΟΣ ΕΡΓΟ ΑΠΑΣΧΟΛΕΙΤΑΙ

Όνοµα Αρ Ταυτ κωδικός Τοποθεσία

τύπος Συσχέτισης

τύποι οντοτήτων

γνωρίσµατα

Ταινίες

Τίτλος ∆ιάρκεια

Χρόνος Είδος

Page 61: Βάσεις Δεδομένων 1

61

ΟΝΤΟΤΗΤΕΣ -ΣΥΣΧΕΤΙΣΕΙΣ Πίνακας βασικών εννοιολογικών εννοιών (οι δοµές)

Έννοια

ΆτυποςΟρισµός

Παραδείγµατα

ΤΥΠΟΣΟΝΤΟΤΗΤΑΣ

Ένα σύνολοδιακεκριµένωναντικειµένων

Προµηθευτής, Εξάρτηµα, ΑποστολήΥπάλληλος, Τµήµα, ΠρόσωποΣύνδεση, ΚονσέρτοΟρχήστρα, ΜαέστροςΠαραγγελία. Γραµµήπαραγγελίας

ΓΝΩΡΙΣΜΑ/Ι∆ΙΟΤΗΤΑ

Μιαπληροφορίαπουπεριγράφειέναν τύποοντότητας

Κωδικός ΠροµηθευτήΠοσότητα ΑποστολήςΌνοµα υπαλλήλου∆ιεύθυνση υπαλλήλουΗµεροµηνίαπαραγγελίας

ΤΥΠΟΣΣΥΣΧΕΤΙΣΗΣ

Ορίζει ένασύνολοσυνδέσεωνδύο ήπερισσότερωντύπωνοντοτήτων

Αποστέλλει(προµηθευτής-εξάρτηµα)∆ιευθύνει (Υπάλληλος-τµήµα)Ηχογράφηση (σύνδεση-ορχήστρα – µαέστρος)

Page 62: Βάσεις Δεδομένων 1

62

ΤΥΠΟΙ ΓΝΩΡΙΣΜΑΤΩΝ-ΣΥΜΒΟΛΙΣΜΟΣ-

απλά ή ατοµικά

σύνθετατιµή: συνένωση των τιµών των απλών γνωρισµάτων

που το αποτελούν

ΕΡΓΑΖΟΜΕΝΟΣ

Αρ Ταυτ ∆ιεύθυνση

Πόλη

Οδός Νοµός Αριθµός

Τ.Κ.

Σύνθετο

Απλό

Page 63: Βάσεις Δεδομένων 1

63

ΤΥΠΟΙ ΓΝΩΡΙΣΜΑΤΩΝ -ΣΥΜΒΟΛΙΣΜΟΣ-

• µονότιµα

πλειότιµα σύνολο από τιµές (κάτω-πάνω όριο)

ΕΡΓΑΖΟΜΕΝΟΣ

Αρ Ταυτ Πτυχία

Πλειότιµα Μονότιµα

ΑΥΤΟΚΙΝΗΤΑ

Χρώµατα Αρ πλαισίου

τηλέφωνα

Page 64: Βάσεις Δεδομένων 1

64

ΤΥΠΟΙ ΓΝΩΡΙΣΜΑΤΩΝ -ΣΥΜΒΟΛΙΣΜΟΣ-

Τύποι Γνωρισµάτων

απλά ή ατοµικά

σύνθετατιµή: συνένωση των τιµών των απλών γνωρισµάτων

που το αποτελούν

ΕΡΓΑΖΟΜΕΝΟΣ

Αρ Ταυτ ∆ιεύθυνση

Πόλη

Οδός Νοµός Αριθµός

Τ.Κ.

Σύνθετο

Απλό

Page 65: Βάσεις Δεδομένων 1

65

ΤΥΠΟΙ ΓΝΩΡΙΣΜΑΤΩΝ-ΣΥΜΒΟΛΙΣΜΟΣ-

παραγόµενα: µπορεί να υπολογιστεί από σχετιζόµενες οντότητες ή γνωρίσµατα

ΕΡΓΑΖΟΜΕΝΟΣ ΤΜΗΜΑ ΕΡΓΑΖΕΤΑΙ

Ηλικία Ηµ_Γεν Όνοµα Αριθ_Εργαζοµένων

Παραγόµενα γνωρίσµατα

Ηθοποιός

Ηµερ. Γέννησης Ηλικία

Page 66: Βάσεις Δεδομένων 1

66

ΤΥΠΟΙ ΓΝΩΡΙΣΜΑΤΩΝ -ΣΥΜΒΟΛΙΣΜΟΣ-

Τύποι Γνωρισµάτων

απλά ή ατοµικά

σύνθετατιµή: συνένωση των τιµών των απλών γνωρισµάτων

που το αποτελούν

ΕΡΓΑΖΟΜΕΝΟΣ

Αρ Ταυτ ∆ιεύθυνση

Πόλη

Οδός Νοµός Αριθµός

Τ.Κ.

Σύνθετο

Απλό

Page 67: Βάσεις Δεδομένων 1

67

Η ΕΝΝΟΙΑ ΤΟΥ ΚΛΕΙ∆ΙΟΥ Γνωρίσµατα-Κλειδιά ενός Τύπου Οντοτήτων.

Η έννοια του κλειδιού [περιορισµός κλειδιού ή µοναδικότητας]

Οι τιµές κάποιου γνωρίσµατος (ή γνωρισµάτων) προσδιορίζουν µία οντότητα µοναδικά

(δηλαδή, δεν µπορεί να υπάρχουν δυο οντότητες µε τις ίδιες τιµές στα γνωρίσµατα κλειδιά)

το κλειδί µπορεί να είναι σύνολο γνωρισµάτων ΕΡΓΑΖΟΜΕΝΟΣ ΕΡΓΟ ΑΠΑΣΧΟΛΕΙΤΑΙ

Όνοµα Αρ Ταυτ Τοποθεσία

γνωρίσµατα κλειδιά

κωδικός

Page 68: Βάσεις Δεδομένων 1

68

Η ΕΝΝΟΙΑ ΤΟΥ ΚΛΕΙ∆ΙΟΥ

• Υπερκλειδί: σύνολο από ένα η περισσότερα γνωρίσµατα που προσδιορίζουν µοναδικά µια οντότητα (superkey)

• Υποψήφιο κλειδί: ελάχιστο (µικρότερο αριθµό γνωρισµάτων) υπερκλειδί (candidate key)

• Πρωτεύον κλειδί: το υποψήφιο κλειδί που επιλέγουµε (primary key)

Ισχύει: υπερκλειδί ⊇ κάθε υποψήφιο κλειδί

Page 69: Βάσεις Δεδομένων 1

69

Η ΕΝΝΟΙΑ ΤΟΥ ΚΛΕΙ∆ΙΟΥ

Π.χ. Στον τύπο οντοτήτων ΕΡΓΑΖΟΜΕΝΟΣ ο Αριθµός ταυτότητας του εργαζόµενου είναι υπέρ- κλειδί αφού χαρακτηρίζει µοναδικά την κάθε οντότητα

Αλλά και τα Αρ_Ταυτ, Όνοµα και Αρ_Ταυτ, ΑΦΜ, Αρ_Ασφάλισης είναι υπερ-κλειδιά

Μεταξύ των υπερ-κλειδιών, τα ελάχιστα κλειδιά(αυτά δηλαδή που κανένα υποσύνολο των γνωρισµάτων τους δεν είναι και αυτό υπερ-κλειδί) είναι υποψήφια κλειδιά

Για παράδειγµα, το Αρ_Ταυτ είναι υποψήφιο κλειδί αλλά το Αρ Ταυτ, Όνοµα δεν είναι.

Μεταξύ των υποψηφίων κλειδιών, ορίζουµε ένανα είναι το πρωτεύον κλειδί

Page 70: Βάσεις Δεδομένων 1

70

ΣΥΣΧΕΤΙΣΕΙΣ

ΣυσχετίσειςΤύπος συσχέτισης Rορίζει µια σύνδεση (σχέση) µεταξύ n τύπων οντοτήτων

Παίζει

Ηθοποιός

Ταινία

ΕΡΓΑΖΟΜΕΝΟΣ ΤΜΗΜΑ ΕΡΓΑΖΕΤΑΙ

Τύπος Συσχέτισης

Συχνά ως ένα σύνολο/πίνακα

Μαθηµατικά το R είναι ένα σύνολο από στιγµιότυπα συσχετίσεων ri όπου κάθε riσυνδέει n οντότητες.

R υποσύνολο καρτεσιανού γινοµένου

Page 71: Βάσεις Δεδομένων 1

71

ΣΥΣΧΕΤΙΣΕΙΣ Ιδιότητες των ΤΥΠΩΝ ΣΥΣΧΕΤΙΣΕΩΝ

.

ΕΡΓΑΖΟΜΕΝΟΣ

ΕΠΙΒΛΕΠΕΙ

1 N

ΠΡΟΣΤΑΤΕΥΕΙ

ΕΞΑΡΤΩΜΕΝΟΣ

1

N

ΕΡΓΑΖΕΤΑΙ ΣΕ

ΑΠΑΣΧΟΛΕΙΤΑΙ

∆ΙΕΥΘΥΝΕΙ

N 1

1 1

MN

ΤΜΗΜΑ

ΕΡΓΟ

ΕΛΕΓΧΕΙ

1

N

προϊστάµενος υφιστάµενος

-Περισσότεροι του ενός τύποι συσχετίσεων µπορεί να υπάρχουν µεταξύ των ιδίων τύπων οντοτήτωνπ,χ., Εργαζόµενος-Εργάζεται-Τµήµα,

Εργαζόµενος-∆ιευθύνει-Τµήµα.

-Μια συσχέτιση µπορεί να συνδέει δύο οντότητες που ανήκουν στον ίδιο τύπο οντοτήτων (αναδροµικός τύπος συσχετίσεων)

π.χ., ο τύπος ΕΠΙΒΛΕΠΕΙ συνδέει ΕΡΓΑΖΟΜΕΝΟ µε κάποιο άλλο ΕΡΓΑΖΟΜΕΝΟ (επιβλέποντα)

Page 72: Βάσεις Δεδομένων 1

72

ΣΥΣΧΕΤΙΣΕΙΣ -ΒΑΘΜΟΣ

Βαθµός ενός τύπου συσχέτισης (degree): είναι το πλήθος των τύπων οντοτήτων που συµµετέχουν

όταν συµµετέχουν 2 τύποι οντοτήτων ---> δυαδική συσχέτιση

όταν συµµετέχουν 3 τύποι οντοτήτων ---> τριαδική συσχέτιση

όταν συµµετέχουν N τύποι οντοτήτων ---> Νια-δική συσχέτιση

ΕΡΓΑΖΟΜΕΝΟΣ ΕΡΓΟ ΑΠΑΣΧΟΛΕΊΤΑΙ

δυαδική συσχέτιση

Πελάτες Προϊόντα

Αντιπρόσωποι

Παραγγελίες

τριαδική συσχέτιση

Page 73: Βάσεις Δεδομένων 1

73

ΣΥΣΧΕΤΙΣΕΙΣ -ΛΟΓΟΣ ΠΛΗΘΙΚΟΤΗΤΑΣ

Ο ΛΟΓΟΣ ΠΛΗΘΙΚΟΤΗΤΑΣ (cardinality) ενός τύπου συσχετίσεων ορίζει το πόσες οντότητες από τον πρώτο τύπο οντοτήτων στην συσχέτιση µπορούν να συνδεθούν µε πόσες οντότητες από τον δεύτερο τύπο οντοτήτων.

(ένα µε ένα) 1 : 1 ένα µε πολλά) 1 : N(πολλά µε ένα ) N : 1 (πολλά µε πολλά) N : M

ΕΡΓΑΖΟΜΕΝΟΣ ΤΜΗΜΑ ΕΡΓΑΖΕΤΑΙ

Λόγος πληθικότητας Ν:1

ΕΡΓΑΖΟΜΕΝΟΣ ΤΜΗΜΑ ∆ΙΕΥΘΥΝΕΙ

Λόγος πληθικότητας 1:1

11

ΕΡΓΑΖΟΜΕΝΟΣ ΕΡΓΟ ΑΠΑΣΧΟΛΕΊΤΑΙ

Λόγος πληθικότητας Μ:Ν

ΝΜ

Page 74: Βάσεις Δεδομένων 1

74

ΛΟΓΟΣ ΠΛΗΘΙΚΟΤΗΤΑΣ

(ένα µε ένα) 1 : 1(ένα µε πολλά) 1 : N(πολλά µε ένα ) N : 1(πολλά µε πολλά) N : M

Page 75: Βάσεις Δεδομένων 1

75

ΑΝΑ∆ΡΟΜΙΚΕΣ ΣΥΣΧΕΤΙΣΕΙΣ

Ένας τύπος που συµµετέχει σε µια σχέση παίζει ένα συγκεκριµένο ρόλο

Αναδροµικοί τύποι συσχετίσεων

όταν ο ίδιος τύπος συµµετέχει περισσότερες από µια φορές

Παραδείγµαταεργαζόµενος/διευθυντής, Μάθηµα/Προαπαιτούµενο Μάθηµα

Page 76: Βάσεις Δεδομένων 1

76

ΓΝΩΡΙΣΜΑΤΑ ΤΥΠΩΝ ΣΥΣΧΕΤΙΣΕΩΝ

Οι τύποι συσχετίσεων µπορεί να έχουν και γνωρίσµατα

Παράδειγµα (ώρες απασχόλησης, ηµεροµηνία έναρξης)

ΕΡΓΑΖΟΜΕΝΟΣ ΕΡΓΟ ΑΠΑΣΧΟΛΕΙΤΑΙ

Όνοµα Αρ Ταυτ Τοποθεσία κωδικός

ώρες απασχόλησης

ΦΟΙΤΗΤΗΣ ΜΑΘΗΜΑ ΚΑΤΩΧΥΡΩΝΕΙ

Όνοµα Αρ_Μητρώου Περιγραφή κωδικός

Βαθµός

Page 77: Βάσεις Δεδομένων 1

77

ΣΥΣΧΕΤΙΣΕΙΣ -ΟΛΙΚΗ ΣΥΜΜΕΤΟΧΗ

Η συµµετοχή ενός συνόλου οντοτήτων Ε σε ένα σύνολο συσχετίσεων R είναι ολική ανκάθε οντότητα του Ε συµµετέχει τουλάχιστονσε µια συσχέτιση στο R

Αν κάποιες οντότητες του ΕΡΓΑΖΟΜΕΝΟΣ δεν συµµετέχουν στην ∆ΙΕΥΘΥΝΕΙ τότε µερική συµµετοχή

Page 78: Βάσεις Δεδομένων 1

78

ΑΣΘΕΝΕΙΣ ΤΥΠΟΙ ΟΝΤΟΤΗΤΩΝ

Μη ισχυροί ή ασθενείς τύποι οντοτήτων

Όταν µια οντότητα δεν έχει αρκετά γνωρίσµατα για να σχηµατίσει πρωτεύον κλειδί

Παράδειγµα (εξαρτώµενα µέλη)

ΕΡΓΑΖΟΜΕΝΟΣ

ΜΕΛΗ ΟΙΚΟΓΕΝΕΙΑΣ ΠΡΟΣΤΑΤΕΥΕΙ

Όνοµα Αρ Ταυτ Φύλλο

ασθενής τύπος οντότητας

Όνοµα ΗµΓεν

Page 79: Βάσεις Δεδομένων 1

79

ΑΣΘΕΝΕΙΣ ΤΥΠΟΙ ΟΝΤΟΤΗΤΩΝ

Μια ασθενής οντότητα Ε πρέπει να συµµετέχει µε ολική συµµετοχή σε µια ένα-προς-πολλά συσχέτιση R µε ένα τύποοντοτήτων F

R: προσδιορίζουσα συσχέτιση, F: προσδιορίζοντα ιδιοκτήτη

Προσδιορίζεται µοναδικά από

µερικό κλειδί (γνωρίσµατα της Ε) + κλειδί της F

Page 80: Βάσεις Δεδομένων 1

80

ΤΥΠΟΙ ΜΕ ΒΑΘΜΟ ΜΕΓΑΛΥΤΕΡΟ ΤΟΥ ∆ΥΟ

Τύποι µε βαθµό µεγαλύτερο του δύο Μετατροπή τους σε δυαδικούς

Πελάτες Προϊόντα

Αντιπρόσωποι

Παραγγελίες

Παράδειγµα µετατροπής

Παραγγελίες

Πελάτες Αντιπρόσωποι Προϊόντα

Page 81: Βάσεις Δεδομένων 1

81

ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ-ΣΥΣΧΕΤΙΣΕΩΝ Ανακεφαλαίωση:

• Μοντελοποίηση του προβλήµατος χρησιµοποιώντας το µοντέλο Οντοτήτων-Συσχετίσεων [Chen, 1976]

• ∆οµές: Τύποι Οντοτήτων και Τύποι Συσχετίσεων ανάµεσα σε τύπους οντοτήτων που Περιγράφουν το σχήµα

• Η έννοια του κλειδιού

• Πληθικότητα µιας συσχέτισης (για δυαδικές: 1-1, 1-Μ, Μ-Ν)

• Ολική συµµετοχή

Ασθενής τύπος οντοτήτων: απαιτεί γνωρίσµατα από έναν (ή περισσότερους) σχετιζόµενους τύπους οντοτήτων για τη διάκριση των οντοτήτων του

Προσδιορίζουσα συσχέτιση - προσδιορίζον τύπος οντοτήτων

Συσχετίσεις πολλαπλού βαθµού

Page 82: Βάσεις Δεδομένων 1

82

ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ-ΣΥΣΧΕΤΙΣΕΩΝ Ανακεφαλαίωση:

ΤΥΠΟ Σ ΟΝΤΟ ΤΗΤΩΝ

Μ Η ΙΣΧΥ ΡΟ Σ ΤΥΠΟ Σ ΟΝΤΟ ΤΗΤΩΝ

ΤΥΠΟ Σ ΣΥ ΣΧ ΕΤ ΙΣΕΩΝ

ΤΥ ΠΟ Σ Π ΡΟ Σ∆ ΙΟ Ρ ΙΖΟ Υ ΣΑ Σ ΣΥ ΣΧ ΕΤ ΙΣΗ Σ

ΓΝΩ Ρ ΙΣΜ Α

ΓΝ Ω Ρ ΙΣΜ Α -ΚΛ Ε Ι∆ Ι

ΠΛ Ε ΙΟ Τ ΙΜ Ο ΓΝΩ Ρ ΙΣΜ Α

ΣΥΝΘΕΤΟ ΓΝΩ ΡΙΣΜ Α

ΠΑΡΑΓΟΜ ΕΝΟ ΓΝΩ ΡΙΣΜ Α

ΟΛ ΙΚΗ ΣΥΜ Μ ΕΤΟΧΗ ΤΗ Σ Ε 2 ΣΤΗΝ R

ΛΟΓΟ Σ ΠΛΗΘ ΙΚΟ ΤΗ ΤΑ Σ 1 :Ν

Ε 1 Ε 2 R

Ε 1 Ε 2 R 1 Ν

Page 83: Βάσεις Δεδομένων 1

83

ΛΟΓΙΚΟΣ ΣΧΕ∆ΙΑΣΜΟΣ -ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

ΛΟΓΙΚΟΣ ΣΧΕ∆ΙΑΣΜΟΣ -ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

Page 84: Βάσεις Δεδομένων 1

84

ΛΟΓΙΚΟΣ ΣΧΕ∆ΙΑΣΜΟΣ -ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

Ο Σχεδιασµός µιας Β∆ απαιτεί

• την ανάλυση ποιας πληροφορίας και της σχέσης ανάµεσα στα στοιχεία της

• την περιγραφή της δοµής - σχήµα σε διάφορους συµβολισµούς ή µοντέλα όπως το Μοντέλο Οντοτήτων - Συσχετίσεων

• τη Μετατροπή του µοντέλου Ο-Σ σε σχεσιακό µοντέλο --> είσοδο σε ένα ΣΣ∆Β∆

Λογικός Σχεδιασµός Εξάρτηση από το Σ∆Β∆

ΕννοιολογικόςΣχεδιασµός Λογικό Σχήµα και

Εξωτερικές ΌψειςΕννοιολογικό Σχήµα

Σχεσιακό Μοντέλο δεδοµένωνδιάγραµµα

Οντοτήτων-Συσχετίσεων

Page 85: Βάσεις Δεδομένων 1

85

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

Το σχεσιακό µοντέλο πρωτοπαρουσιάσθηκε από τον Ted Codd της IBM Research το 1970 σε µια κλασική εργασία [Codd 1970] και τα πρώτα συστήµατα που βασίστηκαν σε αυτό ήταν τα INGRES και System/R.

Το σχεσιακό µοντέλο είναι τώρα το κυρίαρχο µοντέλο σε όλες σχεδόν τις υλοποιήσεις βάσεων δεδοµένων.

Μία σχεσιακή βάση δεδοµένων αποτελείται από µία συλλογή από κανονικοποιηµένους πίνακες (σχέσεις) που έχουν µοναδικά ονόµατα.

Page 86: Βάσεις Δεδομένων 1

86

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

Το σχεσιακό µοντέλο δεδοµένων έχει:

(1) δοµές,

(2) δοµικούς περιορισµούς και

(3) Πράξεις πάνω στις δοµές.

∆οµές (structures): είναι οι σχέσεις (πίνακες) που αναπαριστούν τα αντικείµενα του µικρόκοσµου, π.χ. το σύνολο των υπαλλήλων

Περιορισµοί (constraints) πάνω στις δοµές: Π.χ. "κανένας υπάλληλος δεν παίρνει µισθό µεγαλύτερο του προϊστάµενου του" κοκ. Οι δοµικοί περιορισµοί διακρίνονται σε έµφυτους (inherent) και ρητούς (explicit)

Σχεσιακές Πράξεις (relational operations)πάνω στις δοµές: αν π.χ. αναφερόµαστε σε σύνολα (σχέσεις), η τοµή, η ένωση, η διαφορά δύο συνόλων είναι πράξεις.

Page 87: Βάσεις Δεδομένων 1

87

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ∆οµές (structures)

Μόνο µία δοµή : σχέσεις (relations) (που έχουν όνοµα)

Ένας απλός τρόπος αναπαράστασης δεδοµένων: ένας διδιάστατος πίνακας που λέγεται Σχέση

Πίνακας (τιµών): αναπαράσταση µιας σχέσης, όπου κάθε γραµµή παριστάνει µια συλλογή από τιµές δεδοµένων που σχετίζονται.

ΓνωρίσµαταΓνωρίσµατα

ΣέρρεςΕρµού 24Βλάχου

ΒόλοςΡοζού 7Αρµένης

ΛάρισαΓαλλίας 47Ευσταθίου

ΣέρρεςΌγλ 25Κυριάκου

πόληδιεύθυνσηόνοµα-πελάτη

Συστοιχίες Συστοιχίες ή πλειάδεςή πλειάδες

πελάτηςπελάτης

Σχήµα σχέσης R που δηλώνεται R(A1, A2, …,An) αποτελείται από ένα όνοµα σχέσης και µια λίστα από γνωρίσµατα.

Π.χ. Πελάτης (όνοµα-πελάτη, διεύθυνση,πόλη)

Page 88: Βάσεις Δεδομένων 1

88

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ∆οµές (structures) -φορµαλισµός-συµβολισµοί

Βαθµός : το πλήθος των γνωρισµάτων της σχέσης

Οι γραµµές της σχέσης (εκτός της επικεφαλίδας) ονοµάζονται συστοιχίες ή πλειάδες.

Μια συστοιχία ή πλειάδα (tuple) t µιας Σχέσης R(A1 ,A2 , ... An). είναι µια (διατεταγµένη) λίστα τιµών t = <v1 , v2 , ... vn >, όπου κάθε τιµή v, είναι ένα στοιχείο του πεδίου τιµών D(Ai).

Μία σχέση r ή r(R) (ή ένα στιγµιότυπο r του σχήµατος σχέσης R) είναι ένα σύνολο από πλειάδες.r(R) = t1 , t2 , ... tk

Η πληθικότητα (cardinality) της σχέσης R είναι ο αριθµός των πλειάδων στην r(R)

ένα πεδίο ορισµού (domain) είναι µια δεξαµενή τιµών από την οποία τα συγκεκριµένα γνωρίσµατα των συγκεκριµένων σχέσεων αντλούν τις τιµές

Page 89: Βάσεις Δεδομένων 1

89

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ∆οµές (structures) -φορµαλισµός-συµβολισµοί

Υποψήφιο κλειδί ή απλά κλειδί σε µία σχέση είναι ένα σύνολο από γνωρίσµατα που έχουν µοναδικές τιµές για κάθε συστοιχία. Μπορεί να υπάρχουν πολλά υποψήφια κλειδιά σε µία σχέση (χρήση στα ευρετήρια).

Το πρωτεύον κλειδί (primary key) είναι ένα µοναδικό αναγνωριστικό για την κάθε συστοιχία της σχέσης

Ξένο Κλειδί (foreign key)) σε µία σχέση R1 είναι ένα σύνολο από γνωρίσµατα που χρησιµοποιείται σαν πρωτεύον κλειδί σε µία άλλη σχέση R2.

Εργαζόµενοι ΤµήµαταΚωδικός Επώνυµο Όνοµα Τµήµα Μισθός

13 Γεωργίου ∆ήµητρα 1 1000 15 Ιωάννου Ελισάβετ 2 1200 17 Ψυχάρης Γιώργος 4 2300 18 Μάλλιος Φίλιππος 2 2200

Τµήµα Περιγραφή Τοποθεσία 1 Μάρκετινγκ Αθήνα 2 Πωλήσεις Αθήνα 3 Προµήθειες Θεσ/νίκη 4 ∆ιοίκηση Θεσ/νίκη

Πρωτεύον κλειδί ξένο κλειδί Πρωτεύον κλειδί

Page 90: Βάσεις Δεδομένων 1

90

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ∆οµές (structures) -φορµαλισµός-συµβολισµοί

Ένα Σχήµα Βάσης ∆εδοµένων S είναι ένα σύνολο από σχέσεις R1, R2, …,Rm. Ένα Σχήµα Βάσης ∆εδοµένων συµβολίζεται µε S =R1, R2,.. ,Rm.

Παράδειγµα - σχήµατος βάσης δεδοµένων

Ταινία(τίτλος, χρόνος, διάρκεια, είδος)

Παίζει(όνοµα-ηθοποιού, τίτλος, χρόνος)

Ηθοποιός(όνοµα, διεύθυνση, έτος-γέννησης)

Ταινία Τίτλος Έτος ∆ιάρκεια Είδος

Παίζει Όνοµα-Ηθοποιού Τίτλος Έτος

Όνοµα ∆ιεύθυνση Έτος-Γέννησης

Ηθοποιός

Page 91: Βάσεις Δεδομένων 1

91

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ∆οµές (structures)

∆ιάγραµµα Ο-Σ για έναν τραπεζικό οργανισµό

όνοµα-πελάτη οδός

πόλη αριθµός-δανείουποσό

πελάτης δάνειοδανειζόµενοςδανειζόµενος

υπόλοιπο

αριθµός-λογαριασµού

λογαριασµός

όνοµα-υποκαταστήµατος

πόλη-υποκαταστήµατος

υποκατάστηµα

ενεργητικό

καταθέτηςκαταθέτης

λογαριασµός-υποκαταστήµατος

δάνειο-υποκαταστήµατος

Σχεσιακό σχήµα της βάσης δεδοµένων του τραπεζικού οργανισµού

Υποκατάστηµα (Όνοµα-Υποκαταστήµατος, Πόλη, Ενεργητικό)Λογαριασµός (Όνοµα-Υποκαταστήµατος, Αριθµός-λογαριασµού, Υπόλοιπο)∆άνειο (Όνοµα-Υποκαταστήµατος, Αριθµός-∆ανείου, Ποσό)∆ανειζόµενος (Όνοµα-Πελάτη, Αριθµός-∆ανείου) Πελάτης (Όνοµα-Πελάτη, Οδός, Πόλη)Καταθέτης (Όνοµα-Πελάτη, Αριθµός-Λογαριασµού)

Page 92: Βάσεις Δεδομένων 1

92

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ∆οµές (structures)

Υποκατάστηµα (Όνοµα-Υποκαταστήµατος, Πόλη, Ενεργητικό)Λογαριασµός (Όνοµα-Υποκαταστήµατος, Αριθµός-λογαριασµού, Υπόλοιπο)∆άνειο (Όνοµα-Υποκαταστήµατος, Αριθµός-∆ανείου, Ποσό)∆ανειζόµενος (Όνοµα-Πελάτη, Αριθµός-∆ανείου) Πελάτης (Όνοµα-Πελάτη, Οδός, Πόλη)Καταθέτης (Όνοµα-Πελάτη, Αριθµός-Λογαριασµού)

Εναλλακτικός τρόπος γραφής του σχήµατος:

ενεργητικό

πόλη

όνοµα-υποκαταστήµατος

Υποκατάστηµα

ενεργητικό

πόλη

όνοµα-υποκαταστήµατος

Υποκατάστηµα

υπόλοιπο

όνοµα-υποκαταστήµατος

αριθµός-λογαριασµού

Λογαριασµός

υπόλοιπο

όνοµα-υποκαταστήµατος

αριθµός-λογαριασµού

Λογαριασµός

αριθµός-λογαριασµού

όνοµα-πελάτη

Καταθέτης

αριθµός-λογαριασµού

όνοµα-πελάτη

Καταθέτης

πόλη

οδός

όνοµα-πελάτη

Πελάτης

πόλη

οδός

όνοµα-πελάτη

Πελάτης

ποσό

όνοµα-υποκαταστήµατος

αριθµός-δανείου

∆άνειο

ποσό

όνοµα-υποκαταστήµατος

αριθµός-δανείου

∆άνειο

αριθµός-δανείου

όνοµα-πελάτη

∆ανειζόµενος

αριθµός-δανείου

όνοµα-πελάτη

∆ανειζόµενος

Page 93: Βάσεις Δεδομένων 1

93

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

∆οµές (structures)

Μια βάση δεδοµένων αποτελείται από πολλαπλές σχέσειςΗ πληροφορία σχετικά µε µια εταιρία διασπάται σε κοµµάτια, Π.χ.: λογαριασµός = αποθηκεύει πληροφορία για τους λογαριασµούςκαταθέτης = αποθηκεύει πληροφορία σχετική µε το ποιος πελάτης κατέχει ποιον λογαριασµόπελάτης = αποθηκεύει πληροφορία σχετική µε τους πελάτεςΑποθηκεύοντας όλη την πληροφορία ως µια µεµονωµένη σχέση όπως τράπεζα(αριθµός-λογαριασµού, υπόλοιπο, όνοµα-πελάτη, …)καταλήγει στην επανάληψη πληροφορίας (π.χ. δύο πελάτες κατέχουν έναν λογαριασµό)η ανάγκη για τιµές null (π.χ. αναπαράσταση ενός πελάτη δίχως λογαριασµό)Θεωρία κανονικοποίησης ασχολείται µε τη σχεδίαση σχεσιακών σχηµάτων

Page 94: Βάσεις Δεδομένων 1

94

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ∆οµές (structures) -συµβολισµοί

Τα Α1, Α2, …, Αn είναι γνωρίσµατα

Το R=(Α1, Α2, …, Αn) είναι ένα σχήµα-σχέσης

Π.χ. σχήµα-πελάτης = (όνοµα-πελάτη, όνοµα-οδού, όνοµα-πόλης)

r(R) είναι µια σχέση στο σχήµα-σχέσης R

Π.χ. πελάτης = (σχήµα-πελάτης)

πλειάδα t όπου t=<v1, v2, …, vn>, όπου vi η τιµή για το γνώρισµα Αi.

t[Ai] ή t.Ai τιµή της vi

t[Au, Aw, …, Az] t.(Au, Aw, …, Az) λίστα από γνωρίσµατα και οι αντίστοιχες τιµές

Q, R, S ονόµατα σχέσεων

q, r, s καταστάσεις σχέσεων

t, u, v πλειάδες

όνοµα_σχέσης.γνώρισµα

Page 95: Βάσεις Δεδομένων 1

95

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ∆οµές (structures)

Τυπικός σχεσιακός όρος Άτυποι ισοδύναµοι όροισχέση πίνακαςσυστοιχία ή πλειάδα γραµµή ή εγγραφήπληθικότητα αριθµός γραµµώνγνώρισµα στήλη ή πεδίοβαθµός αριθµός στηλώνπρωτεύον κλειδί µοναδικό αναγνωριστικόπεδίο ορισµού δεξαµενή επιτρεπτών τιµών

Page 96: Βάσεις Δεδομένων 1

96

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

∆οµές (structures)

Μεταξύ των δοµών του Μοντέλου Οντοτήτων-Συσχετίσεων (E-R) και Σχεσιακού Μοντέλου υπάρχουν οι εξής σαφείς αντιστοιχίες:

Μοντέλο E-R………………………Σχεσιακό Μοντέλο

Τύπος Οντοτήτων…………………..Σχέση

Οντότητα…………………………...Συστοιχία ή Πλειάδα

Γνώρισµα…………………………..Γνώρισµα

Τύπος Συσχετίσεων………………...Σχέση

Page 97: Βάσεις Δεδομένων 1

97

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

∆οµές (structures)

Χαρακτηριστικά των σχέσεων

Μία σχέση είναι ένα σύνολο από γνωρίσµατα µε τιµές για κάθε γνώρισµα τέτοιες ώστε να ισχύουν οι παρακάτω ιδιότητες σχέσης:

1. Κάθε όνοµα γνωρίσµατος (όνοµα στήλης) είναι µοναδικό.

2. Όλες οι τιµές κάθε γνωρίσµατος είναι ίδιου τύπου (ή πεδίου ορισµού).

3. Κάθε τιµή γνωρίσµατος είναι ατοµική (µία τιµή και όχι οµάδα τιµών).

4. Τα γνωρίσµατα δεν έχουν διάταξη από τα αριστερά προς τα δεξιά.

5. Οι συστοιχίες (γραµµές) δεν έχουν διάταξη από επάνω προς τα κάτω.

6. ∆εν υπάρχουν δύο ίδιες συστοιχίες (γραµµές) σε µία σχέση.

Page 98: Βάσεις Δεδομένων 1

98

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

∆οµές (structures)

Ένας πίνακας που αποτελείται από επικεφαλίδες στηλών και τιµές δεδοµένων σε κάθε στήλη αντιστοιχεί σε σχέση µόνο όταν έχει και τα έξη χαρακτηριστικά της σχέσης.

Τότε ονοµάζεται κανονικοποιηµένος πίνακας πρώτου βαθµού.

Οι συνδέσεις µεταξύ των πινάκων επιτυγχάνονται µόνο µέσω των τιµών των κοινών πεδίων σύνδεσής τους (πρωτεύον κλειδί και ξένο κλειδί).

Page 99: Βάσεις Δεδομένων 1

99

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

∆οµικοί περιορισµοί

Οι περιορισµοί ορίζονται στο σχήµα µιας βάσης δεδοµένων και αναµένεται να ισχύουν σε κάθε στιγµιότυπο βάσης δεδοµένων αυτού του σχήµατος.

Υπάρχουν περιορισµοί που είναι έµφυτοι στο σχεσιακό µοντέλο:

1. Περιορισµός κλειδιού (KEY CONSTRAINT),

2. Ακεραιότητας οντότητας (ENTITY INTEGRITY),

3. Ακεραιότητας αναφορών (REFERENTIALINTEGRITY.)

Υπάρχουν και ρητοί περιορισµοί :

1. Περιορισµοί πεδίου ορισµού (DOMAIN),

2. Περιορισµοί Σηµασιολογικής Ακεραιότητας

Page 100: Βάσεις Δεδομένων 1

100

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ∆οµικοί περιορισµοί

Μια σχέση ορίζεται ως ένα σύνολο πλειάδων(συστοιχίες ή γραµµές του πίνακα), άρα όλες οι πλειάδες πρέπει να είναι διαφορετικές.

Περιορισµός κλειδιού: Κάθε σχέση πρέπει να έχει ένα πρωτεύον κλειδί (primary key) για να εξασφαλίζεται η µοναδικότητα των συστοιχιών

Τα διαφορετικά κλειδιά, όπως ορίστηκαν στο µοντέλο Ε-R, ισχύουν και στο Σχεσιακό Μοντέλο.

• Υπερκλειδί: σύνολο από ένα η περισσότερα γνωρίσµατα που προσδιορίζουν µοναδικά µια πλειάδα

Στη σχέση ΕΡΓΑΖΟΜΕΝΟΣ τα Αρ_Ταυτ, Αρ_Ταυτ, Όνοµα , Αρ_Ταυτ, ΑΦΜ, Αρ_Ασφάλισης είναι υπερ-κλειδιά

• Υποψήφιο κλειδί: ελάχιστο (µικρότερο αριθµό γνωρισµάτων) υπερκλειδί (candidate key)

•Π.χ. τα Αρ_Ταυτ, ΑΦΜ, Αρ_Ασφάλισης

• Πρωτεύον κλειδί: το υποψήφιο κλειδί που ορίζουµε να είναι το πρωτεύον κλειδί

Page 101: Βάσεις Δεδομένων 1

101

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

∆οµικοί περιορισµοί

Ακεραιότητας οντότητας: Ένα πρωτεύον κλειδί δεν µπορεί να περιέχει τιµή Null (κενό ή άγνωστο).

Περιορισµός Ακεραιότητας οντότητας

Παράδειγµα υλοποίησης στην SQLcreate table Πελάτης

(Όνοµα-Πελάτη char(20) not null, Οδός char(30), Πόλη char(30), primary key (Όνοµα-Πελάτη) )

Περιορισµός κλειδιού:

Page 102: Βάσεις Δεδομένων 1

102

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ

∆οµικοί περιορισµοί

Ακεραιότητα αναφορών: ∆εν είναι δυνατόν να υπάρχει µία τιµή ξένου κλειδιού σε µία σχέση R1 η οποία δεν αντιστοιχεί σε καµία τιµή του πρωτεύοντος κλειδιού της άλλης σχέσης R2.

Ένα σύνολο από γνωρίσµατα FK ενός σχήµατος σχέσης R1 είναι ένα ξένο κλειδί του R1 αν τα γνωρίσµατα του FK έχουν το ίδιο πεδίο µε το πρωτεύον κλειδί PK ενός άλλου σχήµατος R2

Παράδειγµα υλοποίησης στην SQLcreate table Εργαζόµενοι

………………………..foreign key (Τµήµα) references Τµήµατα

on delete cascadeon update cascade

Εργαζόµενοι ΤµήµαταΚωδικός Επώνυµο Όνοµα Τµήµα Μισθός

13 Γεωργίου ∆ήµητρα 1 1000 15 Ιωάννου Ελισάβετ 2 1200 17 Ψυχάρης Γιώργος 4 2300 18 Μάλλιος Φίλιππος 2 2200

Τµήµα Περιγραφή Τοποθεσία 1 Μάρκετινγκ Αθήνα 2 Πωλήσεις Αθήνα 3 Προµήθειες Θεσ/νίκη 4 ∆ιοίκηση Θεσ/νίκη

Πρωτεύον κλειδί ξένο κλειδί Πρωτεύον κλειδί

Page 103: Βάσεις Δεδομένων 1

103

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ∆οµικοί περιορισµοί

Ρητοί περιορισµοί είναι οι περιορισµοί που δηλώνει ο σχεδιαστής της Β∆. Περιορισµοί πεδίου ορισµού: καθορίζουν ότι η τιµή κάθε γνωρίσµατος Α πρέπει να είναι µια ατοµική τιµή από το πεδίο ορισµού dom(A) αυτού του γνωρίσµατος (π.χ. "small integers" ή "integers between 1 and 10" κλπ). Συνήθως οι βασικοί τύποι δεδοµένων char, number, date.

Χρησιµοποιώντας την εντολή check στην SQL: (1) Ελάχιστο ωροµίσθιοcreate domain Ωροµίσθιο numeric(5, 2)constraint Έλεγχος-Ωροµισθίου check(Ποσό >= 4.00)

(2) Να µην περιέχει την τιµή null create domain Πεδίο-Αριθµός-Λογαριασµού char(10) constraint Έλεγχος-Αριθµός-Λογαριασµού check(value not null)

(3) Να παίρνει συγκεκριµένες τιµέςcreate domain Τύπος-Λογαριασµού char(10) constraint Έλεγχος-Τύπος-Λογαριασµού check value in("Όψεως”, "Ταµιευτηρίου”)

Page 104: Βάσεις Δεδομένων 1

104

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ∆οµικοί περιορισµοί

Περιορισµοί Σηµασιολογικής Ακεραιότητας: Για την υποστήριξη επιχειρηµατικών κανόνων, απαιτούνται περιορισµοί ακεραιότητας µε σηµαντική πολυπλοκότητα.π.χ. ο µισθός ενός εργαζόµενου δεν µπορεί να υπερβαίνει τον µισθό του προϊσταµένου του. Χρησιµοποιείται γλώσσα προσδιορισµού περιορισµών γενικού σκοπού (σκανδάλες (triggers) ή βεβαιώσεις (assertions))

Παράδειγµα υλοποίησης στην SQLcreate assertion περ_µισθούcheck (not exists

(select * from εργαζόµενος as ε, εργαζόµενος as µ,τµήµα as τ)where ε.µισθός > µ.µισθός and ε.αριθ_τ =

τ.κωδ_τµηµ and τ.διευθυντής = µ.αρ_ταυτ) )

DEFINE TRIGGER <όνοµα> ON UPDATE OF SUPPLIERS (………)

Page 105: Βάσεις Δεδομένων 1

105

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟΠράξεις

Οι πράξεις στο Σχεσιακό Μοντέλο είναι δύο ειδών: (α) ενηµερώσεις και (β) ανακτήσεις. Στις ενηµερώσεις, διακρίνουµε τρεις πράξεις:

εισαγωγή πλειάδας (insert), διαγραφή πλειάδας(delete) και τροποποίηση πλειάδας (update).

Από την άλλη πλευρά, οι ανακτήσεις αποτελούν αναζητήσεις µέσα στη Β∆ µε κατάλληλες επερωτήσεις (queries) που διατυπώνει ο χρήστης.

Σηµαντική παρατήρηση αποτελεί το γεγονός ότι το σύνολο των πράξεων στο Σχεσιακό Μοντέλο είναι κλειστό, δηλαδή οι πράξεις ορίζονται πάνω σε Σχέσεις και έχουν αποτέλεσµα νέες Σχέσεις.

Page 106: Βάσεις Δεδομένων 1

106

ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟΠράξεις

Οι περιορισµοί ακεραιότητας δεν πρέπει να παραβιάζονται µε την εκτέλεση µιας πράξης ενηµέρωσης. Για αυτό, ενηµερώσεις µπορεί είτε να απορρίπτονται ή να διορθώνουν µε την εκτέλεση νέων (επιπλέον) ενηµερώσεων.

διαγραφή: µπορεί να παραβιάσει µόνο την αναφορική ακεραιότητα εάν υπάρχουν ξένα κλειδιά που αναφέρονται στη συγκεκριµένα πλειάδα που διαγράφεται.

εισαγωγή: µπορεί να παραβιάσει οποιονδήποτε από τους τύπους περιορισµών

τροποποίηση: είναι απαραίτητο να προσδιοριστεί µια συνθήκη πάνω στα γνωρίσµατα της σχέσης R. Η τροποποίηση ενός γνωρίσµατος συνήθως δεν προκαλεί προβλήµατα

Page 107: Βάσεις Δεδομένων 1

107

ΜΕΤΑΤΡΟΠΗ ∆ΙΑΓΡΑΜΜΑΤΟΣ Ο/Σ ΣΕ ΣΧΕΣΙΑΚΟ ΣΧΗΜΑ

Για κάθε τύπο οντοτήτων και για κάθε τύπο συσχετίσεων δηµιουργούµε ένα σχήµα σχέσης που παίρνει το όνοµα του αντίστοιχου τύπου.

Τύπος οντοτήτωνΤύπος συσχέτισης 1:1 ή 1:ΝΤύπος συσχέτισης Μ:Ν

(και γενικά) n-αδικός τύπος

συσχέτισηςΑπλό γνώρισµαΣύνθετο γνώρισµαΠλειότιµο γνώρισµα

Σχέση (οντοτήτων)Ξένο κλειδί ή Σχέση (συσχέτισης)Σχέση (συσχέτισης) µε 2 ξένα κλειδιά

Σχέση (συσχέτισης) µε n ξένα κλειδιάΓνώρισµαΣύνολο από γνωρίσµαταΣχέση και ξένο κλειδί

Page 108: Βάσεις Δεδομένων 1

108

ΘΕΩΡΙΑ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗΣ

- ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣ-

Page 109: Βάσεις Δεδομένων 1

109

ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣ

Μία συναρτησιακή εξάρτηση περιγράφει τη συσχέτιση (Χ Υ) µεταξύ γνωρισµάτων της ίδιας σχέσης. Ο επίσηµος ορισµός είναι ο παρακάτω:

Ένα γνώρισµα Υ είναι συναρτησιακά εξαρτώµενο από ένα γνώρισµα Χ αν και µόνο αν κάθε τιµή του Χ σχετίζεται µε µία και µόνο µία τιµή του Υ.

∆ηλαδή ένα γνώρισµα είναι συναρτησιακά εξαρτώµενοαπό ένα άλλο αν µπορούµε να χρησιµοποιήσουµε την τιµή του ενός για να προσδιορίσουµε την τιµή του άλλου (να βρούµε την τιµή του µέσα στη σχέση).(το σύµβολο διαβάζεται "προσδιορίζει συναρτησιακά")

ΚωδΦοιτητή Κατεύθυνση-σπουδών

ΚωδΦοιτητή, Μάθηµα, Εξάµηνο Βαθµός

ΚωδΜαθήµατος, Τµήµα Καθηγητής, Αίθουσα, ΑρΦοιτητών

Μοντέλο, Χρονολογία, φόρος Τιµή αυτοκινήτου

Τα γνωρίσµατα στα αριστερά ονοµάζονται προσδιοριστικά. Αν γενικά Χ Α σηµαίνει ότι το Χ προσδιορίζει το Α.

Τα κλειδιά µιας σχέσης είναι προσδιοριστικά (ή αναγνωριστικά)

Page 110: Βάσεις Δεδομένων 1

110

ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣ

ΚΛΕΙ∆ΙΑ ΚΑΙ ΜΟΝΑ∆ΙΚΟΤΗΤΑ

•Κλειδί ή υπερ-κλειδί: ένα ή περισσότερα γνωρίσµατα που προσδιορίζουν µοναδικά µία συστοιχία (πλειάδα ή ολοκληρωµένη εγγραφή)

•Επειδή δεν είναι δυνατόν δύο σχέσεις να έχουν ακριβώς τις ίδιες τιµές, ένα υποψήφιο κλειδί µπορεί να αποτελείται από όλα τα γνωρίσµατα µίας σχέσης.

•Ένα κλειδί προσδιορίζει συναρτησιακά µία συστοιχία.

Το Κ είναι υπερκλειδί για ένα σχήµα σχέσης R αν και µόνο αν Κ R

Το Κ είναι υποψήφιο κλειδί για την R αν και µόνο αν

Κ R, και

δεν υπάρχει α ⊂ K, τέτοιο ώστε α R

Page 111: Βάσεις Δεδομένων 1

111

ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣ

ΠΑΡΑ∆ΕΙΓΜΑΤΑ ΣΥΝΑΡΤΗΣΙΑΚΩΝ ΕΞΑΡΤΗΣΕΩΝ

Λογαριασµός

Υποκατάστηµα

Πελάτης

Καταθέτης

∆άνειο

Όνοµα-Υποκαταστήµατος Αριθµός-Λογαριασµού ΥπόλοιποΌνοµα-Υποκαταστήµατος Αριθµός-Λογαριασµού Υπόλοιπο

Όνοµα-Πελάτη Αριθµός-ΛογαριασµούΌνοµα-Πελάτη Αριθµός-Λογαριασµού

Όνοµα-Πελάτη Οδός ΠόληΌνοµα-Πελάτη Οδός Πόλη

Όνοµα-Υποκαταστήµατος Πόλη Ενεργητικό

Όνοµα-Πελάτη Αριθµός-∆ανείουΌνοµα-Πελάτη Αριθµός-∆ανείου

Όνοµα-Υποκαταστήµατος Αριθµός-∆ανείου Ποσό

∆ανειζόµενος

Τα βέλη δείχνουν δείχνουν προς τα πρωτεύοντα κλειδιά από τα οποία εξαρτώνται συναρτησιακά τα ξένα κλειδιά

Page 112: Βάσεις Δεδομένων 1

112

ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣ

Το σύνολο των συναρτησιακών εξαρτήσεων είναι:1. Περιορισµοί στο σύνολο των νόµιµων σχέσεων2. Απαίτηση ότι η τιµή ενός συγκεκριµένου συνόλου

γνωρισµάτων καθορίζει µε µοναδικό τρόπο την τιµή για ένα άλλο σύνολο γνωρισµάτων .

3. Μια συναρτησιακή εξάρτηση είναι µια γενίκευση της έννοιας κλειδί.

Χρησιµοποιούµε τις συναρτησιακές εξαρτήσεις για:

•να ελέγξουµε τις σχέσεις για να δούµε αν είναι νόµιµες υπό ένα σύνολο δεδοµένων συναρτησιακών εξαρτήσεων

•Να καθορίσουµε όλους τους περιορισµούς στο σύνολο των νόµιµων λειτουργιών

Σηµείωση: Ένα συγκεκριµένο στιγµιότυπο ενός σχεσιακού σχήµατος µπορεί να ικανοποιήσει µια συναρτησιακή εξάρτηση ακόµη και αν η συναρτησιακή εξάρτηση δεν ισχύει σε όλες τα νόµιµα στιγµιότυπα.

Page 113: Βάσεις Δεδομένων 1

113

ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣ

Μια συναρτησιακή εξάρτηση είναι τετριµµένη αν ικανοποιείται από όλα τα στιγµιότυπα της σχέσης

Π.χ. Α →Α ή ΑΒ → ΒΌνοµα-πελάτη, αριθµός-δανείου Όνοµα-πελάτη

Όνοµα-πελάτη Όνοµα-πελάτη

Γενικά, η α β είναι τετριµµένη αν β ⊆ α

Μπορούµε να εντοπίσουµε όλο το σύνολο των συναρτησιακών εξαρτήσεων εφαρµόζοντας τα αξιώµατα του Armstrong:

Αν το α ⊇ β, τότε α β(ανακλαστικός κανόνας)

Αν το α β, τότε γα γβ(επαυξητικός κανόνας)

Αν το α β, και β γ, τότε α γ(µεταβατικός κανόνας)

Οι κανόνες αυτοί είναι δηµιουργούν συναρτησιακές εξαρτήσεις που ισχύουν πραγµατικά

Page 114: Βάσεις Δεδομένων 1

114

ΣΥΝΑΡΤΗΣΙΑΚΕΣ ΕΞΑΡΤΗΣΕΙΣΜπορούµε να απλοποιήσουµε τον υπολογισµό του συνόλου F των συναρτησιακών εξαρτήσεων χρησιµοποιώντας τους επιπρόσθετους κανόνες:

Αν ισχύει α β και α γ, τότε ισχύει και α βγ (ενωτικός ή προσθετικός κανόνας)

Αν α βγ τότε ισχύει και α β καθώς και α γ (διασπαστικός ή προβολικός κανόνας)

Αν α β και γβ δ, τότε ισχύει και γα δ (ψευδοµεταβατικός κανόνας)

ΠΑΡΑ∆ΕΙΓΜΑ ΥΠΟΛΟΓΙΣΜΟΥ

R = (A, B, C) F=A BC, B C, A B, AB C

Συνδύασε το A BC και A B στο A BC

Το σύνολο είναι τώρα το A BC, B C, AB C

Το A πλεονάζει στην AB C επειδή η B C εξάγει λογικά την AB C.

Το σύνολο είναι τώρα το A BC, B C

Το C πλεονάζει στην A BC εφόσον η A BC εξάγεται λογικά από τις A B και B C.

Άρα ελάχιστο σύνολο F=A B , B C

Page 115: Βάσεις Δεδομένων 1

115

ΠΡΟΒΛΗΜΑΤΑ ΤΡΟΠΟΠΟΙΗΣΕΩΝ

ΠΡΟΒΛΗΜΑΤΑ ΤΡΟΠΟΠΟΙΗΣΕΩΝ

Μόλις το µοντέλο οντοτήτων-συσχετίσεων µετατραπεί σε σχέσεις µπορεί να ανακαλύψουµε ότι µερικές σχέσεις δεν καθορίζονται σωστά. Έτσι µπορεί να εµφανιστούν κάποια προβλήµατα όπως:

Ανωµαλίες διαγραφής: διαγράφοντας µία σχέση ή συστοιχία κάποιες πληροφορίες που συνδέονται µε µία άλλη συστοιχία χάνονται και αυτές.

Ανωµαλίες Εισαγωγής: Για να εισάγουµε µία καινούργια σχέση ή συστοιχία απαιτείται να έχουµε πληροφορίες από δύο ή περισσότερες οντότητες-αυτή η κατάσταση µπορεί να µην είναι εφαρµόσιµη.

Οι παραπάνω ανωµαλίες εισαγωγής ή διαγραφής σχέσεων προκύπτουν επειδή σε µία σχεσιακή βάση δεδοµένων δεν µπορεί να υπάρχει σχέση που δεν σχετίζεται µε καµία άλλη.

Page 116: Βάσεις Δεδομένων 1

116

ΠΡΟΒΛΗΜΑΤΑ ΤΡΟΠΟΠΟΙΗΣΕΩΝΑς δώσουµε ένα παράδειγµα: µία φόρµα παραγγελίας

ΠΑΡΑΓΓΕΛΙΑ ΑΓΟΡΑΣΚωδ. Παραγγελίας: 0102 Ηµεροµηνία: 02-03-2001Πωλητής: Παύλου ΙάκωβοςΑποστολή σε Πελάτη: Κυλικείο Σπύρου, Μεραρχίας 10____________________________________________________Αριθ-Είδους Κωδ-Είδους Περιγραφή Τιµή Ποσότητα

1 Π78 Πιάτο 300 92 Φ34 Φλιτζάνι 220 17

ΠΑΡΑΓΓΕΛΙΑ ΑΓΟΡΑΣΚωδ. Παραγγελίας: 0102 Ηµεροµηνία: 02-03-2001Πωλητής: Παύλου ΙάκωβοςΑποστολή σε Πελάτη: Κυλικείο Σπύρου, Μεραρχίας 10____________________________________________________Αριθ-Είδους Κωδ-Είδους Περιγραφή Τιµή Ποσότητα

1 Π78 Πιάτο 300 92 Φ34 Φλιτζάνι 220 17

Μία παραγγελία µπορεί να περιέχει πολλά είδη.Ο αναλυτής δηµιουργεί το παρακάτω µοντέλο οντοτήτων-συσχετίσεων (παραλλαγή µοντέλου ΟΣ ):

ΕΙ∆Η ΠΑΡΑΓΓΕΛΙΑΣΑριθ-ΕίδουςΚωδ-ΕίδουςΠεριγραφήΤιµήΠοσότητα

ΠΑΡΑΓΓΕΛΙΑΚωδ-ΠαραγγελίαςΗµεροµηνίαΠωλητήςΑποστολή σε Πελάτη

1 N

Στο σχεσιακό µοντέλο η βάση υλοποιείται σαν:ΠΑΡΑΓΓΕΛΙΑ(Κωδ-Παραγγελίας, Ηµεροµηνία, Πωλητής, Αποστολή σε Πελάτη…..)ΕΙ∆Η ΠΑΡΑΓΓΕΛΙΑΣ(Αριθ-Είδους, Κωδ-Παραγγελίας, Κωδ-Είδους, Περιγραφή, Τιµή, Ποσότητα)

Page 117: Βάσεις Δεδομένων 1

117

ΠΡΟΒΛΗΜΑΤΑ ΤΡΟΠΟΠΟΙΗΣΕΩΝΘεωρήστε ένα δείγµα δεδοµένων για τη δεύτερη σχέση ΕΙ∆Η ΠΑΡΑΓΓΕΛΙΑΣ(Αριθ-Είδους, Κωδ-Παραγγελίας, Κωδ-Είδους, Περιγραφή, Τιµή, Ποσότητα)

8 2.50 ΠιρούνιΠ121 O103

5 2.00 ΜαχαίριΜ232 O102

5 3.00 ΠιάτοΠ671 O102

6 2.00 ΜαχαίριΜ233 O101

11 1.00 ΦλιτζάνιΦ342 O101

7 3.00 ΠιάτοΠ671 O101

ΠοσότηταΤιµήΠεριγραφήΚωδ-Είδους

Κωδ-Παραγγελίας

Αριθ-Είδους

Τι θα γίνει αν διαγράψουµε τον αριθµό-είδους 2 από την παραγγελία O101?Θα χάσουµε και όλες τις πληροφορίες (περιγραφή, τιµή) που αφορούν το είδος µε κωδικό Φ34Τι θα γίνει εισάγουµε ξανά την Τιµή και Περιγραφή του ίδιου είδους?. Θα έχουµε πλεονασµό και πιθανότατα ανακρίβειες.Αυτά τα προβλήµατα προκύπτουν επειδή η σχέση αυτή περιέχει πληροφορίες από δύο ή περισσότερα θέµατα (οντότητες = Είδη Παραγγελίας, Προϊόντα)Τυπικά λύνουµε αυτά τα προβλήµατα διασπώντας τη σχέση σε δύο ή περισσότερες. Η διαδικασία λέγεται Κανονικοποίηση(Normalization)

Page 118: Βάσεις Δεδομένων 1

118

ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ-ΚΑΝΟΝΙΚΕΣ ΜΟΡΦΕΣ

Οι σχέσεις µπορούν να υπάγονται σε µία ή περισσότερες κατηγορίες (ή κλάσεις) που ονοµάζονται Κανονικές Μορφές (normal forms).

Κανονική Μορφή: Μία κλάση σχέσεων απαλλαγµένων από συγκεκριµένα προβλήµατα τροποποιήσεων.

Οι κανονικές Μορφές έχουν ονόµατα όπως:

o Πρώτη κανονική µορφή (1NF)

o ∆εύτερη κανονική µορφή (2NF)

o Τρίτη κανονική µορφή (3NF)

o Boyce-Codd κανονική µορφή (BCNF)

o Τέταρτη κανονική µορφή (4NF)

o Πέµπτη κανονική µορφή (5NF)

Αυτές οι κανονικές µορφές είναι αθροιστικές. Μία σχέση που βρίσκεται σε Τρίτη κανονική µορφή είναι επίσης και σε δεύτερη και σε πρώτη

Page 119: Βάσεις Δεδομένων 1

119

ΠΡΩΤΗ ΚΑΝΟΝΙΚΗ ΜΟΡΦΗFirst Normal Form (1NF)

Είναι µέρος του ορισµού µιας σχέσηςΜία σχέση βρίσκεται σε πρώτη κανονική µορφή αν

ικανοποιεί όλες τις ιδιότητες του ορισµού της σχέσης:

1. Κάθε όνοµα γνωρίσµατος (στήλης) είναι µοναδικό.2. Όλες οι τιµές κάθε γνωρίσµατος είναι ίδιου

τύπου (ή πεδίου ορισµού). 3. Κάθε τιµή γνωρίσµατος είναι ατοµική (µία τιµή και

όχι οµάδα πολλών τιµών).4. Τα γνωρίσµατα δεν έχουν διάταξη από τα

αριστερά προς τα δεξιά.5. Οι συστοιχίες (σειρές) δεν έχουν διάταξη από

επάνω προς τα κάτω.6. ∆εν υπάρχουν δύο ίδιες συστοιχίες (σειρές) σε

µία σχέση.

Εάν υπάρχει καθορισµένο κλειδί για τη σχέση τότε ικανοποιείται η απαίτηση της µοναδικότητας των συστοιχιών (γραµµών του πίνακα).

Page 120: Βάσεις Δεδομένων 1

120

ΠΡΩΤΗ ΚΑΝΟΝΙΚΗ ΜΟΡΦΗFirst Normal Form (1NF)

Ένας πίνακας σε πρώτη κανονική µορφή λέγεταικανονικοποιηµένος πίνακας και τότε και µόνο τότε αντιστοιχεί σε µία σχέση (οι σχέσεις του σχεσιακού µοντέλου είναι στην 1η κανονική µορφή ).

Παράδειγµα σχέσης σε πρώτη κανονική µορφή:

ΜΕΤΟΧΕΣ (Εταιρία, Σύµβολο, Ηµεροµηνία, Τιµή_Κλεισίµατος)

Εταιρία Σύµβολο Ηµεροµηνία Τιµή_Κλεισίµατος

IBM IBM 01/05/99 101.00

IBM IBM 01/06/99 100.50

IBM IBM 01/07/99 102.00

Netscape NETS 01/05/99 33.00

Netscape NETS 01/06/99 112.00

Εάν υπάρχει καθορισµένο κλειδί για τη σχέση τότε ικανοποιείται η απαίτηση της µοναδικότητας των συστοιχιών (γραµµών του πίνακα).

Page 121: Βάσεις Δεδομένων 1

121

ΠΡΩΤΗ ΚΑΝΟΝΙΚΗ ΜΟΡΦΗ-ΠΑΡΑ∆ΕΙΓΜΑ

Εδώ κάθε τιµή γνωρίσµατος είναι ατοµική αλλά επειδή πολλά πεδία είναι επαναλαµβανόµενα καταχωρούνται όλα σε ένα πεδίο το ΜΑΘΗΜΑ (οµάδα πολλών τιµών). Ο πίνακας ΜΑΘΗΜΑ µέσα στον πίνακα ΜΑΘΗΤΗΣ.Αυτό έρχεται σε σύγκρουση µε την πρώτη κανονική µορφή.

ΚΩ∆ΙΚΟΣ ΜΑΘΗΤΗ

ΟΝΟΜΑ

ΕΠΩΝΥΜΟ

ΗΜ ΓΕΝΝΗΣΗΣ

ΣΥΜΒΟΥΛΟΣ

ΤΗΛ ΣΥΜΒΟΥΛΟΥ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΜΑΤΟΣ 1

ΠΕΡΙΓΡΑΦΗΜΑΘΗΜΑΤΟΣ 1

ΕΚΠΑΙ∆ΕΥΤΗΣ ΜΑΘΗΜΑΤΟΣ 1

ΚΩ∆ΙΚΟΣ ΜΑΘΗΜΑΤΟΣ 2

ΠΕΡΙΓΡΑΦΗΜΑΘΗΜΑΤΟΣ 2

ΕΚΠΑΙ∆ΕΥΤΗΣ ΜΑΘΗΜΑΤΟΣ 2

Η οµάδα που καταχωρείται στο πεδίο ΜΑΘΗΜΑ

∆ιασπάµε έτσι τον αρχικό πίνακα σε δύο πίνακες (Μαθητών, Μαθηµάτων)

Page 122: Βάσεις Δεδομένων 1

122

ΠΡΩΤΗ ΚΑΝΟΝΙΚΗ ΜΟΡΦΗ -ΛΥΣΗ

∆ιασπάµε τον αρχικό πίνακα σε δύο πίνακες (Μαθητών, Μαθηµάτων)

ΠΙΝΑΚΑΣ ΜΑΘΗΜΑΤΩΝ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΜΑΤΟΣ

ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ

ΕΚΠΑΙ∆ΕΥΤΗΣ ΜΑΘΗΜΑΤΟΣ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΤΗ

ΠΙΝΑΚΑΣ ΜΑΘΗΤΩΝ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΤΗ

ΟΝΟΜΑ

ΕΠΩΝΥΜΟ

ΗΜ ΓΕΝΝΗΣΗΣ

ΣΥΜΒΟΥΛΟΣ

ΤΗΛ ΣΥΜΒΟΥΛΟΥ

Page 123: Βάσεις Δεδομένων 1

123

∆ΕΥΤΕΡΗ ΚΑΝΟΝΙΚΗΜΟΡΦΗSecond Normal Form (2NF):

Μία σχέση βρίσκεται σε δεύτερη κανονική µορφή εάν είναι σε πρώτη και κάθε ένα από τα γνωρίσµατά της που δεν είναι κλειδιά εξαρτώνται από ολόκληρο το πρωτεύων κλειδί και όχι µόνο από ένα τµήµα του (αφορά σχέσεις µε σύνθετα πρωτεύοντα κλειδιά).

Οι σχέσεις που έχουν µόνο ένα γνώρισµα σαν πρωτεύων κλειδί βρίσκονται αυτόµατα και στη δεύτερη κανονική µορφή.

Αυτός είναι ένας λόγος για τον οποίο χρησιµοποιούµε συχνά τεχνητά αναγνωριστικά σαν κλειδιά.

Page 124: Βάσεις Δεδομένων 1

124

∆ΕΥΤΕΡΗ ΚΑΝΟΝΙΚΗΜΟΡΦΗ

Στον πίνακα Μαθηµάτων µπορεί να δηµιουργηθεί ένα µοναδικό πρωτεύον κλειδί που θα συνδυάζει το ΚΩ∆ΙΚΟΣ ΜΑΘΗΤΗ + ΚΩ∆ΙΚΟΣ ΜΑΘΗΜΑΤΟΣ

( το ΚΩ∆ΙΚΟΣ ΜΑΘΗΤΗ δεν θα είναι µοναδικό κλειδί από µόνο του σε αυτόν τον πίνακα, γιατί ένας µαθητής µπορεί να έχει πολλά µαθήµατα.

Ανάλογα το ΚΩ∆ΙΚΟΣ ΜΑΘΗΜΑΤΟΣ δεν θα είναι µοναδικό κλειδί από µόνο του σε αυτόν τον πίνακα, γιατί ένα µάθηµα µπορεί να το έχουν πολλοί µαθητές.

Τότε τα πεδία ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ, ΕΚΠΑΙ∆ΕΥΤΗΣ ΜΑΘΗΜΑΤΟΣ είναι τα ίδια για κάθε µάθηµα (εξαρτώνται µόνο από τον κωδικό Μαθητή) ανεξάρτητα από τον σπουδαστή που παίρνει το µάθηµα.

ΠΙΝΑΚΑΣ ΜΑΘΗΜΑΤΩΝ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΜΑΤΟΣ

ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ

ΕΚΠΑΙ∆ΕΥΤΗΣ ΜΑΘΗΜΑΤΟΣ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΤΗ

Page 125: Βάσεις Δεδομένων 1

125

∆ΕΥΤΕΡΗ ΚΑΝΟΝΙΚΗΜΟΡΦΗ -ΛΥΣΗ

Για να βάλουµε την βάση σε δεύτερη κανονική µορφή πρέπει να δηµιουργηθεί και ένας τρίτος πίνακας οπότε η δοµή της βάσης δείχνει ως εξής:

ΠΙΝΑΚΑΣ ΜΑΘΗΤΩΝ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΤΗ

ΟΝΟΜΑ

ΕΠΩΝΥΜΟ

ΗΜ ΓΕΝΝΗΣΗΣ

ΣΥΜΒΟΥΛΟΣ

ΤΗΛ ΣΥΜΒΟΥΛΟΥ

ΠΙΝΑΚΑΣ ΜΑΘΗΜΑΤΩΝ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΜΑΤΟΣ

ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ

ΕΚΠΑΙ∆ΕΥΤΗΣ ΜΑΘΗΜΑΤΟΣ

ΠΙΝΑΚΑΣ ΜΑΘΗΤΩΝ - ΜΑΘΗΜΑΤΩΝ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΤΗ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΜΑΤΟΣ

Οι σχέσεις αυτές βρίσκονται και σε πρώτη και σε δεύτερη κανονική µορφή

Page 126: Βάσεις Δεδομένων 1

126

ΤΡΙΤΗ ΚΑΝΟΝΙΚΗΜΟΡΦΗ

Μία σχέση βρίσκεται σε Τρίτη κανονική µορφή εάν είναι σε δεύτερη και δεν περιέχει µεταβατικές εξαρτήσεις.

∆ηλαδή κάθε γνώρισµα της που δεν είναι κλειδί πρέπει να είναι µη µεταβατικά εξαρτηµένο από το πρωτεύον κλειδί

δηλαδή κάθε γνώρισµα που δεν είναι κλειδί πρέπει να περιέχει πληροφορίες µόνο για την οντότητα που καθορίζεται από το πρωτεύον κλειδί

Μεταβατική εξάρτηση:Τρία γνωρίσµατα µε τις παραπάνω εξαρτήσεις.Εάν Α Β και Β Γ τότε θα ισχύει και Α ΓΠ.χ. Σε µία πανεπιστηµιακή σχολή θα ισχύει: Κωδικός_Μαθήµατος ∆ιδασκαλία_Μαθήµατος Τάξη, Καθηγητής

Άρα οι σχέσεις που έχουν µόνο δύο γνωρίσµατα βρίσκονται αυτόµατα και σε Τρίτη κανονική µορφή.

Page 127: Βάσεις Δεδομένων 1

127

ΤΡΙΤΗ ΚΑΝΟΝΙΚΗΜΟΡΦΗ

Μία σχέση βρίσκεται σε Τρίτη κανονική µορφή εάν είναι σε δεύτερη και δεν περιέχει µεταβατικές εξαρτήσεις.

∆ηλαδή κάθε γνώρισµα της που δεν είναι κλειδί πρέπει να είναι µη µεταβατικά εξαρτηµένο από το πρωτεύον κλειδί

∆ηλαδή κάθε γνώρισµα που δεν είναι κλειδί πρέπει να περιέχει πληροφορίες µόνο για την οντότητα που καθορίζεται από το πρωτεύον κλειδί

ΠΙΝΑΚΑΣ ΜΑΘΗΤΩΝ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΤΗ

ΟΝΟΜΑ

ΕΠΩΝΥΜΟ

ΗΜ ΓΕΝΝΗΣΗΣ

ΣΥΜΒΟΥΛΟΣ

ΤΗΛ ΣΥΜΒΟΥΛΟΥ

Το πεδίο ΤΗΛ ΣΥΜΒΟΥΛΟΥ δεν περιέχει πληροφορίες για τους Μαθητές. Άρα πρέπει να δηµιουργήσουµε και έναν ξεχωριστό πίνακα για τους Συµβούλους

Page 128: Βάσεις Δεδομένων 1

128

ΤΡΙΤΗ ΚΑΝΟΝΙΚΗΜΟΡΦΗ -ΛΥΣΗ

ΠΙΝΑΚΑΣ ΜΑΘΗΤΩΝ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΤΗ

ΟΝΟΜΑ

ΕΠΩΝΥΜΟ

ΗΜ ΓΕΝΝΗΣΗΣ

ΚΩ∆ΙΚΟΣ ΣΥΜΒΟΥΛΟΥ

ΠΙΝΑΚΑΣ ΜΑΘΗΜΑΤΩΝ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΜΑΤΟΣ

ΠΕΡΙΓΡΑΦΗ ΜΑΘΗΜΑΤΟΣ

ΕΚΠΑΙ∆ΕΥΤΗΣ ΜΑΘΗΜΑΤΟΣ

ΠΙΝΑΚΑΣ ΜΑΘΗΤΩΝ - ΜΑΘΗΜΑΤΩΝ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΤΗ

ΚΩ∆ΙΚΟΣ ΜΑΘΗΜΑΤΟΣ

ΠΙΝΑΚΑΣ ΣΥΜΒΟΥΛΩΝ

ΚΩ∆ΙΚΟΣ ΣΥΜΒΟΥΛΟΥ

ΟΝΟΜΑ ΣΥΜΒΟΥΛΟΥ

ΤΗΛΕΦΩΝΟ ΣΥΜΒΟΥΛΟΥ

Page 129: Βάσεις Δεδομένων 1

129

ΆΛΛΟ ΠΑΡΑ∆ΕΙΓΜΑ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗΣ

Κανονικοποιήστε µέχρι Τρίτη κανονική µορφή (3NF) το παρακάτω σχεσιακό σχήµα που αποτελείται από έναν πίνακα: Τα πρωτεύοντα κλειδιά των σχέσεων είναι µε έντονα και υπογραµµισµένα γράµµατα.

ΑΦΙΞΗ (κωδ-πλοίου, πλοίο, χωρητικότητα-πλοίου,κωδ-λιµανιού, λιµάνι, κωδ-προβλήτας, προβλήτα, ηµεροµηνία-άφιξης)

Πρωτεύον κλειδί είναι το κωδ-πλοίου, κωδ-λιµανιού, ηµεροµηνία-άφιξης

Προφανώς επειδή ένα πλοίο σε ένα λιµάνι και σε µία ηµεροµηνία-άφιξης δένει σε µία προβλήτα δεν υπάρχει λόγος να είναι και το γνώρισµα κωδ-προβλήτας τµήµα του πρωτεύοντος κλειδιού

Το πρωτεύον κλειδί προσδιορίζει συναρτησιακά όλα τα υπόλοιπα γνωρίσµατα

Επιπλέον Συναρτησιακές εξαρτήσεις

κωδ-πλοίου πλοίο, χωρητικότητα-πλοίου

κωδ-λιµανιού λιµάνι

κωδ-προβλήτας προβλήτα

Page 130: Βάσεις Δεδομένων 1

130

ΆΛΛΟ ΠΑΡΑ∆ΕΙΓΜΑ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗΣ

ΚΑΝΟΝΙΚΟΠΟΙΗΣΗ

Ο πίνακας είναι σε Πρώτη κανονική µορφή (1NF) άρα αντιστοιχεί σε µία σχέση.

∆εύτερη κανονική µορφή (2NF)

Κανένα γνώρισµα (πεδίο) που δεν είναι κλειδί δεν µπορεί να εξαρτάται µόνο από ένα τµήµα του πρωτεύοντος κλειδιού.

Για τα γνωρίσµατα αυτά δηµιουργούµε ξεχωριστούς πίνακες (σχέσεις) µε πρωτεύον κλειδί το γνώρισµα της συναρτησιακής εξάρτησής τους

Τα πεδία (πλοίο, χωρητικότητα-πλοίου) εξαρτώνται από το (κωδ-πλοίου) και το πεδίο (λιµάνι) εξαρτάται από το (κωδ-λιµανιού). Επειδή και το (κωδ-πλοίου) και το (κωδ-λιµανιού) είναι υποσύνολα του κυρίου κλειδιού έχουµε:

2NF -Λύση

ΑΦΙΞΗ (κωδ-πλοίου, κωδ-λιµανιού, κωδ-προβλήτας, προβλήτα, ηµεροµηνία-άφιξης)

ΠΛΟΙΟ (κωδ-πλοίου, πλοίο, χωρητικότητα-πλοίου)

ΛΙΜΑΝΙ (κωδ-λιµανιού, λιµάνι)

Page 131: Βάσεις Δεδομένων 1

131

ΆΛΛΟ ΠΑΡΑ∆ΕΙΓΜΑ ΚΑΝΟΝΙΚΟΠΟΙΗΣΗΣ

Τρίτη κανονική µορφή (3NF)

Μία σχέση βρίσκεται σε Τρίτη κανονική µορφή εάν είναι σε δεύτερη και δεν περιέχει µεταβατικές εξαρτήσεις.

Το πεδίο (προβλήτα) εξαρτάται από το (κωδ-προβλήτας) που δεν είναι µέρος του κυρίου κλειδιού.

κωδ-πλοίου, κωδ-λιµανιού, ηµεροµηνία-άφιξης κωδ-προβλήτας προβλήτα

Για τα γνωρίσµατα αυτά δηµιουργούµε ξεχωριστούς πίνακες µε πρωτεύον κλειδί το γνώρισµα συναρτησιακής εξάρτησής τους

Έτσι έχουµε:

3NF -Λύση

ΑΦΙΞΗ (κωδ-πλοίου, κωδ-λιµανιού, κωδ-προβλήτας, ηµεροµηνία-άφιξης)

ΠΡΟΒΛΗΤΑ (κωδ-προβλήτας, προβλήτα)

ΠΛΟΙΟ (κωδ-πλοίου, πλοίο, χωρητικότητα-πλοίου)

ΛΙΜΑΝΙ (κωδ-λιµανιού, λιµάνι)