Βάζεις Δεδομένων ΤΟ ΣΧΕΣΙΑΚΟ ΜΟΝΤΕΛΟ The Relational Model ρεζηαθό Μνληέιν 1
Relation - Σσέζη Μηα ζρέζε είλαη έλαο δηζδηάζηαηνο πίλαθαο δεδνκέλσλ. Ο πίλαθαο απηόο απνηειείηαη από: Γξακκέο (rows) ή Δγγξαθέο (records) ή Πιεηάδεο (tuples) θαη ηήιεο (columns) ή Χαξαθηεξηζηηθά (attributes) ή Πεδία (fields) ρεζηαθό Μνληέιν 2
Ιδιόηηηερ Σσέζεων Κάζε ζρέζε έρεη κνλαδηθό όλνκα κεηαμύ ησλ ππνινίπσλ ζρέζεσλ ηεο Βάζεο Γεδνκέλσλ. Κάζε ραξαθηεξηζηηθό έρεη κνλαδηθό όλνκα κέζα ζηε ζρέζε. Η ηηκή ελόο ραξαθηεξηζηηθνύ είλαη αηνκηθή (not composite). Ο ηηκέο ελόο ραξαθηεξηζηηθνύ αλήθνπλ ζην ίδην πεδίν νξηζκνύ (not multi-valued). Γελ παίδεη ξόιν ε ζεηξά ησλ ραξαθηεξηζηηθώλ κίαο ζρέζεο, νύηε ε ζεηξά ησλ πιεηάδσλ ζηε ζρέζε. Κάζε πιεηάδα πξέπεη λα είλαη κνλαδηθή (όρη δηπινεγγξαθέο) ρεζηαθό Μνληέιν 3
Ανηιζηοισία με ηο Μονηέλο ER Οη πίλαθεο αληηζηνηρνύλ ζηηο νληόηεηεο ή ζηηο ζπζρεηηζηηθέο νληόηεηεο Οη γξακκέο αληηζηνηρνύλ ζηα ζηηγκηόηππα κηαο νληόηεηαο Οη ζηήιεο αληηζηνηρνύλ ζηα ραξαθηεξηζηηθά ΠΡΟΟΧΗ: Η ιέμε ρέζε (relation) ηνπ ζρεζηαθνύ κνληέινπ δελ είλαη ή ίδηα κε ηελ ιέμε πζρέηηζε (relationship) ηνπ κνληέινπ ER. ρεζηαθό Μνληέιν 4
Πεδία πος οπίζονηαι ωρ κλειδιά Primary keys (Πξσηεύνληα θιεηδηά) Δίλαη πεδία πνπ πξνζδηνξίδνπλ κνλαδηθά ηηο εγγξαθέο ελόο πίλαθα. Foreign keys (Ξέλα θιεηδηά) Δίλαη πεδία πνπ επηηξέπνπλ ηελ ζύλδεζε ηεο εμαξηώκελεο νληόηεηαο κε ηελ νληόηεηα γνλέα, όηαλ νη νληόηεηεο ζπλδένληαη κε κία ζπζρέηηζε ηύπνπ έλα πξνο πνιιά (1:Ν) ρεζηαθό Μνληέιν 5
Παπαδείγμαηα με ππωηεύονηα και ξένα κλειδιά primary key foreign key (οπίζει ηην 1:N ζςζσέηιζη μεηαξύ ηων CUSTOMER και ORDER) composite primary key για ηον πίνακα ORDER LINE Επίζηρ είναι και foreign keys πος επιηπέποςν ηην M:N ζςζσέηιζη μεηαξύ ORDER και PRODUCT ρεζηαθό Μνληέιν 6
Integrity Constraints (Πεπιοπιζμοί Ακεπαιόηηηαρ) Entity Integrity (αθεξαηόηεηα νληόηεηαο) Καλέλα primary key δελ κπνξεί λα είλαη null. Referential Integrity (αλαθνξηθή αθεξαηόηεηα) Η ηηκή ηνπ foreign key (ηνπ πίλαθα ησλ πνιιώλ ζηηγκηόηππσλ) πξέπεη λα ηαηξηάδεη κε ηελ ηηκή ηνπ primary key (ηνπ πίλαθα ηνπ ελόο ζηηγκηόηππνπ), θαζνξίδνληαο ηελ αληηζηνηρία ηνπο ζηε ζπζρέηηζε 1:Ν. Σν foreign key κπνξεί λα έρεη ηηκή NULL (εάλ ζε θάπνην ζηηγκηόηππν δελ έρεη γίλεη αθόκα ε αληηζηνηρία). ρεζηαθό Μνληέιν 7
Referential Integrity (Αναθοπική Ακεπαιόηηηα) Σύπνη Restrict κελ επηηξέπεηο ηελ δηαγξαθή εγγξαθήο ζηνλ πίλαθα γνλέα αλ απηή ε εγγξαθή ζπζρεηίδεηαη κε εγγξαθέο ηνπ εμαξηώκελνπ πίλαθα. Cascade απηόκαηα δηέγξαςε ηηο εγγξαθέο ηνπ εμαξηώκελνπ πίλαθα όηαλ δηαγξαθνύλ νη αληίζηνηρεο εγγξαθέο ηνπ πίλαθα γνλέα Set-to-Null θάλε ηηο ηηκέο ηνπ μέλνπ θιεηδηνύ ηνπ εμαξηώκελνπ πίλαθα NULL όηαλ δηαγξαθεί ε αληίζηνηρε εγγξαθή ζηνλ πίλαθα γνλέα. ρεζηαθό Μνληέιν 8
Παπάδειγμα Πεπιοπιζμών Αναθοπικήρ Ακεπαιόηηηαρ Οι πεπιοπιζμοί αναθοπικήρ ακεπαιόηηηαρ αποηςπώνονηαι από ηιρ μπλε γπαμμέρ. ρεζηαθό Μνληέιν 9
Οι πεπιοπιζμοί Αναθοπικήρ Ακεπαιόηηηαρ ζηην SQL ρεζηαθό Μνληέιν 10
Μεηαηποπή μονηέλος ΕR ζε Σσεζιακό Μεηαηξνπή Οληνηήησλ ζε Πίλαθεο Simple attributes: κεηαθέξνληαη όπσο είλαη ρσξίο θακία αιιαγή. Composite attributes: ρξήζε ησλ ζπζηαηηθώλ ηνπ ζύλζεηνπ ραξαθηεξηζηηθνύ σο πεδία. Multivalued Attribute: κεηαηξέπεηαη ζε έλαλ λέν πίλαθα κε μέλν θιεηδί πνπ ην θιεξνλνκεί από ηελ νληόηεηα γνλέα. ρεζηαθό Μνληέιν 11
Παπάδειγμα Μεηαηποπήρ Απλήρ Ονηόηηηαρ ζε Πίνακα CUSTOMER entity type with simple attributes CUSTOMER relation ρεζηαθό Μνληέιν 12
Παπάδειγμα Μεηαηποπήρ ενόρ Σύνθεηος Χαπακηηπιζηικού CUSTOMER entity type with composite attribute CUSTOMER relation with address detail ρεζηαθό Μνληέιν 13
Παπάδειγμα Μεηαηποπήρ ενόρ Multi-valued Attribute 1 πξνο πνιιά ζπζρέηηζε κεηαμύ αξρηθήο νληόηεηαο θαη λένπ πίλαθα To Multivalued Attribute θηηάρλεη έλαλ λέν πίλαθα κε foreign key ρεζηαθό Μνληέιν 14
Μεηαηποπή Αζθενών Ονηοηήηων Μεηαηξνπή Αζζελώλ Οληνηήησλ Γεκηνπξγείηαη έλαο μερσξηζηόο πίλαθαο κε μέλν θιεηδί πνπ δίλεηαη από ηελ αξρηθή νληόηεηα Σν primary key ηνπ ζπλίζηαηαη από ηα εμήο: partial identifier ηεο αζζελνύο νληόηεηαο primary key ηεο ηζρπξήο νληόηεηαο Δίλαη δειαδή έλα composite primary key ρεζηαθό Μνληέιν 15
Παπάδειγμα Μεηαηποπήρ Αζθενούρ Ονηόηηηαρ ρεζηαθό Μνληέιν 16
Παπάδειγμα Μεηαηποπήρ Αζθενούρ Ονηόηηηαρ Foreign Key Composite Primary Key ρεζηαθό Μνληέιν 17
Μεηαηποπή Σςζσεηίζεων 2 ος Βαθμού Μεηαηξνπή πζρεηίζεσλ 1:1 Σν primary key ηεο νληόηεηαο πνπ ζπκκεηέρεη ππνρξεσηηθά ζηε ζπζρέηηζε γίλεηαη foreign key ζηελ νληόηεηα πνπ δελ ζπκκεηέρεη ππνρξεσηηθά. ρεζηαθό Μνληέιν 18
Παπάδειγμα Μεηαηποπήρ Σςζσέηιζηρ ένα ππορ ένα (1:1) ρεζηαθό Μνληέιν 19
Παπάδειγμα Μεηαηποπήρ Σςζσέηιζηρ ένα ππορ ένα (1:1) ρεζηαθό Μνληέιν 20
Μεηαηποπή Σςζσεηίζεων 2 ος Βαθμού Μεηαηξνπή πζρεηίζεσλ 1:N Σν primary key ηεο νληόηεηαο πνπ ζπκκεηέρεη ζηε ζπζρέηηζε από ηελ πιεπξά ηνπ 1 γίλεηαη foreign key ηεο νληόηεηαο πνπ ζπκκεηέρεη ζηε ζπζρέηηζε από ηελ πιεπξά ηνπ Ν. ρεζηαθό Μνληέιν 21
Παπάδειγμα Μεηαηποπήρ Σςζσέηιζηρ ένα ππορ πολλά (1:Ν) πποζέξηε ηην ςποσπεωηική ζςμμεηοσή από ηην πλεςπά ηος 1 ρεζηαθό Μνληέιν 22
Παπάδειγμα Μεηαηποπήρ Σςζσέηιζηρ ένα ππορ πολλά (1:Ν) δεν επιηπέπονηαι NULL ηιμέρ ζηο κύπιο κλειδί Customer_ID foreign key ρεζηαθό Μνληέιν 23
Μεηαηποπή Σςζσεηίζεων 2 ος Βαθμού Μεηαηξνπή πζρεηίζεσλ N:M Γηα ηηο ζπζρεηίζεηο ηύπνπ πνιιά-πξνο-πνιιά δεκηνπξγείηαη έλαο λένο πίλαθαο κε ζύλζεην πξσηεύνλ θιεηδί (composite primary key) πνπ απνηειείηαη από ηα πξσηεύνληα θιεηδηά ησλ δπν νληνηήησλ πνπ ζπκκεηέρνπλ ζηε ζπζρέηηζε απηή. ρεζηαθό Μνληέιν 24
Παπάδειγμα Μεηαηποπήρ Σςζσέηιζηρ πολλά ππορ πολλά (Ν:Μ) Η ζςζσέηιζη Supplies ππέπει να μεηαηπαπεί ζε νέο πίνακα ρεζηαθό Μνληέιν 25
Παπάδειγμα Μεηαηποπήρ Σςζσέηιζηρ πολλά ππορ πολλά (Ν:Μ) foreign key composite primary key foreign key νέορ πίνακαρ ρεζηαθό Μνληέιν 26
Μεηαηποπή Σςζσεηιζηικών Ονηοηήηων Μεηαηξνπή ζπζρεηηζηηθώλ νληνηήησλ Σν πξσηεύνλ θιεηδί ηεο ζπζρεηηζηηθήο νληόηεηαο (associative entity) πξνθύπηεη από ηα πξσηεύνληα θιεηδηά ησλ δύν νληνηήησλ πνπ ζπκκεηέρνπλ ζηε ζπζρέηηζε (δειαδή όπσο θαη ζηελ πεξίπησζε ηεο ζπζρέηηζεο Ν:Μ) ε πεξίπησζε όκσο πνπ έρεη σο ραξαθηεξηζηηθό έλα δηθό ηεο αλεμάξηεην πξσηεύνλ θιεηδί ηόηε απηό γίλεηαη θύξην θιεηδί ηεο ρεζηαθό Μνληέιν 27
Παπάδειγμα Μεηαηποπήρ Σςζσεηιζηικήρ Ονηόηηηαρ ρεζηαθό Μνληέιν 28
Παπάδειγμα Μεηαηποπήρ Σςζσεηιζηικήρ Ονηόηηηαρ ρεζηαθό Μνληέιν 29
Παπάδειγμα Μεηαηποπήρ Σςζσεηιζηικήρ Ονηόηηηαρ με δικό ηηρ κύπιο κλειδί ρεζηαθό Μνληέιν 30
Παπάδειγμα Μεηαηποπήρ Σςζσεηιζηικήρ Ονηόηηηαρ με δικό ηηρ κύπιο κλειδί ρεζηαθό Μνληέιν 31
Μεηαηποπή Σςζσεηίζεων 1 ος Βαθμού Μεηαηξνπή πζρεηίζεσλ έλα-πξνο-πνιιά (1:Ν) Γηα ηηο αλαδξνκηθέο ζπζρεηίζεηο ηύπνπ έλα-πξνοπνιιά πνπ αλαθέξνληαη ζηελ ίδηα νληόηεηα, δεκηνπξγείηαη έλαο πίλαθαο κε αλαδξνκηθό μέλν θιεηδί. Οκνίσο αληηκεησπίδεηαη θαη ε πεξίπησζε έλαπξνο-έλα (1:1) ρεζηαθό Μνληέιν 32
Παπάδειγμα Μεηαηποπήρ Σςζσεηίζεων 1 ος Βαθμού ηύπος ένα ππορ πολλά (1:Ν) EMPLOYEE entity with Manages relationship EMPLOYEE relation with recursive foreign key ρεζηαθό Μνληέιν 33
Μεηαηποπή Σςζσεηίζεων 1 ος Βαθμού Μεηαηξνπή πζρεηίζεσλ πνιιά-πξνο-πνιιά (Ν:Μ) Γηα ηηο αλαδξνκηθέο ζπζρεηίζεηο ηύπνπ πνιιά-πξνοπνιιά πνπ αλαθέξνληαη ζηελ ίδηα νληόηεηα, δεκηνπξγνύληαη δύν πίλαθεο: Έλαο πίλαθαο γηα ηελ νληόηεηα Έλαο πίλαθαο γηα ηελ ζπζρεηηζηηθή νληόηεηα ρεζηαθό Μνληέιν 34
Παπάδειγμα Μεηαηποπήρ Σςζσεηίζεων 1 ος Βαθμού ηύπος πολλά ππορ πολλά (Ν:Μ) ITEM relationships (M:N) ITEM and COMPONENT relations ρεζηαθό Μνληέιν 35
Μεηαηποπή Σςζσεηίζεων Ν-Βαθμού Μεηαηξνπή πζρεηίζεσλ Ν-Βαζκνύ (Ν 3) Γηα ηηο ζπζρεηίζεηο 3 νπ ή κεγαιπηέξνπ βαζκνύ δεκηνπξγνύληαη Ν+1 πίλαθεο (αλεμάξηεηα από ηνλ ηύπν ησλ ζπζρεηίζεσλ πνπ ζπλήζσο είλαη έλα πξνο πνιιά): Έλαο μερσξηζηόο πίλαθαο γηα θάζε κία νληόηεηα πνπ ζπκκεηέρεη ζηε ζπζρέηηζε Έλαο πίλαθαο γηα ηελ ζπζρεηηζηηθή νληόηεηα ρεζηαθό Μνληέιν 36
Παπάδειγμα Μεηαηποπήρ Σςζσεηίζεων 3 ος Βαθμού ηύπος ένα ππορ πολλά (1:Ν) ρεζηαθό Μνληέιν 37
Παπάδειγμα Μεηαηποπήρ Σςζσεηίζεων 3 ος Βαθμού ηύπος ένα ππορ πολλά (1:Ν) ρεζηαθό Μνληέιν 38
Μεηαηπέπονηαρ Supertype/Subtype Relationships Όηαλ ππάξρεη ηεξαξρηθή δνκή κεηαμύ νληνηήησλ: Γεκηνπξγείηαη έλαο πίλαθαο γηα ηελ νληόηεηα Supertype θαη μερσξηζηνί πίλαθεο γηα θάζε κία νληόηεηα Subtype. Σν ζύλζεην πξσηεύνλ θιεηδί ηνπ supertype πίλαθα γίλεηαη πξσηεύνλ θιεηδί ζε θάζε subtype πίλαθα. ρεζηαθό Μνληέιν 39
Παπάδειγμα Μεηαηποπήρ Supertype/Subtype Relationships ρεζηαθό Μνληέιν 40
Παπάδειγμα Μεηαηποπήρ Supertype/Subtype Relationships 1-1 relationships ρεζηαθό Μνληέιν 41