Relationeel Model
Upcoming SlideShare
Loading in...5
×
 

Relationeel Model

on

  • 1,339 views

 

Statistics

Views

Total Views
1,339
Views on SlideShare
1,097
Embed Views
242

Actions

Likes
0
Downloads
86
Comments
0

2 Embeds 242

https://cygnus.cc.kuleuven.be 236
https://canis-major.cc.kuleuven.be 6

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Relationeel Model Relationeel Model Presentation Transcript

  • Gegevensbankenrelationeel modelProf. Erik Duval2010 - 2011 1
  • http://www.slideshare.net/erik.duval2
  • inleiding
  • • 1962: Codasyl development committee, An information algebra’, CACM, 5, 4, apr 1962• 1963: J. McCarthy, A basis for a mathematical theory of computation, in Computer programming and formal systems, Brafford & Hirschberg, eds, North-Holland, 1963• 1968: D.L. Childs, Feasibility of a set-theoretical data- structure. A general structure based on a reconstituted definition of a relation, in Proc. IFIP congress 1968, North- Holland, 1968• 1970: E.F. Codd, A relational model of data for large scale shared data banks, CACM, 13, 6, jun 1970• … daarna: uitbreidingen, aanpassingen 4
  • een relatie Rop de verzamelingen V1 , ...Vnis een deelverzameling van de productverzameling V1×...× Vn :R ⊆ V1 × ... × Vn KLEUR MAAT rood S geel M groen L 5
  • voorgesteld door tabel 6
  • 7
  • 8
  • 9
  • • U = { A1, ..., An } : verzameling van alle attributen • globaal: attribuut kan in meerdere relaties voorkomen• DOM( Ai ) = verzameling alle mogelijke waarden van Ai • heeft een naam en een type • enkelvoudig : waarden zijn atomair • vb. Adres atomair we kunnen straatnaam niet isoleren• actief domein (= "populatie") van A in een GB: • verzameling alle attribuutwaarden op dat moment in GB 10
  • (n-)tupel over de attributen X = { A1, ..., An }• T = { (A1,w1), ..., (An,wn) } met elke wi ∈ DOM ( Ai ) of wi = null• korter genoteerd: < (A1, ..., An ), ( w1, ..., wn )> < w1, ..., wn > indien geen verwarring mogelijk• vb: < 5, "Karel Goossens", "Naamsestraat", "108", 3000, "Leuven" > 11
  • < (Leeftijd, 4), (Lengte, 104), (Gewicht, 17) >of < (Leeftijd, Lengte, Gewicht), (4, 104, 17) >of (4, 104, 17) 12
  • • instantie of extensie r van relatieschema R(A1,...,An) • eindige verzameling n-tupels over de attributen van R • r = { t1, t2, ... , tn } • r(R) ∈ DOM(A1) x ... x DOM(An)• eigenschappen van relaties: • tupels zijn niet geordend • attributen zijn niet geordend • behalve in notatie <w1, ..., wn> • elk tupel komt max. 1 keer voor in een relatie • tegenvoorbeeld: leeftijd, lengte en gewicht van kinderen 13
  • • één atomaire waarde per attribuut • geen meerwaardige attributen • geen samengestelde attributen • alternatief: genest relationeel model• Null-waarde kan betekenen: • attribuut is niet van toepassing • waarde is onbekend 14
  • • Relatieschema met graad n: R(A1, ..., An)• n-tupel van R : t = <w1, ..., wn> • componentwaarde wi = t [ Ai ] = t . Ai • deeltupel t [ Ai, Aj, ..., Ak ] = <wi,wj,...,wk> of t.(Ai,Aj, ...,Ak)• Q, R, S: relatienamen• q, r, s: instanties• t, u, v, w: tupels• Andere notatie voor attribuut A van relatie R: R.A 15
  • r={< 5, "Karel Goossens", "Naamsestraat", "108", 3000, "Leuven“ >,< 12, "Sofie Vandale", "Rijselstraat", "33", 8500, "Kortrijk“ >,< 34, "Frans Haerden", "Tiensestraat", "12", 3000, "Leuven” >}t = <5,"Karel Goossens","Naamsestraat","108", 3001,"Leuven“>t [ Nr , Naam ] = < 5, "Karel Goossens“ > 16
  • company
  • Fname Minit Lname Number Salary Name Name N WORKS_FOR 1 Locations Sex AddressSsn StartDate EMPLOYEE DEPARTMENT 1Bdate 1 1 MANAGES Hours CONTROLSsupervisor supervisee 1 N 1 N N SUPERVISES WORKS_ON M HAS_DEP. PROJECT N Name Location DEPENDENT Number Name Relationship Sex BirthDate 18
  • 19
  • 20
  • • regulier entiteitstype → relatie met alle enkelvoudige attributen • kies sleutelattribuut(en)• zwak entiteitstype → relatie met alle enkelvoudige attributen • + verwijssleutel: primaire sleutel van eigenaarsentiteitstype• binair 1:1 relatietype • primaire sleutel van ene als verwijssleulel in andere relatie • ook eventuele enkelvoudige attributen• binair 1:N relatietype • aan N-kant primaire sleutel van 1-kant • ook eventuele enkelvoudige attributen 21
  • • binair N:M relatietype → relatie • beide sleutels als verwijssleutels en samen primaire sleutel • ook eventuele enkelvoudige attributen• meerwaardig attribuut → relatie met dat attribuut • als verwijssleutel de primaire sleutel van bijhorende relatie • primaire sleutel: combinatie van beide 22
  • Beperkingen
  • • Domeinrestricties • beperken de mogelijke waarden van attributen • vb: leeftijd: geheel postief getal, tussen 18 en 65• Sleutelrestricties • waarden van sleutels moeten uniek zijn• Algemene integriteitsrestricties 24
  • • relatieschema R(A1, ..., An), U = {A1, ..., An}• supersleutel K ⊆ U : • verzameling attributen die tupel van R ondubbelzinnig bepalen (in om het even welke extensie)• kandidaatsleutel K • supersleutel K zonder overtollige attributen (er bestaat geen supersleutel K ⊂ K)• samengestelde sleutel (meer dan 1 attribuut) enkelvoudige sleutel (1 attribuut)• primaire sleutel: gekozen uit kandidaatsleutels • andere kandidaatsleutels zijn alternatieve sleutels• conventie: primaire sleutel onderstrepen in schema
  • 26
  • • Integriteit = juistheid en volledigheid van GB• statica-regels: slaan op 1 toestand van GB • gelden in elke extensie• dynamica-regels: slaan op toestandsovergangen • gelden voor elke overgang van 1 extensie naar andere
  • • attribuut-restricties • 1 NV-eis: domein van een attribuuut is enkelvoudig• entiteit-restricties • tupel mag niet meer dan 1 keer voorkomen in extensie • tegenvoorbeeld: relatie R(Leeftijd, Lengte, Gewicht) • geen null-waarden in primaire sleutel• referentiële integriteit • Als tupel naar ander tupel verwijst, moet ander tupel bestaan • vb.VOLGT-relatie: geen nrs. van vakken die niet bestaan
  • • verzameling attributen FK van relatie R1 is verwijssleutel a.s.a. • attributen van FK hebben zelfde domein als primaire sleutelattributen PK van relatie R2 • elke waarde van FK in R1 komt voor als waarde van een tupel in R2 of is null • ∀ t1 ∈ R1 : t1[FK] is null of ∃ t2 ∈ R2 : t1[FK] = t2[PK]• verwijssleutel kan naar eigen relatie verwijzen • → recursieve relatie; bv. SUPERSSN (overste van werknemer is ook werknemer)
  • 30
  • • domeinbeperkingen • vb. uurloon > 0 • vb. leeftijd > 23 uurloon > minimum_uurloon
  • dynamica-regels• Autorisatieregels • mag deze gebruiker die actie uitvoeren?• Coördinatieregels • vb. NEGATIEF-SALDO: tupel toevoegen wanneer saldo<0• Precondities / postcondities • vb. geld afhalen van rekening kan enkel indien saldo > 0• Overgangsregels • beschrijven welke volgordes van extensies zijn toegestaan • vb. enkel loonsverhogingen, geen -verlagingen 32
  • • intra-relationele restricties • intern binnen 1 relatie • meestal gemakkelijker te controleren• inter-relationele restricties • verschillende relaties betrokken • vb. salaris werknemer < salaris overste• tendens • steeds meer soorten restricties automatisch laten controleren door DBMS 33
  • Aanpassen
  • • tupel toevoegen• tupel weglaten• tupel wijzigen• integriteit moet gecontroleerd worden! 35
  • toevoegen• INSERT <4,"Jan Caers",nul,nul,3000,"Leuven“> INTO STUDENT • Studentnr 5 ipv 4 uniciteit van sleutel geschonden • Studentnr nul regel sleutel niet nul geschonden• INSERT < 5, 6 > INTO VOLGT : • referentiële integriteit geschonden (cursus bestaat niet)• reactie van DBMS op niet-toegelaten toevoeging: • weigeren + reden voor weigering meedelen aan gebruiker 36
  • weglaten• vb. DELETE VAK TUPLE WITH Vaknr = 8• referentiële integriteit geschonden: er zijn VOLGT tupels die verwijzen naar dat vak• DBMS kan: • weglating weigeren • verwijzende tupels ook weglaten • verwijzende waarden aanpassen (bv. nul) • verschillend reageren in verschillende situaties • door gebruiker ingesteld 37
  • wijzigen• vb. MODIFY Titel OF VAK WITH Nr = 8 TO "Filosofie"• weer gevaar voor • referentiële integriteit, • uniciteit van sleutel, • ...• wijziging van attribuut dat geen primaire of verwijssleutel is • meestal geen probleem• wijziging primaire sleutel: weglaten + toevoegen• wijziging verwijssleutel: referentiële integriteit controleren 38
  • Vragen...? 39