Department of Computer Science University of Cyprus EPL342 Databases Lecture 7: RM I Relational Data Model (Chapter 5.1-5.2, Elmasri-Navathe 5ED) Demetris Zeinalipour http://www.cs.ucy.ac.cy/courses/epl342 7-1
Πεξηερόκελν Γηάιεμεο Οινθιήξωζε Γηάιεμεο 4 Κεθάιαην 5: Τν Σρεζηαθό Μνληέιν Γεδνκέλωλ Δηζαγωγή ζην Σρεζηαθό Μνληέιν Οξηζκνί: Σρέζε, Γλώξηζκα, Κιεηδί, Σρήκα Σρέζεο, Πεδίν Οξηζκνύ, Πιεηάδα, Καηάζηαζε Σρέζεο, Πιεζπθόο Αξηζκόο Σρέζεο, Παξαδείγκαηα Χαξαθηεξηζηηθά Σρεζηαθνύ Μνληέινπ: Γηάηαμε Πιεηάδσλ, Γηάηαμε Γλσξηζκάησλ, Τηκέο & Κελέο Τηκέο Δπόκελε Γηάιεμε Πεξηνξηζκνί Σρεζηαθνύ Μνληέινπ θαη Σρήκαηα Πξάμεηο Δλεκεξώζεωλ θαη Αληηκεηώπηζε Παξαβηάζεσλ ησλ Πεξηνξηζκώλ 7-2
Δηζαγσγή ζην Σρεζηαθό Μνληέιν Μέρξη ηώξα είδακε Μνληέιν Οληνηήηωλ-Σπζρεηίζεωλ (ER Model), ην νπνίν ρξεζηκνπνηείηαη γηα ηελ ελλνηνινγηθή αλαπαξάζηαζε δεδνκέλσλ κε ρξήζε αθεξεκέλσλ ελλνηώλ όπσο Οληόηεηεο, Γλωξίζκαηα θαη Σπζρεηίζεηο Παξόιν πνπ έλα ηέηνην κνληέιν αλαπαξηζηάηαη δηαγξακκαηηθά θαη γίλεηαη εύθνια αληηιεπηό από ηνπο ζρεδηαζηέο θαη πειάηεο, δελ είλαη αθόκε πξνθαλέο πωο γίλεηαη «αληηιεπηό» από έλα ππνινγηζηηθό ζύζηεκα. Σε απηή ηελ ελόηεηα ζα δνύκε πσο ην Σρεζηαθό Μνληέιν (Relational Model), ην νπνίν θάλεη ρξήζε ηνπ καζεκαηηθνύ ππνβάζξνπ ησλ Σρέζεσλ γηα λα απαληήζεη ην πην πάλσ εξώηεκα. 7-3
Δηζαγσγή ζην Σρεζηαθό Μνληέιν Τν Σσεζιακό Μονηέλο νξίδεηαη ην 1970 από ηνλ Βξεηαλό εξεπλεηή Edgar F. Codd ζην IBM Research "A Relational Model of Data for Large Shared Data Banks". Codd, E.F.(1970), Communications of the ACM 13(6):377-387 Σε απηό ην κνληέιν, ηα δεδνκέλα αλαπαξηζηώληαη ζε πίνακερ πάλσ ζηνπο νπνίνπο νξίδνληαη διάθοποι πεπιοπιζμοί. (Θα νξηζηεί απζηεξόηεξα ζηε ζπλέρεηα) To κνληέιν πξνθάιεζε κηα επανάζηαζη* ζην ρώξν ησλ βάζεσλ δεδνκέλσλ ιόγσ ηεο απλόηηηαρ θαη ηνπ μαθημαηικού ηνπ ςπόβαθπος 1969: Τν Σρεζηαθό Μνληέιν πινπνηείηαη από ηε βάζε IBM System R 1970: H IBM δεκηνπξγεί ηελ SEQUEL (πξνπνκπό ηεο SQL) 1981: O Codd παίξλεη ην Turing Award ζηε πιεξνθνξηθή 1985: H ΙΒΜ θάλεη ηελ SQL Παηέληα (US Pat. 4,506,326). Σήμεπα: To Σρεζηαθό Μνληέιν πινπνηείηαη από ηηο πεξηζζόηεξεο ζύγρξνλεο βάζεηο δεδνκέλσλ (Oracle, IBM DB2, SQL Server, PostgreSQL, MySQL, θηι). * Μέρξη ηόηε ηα επηθξαηέζηεξα EPL342: Databases κνληέια -ήηαλ Demetris ην Δηθηπαθό Zeinalipour (Network) (University θαη ην Ιεξαξρηθό of Cyprus) (Hierarchical) 7-4
Δηζαγσγή ζην Σρεζηαθό Μνληέιν Σηόσορ ηος Σσεζιακού Μονηέλος: Να πξνζθέξεη κηα δηλωηική (declarative) κέζνδν γηα ηνλ νξηζκό δεδομένων θαη επεπωηήζεων Πάλσ ζην ζρεζηαθό κνληέιν ζηεξίδεηαη ζήκεξα ε Σσεζιακή Άλγεβπα (Relational Algebra) (θαη θαη επέθηαζε ε SQL) Εάλ θαη ππάξρνπλ θάπνηεο λεπηέρ διαθοπέρ κεηαμύ ηνπ Σσεζιακού Μονηέλος θαη ηνπ πσο αναπαπιζηά ηα δεδνκέλα κηα βάζε δεδνκέλσλ. Σε επόμενερ διαλέξειρ ζα θαιύςνπκε εθηελώο ηόζν ηελ ζσεζιακή άλγεβπα όζν θαη ηελ SQL 7-5
Σρεζηαθό Μνληέιν: Άηππνη Οξηζκνί Σην Σσεζιακό Μονηέλο (Relational Model) θάλεη ρξήζε ηεο καζεκαηηθήο έλλνηαο ηεο Σσέζηρ (Relation) Τππηθά, κηα Σρέζε r είλαη έλα ζύλνιν πιεηάδωλ (tuples) r={t 1,t 2, t Μ }, όπνπ θάζε πιεηάδα είλαη κηα δηαηεηαγκέλε ιίζηα ηηκώλ t=<v 1,v 2,,v Ν >. Σπλεπώο, κηα ζρέζε είλαη νπζηαζηηθά έλαο πίλαθαο ΜxΝ (Μ γξακκώλ θαη N ζηειώλ)! Κάζε γξακκή αλαπαξηζηά ζπγθεθξηκέλα γεγνλόηα ηα νπνία αλαθέξνληαη ζε θάπνηα νληόηεηα (entity) ή ζπζρέηηζε (relationship) ηνπ πξαγκαηηθνύ θόζκνπ. Κάζε γξακκή row νλνκάδεηαη θαη πιεηάδα (tuple) ή εγγξαθή (record) Κάζε ζηήιε (column) νλνκάδεηαη θαη ραξαθηεξηζηηθό (characteristic) ή γλώξηζκα (attribute) Η επηθεθαιίδα θάζε ζηήιεο πξνζδηνξίδεη ην λόεκα ηεο ελ ιόγσ ζηήιεο 7-6
Σρεζηαθό Μνληέιν: Παξάδεηγκα πηθεθαιίδα Όλνκα Σρέζεο Γλσξίζκαηα Δγγξαθέο Τππηθά, ε επηθεθαιίδα ΓΔΝ είλαη κέξνο ηεο ζρέζεο αιιά πεξηιακβάλεηαη ζηηο Μέηα-πιεξνθνξίεο ηεο. Πνπ απνζεθεύνληαη νη ηέηνηεο Μέηα-πιεξνθνξίεο ζε κε ζρεζηαθή βάζε δεδνκέλσλ; 7-7
Σρεζηαθό Μνληέιν: Άηππνη Οξηζκνί Κιεηδί (Key) κηαο Σρέζεο: Η αλάζεζε ηηκήο ελόο ή πεξηζζνηέξωλ γλσξηζκάησλ ηα νπνία πξνζδηνξίδνπλ κνλαδηθά ηελ γξακκή ζηνλ πίλαθα. Ο νξηζκόο είλαη αληίζηνηρνο κε απηόλ πνπ δώζακε ζην πιαίζην ηνπ ER νπνύ νξίζακε σο ην Κιεηδί κηαο Οληόηεηαο (Key) ην πεδίν(α) πνπ αλαγλσξίδνπλ κνλαδηθά κηα Οληόηεηα Σην Σρεζηαθό Μνληέιν κηα ζρέζε είλαη είηε κηα Οληόηεηα ή κηα Σπζρέηηζε ηνπ ER Μνληέινπ Σην παξάδεηγκα ηνπ πίλαθα STUDENT, ην SSN είλαη πξνθαλώο ην θιεηδί. Κάπνηε ε ζέζε ηεο γξακκήο (row-id) ή ζεηξηαθνί αξηζκνί ρξεζηκνπνηνύληαη σο θιεηδηά Ολνκάδνληαη Τερλεηά Κιεηδηά (Artificial keys) ή Υποκαηάζηαηα Κλειδιά (surrogate keys) 7-8
Οξηζκνί Σρεζηαθνύ Μνληέινπ (Σρήκα Σρέζεο) To Σρήκα (Schema) ή πεξηγξαθή κηαο Σρέζεο: Θα αλαθέξεηαη σο R(A 1, A 2,...A n ) R είλαη ην όλνκα ηεο ζρέζεο Τα γλωξίζκαηα ηεο ζρέζεο είλαη ηα A 1, A 2,..., A n Παξάδεηγκα: CUSTOMER (Cust-id, Cust-name, Address, Phone#) CUSTOMER δειώλεη ην όλνκα ηεο ζρέζεο Η ζρέζε νξίδεηαη από ηα γλωξίζκαηα: Cust-id, Cust-name, Address, Phone# Κάζε γλώξηζκα νξίδεηαη ζην πεδίν νξηζκνύ (domain) π.ρ., ην domain ηνπ Cust-id είλαη 6 ςεθία (αθνινπζεί νξηζκόο) Ο βαζκόο (degree ή arity) κηαο ζρέζεο είλαη ην πιήζνο n ησλ γλσξηζκάησλ ηνπ ζρήκαηνο. 7-9
Οξηζκνί Σρεζηαθνύ Μνληέινπ (n-άδα ή Πιεηάδα) Μηα πιεηάδα (tuple) είλαη έλα δηαηεηαγκέλν* ζύλνιν ηηκώλ v 1, v 2,, v n ην νπνίν εκπεξηθιείεηαη ζηνλ αθόινπζν ζπκβνιηζκό < > Κάζε ηηκή v j (1 j n) ηεο πιεηάδαο νξίδεηαη ζην αληίζηνηρν πεδίν νξηζκνύ ηνπ ζπγθεθξηκέλνπ γλσξίζκαηνο Α j (1 j n) ή είλαη θελό. * εάλ θαη ζα ραιαξώζνπκε απηό ηνλ πεξηνξηζκό αξγόηεξα Παξάδεηγκα: CUSTOMER (Cust-id, Cust-name, Address, Phone#) Μηα γξακκή ηεο ζρέζεο CUSTOMER είλαη κηα 4-άδα ε νπνία απνηειείηαη από 4 ηηκέο, γηα παξάδεηγκα: <632895, "John Smith", "101 Main St. Atlanta, GA 30332", "(404) 894-2000"> Μηα ζρέζε είλαη έλα ζύλνιν (set) ηέηνησλ πιεηάδσλ. 7-10
Οξηζκνί Σρεζηαθνύ Μνληέινπ (Πεδίν Οξηζκνύ) Τν Πεδίν Οξηζκνύ (Domain dom(ai)) είλαη ην ζύλνιν ησλ δπλαηώλ αηνκηθώλ ηηκώλ ελόο γλσξίζκαηνο (δει., δελ θάλεη λόεκα λα δηαζπαζηνύλ νη ηηκέο πεξαηηέξσ), π.ρ., Int -2 31 (-2,147,483,648) κέρξη 2 31-1 (2,147,483,647) Τειεθωληθνί Αξηζκνί Πειαηώλ To ζύλνιν όισλ ησλ έγθπξσλ αξηζκώλ ηειεθώλσλ. Τν Πεδίνπ Οξηζκνύ έρεη έλα Λνγηθό Οξηζκό (εμήγεζε): Π.ρ.,: nicosia_phone_numbers : ην ζύλνιν ησλ αξηζκώλ πνπ είλαη έμη ςεθία θαη μεθηλνύλ κε 22. Δπηπιένλ, έρεη Όλνκα, Τύπν θαη Μνξθνπνίεζε: Τύπνο Γεδνκέλωλ nicosia_phone_numbers : Σπκβνινζεηξά 22-892700 Μνξθνπνίεζε nicosia_phone_numbers : Οη αξηζκνί πξέπεη λα έρνπλ ηελ κνξθή 22-dddddd, όπνπ d είλαη έλα δεθαδηθό ςεθίν. Τέινο, ίζσο λα απαηηείηαη θαη επηπιένλ πιεξνθνξία (π.ρ., κνλάδα κέηξεζεο ζε έλα πεδίν persons_weight: kg, g) 7-11
Οξηζκνί Σρεζηαθνύ Μνληέινπ (Καηάζηαζε Σρέζεο) Η Καηάζηαζε ή Σηηγκηόηππν Σρέζεο (Relation State r(r)) είλαη έλα ππνζύλνιν (αθόκε θαη θελό) ηνπ Καξηεζηαλνύ Γηλνκέλνπ ησλ πεδίωλ νξηζκνύ ησλ γλωξηζκάηωλ Σπλεπώο, ην r(r) είλαη έλα ζύλνιν πιεηάδωλ (tuples) r={t 1,t 2, t Μ }, όπνπ θάζε πιεηάδα είλαη κηα δηαηεηαγκέλε αθνινπζία ηηκώλ t=<v 1,v 2,,v Ν >. Κάζε ηηκή v j είλαη έλα ζηνηρείν ηνπ dom(a j ) ή NULL Τν r(r) νλνκάδεηαη ζπρλά θαη έθηαζε ζρέζεο (relation extension) θαη ην ζρήκα R κηαο ζρέζεο σο πξόζεζε ζρέζεο (relation intension) Πιεζπθόο Αξηζκόο Σρέζεο (Cardinality) ( r(r) ): Ο αξηζκόο ησλ πιεηάδσλ κηαο ζρέζε. δει., ν αξηζκόο γξακκώλ ηνπ πίλαθα ηεο ζρέζεο Παξάδεηγκα: Δπόκελε δηαθάλεηα 7-12
Οξηζκνί Σρεζηαθνύ Μνληέινπ (Σύλνςε) Σηηγκηόηππν r(student) Όλνκα Σρέζεο Γλσξίζκαηα Πιεηάδεο r(student) Βαζκόο (Degree) = R = 7 (γλσξίζκαηα) Πιεζπθόο Αξηζκόο (Cardinality) = r(student) = 5 (πιεηάδεο) 7-13
Οξηζκνί Σρεζηαθνύ Μνληέινπ (Σύλνςε) R(A 1, A 2,, A n ) είλαη ην ζρήκα ηεο ζρέζεο. R είλαη ην όλνκα ηεο ζρέζεο A 1, A 2,, A n είλαη ηα γλωξίζκαηα ηεο ζρέζεο dom(a j ): To πεδίν νξηζκνύ ηνπ A j r(r): είλαη κηα ζπγθεθξηκέλε θαηάζηαζε (state) ηεο ζρέζεο R Απηό είλαη έλα ζύλνιν από πιεηάδεο (έγγξαθεο) r(r) = {t 1, t 2,, t m } όπνπ θάζε t i είλαη κηα n-άδα t i = <v 1, v 2,, v n > όπνπ θάζε ηηκή v j αλήθεη ζην dom(a j ) Πιεζπθόο Αξηζκόο Σρέζεο: r(r) = m Βαζκόο Σρέζεο: R = n 7-14
Οξηζκνί Σρεζηαθνύ Μνληέινπ (Σύλνςε) Έζησ όηη R(A 1, A 2 ) είλαη έλα ζρήκα ζρέζεο: Υπνζέζηε όηη dom(a 1 ) = {0,1} Υπνζέζηε επίζεο όηη dom(a 2 ) = {a,b,c} Τόηε: dom(a 1 ) X dom(a 2 ) είλαη όινη δπλαηνί ζπλδπαζκνί: {<0,a>, <0,b>, <0,c>, <1,a>, <1,b>, <1,c> } Η θαηάζηαζε ηεο ζρέζεο είλαη ππνζύλνιν ηνπ θαξηεζηαλνύ γηλνκέλνπ ησλ πεδίσλ νξηζκνύ r(r) dom(a 1 ) X dom(a 2 ) Π.ρ., r(r) κπνξεί λα είλαη {} ή {<0,b>} ή {<0,a>,<0,b>,<1,c>} ή νπνηνδήπνηε άιιν ζηνηρείν ηνπ Γπλακνζπλόινπ (PowerSet) ηνπ dom(a 1 ) X dom(a 2 ) To Γπλακνζύλνιν (powerset) P(A) ελόο ζύλνιν Α είλαη ην ζύλνιν όισλ ησλ ππνζπλόισλ ηνπ A. Αλ A={a,b} ηόηε P(A)={ {}, {a}, {b}, {a,b} } O πιεζπθόο αξηζκόο ηνπ δπλακνζπλόινπ P(A) =2 Α Σπλεπώο ππάξρνπλ 2 6 =64 δηαθνξεηηθά ζηηγκηόηππα ηνπ r(r) 7-15
Οξηζκνί Σρεζηαθνύ Μνληέινπ (Σύλνςε) Πην θάησ θαίλεηαη ε αληηζηνίρηζε ηεο άηππεο νξνινγίαο πξνο ηελ επίζεκε νξνινγία Πίλαθαο Άηππνη Όξνη (Κεθαιίδα) Σηήιεο Όιεο νη δπλαηέο ηηκέο κηαο ζηήιεο Γξακκή Γήιωζε Πίλαθα Δπίζεκνη Όξνη Σρέζε (Relation) Γλώξηζκα (Attribute) Πεδίν Οξηζκνύ (Domain) Πιεηάδα (Tuple) Σρήκα Σρέζεο (Schema) Γεδνκέλα Πίλαθα Σηηγκηόηππν Σρέζεο (State) 7-16
Φαξαθηεξηζηηθά ησλ Σρέζεσλ 1. Γηάηαμε ηωλ πιεηάδωλ ζε κηα ζρέζε r(r): Οη πιεηάδεο ΓΔΝ είλαη δηαηεηαγκέλεο ή ηαμηλνκεκέλεο, παξόιν ίζσο λα παξνπζηάδνληαη έηζη. Μηα ζρέζε είλαη νπζηαζηηθά έλα ζύλνιν πιεηάδωλ. Τα ζύλνια εμ νξηζκνύ δελ είλαη δηαηεηαγκέλα. Οξηζκόο Σπλόινπ (Cantor 1895): Μηα ζπιινγή ή νκάδα αληηθεηκέλσλ ή ζηνηρείσλ ή κειώλ Η δηάηαμε ΓΔΝ απνηειεί κέξνο ηνπ νξηζκνύ κηαο ζρέζεο αθνύ κηα ζρέζε πξνζπαζεί λα αλαπαξαζηήζεη θάπνηα γεγνλόηα ζε ινγηθό επίπεδν. 7-17
Φαξαθηεξηζηηθά ησλ Σρέζεσλ 1 (1. Γηάηαμε Πιεηάδσλ) 2 r(student1) = r(student2) 7-18
Φαξαθηεξηζηηθά ησλ Σρέζεσλ 2. Γηάηαμε Γλωξηζκάηωλ ζε κηα Πιεηάδα: Ο νξηζκόο ηεο πιεηάδαο πνπ ρξεζηκνπνηήζακε ζεσξεί όηη ηα γλσξίζκαηα είλαη δηαηεηαγκέλα. «Πιεηάδα είλαη έλα δηαηεηαγκέλν ζύλνιν ηηκώλ v 1, v 2,, v m») Τώξα ζα ραιαξώζνπκε απηό ηνλ πεξηνξηζκό αθνύ ζε ινγηθό επίπεδν ε δηάηαμε ηωλ πιεηάδωλ δελ παίδεη ζεκαληηθό ξόιν, π.ρ., Student (Name, SSN, Home_Phone, Address, ) Student (SSN, Name, Home_Phone, Address, ) Σπλεπώο, ζα ζεσξνύκε όηη κηα πιεηάδα είλαη έλα ζύλνιν από δεύγε ηεο κνξθήο (<γλώξηζκα>,<ηηκή>) όπνπ θάζε ηηκή νξίδεηαη ζην dom(γλώξηζκα). 7-19
Φαξαθηεξηζηηθά ησλ Σρέζεσλ 3. Τηκέο θαη NULL Τηκέο ζηηο Πιεηάδεο: Κάζε ηηκή ζε κηα πιεηάδα είλαη κηα αηνκηθή ηηκή ε νπνία νξίδεηαη ζην Πεδίν Οξηζκνύ ηνπ ελ ιόγσ γλσξίζκαηνο Κάζε Πιεηόηηκε Τηκή (Multi-valued Attribute) αλαπαξηζηάηαη από κηα επί κέξνπο ζρέζε Π.ρ., Γλώξηζκα «Locations» ζε κηα ζρέζε Department Κάζε Σύλζεηε Τηκή (Composite attribute) αλαπαξηζηάηαη από ηα απιά ζπζηαηηθά ηνπο. Π.ρ., Γλώξηζκα «Name» αλαπαξηζηάηαη ζηε ζρέζε από Fname, Minit θαη Lname 7-20
Φαξαθηεξηζηηθά ησλ Σρέζεσλ 3. Τηκέο θαη NULL Τηκέο ζηηο Πιεηάδεο: NULL Τηκέο Τηκέο πνπ δελ είλαη γλωζηέο Π.ρ., δελ θαηαρσξήζακε ην Office_phone θάπνηνπ Employee Τηκέο πνπ κπνξεί λα κελ ηζρύνπλ γηα θάπνηα πιεηάδα Π.ρ., Έλαο Υπάιιεινο δελ δνπιεύεη ζε γξαθείν αιιά ζε θάπνην άιιν ρώξν (θαη δελ έρεη γξαθείν) 7-21
Φαξαθηεξηζηηθά ησλ Σρέζεσλ 3. Τηκέο θαη NULL Τηκέο ζηηο Πιεηάδεο: Γηαηί καο απαζρνινύλ νη NULL ηηκέο; Γηαηί ζπαηαινύλ ρώξν. Γηαηί ε ζύγθξηζε ηνπο κπνξεί λα νδεγήζεη ζε αζάθεηεο. Π.ρ., Βξεο όινπο ηνπο ππαιιήινπο πνπ έρνπλ ην ίδην ηειέθσλν. Οη ζρεζηαθέο βάζεηο πινπνηνύλ κηα ηξηαδηθή ινγηθή: {TRUE, FALSE, UNKNOWN} αληί δπαδηθήο {TRUE, FALSE} ζηνπο ηειεζηέο ζύγθξηζεο γηα λα ιύζνπλ απηό ην πξόβιεκα, Καηά ηνλ ζρεδηαζκό βάζεσλ πξνζπαζνύκε λα απνθεύγνπκε ηηο NULL ηηκέο όζν ην δπλαηό πεξηζζόηεξν. 7-22
Σρεζηαθνί Καλόλεο Αθεξαηόηεηαο (Relational Integrity Constraints) Μέρξη ηώξα είδακε δηάθνξνπο νξηζκνύο θαη ηα ραξαθηεξηζηηθά ηα νπνία αθνξνύλ κηα Σρέζε. Σε κηα ζρεζηαθή βάζε σζηόζν ππάξρνπλ πνιιέο Σρέζεηο Θπκεζείηε ηηο νληόηεηεο θαη ηηο ζπζρεηίζεηο ηνπ ER Μνληέινπ, νη νπνίεο αλαπαξηζηώληαη θαη νη δπν ζαλ Σρέζεηο (Πίλαθεο) ζην Σρεζηαθό Μνληέιν. Σε κηα ζρεζηαθή βάζε ππάξρνπλ επίζεο πνιινί ηύπνη πεξηνξηζκώλ, νη νπνίνη αλαθέξνληαη Σε κηα ζρέζε (π.ρ., πεξηνξηζκόο θιεηδηνύ, πεδίνπ νξηζκνύ θαη νληόηεηαο) Σε πνιιαπιέο ζρέζεηο (π.ρ., πεξηνξηζκόο αλαθνξηθήο αθεξαηόηεηαο) 7-24
Σρεζηαθνί Καλόλεο Αθεξαηόηεηαο (Relational Integrity Constraints) Σρεζηαθνί Πεξηνξηζκνί (Relational Constraints) είλαη ζπλζήθεο νη νπνίεο πξέπεη λα ηζρύνπλ γηα θάζε έγθπξε θαηάζηαζε ζρέζεο (state). Σην ζρεζηαθό κνληέιν ππάξρνπλ ηξεηο ηύπνη πεξηνξηζκώλ: A. Κιεηδηνύ (Key constraints) Άηππα: Κάζε ζρέζε έρεη έλα πξσηεύσλ θιεηδί. B. Αθεξαηόηεηαο Οληνηήηωλ (Entity integrity constraints) Άηππα: Τν πξσηεύσλ Κιεηδί δελ κπνξεί λα είλαη NULL C. Αλαθνξηθήο Αθεξαηόηεηαο (Referential integrity constraints) Άηππα: Δάλ κηα πιεηάδα Α αλαθέξεηαη ζε άιιε πιεηάδα B ηόηε ε Β πξέπεη λα ππάξρεη. Τέινο, ππάξρεη θαη ν Πεξηνξηζκόο Πεδίνπ Οξηζκνύ (Domain Constraint) ν νπνίνο εμππαθνύεηαη. Η ηηκή θάζε πιεηάδαο πξέπεη λα νξίδεηαη ζην αληίζηνηρν ηεο πεδίν νξηζκνύ (ή κπνξεί λα είλαη NULL, εάλ επηηξέπεηαη γηα ην ελ ιόγσ γλώξηζκα) 7-25