Βάσεις Γνώσεων

110
Βάσεις Γνώσεων Μοντέλο Οντοτήτων Συσχετίσεων Πάνος Βασιλειάδης [email protected] Φλεβάρης 2003 www.cs.uoi.gr/~pvassil/courses/ knowledge_bases/

description

Βάσεις Γνώσεων. Μοντέλο Οντοτήτων Συσχετίσεων Πάνος Βασιλειάδης [email protected] Φλεβάρης 200 3. www.cs.uoi.gr/~pvassil/courses/ knowledge_bases /. Περιεχόμενα. Βασισμένο στο « Database System Concepts », Silberschatz , Korth & Sudarshan. Εισαγωγή Τύποι Οντοτήτων Τύποι Συσχετίσεων - PowerPoint PPT Presentation

Transcript of Βάσεις Γνώσεων

Page 1: Βάσεις Γνώσεων

Βάσεις Γνώσεων

Μοντέλο Οντοτήτων ΣυσχετίσεωνΠάνος Βασιλειάδης

[email protected]

Φλεβάρης 2003

www.cs.uoi.gr/~pvassil/courses/knowledge_bases/

Page 2: Βάσεις Γνώσεων

2

Περιεχόμενα

Εισαγωγή

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

Τύποι Συσχετίσεων

Κλειδιά, Ρόλοι και Βαθμός Συσχέτισης

Περιορισμοί

Ειδικά Θέματα

Προβληματισμοί για τον σχεδιαστή

Σύνοψη Γραφικής Αναπαράστασης

Βασισμένο στο«Database System Concepts»,

Silberschatz, Korth & Sudarshan

Page 3: Βάσεις Γνώσεων

3

Περιεχόμενα

Εισαγωγή

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

Τύποι Συσχετίσεων

Κλειδιά, Ρόλοι και Βαθμός Συσχέτισης

Περιορισμοί

Ειδικά Θέματα

Προβληματισμοί για τον σχεδιαστή

Σύνοψη Γραφικής Αναπαράστασης

Page 4: Βάσεις Γνώσεων

4

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

Το μοντέλο Οντοτήτων Συσχετίσεων (Entity Relationship Model – ER Model) είναι ένα εννοιολογικό μοντέλο ...

... που χρησιμοποιείται για να καταγράψει τις απαιτήσεις των χρηστών ενός νέου πληροφοριακού συστήματος ...

... με γραφικό τρόπο (άρα, πιο τυπικά από μια αναπαράστασή τους σε φυσική γλώσσα).

Page 5: Βάσεις Γνώσεων

5

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

Μια βάση δεδομένων μπορεί να μοντελοποιηθεί εννοιολογικά σαν:

Ένα σύνολο οντοτήτων (entities),

Συσχετίσεις (relationships) μεταξύ των οντοτήτων αυτών.

Εννοιολογική Μοντελοποίηση Conceptual Modeling.

Εναλλακτικά: Ιδεατή, Σημασιολογική, Οντολογική ...

Page 6: Βάσεις Γνώσεων

6

Περιεχόμενα

Εισαγωγή

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

Τύποι Συσχετίσεων

Κλειδιά, Ρόλοι και Βαθμός Συσχέτισης

Περιορισμοί

Ειδικά Θέματα

Προβληματισμοί για τον σχεδιαστή

Σύνοψη Γραφικής Αναπαράστασης

Page 7: Βάσεις Γνώσεων

7

Οντότητες

Μια οντότητα (entity) είναι ένα υπαρκτό αντικείμενο, που είναι διακριτό από τα άλλα αντικείμενα της ΒΔ

Π.χ., ο άνθρωπος Βασίλης, το αυτοκίνητο ΤοΑμάξιΜου, η εταιρεία Αλογάκι ΑΕ, κλπ.

Page 8: Βάσεις Γνώσεων

8

Τύποι Οντοτήτων (Entity Types ή Sets)

Ένα τύπος οντοτήτων είναι ένα σύνολο από σημασιολογικά όμοιες οντότητες

Π.χ., το σύνολο όλων των υπαλλήλων μιας εταιρείας, το σύνολο όλων των αυτοκινήτων κλπ

ΠΡΟΣΟΧΗ: Άλλο οντότητα και άλλο τύπος οντοτήτων!Στον προφορικό λόγο, συνηθίζεται να τα συγχέουμε...

Page 9: Βάσεις Γνώσεων

9

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

Customer

Person

Car

Company

Page 10: Βάσεις Γνώσεων

10

Γνωρίσματα (Attributes)

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

customer = (customer-id, customer-name, customer-street, customer-

city)loan = (loan-number, amount)

Page 11: Βάσεις Γνώσεων

11

Γνωρίσματα (Attributes)

Οι οντότητες έχουν γνωρίσματα (attributes) τα οποία έχουν τιμές

Π.χ., ο άνθρωπος Βασίλης, έχει Όνομα και Διεύθυνση, με τιμές «Βασίλης Τσάρτας» και «Καππαδοκίας 2» αντίστοιχα.

ΠΡΟΣΟΧΗ: Σε αντίθεση με το σχεσιακό μοντέλο, στο ER μοντέλο είναι επιτρεπτό να ορίσουμε οντότητες χωρίς γνωρίσματα!

Page 12: Βάσεις Γνώσεων

12

Τύποι Οντοτήτων (Entity Types ή Sets)

Θα θεωρήσουμε ότι η σημασιολογική ομοιότητα αντανακλάται στη δομική ομοιότητα, ήτοι, οι οντότητες του ιδίου τύπου έχουν τα ίδια γνωρίσματα.

Θα συναντήσετε την ορολογία Entity Sets (σύνολο από σημασιολογικά όμοιες οντότητες) και Entity Types (καλούπι για γνωρίσματα) στη βάση του παραπάνω διαχωρισμού.

Page 13: Βάσεις Γνώσεων

13

Σύνολα οντοτήτων customer και loan

customer-id customer- customer- customer- loan- amount name street city number

Page 14: Βάσεις Γνώσεων

14

Πεδία ορισμού (Domains)

Πεδίο Ορισμού είναι το σύνολο των επιτρεπτών τιμών για κάθε γνώρισμα

Π.χ., το πεδίο έχει Ηλικία έχει ως τιμές το εύρος των ακεραίων τιμών [0..140].

ΠΡΟΣΟΧΗ: τα attributes τα αποκαλούμε πολλές φορές «πεδία». Αυτό είναι αποδεκτό, αρκεί να μην τα συγχέουμε με τα «πεδία ορισμού» τους.

Page 15: Βάσεις Γνώσεων

15

Κατηγοριοποίηση των γνωρισμάτων

Απλά (ή Ατομικά) και Σύνθετα (γνωρίσματα που μπορούν να αποσυντεθούν σε επί μέρους γνωρίσματα)Μονότιμα (μια οντότητα επιτρέπεται να έχει το πολύ μια τιμή σε αυτό το γνώρισμά της) και πλειότιμα (... περισσότερες από μία...)

Π.χ., τα τηλέφωνα ενός Ανθρώπου

Αποθηκευμένα και Παραγόμενα (που μπορούν να υπολογισθούν από άλλα γνωρίσματα)

Π.χ., η ηλικία υπολογιζόμενη από την Ημ. Γέννησης

Page 16: Βάσεις Γνώσεων

16

Σύνθετα Γνωρίσματα

Page 17: Βάσεις Γνώσεων

17

Τιμή NULL

NULL τιμή: ειδική τιμή την οποία χρησιμοποιούμε όταν

Υπάρχει τιμή, αλλά δεν την ξέρουμε (π.χ., το γνώρισμα Τηλέφωνο για την οντότητα Πρωθυπουργός), ήΔεν ξέρουμε αν υπάρχει τιμή (π.χ., το γνώρισμα ΚινητόΤηλέφωνο για την οντότητα Πρωθυπουργός), ήΗ τιμή δεν ορίζεται (π.χ., το γνώρισμα Husband για την οντότητα Κώστας)

για ένα γνώρισμα μιας συγκεκριμένης οντότητας

Page 18: Βάσεις Γνώσεων

18

Τιμή NULL

Με βάση τα προηγούμενα, ένα γνώρισμα δεν υπάρχει/ορίζεται για μια οντότητα, τότε αυτή ΔΕΝ μπορεί να ανήκει στον αντίστοιχο τύπο οντοτήτων. Η καθημερινή πρακτική όμως, ξεπέρασε το θεωρητικό περιορισμό, με αποτέλεσμα να προσεγγίσουμε ξανά τη θεωρητική θεμελίωση, εισάγοντας και NULL τιμές (και μάλιστα, πολλών ειδών, όπως είπαμε)

Page 19: Βάσεις Γνώσεων

19

Phones

Γραφική Αναπαράσταση Τύπων Οντοτήτων

Παραλληλόγραμμα για τύπους οντοτήτωνΕλλείψεις για γνωρίσματα

Διπλές ελλείψεις για πλειότιμα γνωρίσματα.Διακεκομμένες ελλείψεις για παραγόμενα γνωρίσματα.

Ακμές για να συνδέσουν τύπους οντοτήτων με γνωρίσματαΥπογράμμιση για πρωτεύοντα κλειδιά (στη συνέχεια...)

Customer

Cust-Id

Age

Page 20: Βάσεις Γνώσεων

20

Γραφική Αναπαράσταση Τύπων Οντοτήτων

Page 21: Βάσεις Γνώσεων

21

Περιεχόμενα

Εισαγωγή

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

Τύποι Συσχετίσεων

Κλειδιά, Ρόλοι και Βαθμός Συσχέτισης

Περιορισμοί

Ειδικά Θέματα

Προβληματισμοί για τον σχεδιαστή

Σύνοψη Γραφικής Αναπαράστασης

Page 22: Βάσεις Γνώσεων

22

Συσχετίσεις (Relationships)

Μια συσχέτιση είναι μια εννοιολογική σύνδεση μεταξύ κάποιων οντοτήτων. Π.χ.,

Οντότητα Μιχάλης του Τ.Ο. Άνθρωπος

Οντότητα LiverBird-ΑΕ του Τ.Ο. Εταιρεία

Συσχέτιση Εργάζεται-Για

Με τον όρο «σχέση» συνήθως αναφερόμαστε στο σχεσιακό μοντέλο. Στο ER μοντέλο χρησιμοποιούμε

τον όρο «συσχέτιση»

Page 23: Βάσεις Γνώσεων

23

Τύποι Συσχετίσεων (Relationship Type ή Set)

Ένας τύπος συσχετίσεων είναι μια μαθηματική σχέση μεταξύ n 2 οντοτήτων, με κάθε μία εξ αυτών προερχόμενη από ένα συγκεκριμένο τύπο οντοτήτων.

Τυπικά, πρόκειται για το σύνολο συσχετίσεων

{(e1, e2, … en) | e1 E1, e2 E2, …, en En}

όπου το (e1, e2, …, en) είναι μια συσχέτιση, τα ei είναι οντότητες και Eι τα είναι τύποι οντοτήτων

Page 24: Βάσεις Γνώσεων

24

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

Borrower = {

(321-12-3123,L-17),

(019-28-3746,L-23),

(019-28-3746,L-11),

…,

(335-57-7991,L-16)

}

Page 25: Βάσεις Γνώσεων

25

Μη σκέφτεστε έτσι...

l1

l2

l3

c1

c2

LoanCustomer

Page 26: Βάσεις Γνώσεων

26

…αλλά έτσι !!!

c1_l1

c2_l2

c2_l3

l1

l2

l3

c1

c2

LoanCustomer

Page 27: Βάσεις Γνώσεων

27

Τύποι Συσχέτισης – ΠΡΟΣΟΧΗ!

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

Όπως και με τις οντότητες, άλλο είναι η συσχέτιση και άλλο ο τύπος συσχέτισης.

Ομοίως, και εδώ, συχνά στον προφορικό λόγο τα συγχέουμε ...

Page 28: Βάσεις Γνώσεων

28

Τύποι Συσχετίσεων και Γνωρίσματα

Ένας τύπος συσχετίσεων μπορεί να έχει και αυτός γνωρίσματα

Π.χ., ο τύπος συσχετίσεων depositor μεταξύ των customer και account μπορεί να χαρακτηρίζεται και από το γνώρισμα access-date

Page 29: Βάσεις Γνώσεων

29

Τύποι Συσχετίσεων και Γνωρίσματα

Page 30: Βάσεις Γνώσεων

30

Γραφική Αναπαράσταση Τύπων Συσχετίσεων

Page 31: Βάσεις Γνώσεων

31

Τυπικός Ορισμός

e μια οντότητα

E = {e1,…,en} ένα σύνολο οντοτήτων

r = [e1,…,en], τ.ω., e1E1,…,enEn μια συσχέτιση

R={r1,…,rm}={[e1,…,en] | e1E1,…,enEn} ένα σύνολο συσχετίσεων

Page 32: Βάσεις Γνώσεων

32

Τυπικός Ορισμός

Ω ένα άπειρο απαριθμήσιμο σύνολο τιμών = πεδίο ορισμούP(Ω) το δυναμοσύνολο του Ω

f: Τ->Ω μονότιμο, απλό γνώρισμαf: Τ->P(Ω) πλειότιμο, απλό γνώρισμα

f: Τ->Ω1x…xΩn μονότιμο, σύνθετο γνώρισμα

f: Τ->P(Ω1x…xΩn) πλειότιμο, σύνθετο γνώρισμαόπου Τ μπορεί να είναι μια οντότητα Ε, ή μια συσχέτιση R

Συμβολισμός: dom(Τ) το πεδίο ορισμού του Τ

Page 33: Βάσεις Γνώσεων

33

Περιεχόμενα

Εισαγωγή

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

Τύποι Συσχετίσεων

Κλειδιά, Ρόλοι και Βαθμός Συσχέτισης

Περιορισμοί

Ειδικά Θέματα

Προβληματισμοί για τον σχεδιαστή

Σύνοψη Γραφικής Αναπαράστασης

Page 34: Βάσεις Γνώσεων

34

Κλειδιά για Τύπους ΟντοτήτωνΥπερκλειδί (super key) ενός τύπου οντοτήτων είναι ένα σύνολο γνωρισμάτων των οποίων οι τιμές καθορίζουν μονοσήμαντα μια οντότητα του εν λόγω τύπου οντοτήτων.Υποψήφιο κλειδί (candidate key) είναι ένα υπερκλειδί με το ελάχιστο μέγεθος (ήτοι, αριθμό γνωρισμάτων) μεταξύ των υπερκλειδιώνΠρωτεύον κλειδί (primary key) είναι ένα υποψήφιο κλειδί το οποίο ορίζει ο σχεδιαστής της ΒΔ.

... θα το αποκαλούμε και απλώς κλειδί

Page 35: Βάσεις Γνώσεων

35

Κλειδιά

Υπερκλειδιά:ΑΤ, Όνομα

ΑΤ, Όνομα, Δ/ση

ΑΦΜ, ΑΤ, Όνομα, Δ/ση

ΑΦΜ

... και άλλα...

Υποψήφια κλειδιά:ΑΤ

ΑΦΜ

ΚλειδίΑΦΜ

Πελάτης

ΑΤ

ΑΦΜ

Όνομα

Δ/ση

Διότι έτσι διαλέγω ως σχεδιαστής...

Ελάχιστο μέγεθος υπερκλειδιού = 1

Page 36: Βάσεις Γνώσεων

36

Ιδιότητες (Υποψηφίου) Κλειδιού

Μοναδικότητα: Δεν μπορώ να έχω δύο διαφορετικές οντότητες με ίδιο κλειδί (εναλλακτικά: αν δύο οντότητες βρεθούν να έχουν το ίδιο κλειδί, τελικά πρόκειται για την ίδια οντότητα)

Ελαχιστότητα: Δεν υπάρχει γνήσιο υποσύνολο του κλειδιού που να έχει την προηγούμενη ιδιότητα

Page 37: Βάσεις Γνώσεων

37

Κλειδιά

ΠΡΟΣΟΧΗ: από την στιγμή που ορίσουμε γνωρίσματα σε ένα τύπο οντοτήτων πρέπει να ορίσουμε και πρωτεύον κλειδί!!

Page 38: Βάσεις Γνώσεων

38

Κλειδιά για Τύπους Συσχετίσεων

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

Π.χ., customer-id, account-number είναι το υπερκλειδί του depositor

Page 39: Βάσεις Γνώσεων

39

Κλειδιά για Τύπους Συσχετίσεων

Αν όμως, κάποιος θέλει να βάλει δύο φορές χρήματα στο λογαριασμό του ?Τυπικά ορθή λύση: το access-date πλειότιμο γνώρισμα ή νέα οντότηταΕναλλακτική λύση: το access-date τμήμα του κλειδιούΠΡΟΣΟΧΗ: η τυπική θεωρία δεν το προβλέπει [στα βιβλία δεν αναφέρεται], αλλά πρακτικά μπορεί να χρησιμοποιηθεί!!!

Page 40: Βάσεις Γνώσεων

40

Ρόλοι και Αυτοσυσχετίσεις

Οι ρόλοι είναι ταμπέλες που βάζουμε στις ακμές ενός τύπου συσχέτισης για να δείξουμε περιγραφικά τη σημασία της συμμετοχής ενός τύπου οντοτήτων στον εν λόγω τύπο συσχετίσεων. Οι τύποι οντοτήτων που συμμετέχουν σε ένα τύπο συσχέτισης δεν είναι απαραίτητα διαφορετικοί μεταξύ τους – ο εν λόγω τύπος συσχετίσεως καλείται τύπος αυτοσυσχέτισης.

Page 41: Βάσεις Γνώσεων

41

Ρόλοι & Αυτοσυσχετίσεις

Οι ρόλοι manager και worker περιγράφουν πώς οι υπάλληλοι συμμετέχουν στην αυτοσυσχέτιση works-for.Οι ρόλοι είναι προαιρετικοί και συνήθως χρησιμοποιούνται σε περιπτώσεις όπου το διάγραμμα είναι εννοιολογικά ασαφές (π.χ., αυτοσυσχετίσεις)

Page 42: Βάσεις Γνώσεων

42

Βαθμός (Degree) Τύπου Συσχέτισης

Ο βαθμός ενός τύπου συσχέτισης αναφέρεται στον αριθμό των οντοτήτων που υποχρεωτικώς συμμετέχουν σε μια συσχέτιση.

Ένας τύπος συσχέτισης που περιλαμβάνει 2 οντότητες ονομάζεται δυαδικός (binary), 3 οντότητες τριαδικός (ternary), κ.ο.κ.

Οι πιο συνηθισμένοι τύποι συσχετίσεων είναι δυαδικοί, ενώ οι υπόλοιποι τύποι συσχετίσεων είναι μάλλον σπάνιοι...

Page 43: Βάσεις Γνώσεων

43

Βαθμός (Degree) Τύπου Συσχέτισης

Αν υποθέσουμε ότι ένας υπάλληλος μιας τράπεζας μπορεί να έχει διαφορετικά καθήκοντα σε διαφορετικούς τομείς της τράπεζας, προκύπτει ένας τριαδικός τύπος συσχέτισης ανάμεσα στους τύπους οντοτήτων Υπάλληλος, Καθήκον και Tομέας.

Page 44: Βάσεις Γνώσεων

44

Τυπικός Ορισμός

Αν δύο οντότητες βρεθούν να έχουν το ίδιο κλειδί, τελικά πρόκειται για την ίδια οντότητα

Έστω Ι ένα σύνολο γνωρισμάτων και T μια οντότητα ή συσχέτιση. Αν tΤ, t[Ι] είναι η τιμή του t για τα γνωρίσματα I.

Το κλειδί ορίζεται ως ο ακόλουθος περιορισμός:

t1,t2Τ, t1[I]=t2[I] => t1t2 ή t1,t2Τ, t1t2 => t1[I]t2[I]

Page 45: Βάσεις Γνώσεων

45

ER Διάγραμμα

Το διάγραμμα οντοτήτων συσχετίσεων (ER Diagram) για μια βάση δεδομένων είναι μια γραφική αναπαράσταση των καταστάσεων που είναι πιθανές (και επιτρεπτές) στον υπό μοντελοποίηση κόσμο

Page 46: Βάσεις Γνώσεων

46

ER Διάγραμμα

Page 47: Βάσεις Γνώσεων

47

Περιεχόμενα

Εισαγωγή

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

Τύποι Συσχετίσεων

Κλειδιά, Ρόλοι και Βαθμός Συσχέτισης

Περιορισμοί

Ειδικά Θέματα

Προβληματισμοί για τον σχεδιαστή

Σύνοψη Γραφικής Αναπαράστασης

Page 48: Βάσεις Γνώσεων

48

Άνω και Κάτω Όριο Συσχέτισης

Για την ακμή ενός τύπου συσχετίσεων R, που την συσχετίζει ένα τύπο οντοτήτων E μπορούμε να καταγράψουμε

Το Κάτω Όριο Συμμετοχής: για κάθε οντότητα που ανήκει στο E, πόσες ακμές κατ’ ελάχιστον πρέπει να ξεκινούν προς συσχετίσεις του R

Το Άνω Όριο Συμμετοχής: για κάθε οντότητα που ανήκει στο E, πόσες ακμές το πολύ πρέπει να ξεκινούν προς συσχετίσεις του R

Page 49: Βάσεις Γνώσεων

49

Γραφική Αναπαράσταση Πληθικότητας και Συμμετοχής

Άνω όριο

Κάτω όριοΆνω όριο

Κάτω όριο

Page 50: Βάσεις Γνώσεων

50

Μη σκέφτεστε έτσι...

l1

l2

l3

c1

c2

LoanCustomer

c3

Page 51: Βάσεις Γνώσεων

51

c1

c2

c3

…αλλά έτσι !!!

c1_l1

c2_l2

c2_l3

l1

l2

l3

LoanCustomer

Κάθε ci έχει 0..Ν ακμές

Κάθε lj έχει 1..1 ακμές

Page 52: Βάσεις Γνώσεων

52

Άνω και Κάτω Όριο Συσχέτισης

Αν το κάτω όριο είναι 0, τότε υπάρχουν οντότητες της Ε που μπορούν και να μην συμμετέχουν στον τύπο συσχετίσεων R

Αλλιώς, η συμμετοχή είναι υποχρεωτική (ολική)

Αν το άνω όριο είναι 1, τότε μια οντότητα της Ε μπορεί να συσχετίζεται με μία το πολύ συσχέτιση της R

Αλλιώς, με πολλές

Page 53: Βάσεις Γνώσεων

53

Επιτρέπεται και ...

1..13..4

Ένας customer σχετίζεται με τουλάχιστον 3 ως το πολύ 4 loan μέσω της borrower

Ένα loan σχετίζεται ακριβώς με ένα customer μέσω της borrower

Page 54: Βάσεις Γνώσεων

54

Τυπικός Ορισμός

Για μια δυαδική συσχέτιση συσχέτιση R μεταξύ των A,B:Άνω όριο Cmax[R(Α|Β)] = Κ, Κ > 0

aΑ, Card[{<a,b>|<a,b>R}]<=KΚάτω όριο Cmin[R(Α|Β)] = Κ, Κ >=0

aΑ, Card[{<a,b>|<a,b>R}]>=K

όπου για ένα σύνολο S={x|c},το S αποτελείται από τα στοιχεία x, για τα οποία ισχύει η c

Card[S] είναι ο αριθμός των στοιχείων του S

Page 55: Βάσεις Γνώσεων

55

Μετάφραση

aΑ, Card[{<a,b>|<a,b>R}] <= K

Για κάθε οντότητα aΑ, ο αριθμός των στοιχείων ri=<a,b> που ανήκουν στην R είναι μικρότερος ή ίσος από K

Κάθε στοιχείο της συσχέτισης R ορίζεται σαν ένα ζεύγος ri=<a,b>

Ισοδύναμα, αντί να σκεφτόμαστε τα στοιχεία ri=<a,b> που σχετίζονται με την οντότητα a, μπορούμε να μετράμε τις ακμές που ξεκινούν από το a προς την συσχέτιση R.

Page 56: Βάσεις Γνώσεων

56

a1

a2

a3

Τυπικός Ορισμός

<a1,b1>

<a2,b2>

<a2,b3>

b1

b2

b3

ΒΑ

Κάθε ai έχει 0..2 ακμές

Κάθε bj έχει 1..1 ακμές

R

Cmax[R(Α|Β)] = 2Cmin[R(Α|Β)] = 0

Cmax[R(B|A)] = 1Cmin[R(B|A)] = 1

Page 57: Βάσεις Γνώσεων

57

Πληθικότητα και Λόγος Πληθικότητας

Η πληθικότητα (cardinality), περιγράφει πόσες οντότητες από ένα τύπο οντοτήτων μπορούν να αντιστοιχισθούν σε μία οντότητα ενός άλλου τύπου οντοτήτων μέσω του εμπλεκομένου τύπου συσχετίσεων

Ο λόγος πληθικότητας (cardinality ratio) σε ένα δυαδικό τύπο συσχετίσεων περιγράφει το συνδυασμό των πληθικοτήτων μιας συσχέτισης

Page 58: Βάσεις Γνώσεων

58

Πληθικότητα

Ν:1

Πληθικότητα Α = Ν: Μία (1) οντότητα από το Β, αντιστοιχίζεται σε πολλές (Ν) οντότητες από το Α

Πληθικότητα Β = 1: Μία (1) οντότητα από το Α, αντιστοιχίζεται σε μία (1) οντότητα από το Β

Η πληθικότητα ενός Τ.Ο. Χ περιγράφει πόσες οντότητες από ένα Τ.Ο. Χ μπορούν να αντιστοιχισθούν σε μία (1) οντότητα ενός άλλου Τ.Ο. Y μέσω του εμπλεκομένου τύπου συσχετίσεων X-Y

Page 59: Βάσεις Γνώσεων

59

Λόγος Πληθικότητας

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

1:1

1:Ν ή Ν:1

Ν:Μ

Page 60: Βάσεις Γνώσεων

60

Λόγος Πληθικότητας

1:1 1:Ν

Page 61: Βάσεις Γνώσεων

61

Λόγος Πληθικότητας

Ν:1 Ν:Μ

Page 62: Βάσεις Γνώσεων

62

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

1 Ν

Ένας customer σχετίζεται με πολλά (ίσως και με 0) loan μέσω της borrower

Ένα loan σχετίζεται το πολύ με ένα (ίσως και με 0) customer μέσω της borrower

Page 63: Βάσεις Γνώσεων

63

Συμμετοχή Οντοτήτων σε Συσχετίσεις

Ολική Συμμετοχή (Total participation): κάθε οντότητα του εμπλεκόμενου τύπου οντοτήτων συμμετέχει υποχρεωτικά σε τουλάχιστον μία συσχέτιση του σχετικού τύπου συσχετίσεων

Αναπαριστάται με διπλή γραμμή

Μερική Συμμετοχή (Partial participation): επιτρέπεται κάποιες οντότητες να μην συμμετέχουν σε συσχέτιση του σχετικού τύπου συσχετίσεων

Page 64: Βάσεις Γνώσεων

64

Συμμετοχή Οντοτήτων σε Συσχετίσεις

Η συμμετοχή του customer στην borrower είναι μερική

Η συμμετοχή του loan στην borrower είναι ολικήΉτοι, κάθε loan πρέπει να σχετίζεται μέσω της borrower με ένα customer

Page 65: Βάσεις Γνώσεων

65

Εξάρτηση ύπαρξης (existential dependency)

Αν η ύπαρξη της δευτερεύουσας οντότητας y εξαρτάται από την ύπαρξη της κύριας οντότητας x => o y είναι υπαρξιακά εξαρτημένος από τον x

Αν διαγραφεί ένα loan τότε πρέπει να διαγραφούν όλες οι σχετικές paymentΠΡΟΣΟΧΗ: στο βιβλίο ΔΕΝ γίνεται η σχετική νύξη!

paymentloan loan-payment

Page 66: Βάσεις Γνώσεων

66

Γραφική Αναπαράσταση Πληθικότητας και Συμμετοχής

Η απλή γραμμή σημαίνει σχέση Μ:ΝΈνας customer σχετίζεται με πολλά (ίσως και 0) loans μέσω της borrower

Ένα loan σχετίζεται με πολλούς (ίσως και 0) customers μέσω της borrower

Page 67: Βάσεις Γνώσεων

67

Γραφική Αναπαράσταση Πληθικότητας και Συμμετοχής

1 Ν

Ένας customer σχετίζεται με πολλά (ίσως και με 0) loan μέσω της borrower

Ένα loan σχετίζεται ακριβώς με ένα customer μέσω της borrower

Page 68: Βάσεις Γνώσεων

68

Σωστό ή λάθος?

Πληθικότητα loan

Συμμετοχή customer

Πληθικότητα customer

Συμμετοχή loan

Page 69: Βάσεις Γνώσεων

69

Οδηγίες

Χρησιμοποιήστε άφοβα τον συμβολισμό [κάτω όριο..άνω όριο].

Είναι πιο σίγουρος (για να μην κάνετε λάθη)

Είναι πιο εκφραστικός (επιτρέπει και όρια, αντί μόνο για πληθικότητες)

Ο συμβολισμός με τους λόγους πληθικότητας είναι πιο εύχρηστος

Αν είστε σίγουροι, είναι πιο γρήγορος και κομψός

Page 70: Βάσεις Γνώσεων

70

Εναλλακτικές αναπαραστάσεις

Ίσως πιο παράξενες, αλλά ευρέως διαδεδομένες

Βελάκι για «ένα» (1)

Απλή γραμμή — για πολλά (Ν ή *)

Page 71: Βάσεις Γνώσεων

71

Ένα προς Ένα

Ένας customer σχετίζεται το πολύ με ένα (ίσως και με 0) loan μέσω της borrower

Ένα loan σχετίζεται το πολύ με ένα (ίσως και με 0) customer μέσω της borrower

Page 72: Βάσεις Γνώσεων

72

Ένα προς Πολλά

Ένας customer σχετίζεται με πολλά (ίσως και με 0) loan μέσω της borrower

Ένα loan σχετίζεται το πολύ με ένα (ίσως και με 0) customer μέσω της borrower

Page 73: Βάσεις Γνώσεων

73

Πολλά προς Ένα

Ένας customer σχετίζεται το πολύ με ένα (ίσως και με 0) loan μέσω της borrower

Ένα loan σχετίζεται με πολλά (ίσως και με 0) customer μέσω της borrower

Page 74: Βάσεις Γνώσεων

74

Παγκόσμιος Κανόνας

Ότι γράφεται εύκολα (και γρήγορα), διαβάζεται δύσκολα (και αργά)

Ότι γράφεται δύσκολα (και αργά), διαβάζεται εύκολα (και γρήγορα)

…, SQL, Unix, Prolog, Γραμμική Β’, ζωγραφική, ...

Στο διαγώνισμα, προσέξτε τι γράφετε και πώς…

Page 75: Βάσεις Γνώσεων

75

Περιεχόμενα

Εισαγωγή

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

Τύποι Συσχετίσεων

Κλειδιά, Ρόλοι και Βαθμός Συσχέτισης

Περιορισμοί

Ειδικά Θέματα

Προβληματισμοί για τον σχεδιαστή

Σύνοψη Γραφικής Αναπαράστασης

Page 76: Βάσεις Γνώσεων

76

Ασθενείς Τύποι Οντοτήτων

Ασθενής Τύπος Οντοτήτων (Weak Entity Type): Ένας τύπος οντοτήτων στον οποίο δεν μπορούμε να ορίσουμε πρωτεύον κλειδί με βάση τα γνωρίσματά του και μόνο

Οι οντότητες ενός ασθενούς τύπου προσδιορίζονται και εξαρτώνται από τις οντότητες κάποιου άλλου τύπου οντοτήτων, τον οποίο και αποκαλούμε προσδιορίζοντα (identifying) ή ιδιοκτήτη (owner) τύπο οντοτήτων.

Ο ασθενής τύπος σχετίζεται με τον προσδιορίζοντα τύπο μέσω ενός ολικού, 1:Ν, τύπου συσχετίσεων από τον προσδιορίζοντα προς τον ασθενή.

Επίσης, και «μη ισχυρός», ή «αδύναμος» Τ.Ο.

Page 77: Βάσεις Γνώσεων

77

Ασθενείς Τύποι Οντοτήτων

Το μερικό κλειδί (partial key) μιας ασθενούς οντότητας, είναι εκείνο το σύνολο γνωρισμάτων της που την κάνει να ξεχωρίζει από τις υπόλοιπες οντότητες που αντιστοιχούν στην ίδια οντότητα-ιδιοκτήτη

Το πρωτεύον κλειδί ενός ασθενούς τύπου οντοτήτων είναι η ένωση του πρωτεύοντος κλειδιού του τύπου ιδιοκτήτη της με το μερικό κλειδί της

(ένωση, διότι τα κλειδιά είναι σύνολα γνωρισμάτων)

Page 78: Βάσεις Γνώσεων

78

Ασθενείς Τύποι Οντοτήτων

Ένας ασθενής τύπος οντοτήτων αναπαριστάται με διπλή γραμμή στο παραλληλόγραμμό του.

Η συσχέτιση που τον προσδιορίζει (τον συνδέει, δηλ., με τον ιδιοκτήτη τύπο) έχει επίσης διπλή γραμμή

Το μερικό κλειδί υπογραμμίζεται με διακεκομμένη γραμμή

Page 79: Βάσεις Γνώσεων

79

Ασθενείς Τύποι Οντοτήτων

Ασθενής οντότητα: payment

Μερικό κλειδί: payment-number

Κλειδί του payment : (loan-number, payment-number)

Page 80: Βάσεις Γνώσεων

80

Ασθενείς Τύποι Οντοτήτων

Μπορούμε να ορίσουμε μια ασθενή οντότητα έχουσα ιδιοκτήτη μια επίσης ασθενή οντότητα (μεταβατική ιδιότητα)

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

Το κλειδί κάθε φορά προκύπτει από τη σταδιακή ένωση των επί μέρους κλειδιών...

Page 81: Βάσεις Γνώσεων

81

Τριαδικές Σχέσεις

Page 82: Βάσεις Γνώσεων

82

Πληθικότητα και Συμμετοχή σε Τριαδικές Συσχετίσεις

Χρησιμοποιείστε τον φορμαλισμό [n1..n2], αν πρέπει να ορίσετε και συμμετοχές και πληθικότητα

ΠΑΝΤΑ η πληθικότητα της οντότητας μετράται σε σχέση με την συσχέτιση

Το ίδιο ισχύει και στην απίθανη περίπτωση που έχετε συσχέτιση μεγαλύτερου βαθμού...

Page 83: Βάσεις Γνώσεων

83

Ποτέ μη σκέφτεστε έτσι...

e1

e2

e3

b1

b2

j1 j2 j3Employee

Job

Branch

Works-On

Page 84: Βάσεις Γνώσεων

84

…αλλά έτσι !!!

e1

e2

e3

b1

b2

j1 j2 j3Employee

Job

Branch

e1b1j1

e1b1j2

e2b2j2

e3b2j3 Works-On

Page 85: Βάσεις Γνώσεων

85

Τυπικός Ορισμός

Για μια n-κή συσχέτιση R μεταξύ των E1,E2,…,En,

όπου θεωρώ τα Ζ=E1,E2,…,En, Χ,ΥΖ, ΧΥ=,W=Z-(ΧΥ)

Άνω όριο Cmax[R(X|Y)] = Κ, Κ > 0xX, Card[{<x,y1>|w1W:<x,y1,w1>R}]<=K

Κάτω όριο Cmin[R(X|Y)] = Κ, Κ >= 0xX, Card[{<x,y1>|w1W:<x,y1,w1>R}]>=K

Page 86: Βάσεις Γνώσεων

86

Μετάφραση

xX, Card[{<x,y1>|w1W:<x,y1,w1>R}]<=K

Για κάθε οντότητα xX, ο αριθμός των στοιχείων εκείνων που ανήκουν στην R, και τα οποία, για τα σύνολα οντοτήτων Χ,Υ παίρνουν τις τιμές r1=<x,y1>,

r2=<x,y2>,…,rn είναι μικρότερος ή ίσος από K

Κάθε στοιχείο της συσχέτισης R ορίζεται σαν μια n-άδα ri=<e1,…,en>. Επειδή τους τύπους οντοτήτων Ε1,…,Εn τους έχουμε χωρίσει σε τρία γκρουπ, Χ,Υ,W, μπορούμε να γράψουμε το εν λόγω στοιχείο ως μια τριάδα ri=<x,y,w>

Page 87: Βάσεις Γνώσεων

87

Επί παραδείγματι ...

e1

e2

e3

b1

b2

j1 j2 j3Employee

Job Branch

e1b1j1

e1b1j2

e2b2j2

e3b2j3

{<e1,b1>|w1W:<e1,b1,w1>R}={<e1,b1,j1>, <e1,b1,j2>}

Works-On

Page 88: Βάσεις Γνώσεων

88

Επί παραδείγματι ...

Cmax[W-O(Job|Employee)] = 10 Μια δουλειά μπορεί να την κάνουν το πολύ 10 άτομα

Cmax[W-O(Job,Employee|Branch)] = 1

Ένας άνθρωπος, μια δουλειά μπορεί να την κάνει το πολύ σε ένα τμήμα άτομα

Cmin[W-O(Employee|Job)] = 5

Ένας υπάλληλος κάνει τουλάχιστον 5 δουλειές

Page 89: Βάσεις Γνώσεων

89

Τριαδικές Σχέσεις

Οι τριαδικές σχέσεις είναι συνήθως N:M:KΑν πρέπει να χρησιμοποιήσετε αυτόν τον φορμαλισμό, μόνο ένα από τα N:M:K μπορεί να είναι 1.Για κάθε ζεύγος employee,branch υπάρχει ακριβώς μια job (ήτοι, ένας υπάλληλος κάνει ακριβώς μία δουλειά σε κάθε παράρτημα που δουλεύει)

Ν Μ

1

Page 90: Βάσεις Γνώσεων

90

Μετασχηματισμός Τριαδικών σε Δυαδικές Συσχετίσεις

Αντί για τον τύπο συσχέτισης R μεταξύ των A, B και C, εισήγαγε τον τύπο οντοτήτων E, και 3 τύπους συσχετίσεων:

1. RA, μεταξύ E & A 2.RB, μεταξύ E & B

3. RC, μεταξύ E & CΕισήγαγε τεχνητό κλειδί για την EΠρόσθεσε όλα τα γνωρίσματα της R στην E

Για κάθε συσχέτιση (ai , bi , ci) της R, φτιάξε

1. οντότητα ei που ανήκει στην E 2. πρόσθεσε (ei , ai ) στο RA

3. πρόσθεσε (ei , bi ) στο RB 4. πρόσθεσε (ei , ci ) στο RC

Page 91: Βάσεις Γνώσεων

91

Μετασχηματισμός Τριαδικών σε Δυαδικές Συσχετίσεις

Θυμηθείτε να προσθέσετε όποιους περιορισμούς είχε η παλιά τριαδική συσχέτιση

Είναι πιθανόν να χάσετε κάποιους ...

Page 92: Βάσεις Γνώσεων

92

Περιεχόμενα

Εισαγωγή

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

Τύποι Συσχετίσεων

Κλειδιά, Ρόλοι και Βαθμός Συσχέτισης

Περιορισμοί

Ειδικά Θέματα

Προβληματισμοί για τον σχεδιαστή

Σύνοψη Γραφικής Αναπαράστασης

Page 93: Βάσεις Γνώσεων

93

Σχεδιαστικοί Προβληματισμοί

Πρόβλημα: έχετε ένα πελάτη που σας περιγράφει τη ΒΔ που θέλει να του φτιάξετε. Ο πελάτης ξέρει περίπου τι θέλει.Πρέπει να καταγράψετε αυτά που ο πελάτης θέλει (κι ας μην τα ξέρει πλήρως), και δεν πρέπει να φτιάξετε μια ΒΔ που να είναι εντελώς άσχετη με αυτά που σκέφτεται ο πελάτης => ακούμε με προσοχή!ΔΕΝ γίνεται με την πρώτη => κάνουμε υπομονή στις αλλαγές, είναι μέρος του προβλήματος...

Page 94: Βάσεις Γνώσεων

94

Σχεδιαστικοί Προβληματισμοί

Υπάρχουν πράγματα που ΔΕΝ μπορεί να καταγράψει το ER μοντέλο => τα καταγράφουμε με κάποια γλώσσα (φυσική, γραφική, τυπική,...) εξωτερικά του μοντέλου!

Πάντα, όμως, καταγράφουμε μέσα στο διάγραμμα όσα περισσότερα στοιχεία μπορούμε!!

Μην ξεχνάτε την συνέπεια του διαγράμματος: πρέπει να είναι συντακτικό σωστό!!

Μην ξεχνάτε τα κλειδιά: αφορούν τη συνέπεια των περιεχομένων του διαγράμματος!!

Page 95: Βάσεις Γνώσεων

95

Επανάληψη μητήρ πάσας ασυνεπείας...

Customer

Cust-Id

Loan

Loan-Id

C-Name

Σωστό!

Customer

Cust-Id

Loan

Loan-Id

C-NameCust-Id

C-Name

Λάθος!

Page 96: Βάσεις Γνώσεων

96

Επανάληψη μητήρ πάσας ασυνεπείας...

Loan

Loan-Id

Cust-IdC-Name

Λάθος επίσης!

Customer

Cust-Id

Loan

Loan-Id

C-Name

Σωστό!

Page 97: Βάσεις Γνώσεων

97

Σχεδιαστικοί Προβληματισμοί

Οντότητα ή Γνώρισμα?

Η εκλογή εξαρτάται από το context της μοντελοποίησης και τη σημασία της εν λόγω οντότητας / γνώρισμα. Απλοϊκός κανόνας [συνήθως σωστός]:

Όταν κάτι είναι παραπάνω από ένα όνομα ή ένα id, με αλληλοεξαρτήσεις μεταξύ γνωρισμάτων, τότε είναι οντότητα!

Όταν κάτι μοιράζεται από περισσότερες από μία οντότητες (π.χ., υπάρχουν συσχετίσεις προς αυτό) τότε είναι υποχρεωτικά οντότητα!

Όταν κάτι είναι το «Ν» σε μια συσχέτιση Ν:1, τότε είναι οντότητα! (προτιμήστε οντότητες, αντί για πλειότιμα γνωρίσματα)

Page 98: Βάσεις Γνώσεων

98

Σχεδιαστικοί Προβληματισμοί

Οντότητα ή Συσχέτιση?

Υπάρχει ένα «άγραφος» κανόνας που, δοθείσης μιας λεκτικής περιγραφής σχετίζει τα ουσιαστικά με οντότητες και τα ρήματα με συσχετίσεις.

Επικίνδυνος!! (τι είναι η «κατάθεση» χρημάτων?)

Page 99: Βάσεις Γνώσεων

99

Σχεδιαστικοί Προβληματισμοί

Δυαδικές ή n-ary συσχετίσεις?Κατ’ αρχήν προσπαθούμε να διατηρήσουμε την πιο φυσιολογική σε σχέση με τον πραγματικό κόσμο!Προσοχή στις n-ary! Παράδειγμα: η σχέση parent. Ενώ μπορεί κάλλιστα να μοντελοποιήσει τριάδες <father,mother,child> (π.χ., Δίας, Ήρα,Άρης), έχει και προβλήματα (π.χ., Δίας,NULL,Αθηνά). Σε τέτοιες περιπτώσεις, τις σπάμε σε δυαδικές (father και mother)…

Πλειότιμα γνωρίσματα ή χωριστές οντότητες?Συνήθως χωριστές οντότητες – σε ειδικές περιπτώσεις πλειότιμα γνωρίσματα...

Page 100: Βάσεις Γνώσεων

100

Σχεδιαστικοί Προβληματισμοί

Μην το παρακάνετε με τις ασθενείς οντότητες!!Δεν είναι κακό να φτιάξετε ένα τεχνητό κλειδί, αρκεί να έχει κάποιο λογικό νόημα!!Φτιάχνουμε ασθενείς οντότητες, ΜΟΝΟ αν ένα τεχνητό κλειδί ΔΕΝ έχει νόημα. Απλοϊκός κανόνας: μια ασθενής οντότητα είναι μια καλή εναλλακτική σε ένα πλειότιμο γνώρισμα...

Π.χ., εξαρτώμενα παιδιά υπαλλήλου: αν δεν τα θέλουμε ως πλειότιμο γνώρισμα και μας αφορά απλώς να τα καταγράψουμε

Page 101: Βάσεις Γνώσεων

101

Σχεδιαστικοί Προβληματισμοί

Η μεγαλύτερη αρετή του σχεδιαστή είναι η απλότητα των διαγραμμάτων του!

[και η ακρίβεια και η πληρότητα, μην ξεχνιόμαστε, ε?]

Μην ντρέπεστε να βάλετε οντότητες ή συσχετίσεις, αν προκύπτουν από το πρόβλημα.

Μη βάζετε όμως άχρηστες, διότι το διάγραμμα γίνεται πολύπλοκο. Το ER είναι μάλλον δύσχρηστο μοντέλο...

Page 102: Βάσεις Γνώσεων

102

Σχεδιαστικοί Προβληματισμοί

Ο σκοπός του ER διαγράμματος είναι να καταγράψει την πραγματικότητα όσο πιο τυπικά γίνεται και να αποτελεί σημείο αναφοράς της διαδικασίας σχεδίασης και υλοποίησης της ΒΔ =>

αυτά που πρέπει να καταγραφούν, πρέπει να είναι μέσα στο διάγραμμά μας (άρα να μην έχουμε ελλείψεις),με σωστό τρόπο (για να τα εννοούν και άλλοι),και μόνο αυτά !!!

Page 103: Βάσεις Γνώσεων

103

Περιεχόμενα

Εισαγωγή

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

Τύποι Συσχετίσεων

Κλειδιά, Ρόλοι και Βαθμός Συσχέτισης

Περιορισμοί

Ειδικά Θέματα

Προβληματισμοί για τον σχεδιαστή

Σύνοψη Γραφικής Αναπαράστασης

Page 104: Βάσεις Γνώσεων

104

Διαγράμματα Οντοτήτων – Συσχετίσεων (E-R Diagrams)

Παραλληλόγραμμα για τύπους οντοτήτων

Ελλείψεις για γνωρίσματα

Διπλές ελλείψεις για πλειότιμα γνωρίσματα.

Διακεκομμένες ελλείψεις για παραγόμενα γνωρίσματα.

Υπογράμμιση για πρωτεύοντα κλειδιά (στη συνέχεια...)

Ρόμβοι για τύπους συσχετίσεων

Ακμές για να συνδέσουν τύπους οντοτήτων με γνωρίσματα και τύπους συσχετίσεων

Page 105: Βάσεις Γνώσεων

105

Γραφική Αναπαράσταση Τύπων Οντοτήτων

Page 106: Βάσεις Γνώσεων

106

Γραφική Αναπαράσταση Τύπων Συσχετίσεων

Page 107: Βάσεις Γνώσεων

107

Γραφική Αναπαράσταση Πληθικότητας και Συμμετοχής

Άνω όριο

Κάτω όριοΆνω όριο

Κάτω όριο

Page 108: Βάσεις Γνώσεων

108

Ρόλοι & Αυτοσυσχετίσεις

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

Page 109: Βάσεις Γνώσεων

109

Ασθενείς Τύποι Οντοτήτων

Ασθενής οντότητα: payment

Μερικό κλειδί: payment-number

Κλειδί του payment : (loan-number, payment-number)

Page 110: Βάσεις Γνώσεων

110

ER Διάγραμμα