De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

DB&SQL3- 1 College 3 Hoofdstuk 3: Basis concepten van een relationele database tabel attribuutwaarden: domeinen, null entity integrity en referential integrity.

Verwante presentaties


Presentatie over: "DB&SQL3- 1 College 3 Hoofdstuk 3: Basis concepten van een relationele database tabel attribuutwaarden: domeinen, null entity integrity en referential integrity."— Transcript van de presentatie:

1 DB&SQL3- 1 College 3 Hoofdstuk 3: Basis concepten van een relationele database tabel attribuutwaarden: domeinen, null entity integrity en referential integrity data manipulatie in een relationele database

2 DB&SQL3- 2 De elementen van een tabel/ relation record, entiteit, rij, tupel Tuple, row Kolom column Veldwaarde value attribuut, veldnaam, Kolomkop attribute tabelkop: schema heading record Set body NB Attribuut heeft een domein

3 DB&SQL3- 3 Domeinen Domein van een attribuut kan specifieker zijn dan alleen een datatype, zoals number, string of date - Range van mogelijke waarden - Keuzelijst van waarden - Verwijzende sleutel: waarde uit andere tabel (Access: lookup-field – DEMO) Nog meer semantiek wenselijk maar meestal niet goed te definiëren in een database: - Verder onderscheid: lengtemaat, gewichtsmaat e.d. - Mogelijke operaties gekoppeld aan domein

4 DB&SQL3- 4 Null Null (een leeg veld) kan bij vrijwel elk datatype gebruikt worden (boolean?) Wat kan null betekenen? - waarde ontbreekt nog of is onbekend - attribuut bij deze entiteit niet van toepassing Null is geen waarde, wordt niet gebruikt bij berekeningen (gemiddelde, etc) null is niet 0 (number), is niet “” (string) Null wordt niet gebruikt bij vergelijkingen als leeftijd < 10, aantal = 0 Je kunt alleen testen: is null of is not null

5 DB&SQL3- 5 Sleutels in een tabel Kandidaatsleutel: een attribuut of een minimale combinatie van attributen die te gebruiken is om een entiteit uniek te identificeren Primaire sleutel: de kandidaatsleutel die gekozen is om de entiteit uniek te identificeren Alternatieve sleutel: een (eventuele) andere sleutel naast de primaire sleutel Verwijzende/ refererende sleutel (foreign key) een attribuut dat verwijst naar een entiteit in een andere tabel, doordat het gelijk is aan de primaire sleutel van die andere tabel. Bij de keuze van sleutels moet niet alleen naar de huidige concrete data gekeken worden, maar over alle mogelijkheden worden nagedacht!

6 DB&SQL3- 6 Sets in een RDBS Een database bevat een set tabelschema’s (entiteitsklassen) Een tabelschema (entiteitsklasse) bevat een set attribuutnamen met hun domein Een tabel bevat een set records (entiteiten) Een record bevat een set waarden gekoppeld aan attribuutnamen Een resultaat van een view of query is een tabel NB hoewel settheorie de basis is van het relationeel model wordt in Access niet altijd in sets gewerkt en kun je toch duplicaat records krijgen, gebruik zo nodig DISTINCT(ROW).

7 DB&SQL3- 7 Verzamelingen Het relationeel model is gebaseerd op de verzamelingenleer. Een verzameling (set) bestaat uit 0 - N (  ) elementen. Het aantal elementen: de kardinaliteit van de set. Een element kan zelf weer een set zijn. {}lege set {1,8,3}een set met 3 elementen {{2,4},{1,8}}een set met twee sets als elementen De elementen van een set zijn ongeordend {1,8,3}={8,1,3} De elementen van een set zijn uniek (vgl groep individuen) {1,8,3,3,1}= {1,8,3}

8 DB&SQL3- 8 Operaties op sets: Venndiagram 2 sets, b.v. studenten en barkeepers Samenvoegen van twee sets: vereniging / union A  B {1,2,5,6}  {2,6,7}= {1,2,5,6,7} Gemeenschappelijke deel van twee sets: doorsnede / intersectionA  B {1,2,5,6}  {2,6,7}= {2,6} verschil / difference / minus bij twee sets:A - B {1,2,5,6} – {2,6,7}= {1,5} sb s s b b 3 3 3

9 DB&SQL3- 9 Overzicht operaties op tabellen Setoperaties op meer dan 1 tabel union, intersection, minus Relationele operaties op 1 tabel restrict project Relationele operaties meer dan 1 tabel product join (meerdere vormen) divide NB tabel kan hierbij basistabel zijn, maar ook een view of een via een query geconstrueerde combinatie van tabellen

10 DB&SQL3- 10 Setoperaties op twee tabellen: UNION Verenigingentiteiten uit twee tabellen met zelfde schema VB: samenvoegen van 2 ledenlijsten NaamAdresWpl NaamAdres Wpl AAAweg 1AAAAweg 1 A BBBweg 2B DDDweg 4 D CCCweg 3C union EEEweg 5 E NaamAdresWpl AAAweg 1A BBBweg 2B CCCweg 3C DDDweg 4D EEEweg 5E VVV ADO

11 DB&SQL3- 11 Setoperaties op hele tabellen: INTERSECTION Doorsnedegemeensch. elementen uit twee tabellen VB: vergelijken van 2 ledenlijsten: wie is van beide lid? NaamAdresWpl NaamAdres Wpl AAAweg 1AAAAweg 1 A BBBweg 2B DDDweg 4 D CCCweg 3C intersection EEEweg 5 E NaamAdresWpl AAAweg 1A VVVADO

12 DB&SQL3- 12 Setoperaties op hele tabellen: MINUS Difference/except/minus verschil tussen twee tabellen VB: wie is wel van VVV maar niet van ADO lid? VVVADO NaamAdresWpl NaamAdres Wpl AAAweg 1AAAAweg 1 A BBBweg 2B DDDweg 4 D CCCweg 3C VVV-ADO EEEweg 5 E NaamAdresWpl BBBweg 2B CCCweg 3 C

13 DB&SQL3- 13 Relationele operaties op 1 tabel Relationele operaties zijn gebaseerd op de tabel, oftewel de relatie Restrict: selectie van bepaalde records uit een tabel via condities Project: selectie van de te tonen velden van een tabel

14 DB&SQL3- 14 Restrictie en projectie restrictie: de set beperken tot de rijen die aan een voorwaarde voldoen NaamAdresWpl AAAweg 1A restrictie AAAweg 1A BBBweg 2B Wpl = A DDDweg 4A CCCweg 3C DDDweg 4A projectie: de set beperken tot bepaalde kolommen NaamAdresWpl NaamWpl AAAweg 1A AAA BBBweg 2B projectieBBB CCCweg 3CNaam, WplCCC DDDweg 4ADDA

15 DB&SQL3- 15 Combinaties van restricties (Vereniging)keus tussen verschillende restricties OR b.v. Welke planten zijn rood OF paars? Welke planten zijn bollen OF bloeien in maart? (Intersectie)meerdere restricties tegelijk AND b.v.Welke planten zijn bollen EN bloeien in maart? (Verschil)positive en negatieve restrictie (AND NOT) b.v. Welke planten zijn bollen maar bloeien NIET in maart?

16 DB&SQL3- 16 Relationele operaties op meer dan 1 tabel product join (meerdere vormen) divide

17 DB&SQL3- 17 Cartesisch product van tabellen Product/de entiteiten uit twee tabellen in alle mogelijke Timescombinaties samenvoegen tot een nieuwe entiteit VB : gemengd spel VNaamVLftMNaam MLft V128M1 28 V2 24M2 18 V318 product VNaamVLft Mnaam MLft V128M1 28 V224M1 28 V318M1 28 V128M2 18 V224M2 18 V318M2 18

18 DB&SQL3- 18 Joins: combineren op voorwaarde Zelden wil je alle mogelijke combinaties van entiteiten uit twee tabellen, je zoekt meestal naar feitelijke combinaties, die al via een verwijzende sleutel zijn vastgelegd Een product dat beperkt wordt door eisen t.a.v. attribuutwaarden in de 2 tabellen heet een join. Voorbeeld: niet elke combinatie van een BOEK en een UITGEVER maar de combinatie van de feitelijke uitgever met het boek Restrictie van deze join: de verwijzende sleutel naar de uitgever van het boek in tabel BOEKEN moet gelijk zijn aan de primaire sleutel van de uitgever in tabel UITGEVER

19 DB&SQL3- 19 Joins-1: Equi-join Equi joinproduct van tabellen met restrictie: alleen de rijen met een gelijke waarde voor een gelijk attribuut (gewoonlijk sleutel/verwijzende sleutel) VB: Geef alle paren met gelijke leeftijd: VNaamVLftMNaam MLft V128M1 28 V2 24M2 18 V318 equi-join VLft=MLft VNaam VLft Mnaam Lft V128M1 28 V318M2 18

20 DB&SQL3- 20 Joins-2: Natural join BOOKS PUBLISHERS EQUI-JOIN BOOKS - PUBLISHERS Equi-join, maar dubbele kolom maar eenmaal: NATURAL JOIN!

21 DB&SQL3- 21 Joins-3: Theta-join Theta join: product van 2 tabellen met restrictie: alleen rijen met ongelijke waarde voor een gelijk attribuut (, = ) VB: Geef alle paren waarbij de man ouder is dan de vrouw VNaamVLftMNaam MLft V128M1 28 V2 24M2 18 V318 theta join MLft > VLft VNaam VLftMnaam MLft V2 24M1 28 V3 18M1 28

22 DB&SQL3- 22 Joins-4: Alle vormen Inner join of kortweg join product van 2 (of meer) tabellen: alle velden samengevoegd restrictie: rijen met gelijke waarde voor een (of meer) attributen Natural join : inner join, maar naast restrictie ook projectie: de gelijke kolom(men) maar 1 keer in resultaattabel Left/right outer join: van één tabel alle records, van de ander de bestaande combinaties, verder lege velden (Full outer join: left + right outer join) Theta join Combineren op restrictie ongelijke waarde Self join (tabel dupliceren) Een tabel combineren met zichzelf

23 DB&SQL3- 23 Jointype definieren in relatieschema of QBE (Access) Wil je, als je de relatie boek-uitgever gebruikt 1. alleen de bestaande combinaties van beiden zien? 2. alle boeken, en alleen de bijbehorende uitgevers? 3. alle uitgevers, en alleen de bijbehorende boeken? 1 is de equi-join, 2 en 3 zijn left/right outer joins geen full outer join mogelijk Default in Access is 1, maar soms is een andere keus nuttig, dan kun je b.v. zoeken naar de uitgevers zonder boeken. Opties voor een relatie -1

24 DB&SQL3- 24 Enforce Referential Integrity? Het sleutelveld moet altijd naar een bestaande entiteit verwijzen vb de uitgeverscode in BOEKEN moet in UITGEVERS staan Cascade Update Related Fields? Als het originele veld gewijzigd wordt (naamsverandering, nieuwe codering), verandert het bijbehorende sleutelveld mee vb de uitgevercode wordt veranderd, de refererende sleutel ook Cascade Delete Related Records? Als de oorspronkelijke entiteit wordt verwijderd, verdwijnen de gerelateerde records ook vb als een uitgever wordt geschrapt, dan verdwijnen zijn boeken Opties voor een relatie – 2

25 DB&SQL3- 25 Nog een relationele operator: Divide Een complexe operator, maar soms nuttig, voor vragen als:  wie heeft alle propedeusevakken gehaald?  wie verkoopt alle houtsoorten? Je hebt een studentresultatentabel met studenten en gehaalde vakken en een tabel met propedeusevakken en “deelt” de studenten door de propedeusevakken geef de studenten uit de studentresultatentabel voor wie voor alle propedeusevakken een (pos) resultaat staat

26 DB&SQL3- 26 Operatoren en Access restrict, project en join zijn minimale eisen, union en minus zijn aanvullende eisen voor relationeel compleet systeem intersect en divide: uit de andere operatoren intersect: zie pg 59, kan dit korter? divide: ziet iemand hier kans toe? In Access SQL zijn beschikbaar: restrict, project, join en union daar moet je minus, intersect en divide op andere manieren formuleren


Download ppt "DB&SQL3- 1 College 3 Hoofdstuk 3: Basis concepten van een relationele database tabel attribuutwaarden: domeinen, null entity integrity en referential integrity."

Verwante presentaties


Ads door Google