SYLLABUS R E L A T I O N E L E SYSTEMEN P R I N C I P E S
156 S
(Versie 3 . 2 . m e i 1987)
R E L A T I O N E L E SYSTEMEN P R I N C I P E S - 156 S
INHOUDSOPGAVE
1 .O 1 .l 1 .2
1.3
HET R E L A T I O N E L E MODEL INLEIDING EIGENSCHAPPEN TECHNOLOGISCHE H A A L E l A R H E I D BASISBEGRIPPEN R E L A T I ES DOMEI N ATTRIBUUT WAARDE GRAAD (DEGREE) VAN EEN R E L A T I E TUPLE CARDINALITEIT TABELPRESENTATIE VAN EEN R E L A T I E EXTENSIONS EN I N T E N S I O N S
3.0
V E R G E L I J K I N G MET CONVENTIONELE BEGRIPPEN U I T DE GEGEVENSVERWERKING
1O
4. O
EEN VOORBEELD
12
5.0 5.1
KEYS ( S L E U T E L S ) FOREIGN KEY
6.0
R E L A T I E EN GENORMALISEERDE R E L A T I E
15
R E L A T I O N E L E ALGEBRA VERSUS R E L A T I O N E L E CALCULUS
17
R E L A T I O N E L E ALGEBRA INLEIDING TOEPASSING VAN OPERATIES OP VERZAMELINGEN Union (vereniging) I n t e r s e c t i o n (doorsnede) Difference (verschil) Cartesisch produkt TOEPASSING VAN OPERATIES OP R E L A T I E S Selection (selectie) Restriction (restrictie) Projection (projectie)
Join
Deling Alias
R E L A T I O N E L E SYSTEMEN P R I N C I P E S
-
156 S
INHOUDSOPGAVE Blz. DE R E L A T I O N E L E CALCULUS
39
B E V E I L I G I N G EN I N T E G R I T E I T BEVEILIGING BACKUP, HERSTEL EN HERSTART INTEGRITEITREGELS VOORWAARDEN WAARAAN R E L A T I O N E L E SYSTEMEN D I E N E N TE dOLDOEN WANNEER Z I J N DB- SYSTEMEN ECHT R E L A T I O N E E L WANNEER Z I J N R E L A T I O N E L E SYTEMEN VOLWAARDIGE RELATIONELE DATA BASE SYSTEMEN? A D D I T I O N E L E VOORWAARDEN
48
48 53
59
K R I T I E K OP R E L A T I O N E L E SYSTEMEN PERFORMANCE De o p t i m i z e r Schijfgeheugens S p e c i a l e data base machines UPDATING PROBLEMEN SEMANTI EK CONCLUSIES
71
LITERATUUR
72
RELATIONELE SYSTEMEN PRINCIPES
1 .O
HET RELATIONELE MODEL
1 .l
INLEIDING
- 156
S
A l s eenvoud h e t kenmerk i s van h e t " ware " dan i s h e t r e l a t i o n e l e systeem het systeem v o o r d a t a base t o e p a s s i n g e n . De g e g e v e n s v e r z a m e l i n g e n worden zowel v o o r de g e b r u i k e r a l s v o o r de o n t w e r p e r weergegeven i n de vorm van t w e e - d i m e n s i o n a l e t a b e l l e n (zogenaamde p l a t t e t a b e l l e n ) . Met deze t a b e l l e n , m e e s t a l " r e l a t i e ; " genoemd, kunnen o p e r a t i e s u i t g e v o e r d worden, gebaseerd op de zogenaamde r e l a t i o n e l e a l g e b r a , a f g e l e i d van de v e r z a m e l i n g e n l e e r . De t e r m " r e l a t i e " i s een w i s k u n d i g e a a n d u i d i n g d i e weer t e geven i s i n een t w e e - d i m e n s i o n a l e t a b e l . Z u l k e t a b e l l e n b e s t a a n u i t een a a n t a l r i j e n en kolommen. I e d e r e l e m e n t van de t a b e l komt o v e r e e n met de waarde van een d a t a i t e m . D a t d i t t y p e t a b e l een r e l a t i e en n i e t een m a t r i x w o r d t genoemd, komt d o o r d a t n i e t a l l e elementen homogeen z i j n . De t a b e l i s homogeen p e r kolom, maar n i e t homogeen p e r r i j . Een d a t a base, gebouwd v o l g e n s h e t r e l a t i o n e l e model b e s t a a t u i t d i t s o o r t t a b e l l e n . Aan h e t e i n d van de j a r e n z e s t i g kwamen sommigen o p h e t i d e e om een d a t a base t e maken met r e l a t i e s a l s bouwstenen. Het merendeel van deze e e r s t e systemen k o n a l l e e n maar r e l a t i e s met twee kolommen aan. H e t waren a l l e m a a l o n t w e r p e n v o o r s p e c i a l e a p p l i c a t i e g e b i e d e n en dus n i e t g e s c h i k t v o o r algemene t o e p a s s i n g e n . I n 1970 b e s c h r e e f E.F. Codd van IBM, een model v o o r een algemeen t o e p a s b a a r d a t a base systeem v o l g e n s h e t r e l a t i o n e l e model. Z i j n voornaamste d o e l was een hoge mate van g e g e v e n s o n a f h a n k e l i j k h e i d en - c o n s i s t e n t i e t e verkrijgen, eigenschappen d i e i n d a t a base systemen van h e t h i ë r a r c h i s c h e t y p e m o e i l i j k t e b e r e i k e n z i j n . Het model werd i n de v o l g e n d e j a r e n v e r b e t e r d en u i t g e b r e i d en h e t w o r d t n u d o o r v e l e n beschouwd a l s de b a s i s v o o r a l l e t o e k o m s t i g e d a t a base systemen. H e t b e h o e f t geen b e t o o g d a t nu algemeen de t e r m r e l a t i o n e l e d a t a base o f r e l a t i o n e e l model u i t s l u i t e n d aan h e t model van Codd g e k o p p e l d w o r d t . Een r e l a t i o n e l e d a t a base i s een v e r z a m e l i n g van r e l a t i e s , v o o r t e s t e l l e n a l s gewone b e s t a n d e n , d i e s l e c h t s één recordtype bevatten. Een r e l a t i o n e e l d a t a base system i s een s o f t w a r e p a k k e t , geschreven om h e t werken met een r e l a t i o n e l e d a t a base m o g e l i j k en ook e e n v o u d i g e r t e maken.
RELATIONELE SYSTEMEN PRINCIPES - 156 S
De liist van alle relaties met aanduidinq van hun sleutel en van di domeinen van de attributen heet het conceptuele schema van de relationele data base. In de praktijk wordt dit schema ui tgebrei d met regel s voor i ntegri tei tscoñtrol e en toegangsbeveiliging. 1 .Z
EIGENSCHAPPEN
Gegevensstructuren in een data base van het hiërarchische model worden zo ontworpen dat ze aan bepaalde eisen van toegankelijkheid voldoen. Als die eisen veranderen moeten ook de gegevensstructuren worden aangepast. Het relationele model van Codd lijdt echter niet onder dit soort beperkingen. De toegangspaden zijn algemeen, dat wil zeggen elke willekeurige waarde van een data item, en elke verzameling van waarden, kan op een eenvoudige manier in één of meer relaties worden opgezocht. Dat de toegangspaden zo onafhankelijk zijn van de gegevensstructuur wordt in de eerste plaats bereikt door de relaties weer te geven in de, zoals Codd dat aanduidt, derde normaalvorm. Maar ook kan een krachtige taal voor het selecteren van gegevens worden gebruikt die bekend staat onder de naam relationele algebra. De basisoperaties die voor het selecteren van een bepaalde waarde of voor het combineren van twee relaties tot een nieuwe relatie in de derde genormaliseerde vorm moeten worden uitgevoerd, worden gespecificeerd door middel van relationele algebra. Een kenmerk van het relationele model is zijn eenvoud. Een relatie is een tabel die minimaal uit een rij en een kolom bestaat. Dat is de eenvoudigste gegevensstructuur die mogelijk is en deze vormt het basispatroon van alle gegevensstructuren. Bij dit model is het ontwerpen van een schema veel eenvoudiger, omdat er maar één logische structuur, de relatie is. Het probleem, hoe' een ingewikkelde gegevensrelatie in de juiste gegevensstructuur weer te geven bestaat hier niet. Doordat het een direct toegangsmogelijkheid op iedere waarde in de data base geeft, verschaft het relationele model verder een ongeëvenaarde vrijheid aan de applicatieprogrammeur. Het zoekmechanisme is gebaseerd op een vergelijking van waarden. Een data item wordt niet via zijn relatieve plaats of met een pointer opgezocht, maar rechtstreeks op zijn waarde.
RELATIONELE SYSTEMEN PRINCIPES
1.3
-
156 S
TECHNOLOGISCHE HAALBAARHEID
De r e l a t i o n e l e b e n a d e r i n g maakt h e t m o g e l i j k om op een b i j z o n d e r eenvoudige manier verzoeken voor i n f o r m a t i e t e f o r m u l e r e n . Z e l f s z e e r i n g e w i k k e l d e v r a g e n op g r o t e d a t a bases kunnen s n e l g e f o r m u l e e r d worden. De eenheden waarmee g e w e r k t w o r d t , z i j n b e s t a n d e n i n p l a a t s van r e c o r d s . H e t g e v o l g daarvan i s d a t e r een g r o t e v e r w e r k i n g s c a p a c i t e i t b e n o d i g d z a l z i j n . Er w o r d t bezwaar gemaakt t e g e n de r e l a t i o n e l e b e n a d e r i n g , omdat deze n i e t e f f i c i ë n t d o o r de h u i d i g e t e c h n o l o g i e o n d e r s t e u n d zou kunnen worden. O p e r a t i e s , z o a l s een r e l a t i o n e l e v e r e n i g i n g , gaan g e p a a r d met z e e r g r o t e h o e v e e l h e d e n , op z i c h z e l f eenv o u d i g e , b e w e r k i n g e n . H e t p r o b l e e m v e r t o o n t g e l i j k e n i s met " s o r t e r e n " . Het i s eenvoudig v o o r k l e i n e bestanden, m o e i l i j k v o o r g r o t e en b i j n a o n m o g e l i j k v o o r z e e r g r o t e b e s t e n d e n . Er z i j n evenwel g r o t e v o r d e r i n g e n gemaakt i n de t e c h n i e k e n om r e l a t i o n e l e o p e r a t o r e n t e i m p l e m e n t e r e n . B i j de i m p l e m e n t a t i e van v e r z o e k e n om gegevens, wordt gebruik gemaakt van o p t i m a l i s e r i n g s s t r a t e g i e ë n om de v e r w e r k i n g t e v e r s n e l l e n . Ook de komst van a s s o c i a t i e v e s c h i j f g e h e u g e n s z o a l s CAFS van I C L k a n een v e r b e t e r i n g i n de p e r f o r m a n c e b i e d e n .
RELATIONELE SYSTEMEN PRINCIPES - 156 S
BASISBEGRIPPEN 2.1
RELATIES
Een relatie Een relatie R van een verzameling A naar een verzameling B noemt men het verband dat gelegd wordt tussen sommige elementen van A en sommige elementen van B (zie figuur 1). Een relatie van A naar B kan ook gedefinieerd worden als een verzameling van geordende paren (a,b> waarvan a tot A behoort en b tot B . Een relatie R van A naar B i s dan een deelverzameling van het produkt van A en B.
R C Ax
B
(
c
=
deel verzamel i ng)
Dus een relatie tussen twee verzamelingen is op haar beurt weer een verzameling. Dit is de basis van het relationele gegevensmodel. Het onderscheid tussen entiteiten en de relatie daartussen, zoals bij het netwerk en hiërarchische model, is dus vervallen. Beschouwen we niet alleen tweedelige of binaire relaties, maar ook n-delige relaties, dan kunnen we stellen: 1.
Gegeven de verzamelingen van gegevens
D,, DZ> . . . . . . . . . . . . . . . , Dn is R een relatie o p deze n-verzamelingen als het een verzameling is waarvan de elementen de vorm ( d , , d z , . . . . . . . . . . . . . . . , dn> hebben, waarbij djf Dj voor elke j
(f= element van) = 1,
2, . . . . . . . . . . . . . . . , n
R E L A T I O N E L E SYSTEMEN P R I N C I P E S - 156 S
Figuur 1
RELATIONELE SYSTEMEN PRINCIPES - 156 S
2.
Gegeven de v e r z a m e l i n g e n van gegevens D,, Dz,
i s het z i jnde
. . . . . . . . . . . . . . . , Dn
cartesisch
produkt
van
deze
verzamelingen,
de v e r z a m e l i n g van a l l e m o g e l i j k e n - r i j e n
zodat d i E D l , dz€Dt,
. . . . . . . . . . . . , d,ED,
R i s een r e l a t i e op de v e r z a m e l i n g e n
D l , Dz
. . . . . . . . . . . . . . . , D,
A l s h e t een d e e l v e r z a m e l i n g produkt
is
van
het
cartesisch
Een domei n i s de verzamel i ng van waarden w a a r u i t de verzamel i ng van a t t r i b u t e n w a a r d e n van een r e l a t i e kan worden g e h a a l d . Zo v o r m t h e t j - d e domein van een r e l a t i e , de v e r z a m e l i n g van waarden w a a r u i t de v e r z a m e l i n g van a t t r i b u t e n w a a r d e n v o o r a t t r i b u u t j van een r e l a t i e k a n worden g e h a a l d . M e e s t a l z a l h e t domein van een a t t r i b u u t b e s t a a n u i t een v e r z a m e l i n g van g e h e l e g e t a l l e n , een r e e k s van k a r a k t e r - s t r i n g s , ...... etc.
2.3
ATTRI BUUT
E l k e v e r s c h i l l e n d e aanwending van een domein i n de d e f i n i t i e van een r e l a t i e R w o r d t een a t t r i b u u t van de r e l a t i e R genoemd. Met v e r s c h i l l e n d w o r d t b e d o e l d d a t twee o f meer a t t r i b u t e n u i t h e t z e l f d e domein a f k o m s t i g kunnen z i j n . U i t een domein k l e u r kunnen zowel k l e u r , a l s v e r p a k k i n g s k l e u r a f g e l e i d worden.
RELATIONELE SYSTEMEN PRINCIPES
2.4
-
156 S
WAARDE
De e l e m e n t e n van een domein van een r e l a t i e w e l k e voorkomen i n de r e l a t i e R worden de ( a t t r i b u t e n - ) waarden van h e t c o r r e s p o n d e r e n d e a t t r i b u u t van R genoemd.
2.5
GRAAD (DEGREE) VAN EEN RELATIE
Een r e l a t i e d i e gebaseerd i s op n - v e r z a m e l i n g e n h e e f t de g r a a d n . Dus b e p a a l t h e t a a n t a l domeinen ( n i e t noodzakelijk v e r s c h i l l e n d ) d a t b i j de opbouw van een r e l a t i e w o r d t aangewend, de g r a a d van de - r e l a t i e . Een r e l a t i e met g r a a d n w o r d t n - d e l i g genoemd. Een r e l a t i e met g r a a d 2 w o r d t een 2 - d e l i g e o f b i n a i r e r e l a t i e genoemd 2.6
TUPLE
De " l e d e n " van een r e l a t i e worden " t u p l e s " genoemd, o f a n d e r s g e s t e l d , een r e l a t i e i s een w i s k u n d i g e v e r z a m e l i n g van " t u p l e s " . Een t u p l e i n een r e l a t i e i s u n i e k a a n g e z i e n h e t een e l e m e n t i s van een w i s k u n d i g e v e r z a m e l i n g .
2.7
CARDINALITEIT
k,; =
-
2
>
. L
;;,u
.C
J
- L V ((~ r.
-
De c a r d i n a l i t e i t van een r e l a t i e w o r d t b e p a a l d d o o r h e t a a n t a l 'i t u p l e s i n de r e l a t i e . i , i('$,(-Lyt;i I ? s - ' i Z " í ! --;/ l) L' L v Z4.L 4 L,, b.;<..4,t. n i
-C
3' '.
2.8
i
TABELREPRESENTATIE VAN EEN RELATIE
Een r e l a t i e kan s t e e d s worden v o o r g e s t e l d d o o r een t a b e l ( z i e f i g u u r 2 ) . Een t a b e l d i e een n - d e l i g e r e l a t i e v o o r s t e l t h e e f t de v o l g e n d e e i g e n s c h a p p e n :
-
E l k e r i j s t e l t een n - t u p l e van de r e l a t i e v o o r .
-
De v o l g o r d e w a a r i n de r i j e n i n de t a b e l voorkomen i s i n principe onbelangrijk.
-
A l l e r i j e n z i j n v e r s c h i l l e n d van e l k a a r !
I n een k o l o m van een t a b e l komen de a c t u e l e waarden v o o r , d i e a f k o m s t i g z i j n u i t h e t b i j b e h o r e n d domein van de r e l a t i e .
i
L
Fl
RELATIONELE SYSTEMEN P R I N C I P E S
RELATIE ATTRIBUUTWAARDE
dome i n e n Figuur 2 : T a b e l v o r m r e l a t i o n e l e s y s t e m e n
-
156 S
RELATIONELE SYSTEMEN PRINCIPES - 156 S
-
De volgorde van de kolommen is belangrijk. Deze volgorde komt overeen met de volgorde van de domeinen D , , D z , . . . . .D, waarop R werd gedef i ni eerd. Wanneer echter naar een kolom wordt verwezen door de overeenkomstige domein-naam (eventuele rolnaam) te vermelden (en niet de relatieve positie), is de volgorde van de kolommen onbelangrijk. Een voorbeeld van een rolnaam is chef, voor de afdelingsmedewerker. EXTENSIONS EN INTENSIONS
2.9
Een relatie in een relationele data base kan vanuit twee gezichtspunten worden beschouwd. Onder de extension van een relatie verstaan wij de verzameling van tuples die op een gegeven ogenblik deel uitmaakt van de relatie. De extension varieert dus in de loop van de tijd omdat ze wordt beïnvloed door het updaten, toevoegen en verwijderen van tuples van de relatie. 0 c , - , % . - L ~ ~ 4%L ~ ~u - c De intension van een relatie is ti jdsonafhankel i jk. Het is het permanente deel van een relatie waarvan de karakteristieken zijn gespecificeerd in een relationeel schema. De intension bestaat uit:
-
Een naamstructuur Die bestaat uit de naam van de relatie en de namen van de attributen alsmede eventueel de namen van de domeinen waarvan de attributenwaarden zijn afgeleid.
-
Integri tei tsbeperki ngen Dat zijn voorwaarden waaraan de gegevensverzameling moet voldoen wil ze consistent zijn.
RELATIONELE SYSTEMEN PRINCIPES - 156 S
3.0
VERGELIJKING MET CONVENTIONELE GEGEVENSVERWERKING
BEGRIPPEN
UIT
DE
Als we conventionele begrippen gebruiken, kunnen we een relatie we1 bij benadering gelijkstellen met de occurrences van een bepaald record-type, een tuple met een record-occurrence, een attribuut met een data item en een domein met de verzamelingwaarden van een bepaald data item. Een relatie van de eerste graad komt overeen met een record-type dat een enkel data item bevat, een relatie van de tweede graad met een record-type met twee data items, enz. Er zijn echter wel verschillen tussen relaties in de derde genormaliseerde vorm en record-typen. Een record-type komt overeen met een niet-genormaliseerde relatie, omdat in beide repeating groups zijn toegestaan. De volgorde van de data items, dat wil zeggen hun plaats ten opzichte van elkaar, ligt bi j een record-type vast en ze kan ook niet veranderd worden, maar de onderlinge plaats van de domeinen van een relatie is niet relevant, omdat ze met hun attribuutnamen allemaal afzonderlijk kunnen worden aangeduid. In een relatie is ook de volgorde van de tuples onbelangrijk, want de tuples worden rechtstreeks opgezocht. Maar voor de records van een record-type is de onderlinge plaatsing alleen niet ter zake, als gespecificeerd is dat de records rechtstreeks toegankelijk moeten zijn. Deze veelzijdigheid van de toegangsmogelijkheden bij relaties is een direct gevolg van het feit dat zoekacties gebaseerd zijn op waarden en niet op adressen. Tenslotte kunnen in een relatie per definitie geen identieke tuples voorkomen. Voor een record-type bestaat er niet zo'n fundamentele beperking ten aanzien van identieke records. Voor een overzicht van de overeenkomst tussen bestanden, relaties en tabellen: zie figuur 3.
R E L A T I O N E L E SYSTEMEN P R I N C I P E S - 1 5 6 S
BESTAND
RELATIE
TABEL
RECORD
TUPLE
RIJ
RECORD LAY- OUT
ATTRIBUTENLIJST
TABELHOOFD(INTENSI0N)
VELD
ATTRIBUUT
KOLOM
DOMEIN
-
SLEUTEL
SLEUTEL
-
AANTAL VELDEN
GRAAD
-
AANTAL KOLOMMEN
F i g u u r 3: Overeenkomsten t u s s e n b e s t a n d e n , r e l a t i e s e n t a b e l l e n
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
EEN VOORBEELD
4.0
Een b e d r i j f b e s t a a t u i t f a b r i e k e n d i e a r t i k e l e n p r o d u c e r e n . Steeds w o r d t e r n a a r g e s t r e e f d d a t de v o o r r a a d van een a r t i k e l i n een f a b r i e k g r o t e r i s dan de gewenste minimum v o o r r a a d . K l a n t e n b e s t e l l e n op een b e s t e l l i n g b i j een f a b r i e k één o f meer a r t i k e l e n i n een b e p a a l d e h o e v e e l h e i d en t e g e n een z e k e r e p r i j s . De datum van de b e s t e l l i n g w o r d t v a s t g e l e g d . Het h i e r b i j behorende c o n c e p t u e l e schema l u i d t : DOMEIN
F#
CHARACTER
(2)
DOMEIN
ART#
CHARACTER
(21
DOMEIN
VRD
NUMERI EK
(4)
DOMEIN
B#
CHARACTER
(2)
DOMEIN
KLANT
CHARACTER
(15)
DOMEIN
DATUM
CHARACTER
(81
DOMEIN
HOEV
NUMERI EK
(4)
DOMEIN
PRIJS
NUMERI EK
(3.2)
H i e r u i t z i j n d e ' v o l g e n d e r e l a t i e s gevormd: R e l a t i e F (fab#,art#,vrd,minvrd) key (fab#,art#> R e l a t i e B (b#,kl=fab#,datum> key (b#> R e l a t i e BA (b#,=#,hoev,pri j s ) key (b#,art#> V r d en m i n v r d z i j n u i t h e t z e l f d e domein a f k o m s t i g . De d a t a b o x b e v a t de v o l g e n d e t u p l e s ( z i e f i g u u r 4 ) . Er i s dus s p r a k e van:
8 3 12
domeinen relaties a t t r i b u t e n , waarvan e r 9 v e r s c h i l l e n d z i j n .
De r e l a t i e s z i j n van de 4' genoemd.
g r a a d ook wel
4- delige r e l a t i e
De c a r d i n a l i t e i t van r e l a t i e B i s 6, omdat e r 6 t u p l e s z i j n . Het a t t r i b u u t k l a n t van de r e l a t i e B b e v a t 6 a t t r i b u u t w a a r d e n , waarvan e r 4 v e r s c h i l l e n d z i j n .
RELATIONELE SYSTEMEN P R I N C I P E S
A.
fab#
art#
vrd
F1 F1 F1 F2 F2 F2 F2 F2 F3 F3 F4
Al
2 O0 300 1 50 7 O0 875
A2 A4 Al A2 A3 A4 A5 A3 A4 A4
o
210 370 15 175 300
minvrd 150 75 300 200 1 O0 20 21O 180 30 1 O0 1 O0
b# -
klant
fab#
datum
B1 B2 B3 B4 B5 B6
Smi t Slager Snoek Staal Slager Smi t
F4 F3 F2 F1 F2 F2
16-04-83 25-08-83 17- 10-83 04-05-83 19-11-83 17- 10-83
b#
art#
hoev
prijs
A4 A3 A4 Al A2 A3 A4 A5 A2 A4 Al A2 A5 Al A3
200 150 75 200 100 100 50 1000 300 100 200 300 400 400 200
O . 50 3.50 4.75 2.75 Z.-3.50
B1 82 B2 83 83 83 B3 83 B4 84 B5 B5 B5 B6 B6
F i guur 4:
5.- 0.50 Z.-S.-2.75 1.75 0.50 2.50 3.25
-
156 S
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
KEYS (SLEUTELS) D i k w i j l s i s h e t z o , d a t b i n n e n een r e l a t i e een a t t r i b u u t v o o r komt waarvan de waarde u n i e k i s , z o d a n i g d a t deze a t t r i b u u t waarde kan worden g e b r u i k t om de t u p l e s van de r e l a t i e t e i d e n t i f i c e r e n . W i j noemen d i t a t t r i b u u t de p r i m a r y k e y . N i e t i e d e r e r e l a t i e z a l een s i n g l e - a t t r i b u t e p r i m a r y k e y b e z i t t e n . Toch moet i e d e r e r e l a t i e een v e r z a m e l i n g van a t t r i b u t e n b e z i t t e n d i e , wanneer ze samen worden beschouwd, t o e l a a t om een t u p l e van de r e l a t i e t e i d e n t i f i c e r e n . Zo t o u j e de s i n g l e - a t t r i b u t e p r i m a r y k e y a l s een e x t r e e m g e v a l kunnen z i e n . I n d i e n meerdere a t t r i b u t e n d e e l u i t m a k e n van de s l e u t e l , s ~ r e k e nwe van een samengestelde s l e u t e l . I n h e t eerdergenoemde v o o r b e e l d van een t a b e l r e p r e s e n t a t i e van de r e l a t i e F was de p r i m a r y k e y f a b # , a r t # . Soms komen e r i n een r e l a t i e meerdere v e r s c h i l l e n d e a t t r i b u t e n o f a t t r i b u t e n c o m b i n a t i e s v o o r , d i e g e s c h i k t z i j n om de t u p l e van de r e l a t i e t e i d e n t i f i c e r e n . Men noemt z e c a n d i d a t e k e y s .
Zo k a n h e t ,/oorkomen, d a t i n een a r t i k e l r e l a t i e zowel a r t # a l s a r t i k e l n a a m c a n d i d a t e keys z i j n . I n d i t g e v a l k i e z e n w i j o p a r b i t r a i r e w i j z e de p r i m a r y k e y o n d e r de c a n d i d a t e k e y s . Een c a n d i d a t e k e y d i e n i e t a l s p r i m a r y k e y i s aangewezen w o r d t een a l t e r n a t e k e y genoemd. 5.1
FOREIGN KEY
Een p r i m a r y k e y van een r e l a t i e R 1 d i e ook voorkomt i n r e l a t i e R2 ( i n de f u n c t i e van een " c o n n e c t i o n f i e l d " ) w o r d t een f o r e i g n k e y b i n n e n R2 genoemd.
H i e r i s f a b # een f o r e i g n k e y b i n n e n R2. W i l de d a t a base c o n s i s t e n t z i j n dan z i j n h i e r a a n de v o l g e n d e i n t e g r i t e i t s r e g e l s verbonden:
1.
Geen e n k e l e waarde van een p r i m a r y k e y o f een d e e l daarvan mag n u l l z i j n . D i t i s de e n t i t e i t s r e g e l .
2.
E l k e waarde van een f o r e i g n k e y moet voorkomen a l s waarde van de c o r r e s p o n d e r e n d e p r i m a r y k e y , o f moet n u l l z i j n . D i t i s de r e f e r e n t i ë l e i n t e g r i t e i t s r e g e l .
RELATIONELE SYSTEMEN PRINCIPES - 156 S
RELATIE EN GENORMALISEERDE RELATIE
6.0
Relaties in een relational data - base - moeten aan de volgende strikte voorwaarde voldoen: -
Iedere waarde in de relatie (dit betekent iedere attribuutwaarde in ieder tuple van de relatie) moet "atomic" zijn dat wil zeggen mag niet verder kunnen worden opgesplitst (nondecomposable). Dus o p iedere ri j-/kolomposi tie in de tabel representatie van de relatie komt exact 1 waarde voor en nooit een verzameling van waarden (het mogelijk voorkomen van nullwaarden is uiteraard toegestaan).
Een relatie die aan de bovengenoemde conditie voldoet wordt een Genormaliseerde (1NF)-relatie genoemd. Voor een effectieve normalisatie vereist.
"gegevensbehandeling"
is
verdere
Normal i satie Als geheugensteun worden de belangrijkste normalisatiestappen hier nog eens herhaald: 1.
Verwijder de zich (eerste normaalvorm).
herhalende
deelverzamelingen
2.
Verwijder de attributen die functioneel afhankelijk zijn van slechts een gedeelte.van de sleutel (tweede normaalvorm).
3.
Verwijder attributen die ook functioneel afhankelijk zijn van andere attributen (de normaalvorm).
Minstens de eerste normaalvorm wordt geëist. Voor verdere toelichting verwijzen we naar de GOS-cursus en de module 252 (samenvatting gegevensanalyse). Voor i m p l e m e n t a t i e m o g e l i j k h e d e n van de genormaliseerde data base zie figuur 5.
RELATIONELE SYSTEMEN P R I N C I P E S
-
156 S
GEGEVENSVERZAMELING AFDELING AFDPLAATS
AFDNAAM
AFDNO
AANTALM
I r
MEDEWRKER I
MEDNR
1
MEDNAAM
HIERARCHISCHE STRUCTUUR
A.
B . NETWERKSTRUCTUUR
~
C.
RELATIONELE STRUCTUUR
Figuur 5: Genormaliseerde gegevens
-
16
-
I
I
FUNCTIE
SALARIS
RELATIONELE SYSTEMEN PRINCIPES - 156 S
7.0
RELATIONELE ALGEBRA VERSUS RELATIONELE CALCULUS
Ten behoeve van het manipuleren van data binnen een relational data base model worden data manipulation languages gebruikt die ofwel gebaseerd zijn op de relationele algebra dan wel op de relationele calculus. Relationele algebra is een verzameling van operaties op relaties. Iedere operatie gebruikt één of meerdere relaties al s operand en genereert een andere r-elatie al s resul taat. Bi j gebruik van een manipulatietaal gebaseerd op relationele algebra, geeft de gebruiker o f programmeur precies aan welke operaties op welke relaties moeten worden uitgevoerd teneinde het gewenste resultaat te verkrijgen. Bi j gebrui kmaki ng van een mani pul at ietaal gebaseerd op de relationele calculus wordt de gebruiker of programmeur veeleer de mogelijkheid geboden om aan te geven aan welke voorwaarden de tuples moeten voldoen die hij selecteert en combineert. In dit laatste geval moet het systeem dan zelf uitmaken welke operaties hiertoe moeten worden uitgevoerd. Als taal is relationele algebra minder belangrijk geworden. Als conceptie blijft relationele algebra nog steeds erg belangrijk om de mogelijkheden en flexibiliteit van relationele operaties ten volle te begrijpen.
RELATIONELE SYSTEMEN PRINCIPES - 156 S
8.0
RELATIONELE ALGEBRA
8.1
INLEIDING
Onder r e l a t i o n e l e a l g e b r a v e r s t a a n we h i e r een c o l l e c t i e o p e r a t i e s op r e l a t i e s , waardoor weer nieuwe r e l a t i e s o n t s t a a n . De complete a l g e b r a b e s t a a t u i t 2 groepen o p e r a t i e s :
-
De t r a d i t i o n e l e verzamelingen o p e r a t i e s (ook wel s e t o p e r a t i o n s genoemd) z i j n :
. -
(U) ( v e r e n i g i ng) uni on intersection (f\) (doorsnede) (-) (verschil) difference en een vorm van h e t C a r t e s i s c h p r o d u k t
Speciale r e l a t i o n e l e operatoren:
.
selection projection join d i v i sion
(I)
(selectie) (projectie) (verbinding) (deling)
Qua v o l g o r d e van o p e r a t i e s kennen we de volgende p r i m i t i e v e n toe : E e r s t worden a l l e r e l a t i o n e l e o p e r a t i e s u i t g e v o e r d , van l i nks naar rechts. Daarna worden de verzamelingenoperaties u i t g e v o e r d . I n d i e n de v o l g o r d e van bewerking anders moet z i j n kunnen o p e r a t i e s en verzamelingen tussen ronde h a a k j e s worden g e p l a a t s t , w a a r b i j h e t g e d e e l t e tussen haakjes e e r s t w o r d t u i tgevoerd. 8.2
TOEPASSING VAN OPERATIES OP VERZAMELINGEN
8.2.1
Union ( v e r e n i g i n g ) : z i e f i g u u r 6
S e l e c t e r e n van de t u p l e s van twee r e l a t i e s d i e i n de ene of i n de andere r e l a t i e voorkomen, of i n b e i d e n r e l a t i e s , moeten d a a r b i j v e r g e l i j k b a a r z i j n met b e t r e k k i n g t o t attributen. Bi j e l k a t t r i b u u t i n de ene r e l a t i e h o o r t een a t t r i b u u t i n de andere r e l a t i e , welke op h e t z e l f d e domein i s g e d e f i n i e e r d .
R E L A T I O N E L E S Y S T E M E N P R I N C I P E S - 156 S
Figuur 6 : Vereniging
RELATIONELE SYSTEMEN PRINCIPES - 156 S
Bijvoorbeeld gegeven de relaties R (A,B,C) en S (D,E,F> waarbij A en D , B en E en C en F o p hetzelfde domein zijn gedefinieerd en r een willekeurige tuple uit R is:
Bij gebruik van de volgende voorbeeld:
hiervoor
gedefinieerde
relaties
het
Geef de produktiegegevens van fabrieken die artikel A3 of A5 produceren: [aFr NB.:
t#=~3]
U [ar F
AS]
] is
het operatieteken in relationele algebra. Dus de waarde van attribuut A van tuple r = r[A].
Resul taat fab# F2 F2 F3
art#
vrd
rninvrd
A3 A5 A3
O 370 15
180
8.2.2
20
3O
Intersection (doorsnede): zie figuur 7
Selecteren van de tuples van twee relaties die tegelijkertijd in de ene én in de andere relatie voorkomen. De relaties moeten daarbij vergelijkbaar zijn. Gegeven R (A,B,C> en S (D,E,F) die vergelijkbaar zijn:
Voorbee l d Geef de fabrieken die artikel A3 en A5 produceren:
R E L A T I O N E L E SYSTEMEN P R I N C I P E S - 1 5 6 S
F i g u u r 7 : Doorsnede
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
Resultaat
E r z i t h i e r een a d d e r t j e o n d e r h e t g r a s . E r moet name1 i j k een p r o j e c t i e plaatsvinden over fab#. A l s we d i t n i e t doen: F ,
dan o n t s t a a t :
A l s we h e t dan wel doen dan:
8.2.3
Difference (verschil): zie figuur 8
S e l e c t e r e n van de t u p l e s van een r e l a t i e d i e wel i n de desb e t r e f f e n d e r e l a t i e v o o r k o m t maar n i e t i n een andere r e l a t i e . De r e l a t i e s moeten d a a r b i j v e r g e l i j k b a a r z i j n . Gegeven: R (A.8.C)
en S ( D , E , F ) ,
dan R- S = [ r : r E R f i r , d ~
1
Voor bee l d Geef de f a b r i e k e n d i e we1 a r t i k e l produceren:
A3 maar n i e t a r t i k e l
Resultaat
Ook h i e r weer p r o j e c t i e o v e r fab#. D i t g e e f t :
A5
R E L A T I O N E L E SYSTEMEN P R I N C I P E S - 1 5 6 S
F i g u u r 8 : Verschil
RELATIONELE SYSTEMEN PRINCIPES
8.2.4
-
156 S
Cartesisch produkt
Een bekende o p e r a t o r i n de r e l a t i o n e l e a l g e b r a i s h e t u i t g e b r e i d e c a r t e s i s c h p r o d u k t ( f i g u u r 9 ) . Deze l i j k t s t e r k o p de v e r b i n d i n g . Gegeven twee r e l a t i e s A en B met t u p l e s a en b ; h e t p r o d u k t P = A x B i s de v e r z a m e l i n g t u p l e s t w a a r b i j e l k t u p l e i s o n t s t a a n d o o r h e t samenvoegen van een t u p l e a met een t u p l e b . De samenvoeging van een t u p l e a = ( a , , . . . . . . . . , a,) en een t u p l e b ( a , , . . . . .,b,) i s h e t t u p l e =a(a, , . . . . . . . , a,, b , , . . . . . . . , b 4 ) . Een a n d e r e m a n i e r om t e g e n h e t u i t g e b r e i d e c a r t e s i s c h p r o d u k t aan t e k i j k e n i s om h e t op t e v a t t e n a l s de v e r z a m e l i n g van a l l e m o g e l i j k e r e c o r d s d i e we kunnen k r i j g e n d o o r een r e c o r d u i t A met een r e c o r d u i t B t e v e r b i n d e n . Wanneer A een v e r z a m e l i n g i s van a l l e voorkomende a f m e t i n g e n van een p r o d u k t en B i s de v e r z a m e l i n g van a l l e voorkomende k l e u r e n van d a t p r o d u k t , dan i s h e t c a r t e s i s c h p r o d u k t de v e r z a m e l i n g van a l l e m o g e l i j k e a f m e t i n g l k l e u r c o m b i n a t i e s . 8.3
TOEPASSING VAN OPERATIES OP RELATIES
8.3.1
S e l e c t i o n ( s e l e c t i e ) : z i e f i g u u r 10
S e l e c t e r e n van de t u p l e s van een r e l a t i e waarvan de waarde van een a t t r i b u u t aan een b e p a a l d e voorwaarde v o l d o e t . De waarde b e t r e f t de v e r g e l i j k i n g met een c o n s t a n t e , w e l k e t o t h e t domein van h e t a t t r i b u u t moet b e h o r e n . Men k a n u i t e r a a r d geen s a l a r i s s e n met g e b o o r t e d a t a v e r g e l i j k e n . Gegeven de r e l a t i e R (A,B,C>:
3-=
c o n s t a n t e 0 = r e l a t i e o p e r a t o r ( = , # , < , > , d L)
Voorbeelden 1.
Geef p r o d u k t i e g e g e v e n s van f a b r i e k F3
R E L A T I O N E L E SYSTEMEN P R I N C I P E S - 156 S
l l- l
.
tuples
A
l
11"'
ml"'
mP
tuples
m blokken
va n n tuples
tuples
i ml"'
ml"'
F i g u u r 9: C a r t e s i s c h produkt A x B
n tuples
R E L A T I O N E L E SYSTEMEN P R I N C I P E S - 156 S
F i g u u r 10: Selectie
RELATIONELE SYSTEMEN PRINCIPES - 156 S
Resultaat
2.
Gegevens van bestellingen geplaatst voor 01-08-86 verkrijgt men door: B
C
datum (01-08-aFj
Resultaat
Staal
16-04-86 25-08-86
Een bijzondere vorm is: 8.3.2
Restricrion (restrictie)
Dat is het selecteren van tuples van één relatie waarvan de waarden van twee verschillende attributen aan een bepaalde voorwaarde voldoen. De voorwaarde betreft het onderling vergelijken van de attribuutwaarden. Dit kan uiteraard alleen indien zij o p hetzelfde domein gedefinieerd zijn. Gegeven R (A,B,C> gedefinieerd zijn:
waarbi j
B
en
C
op
hetzelfde
domein
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
Voorbeeld De p r o d u k t i e gegevens van de f a b r i e k e n w a a r b i j de v o o r r a a d van een a r t i k e l k l e i n e r i s dan de gewenste v o o r r a a d ( v r d en m i n v r d z i j n o p h e t z e l f d e domein g e d e f i n i e e r d ) : F
I:
v r d < rninvrdI]
Resultaat fab# F1 F2 F3
8.3.3
art#
vrd
rninvrd
A4 A3 A3
150 O 15
300 20 30
Projection (projectie): zie figuur 11
Projectie is het selecteren van de waarden van de g e s p e c i f i c e e r d e a t t r i b u t e n v a n a l l e t u p l e s van een r e l a t i e , met w e g l a t i n g van e v e n t u e e l o n t s t a n e d u p l i c a t e n . Gegeven R (A,B,C>:
b i j twee a t t r i b u t e n :
R ~ , B ] =[
r [ ~ , g :r < ~
A l s we aan de t a b e l v o r m denken i s s e l e c t i e r i j - g e o r i ë n t e e r d en p r o j e c t i e kolom- georiënteerd. Voorbeeld Geef de k l a n t e n d i e i e t s b e s t e l d hebben.
R E L A T I O N E L E SYSTEMEN P R I N C I P E S
Figuur 1 1 : P r o j e c t i e
- 156
S
RELATIONELE SYSTEMEN PRINCIPES - 156 S
Resultaat
Smi t S l ager Snoek Staal Een combinatie van selectie en projectie; Geef de artikelen en bijbehorende prijs die o p bestelling B5 zijn besteld:
uit te voeren van links naar rechts 1.
Selectie van b#
2.
Projectie van art
=
B5 ui t BA #
en prijs op het resultaat van 1
dus eigenlijk:
BA
=
~s]j[art#,prijs]
Op de nieuw ontstane relatie wordt opnieuw de relationele algebra toegepast. Resultaat
RELATIONELE SYSTEMEN PRINCIPES - 156 S
Join: zie figuur 12
8.3.4
Door de Join worden de relaties met elkaar gefuseerd in een combinatie van produkt en selectie. Een combinatie ontstaat door uit elke relatie een tuple te nemen en deze achter elkaar te plaatsen. Tot het resultaat behoren slechts die combinaties waarvan de waarden van twee attributen, één uit elke relatie, aan een bepaalde voorwaarde voldoen. De voorwaarde betreft het onderling vergelijken van deze attribuutwaarden. Gegeven de relaties R (A,B,C> en S ( D , € > , waarbi j C en D op hetzelfde domein zijn gedefinieerd. Een combinatie van tuple r en tuple s duiden we aan met (r,s>.
N.B.: 6 betekent hier theta-join, waarbij 9één van de vergelijkingsoperatoren = , < , > , $ , bof ( is. Voorbeeld 1 De klanten die artikel A5 hebben besteld. We voeren eerst een selectie van BA op art#=A5 uit, daarna een join met B o p b#, gevolgd door een projectie op klant.
Resultaat
Snoek S1 ager We kunnen dit ook doen met een hulprelatie om het overzichtelijker te houden (R = hulprelatie). R:
=
BA
R [b#=b#]
h art#=^^] B[klant]
R E L A T I O N E L E SYSTEMEN P R I N C I P E S
Figuur 12: Join
-
156 S
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
Voorbeeld 2 Omdat de l e v e r i n g van b e s t e l l i n g 2 s t a g n e e r t , moet e r een o v e r z i c h t komen van de b e s t e l d e a r t i k e l e n en de f a b r i e k e n d i e deze p r o d u c e r e n .
Het r e s u l t a a t z a l z i j n :
B i j een e q u i j o i n i s de r e l a t i e o p e r a t o r e g e l i j k aan
=.
A l s meerdere a t t r i b u t e n i n de r e l a t i e s g e m e e n s c h a p p e l i j k z i j n , dan s p r e e k t men b i j de e q u i j o i n van n a t u u r l i j k e j o i n . De tuples zijn dan paarsgewijs op hetzelfde domein g e d e f i n i e e r d . De o v e r t o l l i g e d u b b e l e kolommen worden dan weggelaten. 8.3.5
Deling
D e l i n g i s h e t s e l e c t e r e n van de t u p l e s van een r e l a t i e d i e v o l d o e n aan de voorwaarde, d a t ze de v e r z a m e l i n g van waarden van een a t t r i b u u t i n een a n d e r e r e l a t i e omvat. De a t t r i b u t e n moeten op h e t z e l f d e domein g e d e f i n i e e r d z i j n . H e t a t t r i b u u t waardoor g e d e e l d w o r d t . w o r d t i n de g e s e l e c t e e r d e t u p l e s wegge1 a t e n . Gegeven R (A,B,C) en S ( D , E > , domein z i j n g e d e f i n i e e r d :
w a a r b i j C en D o p h e t z e l f d e
RELATIONELE SYSTEMEN PRINCIPES - 156 S
Voor bee l d Geef de bestellingen waarop alle te produceren artikelen zijn besteld, met andere woorden we moeten BA delen door F .
I
R:=BA b#,art# R ,r-tIartq Resultaat
i
1
l
Het was niet gelukt met: BA [art#-art# F . Hiermee worden de bestellingen geselecteerd waarop alle artikelen in dezelfde hoeveelheid en tegen dezelfde prijs zijn besteld. Een projectie van de relatie waarop wordt gedeeld is bijna altijd noodzakelijk. Deze projectie bevat tenminste de gevraagde attributen en het attribuut waarover wordt gedeeld. Een projectie van de relatie waardoor wordt gedeeld is niet nodig omdat het resultaat alleen wordt beïnvloedt door het attribuut waarover wordt gedeeld. Voorbeeld Geef die artikelen die bij alle fabrieken worden geproduceerd. Alle fabrieken staan in gedeeld worden.
R: =F [art#,fab#J R fab#-fab# F Resultaat
l
F
dus moet relatie
F
door zichzelf
RELATIONELE SYSTEMEN P R I N C I P E S
- 156
S
L a t e n we h e t volgende v o o r b e e l d eens b e k i j k e n . V e r o n d e r s t e l d a t A een t a b e l i s van m o g e l i j k e a f m e t i n g / k l e u r c o m b i n a t i e s van een p r o d u k t . We kunnen d e l i n g e n u i t v o e r e n met één o f meer kleuren a l s d e e l t a l zoals t e zien i s i n tabel A.
u AFMETING
KLEUR
GR1J S BLAUW WIT ROZ E GR1J S BLAUW WIT ROZ E GR1J S BLAUW ROZ E GR1J S ROZE GR1J S ROZ E GR1J S
KLEUR
DELER
DELER
1
GR1J S
RESULTAAT
1( AFMETING-
38 40 42
DELER
RESULTAA T
l
WIT
l
l
RELATIONELE SYSTEMEN P R I N C I P E S
- 156
S
O o k kunnen we AFMETING als deeltal gebruiken, zodat we kleuren als resultaat krijgen
D E LER
i AFMETI NG / l
DE L E R
I
1
RESULTAAT
j GRIJS i ROZE l
1l
i
i
AFMETI NG
KLEUR GRIJS ROZE
1
1 1
1 I
We kunnen alle mogelijke kleuren verkrijgen door een projectie van tabel A over het attribuut KLEUR.
KLEUREN
'
1 1 1
GRIJS BLAUW WIT ROZE
Door dit nu als deeltal te nemen, krijgen we alle afmetingen van de produkten die in alle kleuren beschikbaar zijn. RESULTAAT
AFMETING
RELATIONELE SYSTEMEN PRINCIPES - 156 S
Op deze1 f d e w i j z e kunnen we o v e r h e t a t t r i b u u t AFMETING p r o j e c t e r e n om een t a b e l van a l l e m o g e l i j k e a f m e t i n g e n t e v e r k r i j g e n en deze a l s d e e l t a l t e g e b r u i k e n om de k l e u r e n t e bepalen d i e voor e l k e afmeting beschikbaar z i j n . AFMET I NGEN
AFMETING
RESULTAaA T I
I
GRIJS
i
Wanneer h e t p r o d u k t met a f m e t i n g 42 u i t s l u i t e n d i n de k l e u r r o z e b e s c h i k b a a r i s en n i e t i n h e t g r i j s , dan zou h e t r e s u l t a a t een l e g e v e r z a m e l i n g geweest z i j n . De d e l i n g i s b i j z o n d e r k r a c h t i g i n h e t g e b r u i k b i j t a b e l l e n van een hogere o r d e , maar b l i j f t m o e i l i j k t e b e s c h r i j v e n . H e t i s i n f e i t e de i n v e r s e van h e t c a r t e s i s c h p r o d u k t . 8.3.6
Alias
Functie Door a l l e e n een a t t r i b u u t n a a m t e noemen i s h e t n i e t a l t i j d d u i d e l i j k u i t welke r e l a t i e h e t a t t r i b u u t a f k o m s t i g i s . I n d i e g e v a l l e n w o r d t de r e l a t i e n a a m a l s p r e f i x g e b r u i k t :
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
Toch z i j n e r s i t u a t i e s w a a r i n een a t t r i b u u t o o k n i e t op deze m a n i e r é é n d u i d i g w o r d t aangewezen o . a . b i j een j o i n van een r e l a t i e met z i c h z e l f . In dit soort situaties is het n o o d z a k e l i j k om r e l a t i e s t e herbenoemen. Voor bee l d Geef de c o m b i n a t i e s van k l a n t e n b e s t e l l i n g hebben g e p l a a t s t .
die
R ALIAS FOR B B a-a t u r n = datum- R r-~ . k l a n t , ~ . k l a n t l d
Resultaat
1
B.klant
I
i
I Snoek
R. k l a n t
Snoek l
I Snoek
1
l
l
Smi t Smit S1 a g e r
,
Smi t
l
l
Snoek Smi t
l
j S1 a g e r
l
l
: Staal
1
Staal
l
op
dezelfde
dag
een
RELATIONELE SYSTEMEN PRINCIPES - 156 S
9.0
DE RELATIONELE CALCULUS
In tegenstel l ing tot relationele algebra wordt de relationele calculus in heel wat meer relationele data manipulation languages toegepast. Een taal die vol ledig op de r e l a t i ~ n e l ecalculus is gebaseerd is DSL alpha, voorgesteld door Codd. Een gelijkwaardige taal Ook sequel, die o.a. in Ingres wordt gebruikt is sequel 2 , sq' en gbe vertonen heel wat kenmerken die ontleend zijn aan de relationele calculus. Voor voorbeelden baseren wij on; op SQL ui t system R. die geïmplementeerd werd in o.a. ORACLE en DB2 (zie ook de modules 157 en 2 5 3 ) . SQL is uitgegroeid tot de defacto-standaard op het gebied van 4' generatietalen met betrekking tot relationele data bases.
w.
Bij de relationele calculus bepaalt het systeem welke relationele operaties uitgevoerd moeten worden o m een door de gebruiker gewenst resultaat te verkrijgen. De gebruiker dient dan wel enigszins geschoold te zijn in het formuleren van zijn wensen, om te voorkomen dat al te arbeidsintensieve opdrachten aan het systeem worden verstrekt, die in geen verhouding staan tot het relatieve belang van het resultaat.
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
BEVEILIGING EN INTEGRITEIT 10.1
BEVEILIGING
I n een d a t a base kunnen een g r o o t a a n t a l z a k e l i j k e gegevens voorkomen, w e l k e een g r o t e waarde hebben v o o r zowel de g e b r u i k e r a l s z i j n k l a n t e n . R e l a t i e s van de g e b r u i k e r en z i j n k l a n t e n kunnen a f h a n k e l i j k z i j n van een a a n t a l t o e p a s s i n g s p r o g r a m m a ' s , welke om een d a t a base gebouwd z i j n . Wanneer b e p a a l d e d e l e n van de d a t a base n i e t o p de j u i s t e momenten b e s s c h i k b a a r z i j n , b i j v o o r b e e l d v o o r h e t maken van f a c t u r e n , k a n d i t de r e l a t i e met de k l a n t e n n a d e l i g b e ï n v l o e d e n . B e v e i l i g i n g kunnen we o p v a t t e n a l s b e s c h e r m i n g t e g e n a a n v a l l e n o f f o u t e n . De d a t a base kan p e r o n g e l u k o f z e l f met o p z e t b e d r e i g d worden i n z i j n f u n c t i o n e r e n . H e t v e r l i e s i n b e s c h i k b a a r h e i d k a n dan zowel g e d e e l t e l i j k a l s geheel z i j n . Goed werken met de d a t a base i s i n i e d e r g e v a l n i e t mogel i j k wanneer de d a t a base en a l l e o n d e r s t e u n e n d e f a c i l i t e i t e n n i e t i n goede s t a a t gehouden worden. Onder n o r m a l e omstandigheden mag aangenomen worden d a t de d a t a base geen f o u t e gegevens b e v a t . V e r l i e s van i n t e g r i t e i t h o u d t i n d a t e r ergens f o u t e o f o n v o l l e d i g e gegevens i n de d a t a base t e r e c h t z i j n gekomen. H i e r d o o r k a n de d a t a base v e r m i n k t r a k e n o f kunnen d e l e n z e l f s v e r l o r e n gaan. D i t zou b i j v o o r b e e l d h e t g e v o l g kunnen z i j n van een h a r d w a r e s t o r i n g , waardoor een s c h i j f met daarop een d e e l van de d a t a base b e s c h a d i g d w o r d t , o f van een programmafout waardoor d e l e n van de d a t a base o v e r s c h r e v e n worden. T e l k e n s wanneer i n een d a t a base gegevens v e r a n d e r d worden, b e s t a a t h e t gevaar d a t men t e g e l i j k e r t i j d de d a t a base v e r m i n k t , wanneer n i e t w o r d t g e c o n t r o l e e r d o f de v e r a n d e r i n g geen g e v o l g e n h e e f t v o o r de r e s t van de d a t a base. Door h e t g e b r u i k van een a a n t a l c o n t r o l e t e c h n i e k e n kunnen d e r g e l i j k e f o u t e n z o v e e l m o g e l i j k voorkomen worden. Wanneer een b e p a a l d gegeven o p een p l a a t s i n de d a t a base v e r a n d e r d w o r d t en op de o v e r i g e p l a a t s e n waar h e t z e l f d e gegeven voorkomt v o e r t men deze w i j z i g i n g n i e t d o o r , dan o n t s t a a t een i n c o n s i s t e n t i e i n de d a t a base w e l k e m o g e l i j k pas v e e l l a t e r aan h e t l i c h t komt wanneer men van de gegevens g e b r u i k maakt.
RELATIONELE SYSTEMEN PRINCIPES - 156 S
Verder heeft beveiliging natuurlijk alles te maken met de problematiek van de toegangscontrole. Wie mag van welke gegevens ui t de data base gebruik maken, wie mag wat veranderen, wie mag er alleen lezen en welke gegevens mogen gecombineerd worden. De controle van gegevens op vertrouweiijkheid wint de laatste jaren sterk aan belang. In de meeste gevallen moet de gebruiker hierbij aangeven hoe de beveiliging dient te geschieden en welke beveiligingen er dienen te worden toegepast. 10.2
BACKUP, HERSTEL EN HERSTART
Drie van de technieken om de data base te beschermen zijn: backup, herstel en herstart. Deze zijn bedoeld o m de data base te beschermen tegen de hardware en software fouten. Met name voor relationele systemen is het van belang dat dergelijke technieken worden toegepast omdat er bij relationele verwerking vanuit wordt gegaan dat attribuutwaarden in verschillende tabellen voorkomen en in relatie tot elkaar gebruikt worden. Eén van de methoden die gebruikt kan worden voor het maken van backup i s het zogenaamde dumpen. Bi j een dump wordt de totale data base gekopieerd naar een willekeurig ander medium. Meestal verzorgt het DBMS via een hulpprogramma een regelmatige dump van alle gegevens. Dit gehele proces neemt echter nogal wat t i jd i n bes l ag . Wanneer nu om één o f andere reden een deel of de gehele data base verminkt is, kan men gebruik maken van de laatste dumpversie en deze met relatief geringe inspanning bijwerken. Men zal hierbij moeten komen tot een afweging van de waarde van een recente dumpversie en de tijd die het vergt o m telkens een recente versie te maken. Naast het verzorgen van dumps, houdt het DBMS een soort logboek bij waarin alle veranderingen vermeld worden. In een dergelijk "verificatiebestand" worden van de gewijzigde records een kopie van het record voor wijziging en een kopie van het record na wijziging opgenomen. De kopieën van de records na wijziging, (afer-images) kunnen gebruikt worden o m een laatste backup kopie up to date te maken. Wanneer met behulp van een DBMS-hulpprogramma een roll-back gemaakt wordt kan aan de hand van de before images bekeken worden of bepaalde fouten tijdens een wijziging ontstaan zijn of dat zij terug t e voeren zijn tot een verder terug1 i ggende invoer o f wijziging. Bi j sommi ge systemen gebeurt dit proces automatisch en houdt het systeem de before images vast. Wanneer het programma nu fout loopt, kan door middel van de before images de fout ongedaan gemaakt worden. Wanneer het programma goed loopt, kunnen de before images weggegooid worden of eventueel aan het journaalbestand worden toegevoegd om een controle later mogelijk te maken.
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
Soms b e s t a a t e r b i n n e n h e t DBMS een hulpprogramma wat h e t m o g e l i j k maakt om z e l f a a n g e b r a c h t e w i j z i g i n g e n weer ongedaan t e maken. Deze back o u t b a s e e r t z i c h dan weer o p de gemaakte b e f o r e images van een w i j z i g i n g . Een d a t a base maakt h e t m o g e l i j k om gegevens op meerdere plaatsen te gebruiken voor verschillende toepassingen. H i e r d o o r w o r d t h e t ook m o g e l i j k om gegevens op een p l a a t s t e v e r a n d e r e n zonder d a t deze v e r a n d e r i n g w o r d t d o o r g e v o e r d v o o r de g e h e l e d a t a b a s e . H i e r d o o r kunnen twee vormen van i n c o n s i s t e n t i e o n t s t a a n , t e weten:
L e e s - i n c o n s i s t e n t i e o n t s t a a t wanneer een g e b r u i k e r tweemaal é é n z e l f d e e l e m e n t w i l l e z e n en een andere g e b r u i k e r i n de t i j d t u s s e n de e e r s t e en de tweede l e e s o p d r a c h t de i n h o u d van h e t element veranderd h e e f t . W i j z i g i n g s - i n c o n s i s t e n t i e i s t e v i n d e n wanneer twee programma's o p é é n z e l f d e moment v e r a n d e r i n g e n w i l l e n aanbrengen i n é é n z e l f d e gegeven. Door m i d d e l van " L o c k O u t " p r o c e d u r e k a n h e t DBMS e r v o o r z o r g e n d a t e r t e l k e n s maar één programma t o e g a n g t o t een b e p a a l d gegeven h e e f t z o d r a w i j z i g i n g s - i n c o n s i s t e n t i e t e voorkomen i s . Er worden b e p a a l d e v o o r r a n g s r e g e l s g e h a n t e e r d , welke aanwi j z e r i w e l k e g e b r u i k e r t o e g a n g k r i j g t t o t h e t gewenste gegeven. H e t nadeel van deze methode l i g t dan ook v o o r de hand, i n de t i j d d a t de t o e g e l a t e n g e b r u i k e r met " z i j n " gegeven b e z i g i s , kunnen andere g e b r u i k e r s d a a r n i e t mee werken. Wanneer we ons nu de s i t u a t i e v o o r s t e l l e n w a a r i n twee g e b r u i k e r s , Janssen en De V r i e s b e i d e twee r e c o r d s w i l l e n w i j z i g e n , i n k o o p en v e r k o o p , dan kan meneer Janssen b e g i n n e n met h e t i n k o o p - r e c o r d t e r w i j 1 meneer De V r i e s aan h e t werk i s aan h e t v e r k o o p - r e c o r d . Op h e t moment d a t z i j w i l l l n p r o b e r e n h e t a n d e r e t e w i j z i g e n r e c o r d aan t e r o e p e n , z a l d i t n i e t gaan omdat h e t a l d o o r een a n d e r i n g e b r u i k i s . Zowel Janssen a l s De V r i e s k a n dan n i e t v e r d e r en z i j houden e l k a a r t e l k e n s t e g e n . E r i s h i e r s p r a k e van een d e a d l o c k ( e e n d o d e l i j k e omarming).
RELATIONELE SYSTEMEN PRINCIPES - 156 S
Een g e s c h i k t e methode om d e r g e l i j k e s i t u a t i e s t e voorkomen i s h e t i n s t e l l e n van de v e r p l i c h t i n g i n een k e e r een m a c h t i g i n g t e v e r w e r v e n v o o r a l l e gegevens d i e n o d i g z i j n v o o r de t o t a l e verandering. Janssen zou dan een m a c h t i g i n g kunnen k r i j g e n v o o r i n k o o p en v e r k o o p en De V r i e s k r i j g t i n h e t geheel geen m a c h t i g i n g omdat Janssen b i n n e n deze gegevens aan h e t werk i s . Pas wanneer Janssen k l a a r i s , k a n De V r i e s i n een k e e r toegang k r i j g e n t o t i n k o o p en v e r k o o p . D a a r b i j k a n men a l s r e g e l s t e l l e n d a t men e e r s t a l l e oude m a c h t i g i n g e n v r i j moet geven v o o r d a t men nieuwe machtigingen kan k r i j g e n . De g e b r u i k e r h e e f t i n h o o f d z a a k t e maken met t r a n s a c t i e s . Men w e r k t a l s h e t ware met b l o k k e n d i e i n hun geheel u i t g e v o e r d m e t e n worden. Te denken v a l t h i e r b i j b i j v o o r b e e l d aan een t r a n s a c t i e w a a r i n een b e d r a g van de ene b a n k r e k e n i n g overgemaakt moet worden n a a r een andere r e k e n i n g . OVERBOEKING: f 100 van A n a a r B. De bank z a l zowel een b i j b o e k i n g a l s een a f b o e k i n g w i l l e n v e r r i c h t e n o f geen van b e i d e i n h e t g e v a l d a t A onvoldoende g e l d op z i j n r e k e n i n g had s t a a n . I n h e t programma wat de o v e r b o e k i n g u i t v o e r t , z a l dus zowel een transactiecommando als een Rollback- commando moet b e v a t t e n . D i t w i l zeggen: Het programma moet de t r a n s a c t i e s t a r t e n en h e t moet e r v o o r z o r g e n d a t de d a t a base n i e t v e r a n d e r t d o o r andere t r a n s a c t i e s t i j d e n s de u i t v o e r i n g van deze t r a n s a c t i e . Een t r a n s a c t i e moet p r e c i e s een k e e r worden u i t g e v o e r d . H e t mag n i e t z o z i j n d a t een systeem maar een d e e l van een t r a n s a c t i e u i t v o e r t o f een d e e l van, o f een g e h e l e t r a n s a c t i e meerdere malen v e r w e r k t . H e t g a a t a l s h e t ware om een a l l e s o f n i e t s p r i n c i p e , wanneer h e t w o r d t u i t g e v o e r d , dan w o r d t h e t helemaal u i t g e v o e r d .
Om beheer en e v e n t u e e l h e r s t e l van een d a t a base m o g e l i j k t e maken moeten t r a n s a c t i e s dan ook de é é n d u i d i g e b a s i s van d e f i n i t i e vormen w a a r u i t een back up systeem i s opgebouwd. De t r a n s a c t i e i s dan immers de e e n h e i d van v e r w e r k i n g en de e e n h e i d van d e f i n i t i e . Ook de h e r s t e l en r o l l b a c k p r o c e d u r e s moeten i n termen van t r a n s a c t i e s g e d e f i n i e e r d worden.
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
R o l l b a c k i s dan weer a f h a n k e l i j k van de b i j g e w e r k t e j o u r n a a l bestanden. Wanneer de aangebrachte wijzigingen niet gedocumenteerd worden i n een j o u r n a a l b e s t a n d , k a n a c h t e r a f geen v e r b e t e r i n g van i n g e s l o p e n f o u t e n p l a a t s v i n d e n op b a s i s van een up t o d a t e j o u r n a a l b e s t a n d . R o l l b a c k i s dan z i n l o o s . Het i s dan ook van algemeen b e l a n g d a t dumps r e g e l m a t i g worden u i t g e v o e r d . D a a r n a a s t k a n h e t z i n v o l z i j n een dump u i t t e l a t e n v o e r e n op v e r s c h i l l e n d e m e d i a . I n d a t g e v a l z i j n e r meerdere back up f i l e s a c h t e r de hand. A l met a l w o r d t h e t b i j h o u d e n van een a a n t a l dumps en h e t b i j h o u d e n van een j o u r n a a l b e s t a n d met d a a r i n de gegevens o v e r deze dumps en de gegevens o v e r de v e r s c h i l l e n d e w i j z i g i n g e n i n de g e b r u i k t e b e s t a n d e n en z e e r g e c o m p l i c e e r d e zaak. H e t g a a t z e e r v e e l t i j d v r a g e n om n a a s t de v e r s c h i l l e n d e w i j z i g i n g e n ook nog eens de o p d r a c h t e n t e geven de j o u r n a a l b e s t a n d e n t e h e r z i e n o f aan t e v u l l e n met de l a a t s t e w i j z i g i n g e n en met de gegevens o v e r h e t s u c c e s v o l l e v e r l o o p van d i e w i j z i g i n g e n . A l l e o p d r a c h t e n o p de d a t a base moeten ook een k e e r aan h e t j o u r n a a l b e s t a n d gegeven worden om e r v o o r t e z o r g e n d a t h e t j o u r n a a l b e s t a n d g e l i j k e t r e d h o u d t met de d a t a b a s e . Wanneer nu e c h t e r een f o u t o p t r e e d i n de w i j z i g i n g van h e t j o u r n a a l b e s t a n d , kan h e t dus weer voorkomen d a t e r een w i j z i g i n g op de d a t a base h e e f t p l a a t s g e v o n d e n d i e n i e t i n h e t j o u r n a a l b e s t a n d i s t e r u g t e v i n d e n . Om a l l e s goed t e l a t e n v e r l o p e n zou e r dus na a f s l u i t i n g van een t r a n s a c t i e i n de d a t a base een gegeven naar h e t j o u r n a a l b e s t a n d g e s t u u r d moeten worden wat m e l d i n g maakt van de s u c c e s v o l l e t r a n s a c t i e . Wanneer h e t systeem dan i n h e t ongerede r a a k t , kan opnieuw g e w e r k t worden met h e t j o u r n a a l b e s t a n d met d a a r i n de m e l d i n g e n o m t r e n t de s u c c e s v o l verlopen transacties. Volgens deze " L o g - w r i t e - a h e a d " methode w o r d t dus e e r s t een j o u r n a a l b e s t a n d gemaakt en weggeschreven a l v o r e n s de w i j z i g i n g op de d a t a base d o o r t e v o e r e n . A l s a f s l u i t i n g w o r d t e r dan een s i g n a a l gegeven d a t de w i j z i g i n g s u c c e s v o l d o o r l o p e n i s . En d i t s i g n a a l w o r d t weer i n h e t j o u r n a a l b e s t a n d opgenomen. INTEGRITEITREGELS Wanneer g e b r u i k gemaakt w o r d t van een r e l a t i o n e e l systeem, moeten de a t t r i b u t e n , w e l k e g e h a n t e e r d worden, g e d e f i n i e e r d z i j n b i n n e n b e p a a l d e domeinen. Een a r t i k e l n u m m e r k a n z o g e d e f i n i e e r d worden a l s een l e t t e r , g e v o l g d d o o r een d r i e t a l c i j f e r s , A 123. H i e r d o o r w o r d t h e t domein van h e t a t t r i b u u t artikelnummer gedefinieerd.
RELATIONELE SYSTEMEN PRINCIPES - 156 S
De waarden van een domein kunnen gespecificeerd worden wanneer het DBMS over de juiste hulpmiddelen beschikt. Bovendien zijn een aantal vaste controles in te bouwen die er voor moeten zorgen dat de domeinen van een attribuut niet overschreden worden. Dat wil zeggen, dat de juiste termen gegeven worden (in het voorbeeld een letter en drie cijfers voor een artikelnummer). Bij dergelijke controles wordt vaak gesproken van validiteitcontroles, ook hanteert men termen als accuraat, correct, valide en integriteit. Domein integriteit houdt in dit geval in dat er gecontroleerd wordt of de relatie welke in een domein valt, voldoet aan de voor dat domein geldende regels. Bij elke toevoeging of wijziging kan automatisch gecontroleerd worden of de betreffende tuples voldoen aan de regels welke bij het betreffende domein horen. Bij strijdige waarden zal het systeem door middel van een blokkade en een foutmelding reageren, terwijl bij een uitgebreid transactie georiënteerd systeem onmiddellijk een rollback gestart zal worden. Wanneer we de regels voor domeinintegriteit nader in willen vullen, kan gedacht worden aan regels met betrekking tot gebruikelijke validaties als formaat, waardenverzameling, of door de gebruiker opgegeven specificaties. Daarnaast zou men regels kunnen ontwikkelen welke betrekking hebben op binnen de data base gebruikte gegevens. Zo kan men dan waarden van de data base voor en na een wijziging vergelijken. Bovendien kan men waarden binnen de data base vergelijken met andere waarden uit dezelfde data base. Zodoende zou men uitspraken kunnen doen over bijvoorbeeld een aanwezige voorraad en het aanwezig zijn van deze voorraad in het magazi jn. Di t zijn dan weer gebruikerstoepassingen die voor elke gebruiker afzonderlijk bekeken moeten worden. Door een aantal van deze beperkingen (constraints) in te voeren kan men de data base gemakkelijk hanteren. We kunnen deze constraints indelen naar de hoeveelheid gegevens die geraadpleegd moeten worden om de beperking daadwerkelijk uit te voeren waarbij we er dan vanuit gaan dat "beperkingen" waar geen extra gegevens van bui ten de data base hoeven te worden ingevoerd goedkoper en sneller zijn dan die waarvoor een dergelijke invoer wel noodzakelijk i s . Een beperking waarvoor maar enkele velden uit de data base gebruikt worden zijn dan weer goedkoper en sneller dan de beperkingen waarvoor een groot deel van de data base nodig is.
R E L A T I O N E L E SYSTEMEN P R I N C I P E S -
156 S
Daarnaast is er de beperking op verzamelingen. Hierbij wordt gecontroleerd of een attribuut deel uitmaakt van een bestaande verzameling of niet. In sommige gevallen is dat noodzakelijk en in andere gevallen moet een attribuut juist niet in een bepaalde verzameling voorkomen. Door middel van de controle op verzamelingen kan gemakkelijk worden vastgesteld of verschillende artikelen we1 verschillende artikelnummers hebben. Zeker wanneer het om grote bestanden gaat, is een dergelijke controle er een die nogal wat tijd en geld in beslag neemt. Voorwaarde voor een controle op verzamelingen is wel dat de nummers in de verzameling voorzien zijn van een unieke sleutelwaarde. Op zijn minst moet het systeem in staat zijn dergelijke unieke waarden af te dwingen. Wanneer Cnummer de primaire sleutel is in de tabel cliënten en we deze tabel in de verkooptabel als referentie naar de cliënten gebruiken, verwijst het getal 5 naar een bepaalde naam in de cliëntentabel bijvoorbeeld De Vries. Dit wil nu niet zeggen dat overal waar het getal 5 voorkomt men eigenlijk De' Vries zou moeten lezen. Alleen als het om een koppeling tussen de tabellen gaat is dat het geval. Wanneer de gebruiker nu het getal 5 ui t de cl iëntentabel verwijdert, zonder na te gaan of dit getal nog ergens anders in de data base gebruikt wordt, zullen er waarschijnlijk gegevens verloren gaan doordat er in verschillende tabellen losse gegevens komen te staan die niet meer een oorspronkelijke waarde vertegenwoordigen. Dit kan alleen voorkomen worden wanneer het systeem bij houdt welke attributen op welke domeinen zijn gedefinieerd en welke waarden er als sleutel gebruikt worden. Door middel van een wissleutel of wijzigsleutelopdracht zou de gebruiker er dan voor kunnen zorgen dat er een nieuwe sleutel in de plaats komt van de vervangen waarde. Het systeem moet er dan voor zorgen. dat de verandering door de hele data base wordt doorgevoerd. I n dit kader is het van belang onderscheid te maken tussen een
viertal soorten constraints, te weten: 1.
Attri buutconstraints Deze soort beperking maakt het mogelijk dat bepaalde waarden voor een attribuut worden uitgesloten. Bijvoorbeeld: het klantennummer kan variëren van K1 tot en met K2500.
RELATIONELE SYSTEMEN PRINCIPES - 156 S
2.
Tupleconstraints Met behulp van dit soort constraints wordt het mogelijk combinaties van attribuutwaarden uit te sluiten. Tupleconstraints zijn derhalve constraints van een hogere orde dan attribuutconstraints. Een voorbeeld: De BTW is 205' en het gewicht van het artikel bedraagt minder dan 5000.
3.
Tabelconstraints Dit soort constraints zijn wéér van een hogere orde en maken het mogelijk o m een bepaalde verzameling tuples (records) in een tabel uit te sluiten. Bijvoorbeeld: er zijn binnen een artikelbestand minimaal 2 artikelen met de artikelomschrijving BACO. (Dat wil zeggen dat al die tabellen, waarin dit artikel O o f 1 maal voortomt, geen toegestane tabellen in de data base zijn.) Een ander reeds bekende tabelconstraints luidt: "het nummer van de klant is uniek en fungeert als sleutel". Dat wil zeggen, dat een klantentabel, waarin twee verschillende records voorkomen met hetzelfde klantnummer, niet toegestaan is (integriteitsregel l).
4.
Data base constraints In een informatiesysteem bestaan er meestal verbanden tussen tuples in verschillende tabellen. Zo bestaat er een relatie tussen het klantenbestand en het orderbestand. Bijvoorbeeld: bij elk orderrecord behoort een klantenrecord aanwezig te zijn (met dezelfde waarde voor het attribuut klantnummer): Onbekende klanten kunnen geen order plaatsen. Beperkingen, die opgelegd worden aan relaties tussen verschillende tabellen, worden data base constraints genoemd. In het bovengenoemd voorbeeld wordt een bepaald soort data base constraint gegeven, namelijk een subsetrequirement (referentiële integriteit).
RELATIONELE SYSTEMEN PRINCIPES - 156 S
1 1 .O
VOORWAARDEN WAARAAN RELATIONELE SYSTEMEN DIENEN TE VOLDOEN
1 1 .l
WANNEER ZIJN DB-SYSTEMEN ECHT RELATIONEEL?
Voorwaarden 01. Alle gegevens moeten als "atomic" values (dat wil zeggen zij kunnen niet verder worden opgesplitst zonder ver l ies aan i nformatie) kunnen worden
gepresenteerd binnen tabellen die genormaliseerde relaties voorstellen. Dus het logische model is gelijk aan het opgeslagen model. Repeating groups en dergelijke zijn niet toegestaan. (In figuur 13 staat dit uitgewerkt.) 02. Zowel
entiteiten als associaties moeten op enkelvoudige wijze door middel van tabel l en kunnen worden uitgedrukt (zie figuur 14).
Nullwaarden (niet te verwarren met O , of lege strings of spaties en dergelijke) dienen te worden ondersteund o m onbekende gegevens of niet toegankelijke gegevens toch te kunnen verwerken, Nullwaarden dienen niet toegestaan te kunnen worden voor bepaalde attributen (bijvoorbeeld sleutels). 03. (Gevolg van 02.)
Er komen geen gebruikers-zichtbare navigatie-"links" voor tussen tabellen. Alle manipulatie tussen logisch gerelateerde tabellen steunt op de vergelijking van attri butenwaarden van attri buten di e in de respectievelijke tabellen voorkomen (zie figuur 15). 0.4 Er komen
geen "gebruikers-zichtbare" toegangspaden voor. De gebruiker o f programmeur hoeft zich niet bezig te houden met de wijze waarop de gegevens zijn georganiseerd, respectievelijk de toegang tot de gegevens is geregeld (logische onafhankelijkheid). Zie figuur 16.
De gegevens zijn "logisch" toegankel ijk door een combi nati e van tabelnaam, primary key waarde en kolomnaam.
RELATIONELE SYSTEMEN P R I N C I P E S
/
I
WERKN#
-
- - - 1I 0 0 ADAMS A . 106 I BORGERS E . '110 1 CLAERHOUT P . , 1- - - - - - - - - - -,- - _ I _ -- - - - - - - - - 1 l107 1 VAN DAM C . l '111 DE BACKER M . ' 11- -- - --_ -
i
DATA PROCESSING
1
I
WERKNAAM
---- ----
D2
156 S
WERKNEMER
DEPTNAAM
DEPT#
-
'
'
ENGINEERING
_ _ I
NIET- RELATIONEEL
DEPT#
DEPTNAAM
D1 D2
DATA PROC. ENGINEERING
1O 0 106 107 110 110 RELATIONEEL
F i g u u r 13
ADAMS A . BORGERS E . VAN DAM C . CLAERHOUT P . DE BAKKER M.
D1 D1 D2 D1 D2
l
I
RELATIONELE SYSTEMEN P R I N C I P E S
PNAAM
P#
li
SAMI S P2
POINTER
POINTER
1
i
SOLFA
-
156 S
L#
LNAAM
L1
LOSCO
L2
LINCO
L3
ARC0
w
P3
SIGMA NIET- RELATIONEEL
SAMI S SOLFA P3
SIGMA
i
I
RELATIONEEL Figuur 1 4
RELATIONELE SYSTEMEN P R I N C I P E S
LEVNAAM
POINTEF;
1
VESTADREI
-
156 S
1
ANTWERPEN
HUDSON
NIET- RELATIONEEL
1
LEV#
LEVNAAM
VESTADRES
L1
HUDSON
ANTWERPEN
RELATIONEEL
Figuur 1 5 :
AODA TUM
RELATIONELE SYSTEMEN P R I N C I P E S
WERKN#
-
156 S
WERKNNAAM
LOCATI O N MODE I S
1 O0
CA L C
106 107
WERKN#:
ADAMS A .
I3ORGERS E . VAN DAM C.
l I
" = 107"
F I N D WERKN-RECORD BY CALC- KEY
l
l
i
GET WERKN; WERKNNAAM
NIET- RELATIONEEL
WERKN#
WERKNAAM
1 O0
ADAMS A .
106
BORGERS E . 1
FROM WERKN
107
VAN DAM C. i
WHERE WERKN# = 107
1 l
l RELATIONEEL
Figuur 16: Logische onafhankelijkheid
SELECT WERKNNAAM
,
RELATIONELE SYSTEMEN P R I N C I P E S
-
156 S
0.5 Ten behoeve van de manipulatie van de gegevens is er zowel een op zichzelf staande relational query language aanwezig als een in een aantal host languages (COBOL, PLI1) embedded language met uitgebreide wiskundige relational processing mogelijkheden, gebaseerd op de relationele algebra of op de relationele cal cul U S . DEPARTEMENT
DEPT#
DEPTNAAM
DEPTBLOK
WERKN#
D1
DATA PROC
, ANTWERPEN
100
AOAMS A.
O1
D2
ENGINEERING
106
BORGERS E.
D1
107
VANDAMC.
D2
1 10
CLAERHOUT P .
D1
1 10
DE BACKER M.
D2
i l
BORN
WERKNNAAM
DEPT#
Geef werknemernamen van alle werknemers te zamen met de aanduiding van de locatie van het departement waarvoor ze werken. Select werknnaam, deptlok from werknemer, department where werknemer.dept# = department.dept# 1 1 .Z
WANNEER ZIJN RELATIONELE SYSTEMEN RELATIONELE DATA BASE SYSTEMEN?
VOLWAARDIGE
Voorwaarden 01. Een hoger niveau gegevenstaal, welke de mogelijkheden
biedt voor het (naast toepassingsprogramma's) definiëren van het relationele gegevensmodel (data definition) en voor het waarborgen van de juistheid en van het juiste gebruik van de gegevens die in het model worden binnengebracht (data control). Relationele level 1 .
data
defi ni tion
l anguage
(conceptual
RELATIONELE SYSTEMEN PRINCIPES
0.2
-
156 5
E f f i c i ë n t e o p s l a g s t r u c t u r e n voor h e t r e g i s t r e r e n van de d a t a en e f f i c i ë n t e access- paden t e n behoeve van de toegang t o t de opgeslagen gegevens. R e l a t i o n e l e d a t a d e f i n i t i o n language ( i n t e r n a l l e v e l ) .
0.3
De m o g e l i j k h e i d om v a n u i t h e t r e l a t i o n e e l gegevensmodel views t e bepalen waarmee r e c h t s t r e e k s e gegevensbehandeling m o g e l i j k i s . R e l a t i o n e l e d a t a d e f i n i t i o n language ( e x t e r n a l l e v e l ) .
WERKNEMER WERKN#
W ERKNAAM
FUNCTIE
PROJECT
SALARIS
DEPT#
PROJ#
DEPARTEMENT
PROJ#
PROJNAAM
BUDGET
DEPT#
DEPTNAAM
DEPTBLOK
V I E W DEFINITION Define view personeel (naam, p r o j e c t , departement, l o c a t i e ) as s e l e c t werknnaam, projnaam, deptnaam, d e p t l o k f r o m werknemer, p r o j e c t , departement. Where werknemer.dept# = departement.dept# and werknemer. proj# = project. proj#. PERSONEEL PROJ ECT
DEPARTEMENT
QUERYING VIEWS S e l e c t naam, l o c a t i e from p e r s o n e e l .
LOCA TIE
RELATIONELE SYSTEMEN PRINCIPES
04.
Een hogere n i v e a u n i e t - p r o c e d u r e g e r i c h t e manipulatietaal die:
-
156 S
gegevens-
-
Zowel op z i c h z e l f s t a a n d kan worden g e b r u i k t voor eenvoudige t e r m i n a l q u e r i e s , i n verband met h e t ophalen en behandelen van gegevens (query language) Maar ook voor updaten, v e r w i j d e r e n , toevoegen.
-
A l s "embedded" kan worden aangewend i n meerdere host programming languages (COBOL, PL11 , FORTRAN, C , ) t e n behoeve van h e t updaten, toevoegen en v e r w i j d e r e n van gegevens b i n n e n h e t r a t i o n e e l gegevensmodel ( d a t a sub-language).
R e l a t i o n e l e d a t a m a n i p u l a t i o n language. 05.
De aanwezigheid van een r e l a t i o n e l e o p t i m i z e r query en middel waarvan de r e l ationel e sublanguage e x p r e s s i e s kunnen worden omgezet i n s e q u e n t i e van " c a l 1s" t e n behoeve van h e t s t o r a g e system.
door data een data
H i e r b i j moet men b e s e f f e n d a t h e t één van de b a s i s k a r a k t e r i s t i e k e n i s van r e l a t i o n e l e systemen d a t d a t a m a n i p u l a t i e e x p r e s s i e s n i e t r e f e r e r e n aan access- paden d i e toegang v e r l e n e n t o t opgeslagen d a t a . D i t houdt dus i n d a t deze systemen z e l f h e t o p t i m a l e toegangspad moeten kunnen v i n d e n v i a een " r e l a t i o n e l e i n t e r f a c e optimizer". 06.
De b e s c h i k b a a r h e i d o v e r een v o l l e d i g d a t a d i c i t o n a r y l d i r e c t o r y system, v o o r :
geïntegreerd
-
Het d e f i n i ë r e n en veranderen van k a r a k t e r i s t i e k e n van gegevens ( i n base t a b l e s , views) van h e t relationele gegevensmodel, alsook voor h e t opnemen van een a a n t a l s p e c i f i c a t i e s o m t r e n t programma's, g e b r u i k e r s en andere " s u b j e c t e n " d i e men met h e t systeem w i l documenteren.
-
Het v e r r i c h t e n van o n - l i n e q u e r i e s op de DDID d a t a base) door middel van de query language d i e tevens w o r d t g e b r u i k t op de w e r k e l i j k e d a t a base).
-
Het genereren van c o n t r o l e b l o k k e n voor u i t v o e r i n g van d a t a base r e q u e s t s .
R E L A T I O N E L E SYSTEMEN P R I N C I P E S
-
-
156 S
Het b i j h o u d e n van s t a t i s t i e k e n d i e b e l a n g r i j k z i j n voor de e x p l o i t a t i e van h e t systeem en voor h e t bewaken van de performance van h e t systeem, waarbi j h e t w e n s e l i j k zou z i j n d a t deze d a t door h e t systeem dynamisch worden onderhouden.
De aanwezigheid van f a c i l i t e i t e n t e r waarborging van de i n t e g r i t e i t en op grond waarvan de v a l i d a t i e van semantische beperkingen op de gegevens gedurende h e t manipuleren van de gegevens kan worden opgevolgd. D i t moet i n de systeemcatalogus gebeuren van de d a t a d i c t i o n a r y en n i e t i n de a p p l i c a t i e s . " I n t e g r i t y c o n t r o l " kan worden b e w e r k s t e l l i g d door t o e t e l a t e n d a t " g e b r u i k e r s " semantische beperkingen leggen op gegevens door middel van v e r k l a r i n g e n ( " a s s e r t i o n s " > d i e i n een r e l a t i o n e l e gegevensd e f i n i t i e t a a l kunnen worden gespecificeerd. Het opvolgen van de g e l d i g h e i d van een d a t a m a n i p u l a t i e statement kan gebeuren v o o r d a t een s t a t e m e n t i s u i t g e v o e r d ( r u n - t i m e check) o f ( m e e s t a l ) nadat h e t r e s u l t a a t van de u i t v o e r i n g van een statement i s g e r e g i s t r e e r d ( p o s t - e x e c u t i o n t i m e check), met de m o g e l i j k h e i d van een n o o d z a k e l i j k b a c k o u t ) . " A s s e r t i o n s " kunnen zowel r e f e r e r e n aan een g e l d i g e t o e s t a n d o f aan een g e l d i g gebeuren. Toestand Geen e n k e l e werknemer kan een m a a n d s a l a r i s v e r d i e n e n beneden f l . 2.400,--. Gebeuren Van geen e n k e l e werknemer kan h e t m a a n d s a l a r i s worden vermi nderd. " A s s e r t i o n s " kunnen zowel r e f e r e r e n aan bepaalde t u p l e s a l s aan groepen van t u p l e s van v e r s c h i l l e n d e relaties.
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
Tupl es Managers hebben een maandsalaris tussen fl. 6.000,-en fl. 10.000,--. De integriteit kan bestaan op:
-
Data base niveau
-
Tabelniveau
(referentiële integriteit)
Voorbeelden
-
Assert mangrsal on emp if title = "manager" then salary between fl. 6.000,--and fl. 10.000,--.
-
Assert validproj (select projno from emp) is in (select projno from proj) .
Dit laatste voorbeeld wordt gebruikt om na te gaan of er geen werknemers zijn die zijn toegewezen aan projno's die niet voorkomen in de projectrelatie (eventueel niet bestaan) referentiële integriteit. Het voorbeeld illustreert evenzeer hoe de consistentie van bepaalde invoer kan worden gecontroleerd. 08. De aanwezigheid van concurrency control faciliteiten
voor het oplossen van concurrent update vraagstukken en voor het behandelen van mogelijke deadlocks.
-
In verband met het oplossen van concurrent update vraagstukken moet vooral worden gelet op de granulariteit van de locks (locks op tuple niveau, kolomniveau, relatieniveau, en data base niveau).
-
In verband met het behandelen van deadlocks zijn er diverse mogelijkheden: deadlocks kunnen worden vermeden; deadlocks kunnen worden voorkomen; deadlocks opgelost.
kunnen
worden gedetecteerd
en
RELATIONELE SYSTEMEN PRINCIPES - 156 S
09. De aanwezigheid van een selective access control voorziening door middel waarvan gegevens kunnen worden afgeschermd voor niet-geautoriseerde gebruikers.
Naast de klassieke gebruikersidentificatie en het password hanteren de meeste relationele systemen ook een bevoegdhedenstructuur (authority) waaruit de vrijheidsgraden van een gebruiker kunnen worden afgeleid in verband met het soort gebruik van het data base systeem dat aan hem is toegestaan. Typisch voor een relationeel systeem is, dat een gebruiker met bevoegdheid voor het creëren van een tabel (dba, afde1ingsverantwoordeiijke,. . . . . > aan andere gebruikers een privilege kan geven, in verband met het behandelen van gegevens binnen die tabel. Hij kan dit privilege zodanig beperken, dat slechts bepaalde tabelgegevens (kolommen, rijen) behandeld kunnen worden, daarnaast kan hij beperkingen opleggen in verband met de aard van de toegestande operaties. De ontwerper van een tabel (owner, creator), kan verder toestaan dat gebrui kers die een "privi lege" hebben verkregen in verband met het behandelen van gegevens in de door hem ontworpen tabel, dit privilege op hun beurt aan andere gebruikers overdragen. Ook het veel gebruikte "view H -concept houdt een access control facet in. Door een gebruiker te laten refereren aan een view, worden alle andere gegevens voor deze gebruiker afgeschermd. Vanzelfsprekend kunnen ook op views "grantU-privileges worden gegeven. Zij kunnen echter niet tegenstrijdig zijn aan de "grantH-privileges die de gever van de toestemming heeft, met betrekking tot de tabel of de tabellen waaruit de view is samengesteld. Overigens kunnen de "grantH-privileges te allen tijde worden ingetrokken.
RELATIONELE SYSTEMEN PRINCIPES - 156 S
Voorbeelden access control grant select on leverancier to pub1 ic grant update on leverancier to gebruiker 1 , gebruiker 2 grant update on leverancier to gebruiker 1 with grant option create view inkooporder 1 as select * from orders where lev# in (30, 35, 40) grant update (prijs, levertermijn) on inkooporder 1 to gebruiker l revoke update on leverancier from gebruiker 1 10. De beschikbaarheid over volledige backup, backout, recovery en restart-faciliteiten en de zogenaamde transaction bounderies, zoals begin, commit. 11.
11.3
Aanwezigheid van diverse extra "features" zoals bijvoorbeeld: report qeneration faci l i ties, edi tinq facilities, key compression, . . . . . . . . . . . ADDITIONELE VOORWAARDEN
Een aantal schrijvers waaronder Dr. E.F. Codd de vader van het relationele model, noemen naast een aantal hiervoor reeds genoemde voorwaarden nog specifiek:
RELATIONELE SYSTEMEN PRINCIPES
1.
156 S
De v o l g e n d e o p e r a t o r e n moeten aanwezig z i j n :
-
-
selectie projectie vereniging (union) verschil doorsnede ( i n t e r s e c t i o n ) produkt deling (division) verbinding (joining)
zonder d a t worden. 2.
-
van
"loops"
gebruik
gemaakt
hoeft
te
De o p v r a a g t a a l moet de m o g e l i j k h e i d b i e d e n t o t : -
-
-
-
d a t a d e f i n i t i e en v i e w - d e f i n i t i e geneste q u e r i e s o n g e l i m i t e e r d e j o i ns data manipulatie en berekeningen, i n t e r a c t i e f a l s met programma's gecorreleerde subqueries v e r w e r k e n van n u l l - w a a r d e n d o o r l o p e n van b o o m s t r u c t u r e n ( B - t r e e s ) integri t e i tsconstraints d a t a d i c t i o n a r y d e f i n i t i e en q u e r y
zowel
3.
De o p v r a a g t a a l moet r e g e l m a t i g aangepast worden aan de v e r o u d e r d e b e h o e f t e n en i n z i c h t e n . (SQLfPLUS).
4.
De leverancier/maker moet z i c h binden aan de " s t a n d a a r d " , d a t w i l zeggen a l l e v e r a n d e r i n g e n i n de s t a n d a a r d moeten o n m i d d e l l i j k en v o l l e d i g worden d o o r g e v o e r d . (SQL)
5.
O v e r d r a a g b a a r h e i d ( p o r t a b i l i t y ) , d a t w i l zeggen h e t systeem mag n i e t a f h a n k e l i j k z i j n van de h a r d w a r e t e n behoeve van a p p l i c a t i e - o n t w i k k e l i n g .
6.
A a n s l u i t b a a r h e i d . O p v r a g i n g e n d o o r meerdere g e b r u i k e r s op meerdere p l a a t s e n moet m o g e l i j k zijn, met verschillende apparatuur.
7.
M o g e l i j k h e d e n om de d a t a base t e t u n e n
8.
A l l e views d i e t h e o r e t i s c h kunnen worden g e u p d a t e d moeten ook d o o r h e t systeem kunnen worden g e u p d a t e d .
RELATIONELE SYSTEMEN PRINCIPES - 156 S
9.
Als een lagere taal (een record tegelijk te benaderen) zoals COBOL en PLI1 etc. gebruikt kan worden binnen de data base mag deze niet in staat zijn om de vastgestelde i ntegri tei tsvoorwaarden i n de hogere gegevenstaal (SQL) te omzeilen of teniet te doen.
10. Domeinen waarvan attributen afgeleid zijn, moeten "globaal" gedefinieerd kunnen worden. Vanzelfsprekend kunnen niet alle waarden in een domein vastgelegd worden maar wel de grenzen en beperkingen. Di t voorkomt redundancy in de integriteitsconstraints van de attributen die van de domeinen zijn afgeleid.
Ten aanzien van de performance van relationele systemen, worden er door Codd geen eisen geformuleerd. In het volgende hoofdstuk zullen we hier nader op ingaan. Relationele systemen worden vaak aangeduid als gebruikersvriendelijke systemen. Het is dan ook ontegenzeglijk waar dat deze systemen eenvoudiger zijn wanneer we ze vergelijken met systemen als netwerken. De manipulatie op het niveau van een relationeel systeem is echter niet altijd even eenvoudig. Zeker wanneer men meer met het systeem wil doen dan simpel opvragen van overzichten, worden de vraagtalen vaak gecompliceerd en worden er relatief veel fouten gemaakt.
RELATIONELE SYSTEMEN PRINCIPES
12.0
-
156 S
KRITIEK OP RELATIONELE SYSTEMEN
De k r i t i e k op r e l a t i o n e l e systemen z o a l s ze i n de l i t e r a t u u r n a a r v o r e n komt, i s a l s v o l g t samen t e v a t t e n . 12.1
PERFORMANCE
H e t b e l a n g r i j k s t e p r o b l e e m b i j de i m p l e m e n t a t i e van r e l a t i o n e l e d a t a bases, i s de a d r e s s e e r b a a r h e i d o p i n h o u d , i n t e g e n s t e l l i n g t o t een p o s i t i o n e l e a d r e s s e r i n g . Een r e c o r d of t u p l e worden g e ï d e n t i f i c e e r d d o o r de i n h o u d , i n h e t b i j z o n d e r d o o r de s l e u t e l en n i e t d o o r de f y s i e k e o f l o g i s c h e p o s i t i e . Een b e w e r k i n g a l s SELECT z a l i n de meeste g e v a l l e n b e t r e k k i n g hebben op a t t r i b u u t w a a r d e n . D i t k a n inhouden, d a t g r o t e hoeveelheden r e c o r d s o n d e r z o c h t moeten worden. H i e r d o o r kunnen de w a c h t t i j d e n e r n s t i g toenemen en neemt de f u n c t i o n a l i t e i t van h e t systeem a f . 12.1.1
Deoptimizer
Wie een r e l a t i o n e e l DBMS g e b r u i k t om gegevens u i t een d a t a base op t e zoeken k a n i n p r i n c i p e n i e t b e p a l e n op w e l k e m a n i e r de gegevens o p g e z o c h t worden. H e t management system b e p a a l t op welke m a n i e r , met w e l k e s t r a t e g i e , de q u e r y w o r d t u i t g e v o e r d . D i t w o r d t gedaan met b e h u l p van een o p t i m i z e r . De o p t i m i z e r i s een d e e l van h e t DBMS en b e p a a l t l a n g s e w e l k e weg een zoeko p d r a c h t w o r d t u i t g e v o e r d . Er w o r d t b e p a a l d w e l k e t a b e l v o l g o r d e e r g e h a n t e e r d moet worden en w e l k pad b i n n e n een t a b e l h e t s n e l s t z a l werken. De o p t i mi z e r i s g r o t e n d e e l s b e p a l end v o o r de p r e s t a t i e s van h e t DBMS. Een a a n t a l systemen, i n i e d e r g e v a l d i e systemen d i e met SQL werken, hebben twee toegangspaden. Het e e r s t e pad w o r d t dan g e b r u i k t om een t a b e l s e q u e n t i e e l t e doorzoeken, w a a r b i j t e l k e n s t u p l e s o f b l o k k e n t u p l e s van h e t geheugen n a a r h e t werkgeheugen g e s c h r e v e n worden en v e r v o l g e n s worden o n d e r z o c h t . Het tweede pad w o r d t g e v o l g d wanneer de g e b r u i k e r i n d i c e s h e e f t opgegeven en de t a b e l l e n aan de hand van de opgegeven i n d e x d o o r l o p e n k a n worden. De t a b e l w o r d t dan o o k met b e h u l p van de i n d e x o p g e s l a g e n z o d a t zoeken g e m a k k e l i j k e r g a a t .
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
S t e l d a t e r een index i s op h e t a t t r i b u u t FABNR. van de B - t a b e l , dan kan de v r a a g : Geef h e t bestelnummer en de datum van de l e v e r a n t i e s van f a b r i e k nummer 2 e r i n SQL a l s v o l g t uitzien: SELECT FROM WHERE
BNR., DATUM B FABNR.= "F2"
Door u i t t e gaan van een index op fabrieksnummer kan deze vraag e f f i c i ë n t beantwoord worden. Voor h e t antwoord z i j n a l l e e n d i e p a g i n a ' s van h e t geheugen n o d i g waarop t u p l e s u i t h e t antwoord s taan. Voor de o p t i m i z e r w o r d t h e t m o e i l i j k e r wanneer de v r a a g v e r a n d e r t i n : Geef h e t bestelnummer en de datum van de l e v e r a n t i e s van f a b r i e k e n met nummers g r o t e r dan F l . SELECT F ROM WHERE
BNR, DATUM B FABNR. > " F l "
Het s e q u e n t i e e l d o o r l o p e n van de t a b e l i s nu h e t meest e f f i c i ë n t geworden, e r hoeven dan geen i n d e x - p a g i n a ' s van s c h i j f gehaald t e worden. D i t g e e f t t i j d s w i n s t omdat een p a g i n a waar b i j v o o r b e e l d twee t e g e b r u i k e n t u p l e s , één met een l a a g nummer en één met een hoog nummer, voorkomen n i e t twee k e e r h o e f t t e worden i n g e l e z e n (op de momenten d a t de nummers volgens de index aan de b e u r t zouden z i j n ) . Door de index v i n d t e r t e v e e l t r a n s p o r t p l a a t s tussen s c h i j f en werkgeheugen. De v o l g o r d e waarin t u p l e s i n h e t antwoord voorkomen g e e f t een a a n w i j z i n g o v e r h e t pad waarlangs de zoekopdracht u i t g e w e r k t i s . A l s de gegevens g e s o r t e e r d z i j n op FABNR., i s de index g e b r u i k t , i n andere g e v a l l e n n i e t . I n SQL kan men na FROM meerdere t a b e l l e n opgeven, h i e r d o o r o n t s t a a t een j o i n , een o p d r a c h t w a a r i n meerdere t a b e l l e n gelezen worden. A f h a n k e l i j k van de f o r m u l e r i n g wordt de v o l g o r d e waarin de t a b e l l e n d o o r l o p e n worden bepaald. Van belang i s h i e r b i j h e t a a n t a l t u p l e s d a t van s c h i j f gehaald en d o o r l e z e n moet worden. De o p t i m i z e r z a l k i e z e n voor h e t pad met de m i n s t e t e l e z e n t u p l e s . Een m o g e l i j k h e i d i s h e t doorlopen van de e e r s t e t a b e l en aan de hand van d i e t a b e l v i a een i n d e x de benodigde t u p l e s u i t t e tweede ( o f volgende) t a b e l van s c h i j f ophalen.
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
H e t i s dus n o o d z a k e l i j k d a t een o p t i m i z e r o v e r een z e k e r " i n t e l l i g e n t i e " b e s c h i k t en v e e l , z o n i e t a l l e s o v e r de d a t a base gegevens weet om een o p t i m a l e keuze t e maken. De e n i g e m a n i e r om t e b e s c h i k k e n o v e r a l l e gegevens o m t r e n t de gegevens i n de d a t a base, i s n a u w k e u r i g b i j h o u d e n w a t e r i n de d a t a base g e b e u r t . D i t i s ook de e n i g e methode om p r e c i e s aan t e kunnen geven wat de meest e f f i c i ë n t e methode van b e n a d e r i n g van een b e p a a l d gegeven i s . Over de m a n i e r waarop t a b e l v o l g o r d e w o r d t g e r e g e l d , doen de meeste l e v e r a n c i e r s van systemen n o g a l g e h e i m z i n n i g . U i t de l i t e r a t u u r o v e r de v o o r l o p e r van SQL, System-R, k a n opgemaakt worden d a t één en ander samenhangt met de v o l g e n d e p u n t e n . 1.
T a b e l l e n d i e v i a een i n d e x op een a t t r i b u u t benaderd kunnen worden w a a r v o o r een g e l i j k h e i d s w a a r d e i s opgegeven ( z o a l s WHERE FABNR. = ' F 2 ' ) .
2.
A l s 1 , maar met een andere voorwaarde ( z o a l s WHERE VRD. > 0 ) .
3.
Tabellen waarvoor een gelijkheidsvoorwaarde is opgegeven maar n i e t z o a l s i n 1 v o o r een a t t r i b u u t waarvoor een indexwaarde b e s t a a t , maar b i j v o o r b e e l d : DATUM = 860916.
4.
A l s 3 , maar met DATUM > 86091 6 .
5.
Overige tabel len.
met
een
andere
voorwaarde
zoals
SQL- achtige t a l e n z u l l e n v e r m o e d e l i j k ook wel een d e r g e l i j k e vorm van p r i o r i t e i t e n - i n d e x h a n t e r e n . D i t w i l o v e r i g e n s nog g e e n s z i n s zeggen d a t h e t g e b r u i k van een o p t i m i z e r ook daadw e r k e l i j k t o t een o p t i m a a l pad z a l l e i d e n . Vaak k a n een g e b r u i k e r d o o r h e t s p e c i f i e k opgeven van een a a n t a l s u b q u e r y ' s een s n e l l e r e weg a f d w i n g e n dan door de o p t i m i z e r gekozen zou worden. Door de d a l i n g van de p r i j z e n i n de l a a t s t e j a r e n , kunnen i n de komende j a r e n a s s o c i a t i e v e geheugens s t e e d s meer t o e g e p a s t worden. Nu a l worden ze o p k l e i n e s c h a a l g e b r u i k t , mede t e n g e v o l g e van de s n e l l e g r o e i i n de m i c r o e l e c t r o n i c a z a l i n de t o e k o m s t de o n t w i k k e l i n g van nieuwe hardware z i c h v o o r t z e t t e n .
RELATIONELE SYSTEMEN PRINCIPES - 156 S
12.1.2
Schijfgeheugens
Vanwege de benodigde toegangstijd, vormen de geheugens het belangrijkste probleem voor het efficiënt functioneren van data bases. Zelfs een schijfgeheugen, wat toch een "snel" geheugen is, is door de benodigde acties om een serie gegevens te kunnen lezen een trage eenheid. De snelheid van een schijfgeheugen is te vinden wanneer er gelezen kan worden binnen een cilinder. Daar elk oppervlak zijn eigen lees- en schrijfkop heeft, kunnen meerdere elementen tegelijk benaderd worden. Wanneer er echter elementen benaderd moeten worden die in een andere cilinder te vinden zijn, gaat tijd verloren met het verplaatsen van de kop naar de juiste cilinder. Wanneer we uitgaan van een (heel) groot systeem zijn de gevolgen van dit tijdsverlies mogelijk desastreus. Het mag duidelijk zijn dat het lezen van 100 elementen uit een cilinder aanmerkelijk minder tijd vergt dan het lezen van 100 elementen, welke over meerdere cilinders verspreid zijn. Door een ordening van gegevens toe te passen zijn de gegevens in de (relationele) data base eenvoudiger bereikbaar. Omdat relationele data bases gebaseerd zijn op adressering op basis van een sleutel van de logische inhoud van een gegeven en niet op basis van positionering, kan het gebeuren dat er een paar duizend elementen gelezen moeten worden voordat het record met de gewenste sleutel gevonden wordt. Een mogelijke oplossing voor dit probleem bieden de associatieve schijfgeheugens, waarbij het mogelijk is om in een paar seconden een compleet schijvenpakket van enige honderden megabytes op i nhoud te onderzoeken. De oploss i ng wordt des te duidelijker wanneer we beschouwen dat in een doorgang parallel meerdere vragen kunnen worden onderzocht. Een voorbeeld van een dergelijk systeem is CAFS (Content Addressable File Store). 12.1.3
Speciale data base machines
Omdat de meeste conventionele architecturen bedoeld zijn voor een positionele adressering en de DBMS-technieken zich juist richten op een inhoudelijke adresseerbaarheid van de gegevens, ontstaan er problemen wanneer men een DBMS-systeem binnen een conventionele architectuur wil laten functioneren. Men heeft als oplossing geprobeerd om speciale data base machines te ontwikkelen, welke een hoge verwerkingssnelheid kunnen koppelen aan een niet te specifieke toepassing.
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
Er i s e c h t e r nog geen é é n d u i d i g s t a n d p u n t t e o n t d e k k e n o v e r wat nu p r e c i e s v e r s t a a n moet worden o n d e r een d a t a base machine. E n e r z i j d s d o e l t men h i e r m e e o p een s p e c i f i e k s o o r t h a r d w a r e wat de b a s i s f u n c t i e s van een DBMS u i t v o e r t , a n d e r z i j d s w o r d t e r een nieuw s o o r t geheugen o n d e r v e r s t a a n , wat g e b a s e e r d i s op t o t a a l nieuwe h a r d w a r e . Het v e r s c h i l z i t h i e r i n , d a t v o o r de ene b e n a d e r i n g a l l e e n g e b r u i k gemaakt w o r d t van een v e r b e t e r i n g van bestaande m o g e l i j k h e d e n , t e r w i j l v o o r de a n d e r e b e n a d e r i n g nieuwe t e c h n o l o g i e ë n o n t w i k k e l d moeten worden. Het v a l t t e verwachten d a t b e i d e benaderingen naar e l k a a r t o e z u l l e n g r o e i e n en d a t t o t a a l nieuwe t e c h n i e k e n t o e g e p a s t z u l l e n worden i n bestaande a r c h i t e c t u r e n , zonder d a t de oude t e c h n i e k e n v e r l o r e n z u l l e n gaan. V o o r b e e l d e n h i e r v a n z i j n de IBM 500 met I D L (een SOL- achtige t a a l ) en MAPPER o p de s p e c i a l e SPERRY-machine. Ondanks h e t f e i t d a t g e s t e l d w o r d t d a t e c h t e r e l a t i o n e l e systemen a l l e e n goed d r a a i e n o p s p e c i a a l o n t w i k k e l d e machines, mogen we zeggen d a t een goed r e l a t i o n e e l systeem op een c o n v e n t i o n e l e machi ne n i e t o n d e r h o e f t t e doen v o o r a n d e r e DBMS-systemen. Het f e i t d a t e r op m i c r o s y s t e m e n a l r e l a t i o n e l e d a t a bases g e ï n s t a l l e e r d worden, s p r e e k t i n deze v o o r z i c h . N a t u u r l i j k z a l i n de t o e k o m s t g e b r u i k gemaakt worden van a d d i t i o n e l e hardware b i j de bestaande a p p a r a t u u r . De s c h i j f geheugens met meerdere b e w e r k b a r e o p p e r v l a k k e n z i j n qua c a p a c i t e i t s t e r k u i t g e b r e i d , m o g e l i j k kunnen a s s o c i a t i e v e geheugens a l s i n t e r m e d i a i r i n de bestaande t e c h n o l o g i e g e b r u i k t worden. 12.2
UPDATING PROBLEMEN
H e t e n t i t e i t r e l a t i e - o n t w e r p i s nog s t e e d s h e t b e s t e u i t g a n g s p u n t v o o r h e t ontwerpen van een d a t a base, waarna h e t werk g e c o n t r o l e e r d moet worden v i a een n o r m a l i s a t i e . We kunnen dan d o o r m i d d e l van de r e l a t i o n e l e o p d r a c h t e n ( s e l e c t , p r o j e c t , en j o i n ) wel k r a c h t i g e i n s t r u m e n t e n hebben om de d a t a base t e benaderen. Om de base b i j t e werken en om t e h e l p e n b i j de o r g a n i s a t i e , z i j n ze e c h t e r o n g e s c h i k t . Een z u i v e r r e l a t i o n e l e d a t a base i s dan ook p e r d e f i n i t i e langzaam, o n b e t r o u w b a a r en read only.
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
R e l a t i o n e l e o p d r a c h t e n z i j n a l t i j d g e r i c h t op h e l e groepen van r e c o r d s , t e r w i j l h e t b i j w e r k e n r e c o r d voor r e c o r d moet gebeuren. Reële t a l e n z u l l e n dan ook p r o c e d u r e l e l e e s - en s c h r i j f i n s t r u c t i e s b e v a t t e n voor h e t b i j w e r k e n van de d a t a base. Wanneer we d a a r b i j z i e n , d a t r e l a t i o n e l e systemen geen r e f e r e n t i ë l e i n t e g r i t e i t kennen, mag d u i d e l i j k z i j n d a t v o o r h e t onderhoud van een d a t a base h e t j u i s t des t e n u t t i g e r i s naar mate een t a a l minder r e l a t i o n e e l i s . De bestaande r e l a t i o n e l e DBMS z i j n h i e r a a n tegemoet gekomen, door de o p v r a a g t a a l door middel van een p r e c o m p i l e r a l s "embedded" aan t e bieden i n een h o s t language a l s COBOL, PL1 etc. 12.3
SEMANTIEK
J u i s t de t e r m r e l a t i e h e e f t t o t nu t o e a l t i j d voor problemen gezorgd b i n n e n de r e l a t i o n e l e t h e o r i e . De inhoud d i e de d a t a base omgeving aan h e t b e g r i p g e e f t , wordt op geen e n k e l e manier ondersteund door een w e t e n s c h a p p e l i j k e t h e o r i e . I n de wiskunde i s een r e l a t i e een v e r z a m e l i n g zonder e n i g e b e t e k e n i s . Door een a a n t a l b e g r i p p e n aan h e t geheel t o e t e voegen, h e e f t men g e t r a c h t a l s h e t ware een t h e o r i e t e bouwen om h e t b e g r i p . Begrippen a l s " s l e u t e l " en " f u n c t i o n e l e a f h a n k e l i j k h e i d " z i j n h i e r v a n voorbeelden. Het toevoegen van een a a n t a l b e g r i p p e n l o s t e c h t e r n i e t a l l e problemen op. E.F. Codd s i g n a l e e r d e b i j v o o r b e e l d , wat h i j noemde, de " c o n n e c t i o n t r a p " . Wanneer we i n twee v e r s c h i l l e n d e r e l a t i e s h e t verband v a s t l e g g e n tussen een l e v e r a n c i e r en p r o d u k t e n (LP) en tussen een l e v e r a n c i e r en afnemers (LA) kunnen we deze r e l a t i e s samenvoegen i n een nieuwe r e l a t i e met een j o i n (LPA) . LP:
PA:
LPA :
RELATIONELE SYSTEMEN PRINCIPES
- 156
S
Een d e r g e l i j k e samenvoeging i s a l l e e n m o g e l i j k i n d i e n b e i d e operanden ( h i e r LP en P A ) een a t t r i b u u t gemeen hebben ( h i e r P ) . De r e l a t i e welke i n de j o i n wordt weergegeven kan g e m a k k e l i j k v e r k e e r d g e ï n t e r p r e t e e r d worden. Uitgaande van h e t p l a a t j e zou men kunnen v e r o n d e r s t e l l e n d a t e r een r e l a t i e b e s t a a t t u s s e n l e v e r a n c i e r , afnemer en p r o d u k t , d i t i s n i e t h e t g e v a l . Er b e s t a a t een r e l a t i e tussen l e v e r a n c i e r en p r o d u k t en een r e l a t i e tussen p r o d u k t en afnemer. De gecombineerde r e l a t i e b e r u s t a l l e e n op h e t f e i t d a t b e i d e r e l a t i e s overeenkomende componenten b e z i t t e n . Ter Bekke b e h a n d e l t i n z i j n boek de semantische benadering, deze l i j k t s t e r k op de r e l a t i o n e l e benadering. B i j de semantische benadering s p e e l t h e t b e g r i p a b s t r a c t i e een b e l a n g r i j k e r o l . We kunnen a b s t r a c t i e o p v a t t e n a l s een m i n o f meer g e d e t a i l l e e r d e b e s c h r i j v i n g van de w e r k e l i j k h e i d . Ook i n de wiskunde s p e e l t h e t b e g r i p a b s t r a c t i e een b e l a n g r i j k e r o l . Denk h i e r b i j maar aan de verzamel i n g e n l e e r . Binnen de d a t a base benadering kunnen we a b s t r a c t i e d e f i n i ë r e n a l s h e t " t y p e " b e g r i p . Zoals d u i d e l i j k geworden i s , s p e l e n n i e t de elementen maar de eigenschappen van de elementen een b e l a n g r i j k e r o l . Op b a s i s h i e r v a n d e f i n i e e r t Ter Bekke een t y p e a l s een samenvoeging van een zeker a a n t a l eigenschappen t o t een nieuw geheel . Wanneer we de eigenschap " s t u d e n t " beschouwen, dan kunnen we deze o p v a t t e n a l s een samenvoeging van de b e g r i p p e n Naam en P l a a t s . Zo kunnen we v e r s c h i l l e n d e types d e f i n i ë r e n . Type s t u d e n t
=
Naam, p l a a t s
Type vak
=
Beschrijving
Type r e s u l t a a t
=
Student, v a k c i j f e r
U i t d i t schema kunnen d i r e c t de e s s e n t i ë l e opgemaakt worden met de r e l a t i o n e l e benadering.
verschillen
Daar waar d e , r e l a t i o n e l e benadering n i e t v e r d e r g a a t dan een opsomming van de eigenschappen, g e e f t de semantische b e n a d e r i n g n a a s t h e t " s u b j e c t " ( h e t nieuwe b e g r i p ) ook nog een c o l l e c t i e van bestaande b e g r i p p e n ( h e t p r e d i k a a t ) wat samen opgevat kan worden a l s een p o s i t i e v e bewering o v e r de w e r k e l i j k h e i d : een zogenaamde a s s e r t i e . Elementen van d i t t y p e noemen we i n s t a n t i e s . Wat de gevolgen voor de i n s t a n c e s z i j n van deze benadering, b l i j k t u i t h e t volgende p l a a t j e .
RELATIONELE SYSTEMEN PRINCIPES
STUDENT
NAAM
PLAATS
1002 1003
De V r i e s Jansen La l opua
Edam Odi j k Utrecht
-
156 S
BESCHRIJVING AVG S DM TI A TOP
RESULTAAT
STUDENT
1 1008 1 1009 l1010 11011 11012
1 O01 1 O01 1002 1002 1002
VAK
C1JFER
1o
2O 20 1o 4o
8 7
*
9
I e d e r e r i j g e e f t een i n s t a n c e van een t y p e weer. De r i j e n z i j n aan de o n d e r k a n t open, op t e l a t e n z i e n d a t de i n s t a n c e s i n f e i t e i r r e l e v a n t z i j n . I n f e i t e z i j n d i t t a b e l l e n met een s i n g l e a t t r i b u t e k e y . Er p l e i t veel voor om t e i n g e w i k k e l d e s l e u t e l s t e vervangen en een u n i e k a t t r i b u u t t o e t e voegen, zoals r e s u l t a a t . Soms o n t s t a a n door n o r m a l i s a t i e zoveel t a b e l l e n d a t de o v e r z i c h t e l i j k h e i d en de b e t e k e n i s v e r l o r e n d r e i g t t e gaan. Sommigen o . a . Smith en Smith hebben geprobeerd o p l o s s i n g e n t e v i n d e n voor de g e s i g n a l e e r d e problemen door "nieuwe" b e g r i p p e n te introduceren zoals aggregatie en generalisatie.
RELATIONELE SYSTEMEN P R I N C I P E S
- 156
S
Bijvoorbeeld een abonnement op een bedrijfsblad voor personeel, klanten en overige geïnteresseerden, zou drie soorten abonnees en dus drie relaties opleveren. Soms kan dit door middel van views op bestaande basistabellen. In dit geval is het handiger om één type abonnee te introduceren als algemene vorm voor de drie soorten. Andere o.a. Codd verdelen de relaties in klassen. Hij spreekt van:
-
Karakteri stieke rel atie Speelt een ondergeschikte rol in de beschrijving van andere relaties (meestal een attribuut meer dan de relatie die hij beschrijft).
-
Associatieve relatie Legt verband tussen twee of meer andere relaties meestal bestaande uit hun gecombineerde sleutels. Bijvoorbeeld de relaties projecten en medewerkers kunnen gecombineerd worden tot projectmedewerkers.
-
Kernrelatie Is noch karakteristiek noch associatief. Meestal met slechts een enkel sleutelattribuut.
RELATIONELE SYSTEMEN PRINCIPES - 156 S
CONCLUSIES U i t h e t voorgaande moge d u i d e l i j k z i j n , d a t de " s t a t e o f t h e a r t " van r e l a t i o n e l e d a t a base managementsystemen n i e t van d i e n a a r d i s d a t de g e b r u i k e r z i c h e r volkomen onbezorgd aan kan overgeven. Er moeten n a m e l i j k de n o d i g e r e s e r v e s worden gemaakt t e n aanzien van de zo geprezen g e b r u i k e s v r i e n d e l i j k h e i d en t e n aanzien van de performance. Toch kunnen zijn mits:
-
dergelijke
systemen
zeer
bruikbaar
gereedschap
De makers van de systemen zorgen d a t : de systemen een duidelijke en geïmplementeerde a r c h i t e c t u u r b e z i t t e n ;
. -
foutloos
voldoende e f f i c i ë n t e b e s t u r i n g v a n u i t de systemen mogelijk i s .
De g e b r u i k e r s voldoende geschoold z i j n om van h e t geboden gereedschap g e b r u i k t e maken.
A l s we een d a t a base managementsysteem met SQL v e r g e l i j k e n met een DBMS, w a a r i n men z e l f programma's i n b i j v o o r b e e l d COBOL moet s c h r i j v e n om gegevens u i t een d a t a base op t e h a l e n , dan i s de v o o r u i t g a n g enorm. Het v e r s c h i l i s h e t g r o o t s t b i j eenvoudige vragen en wordt snel k l e i n e r b i j meer i n g e w i k k e l d e vragen, w a a r b i j een g r o o t g e d e e l t e van de mentale i n s p a n n i n g wordt besteed aan h e t d u i d e l i j k f o r m u l e r e n van wat men eigen1 i j k w i l . Het v e r s c h i l kan z e l f s helemaal v e r d w i j n e n a l s de grenzen van SQL overschreden worden. Men kan i n d a t geval SQL inbedden i n een hogere programmeertaal ( b i j v o o r b e e l d COBOL). H i e r d o o r o n t s t a a t e c h t e r een c o m b i n a t i e van een p r o c e d u r e l e en een n i e t - p r o c e d u r e l e t a a l , d i e nogal g e k u n s t e l d aandoe t .
W e l l i c h t i s h e t m o g e l i j k d a t i n de n i e t a l t e v e r r e toekomst v r a a g t a l e n worden o n t w i k k e l d , d i e d i c h t e r b i j ( h e t t a a l i d e e van) de g e b r u i k e r staan, maar t e g e l i j k e r t i j d een d u i d e l i j k e f o r m e l e b a s i s hebben.
RELATIONELE SYSTEMEN PRINCIPES
-
156 S
L I TERATUUR 1.
An i n t r o d u c t i o n t o d a t a base systems; C.J. D a t e .
2.
Gegevensanalyse; R.P. L a n g e r h o r s t .
3.
Computer D a t a base O r g a n i z a t i o n ; J . M a r t i n .
4.
Data base systemen J.A. Vandenbulcke.
5.
Gegevensbanken; J.F. Sprong.
6.
D a t a base o n t w e r p ; J.H. t e r Bekke.
7.
SQL - Een c o m p l e t e t a a l ; R.J. v . d . Lans, S t e g e r e n ; I n f o r m a t i e 2711, j a n u a r i 1986.
8.
Grenzen en b e p e r k i n g e n van I n f o r m a t i e 2 7 / 3 , m a a r t 1985.
9.
voor
SQL;
de
Ir.
praktijk;
J.D.F.
E.H.
van
Reitsma;
r e l a t i o n e l e databanken I en 11; I n f o r m a t i e 2617, j u n i 1984 en 2618, j u l i l a u g u s t u s 1984.
Principes
van
I r . H . Janssen;
10.
Wat mag d a t dan wel z i j n een r e l a t i o n e l e databank a l s z o i e t s a l b e s t a a t ? Frank Sweet; I n f o r m a t i e 2714, a p r i l 1985.
11.
Relationeel dan i s h e t goed? I n f o r m a t i e 2714, a p r i l 1985.
12.
Q u e r y o p t i m i z a t i o n i n d a t a base systems; i n : Computing Surveys; M . J a r k e en J . Kock; j u n i 1984.
13.
Datamodels and r e t r i e v a l languages; E.O. de Brock; p r o e f s c h r i f t Technische Hogeschool Eindhoven, 1984.
14.
D a t a base A b s t r a c t i o n s : A g g r e g a t i o n and G e n e r a l i z a t i o n i n T r a n s a c t i o n s on Data base Systems; J.M. S m i t h en D.C.P.Smith; v o l . 2 , n r . 2, j u n i 1977, p a g i n a ' s 105-1 33.
Drs.
F.
Remmen;
RELATIONELE SYSTEMEN PRINCIPES - 156 S
15. Extending the Data base Relational model to capture more meaning; E.F. Codd; In Trans on Data base Systems vol. 4, nr. 4, decemember 1979, pagina's 397-434. 16. Is your Relational Data base Management System Really Codd; An evaluation Scheme Relational? E . F . september 1985. distributed article (408); 268 - 8821 - The Relational Insti tute.
TRANSPARANTEN R E L A T I O N E L E SYSTEMEN P R I N C I P E S
156 T ( V E R S I E 3.2,
MEI
1987)
..
> J a z Z z w >
a
w w F z o m
a
U
z 3 z z
m m a
W
o 0
m
a
w a a C j m c c W a a a
-z 2 5 4
a
m
a
a
m
U
W
W
P Z I
t - + t Z Z Z
J W
W
0
a z
W W
I
a a
N W >
Z
w m m
3 C
W O
m Z
u
>
Q
W U
0
n
W U
0
Q
RELATIONELE SYSTEMEN P R I N C I P E S - 156 T
RELATIONELE SYSTEMEN P R I N C I P E S
-
156 T
BASISBEGRIPPEN RELATIONEEL GEGEVENSMODEL -
DOMEINEN EN ATTRIBUTEN -
VERZAMELING D 1
:
ALLE MOGELIJKE LEVERANCIERS 1.1,
VERZAMELING D 2
:
L2 RELATIONEEL SCHEMA
ALLE TE LEVEREN PRODUKTEN P1, P2,
CARTESISCH PRODUKT D 1 X D2
MOGELIJKE R E L A T I E D 1 X D2
-
DOMEIN PRODUKTNUMMER
CHAR ( 4 )
-
DOMEIN PRODUKTNAAM
CHAR ( 2 0 )
-
DOMEIN KLEUR
CHAR ( 6 )
-
R E L A T I E PRODUKT:
P3 L1 L1 L1 L2 L2 L2
:
L1 L1 L2 L2 L2
P1 P2 P3 P1 P2 P3 P1 P2 P1 P2 P3
,
(P#
:
DOMEIN PRODUKTNUMMER
.
PNAAM
:
DOMEIN PRODUKTNAAM
,
PKLEUR
,
VERPKLEUR
DOMEIN KLEUR
:
DOMEIN KLEUR)
EEN R E L A T I E TUSSEN VERZAMELINGEN I S EEN DEEL
-
3DOMEINEN
VERZAMELING VAN HET CARTESISCH PRODUKT VAN D I E
-
1 RELATIE
VERZAMELINGEN.
-
4 ATTRIBUTEN - - - +WAARDEN U I T DOMEINEN
I N BOVENGENOEMDE VERZAMELING KOMT
L I , P 3 N I E T VOOR I N DE R E L A T I E D I E U I T HET CARTESISCH MEERDERE ATTRIBUTEN KUNNEN U I T HETZELFDE PRODUKT EEN DEELVERZAMELING VORMT. DOMEIN KOMEN! I N D I T GEVAL HET ATTRIBUUT VERPAKKINGSKLEUR
RELATIONELE SYSTEMEN PRINCIPES- 156 T
OVEREENKOMSTEN TUSSEN BESTANDEN, RELATIES EN TABELLEN .
-p.
p
RELATIONELE SYSTEMEN PRINCIPES - 156 T
NORMALISATIE -
R E L A T I E S I N EEN R E L A T I O N E L E DATA BASE MOETEN GENORMALISEERD Z I J N -
BESTAND
RELATIE
TABEL
RECORD
TUPLE
RIJ
.
- -
NORMALISATIESTAPPEN
1. RECORD LAYOUT
ATTRIBUTENLIJST
TABELHOOFD
VERWIJDER DE Z I C H HERHALENDE DEELVERZAMELINGEN
(INTENSION)
2. VELD
ATTR IBUUT
KOLOM
VERWIJDER DE A T T R I B U T E N D I E FUNCTIONEEL A F H A N K E L I J K Z I J N VAN SLECHTS EEN GEDEELTE VAN DE S L E U T E L
DOMEIN
3. SLEUTEL
VERWIJDER A T T R I B U T E N D I E OOK
SLEUTEL FUNCTIONEEL A F H A N K E L I J K Z I J N VAN
AANTAL VELDEN
GRAAD
AANTAL KOLOMMEN
ANDERE A T T R I B U T E N
M I N S T E N S 1NV !
z
W
L3
z
C Y
3
i
n
aa
W
r a N
Z
CL W
O , U= C
> Q O
u Z
z a
W
W
E
W
m
U
m m
1
W
$- oz ?z :- &a +
e LL
3
-
n
u
RELATIONELE SYSTEMEN PRINCIPES- 156
U N ION
VERENIGING DUPLICATEN
INTERSECTION
RELATIONELE SYSTEMEN P R I N C I P E
GEELIMINEERD
PROJECTION
SELECT ION
DOORSNEDE
A- B
DIFFERENCE
VERSCHIL
JOIN
156
wwwwww
Q)Q)0300~~ 5
3
C
a P
oooomooommo oomoh hlMdh09
dh4hO mm dM
I
I
I
I
I
I
I
l
I
l I
l
JQ)OVIAO OOAOAd WLnhJrnh rlh(A0dd
m=f Z W M
4
ILn' 4 II
St C (r
J A
W Y L L
1
3
m
'
w LT'
Y
2
L L ' m '
nee
O Q
a W
/I
M
+ u
Y L L
C -I
LL W
-
W
&
a
St + &
<
C
a
a
3
v, W 'x
l= ,,i a
W
U:' tt
w
U
2-
m
'
a
O
ET
In
Q
St C
Y L L
i
N
n
l
J
13
m W
[ L '
u W
a w
Z
w w n
M
c Y n
o
[L
a w
n
z a a a a
a a m O o >
[
'Ci' L > z v
n [L
E e1'1 a m O
Z
L
n [L
17
o o m m 4 l
-
W U
Z
w
C
c
L
m Y
3
RELATIONELE SYSTEMEN P R I N C I P E S - 156 T
RELATIONELE SYSTEMEN P R I N C I P E S
VOORWAARDEN RELATIONELE DATA BASE SYSTEMEN (VERVOLG)
ASSERTIONS
10. BACKUP, RECOVERY EN RESTART VOORZIENINGEN
ASSERT S A L A R I S ON MEDEWERKER:
--
--
-
I F FUNCTIE
11. " FEATURES" ZOALS:
=
"MANAGER"
THEN S A L A R I S BETWEEN 6.000 AND 10.000 -
REPORT GENERATOR
-
EDITOR
-
ETC.
ASSERT VALIDPROJ (SELECT PROJNO FROM MEDEWERKER)
IS IN
(SELECT PROJNO FROM PROJ)
1 2 . PROCEDURELE TAAL TEN BEHOEVE VAN A P P L I C A T I E ONTWIKKELING ETC.
ACCESS CONTROL
--
--
1 3 . OVERDRAAGBAARHEID 14. AANSLUITBAARHEID
GRANT SELECT ON A R T I K E L T 0 P U B L I C GRANT UPDATE ON LEVERANCIER T 0 GEBRUIKER GEBRUIKER 2 ( W I T H GRANT O P T I O N ) GRANT RESOURCE T 0 "JANSEN"
IDENTIFIED
BY " K U I F J E " REVOKE A L L ON LEVERANCIER FROM GEBRUIKER
1,
-
156 T
LL U
Z
a
w
-
Z
Z W
> W
w z Y a
3
c m Y
-, ,
-
C
C
:
z a
w > 3 u w
W
m m
z C
M
J C Z
a
C
~ 3 I
- E ZC
@ = w -
w
u
OPGAVEN R E L A T I O N E L E SYSTEMEN P R I N C I P E S
156 O
(Versie 2 . 1 , mei 1987)
RELATIONELE SYSTEMEN PRINCIPES - 156 O
OPGAVE 1 Geef opdrachten in Relationele Algebra voor het verkrijgen van de volgende gegevens: 1.
De fabrieken die alleen artikel A5 produceren.
2. De fabrieken die artikel A5 en een ander artikel
produceren. 3. De fabrieken die artikel A5 niet produceren. 4. De
fabrieken die tenminste een ander artikel dan artikel AS produceren.
5. De artikelen en bijbehorende hoeveelheden die bij fabriek F3 zijn besteld. 6. De klanten die artikel A2 voor minder dan fl. hebben bestel d.
z,--
7. De klanten die alleen artikel A 4 hebben besteld. 8. De klanten die tenminste twee bestellingen geplaatst.
hebben
9. De besttilingen van precies één artikel I
10. Geef de fabriek, het artikel waar de voorraad van het bestelde artikel kleiner is dan de bestelde hoeveelheid en geef de klant die de bestelling geplaatst heeft. 11.
De klanten die artikel Al voor een lagere prijs hebben besteld dan waarvoor Al op bestelling B3 is besteld.
12. De artikelen die door alle klanten zijn besteld. 13. De klanten die op één bestelling tenminste artikelen van bestelling B1 hebben besteld.
de
RELATIONELE SYSTEMEN PRINCIPES - 156 O
OPGAVE 2 Be volgende vragen hebben betrekking o p de volgende database: Leverancier Artikel Project Lever i ng
: :
L(L#, Lnaam, Lwpl) A(A#, Anaam, Asoort) P(@, Pnaam, Pplaats) LAP(L#, A#, P#, datum, hoev)
1.
De namen van de leveranciers die aan een project in Oss cement hebben geleverd.
2.
De namen tenminste ge l everd .
3.
De namen van de leveranciers die eénzelfde artikel aan alle projecten in Putten hebben geleverd.
4.
De namen van de projecten waaraan al le leveringen door één leverancier zijn verricht.
5.
De namen van de leveranciers die aan project hoogbouw tenminste twee verschillende artikelen hebben geleverd.
en plaatsen van de projecten waaraan de door L1 geleverde artikelen zijn
UITWERKINGEN RELATIONELE SYSTEMEN P R I N C I P E S 156 U
( V e r s i e 2 . 1 , mei 1987)
RELATIONELE SYSTEMEN PRINCIPES
-
156 U
UITWERKING 1 R e l a t i o n e l e Algebra
5.
B(fab#=F3>(b#=b#> BA ( a r t # , hoev)
6.
R:= BA(art#=A2> S:= R ( p r i j s < 2 > B(b#=b#> S ( k l a n t )
7.
R:= B(b#=b#> BA ( k l a n t , a r t # > R(klant> - R(art#=A4>(klant> of
8.
R a l i a s for B
9.
R a l i a s f o r BA S:= R(b#=b#> BA ( R . a r t # = B A . a r t # > ( b # > BA(b#> - S
10.
B(fab#=fab#> F ( a r t # = a r t # > BA ( v r d < hoev) ( a r t # , hoev, F . f a b # >
11.
R a l i a s f o r BA
i f i R l * t ~ = f l + J r ) 5 6 a-)
+ I ~ , J ~ ~ > ) F ~ L?*-) ~ c ~BR( L- L#, ~ )
S:= R ( a r t # = a r t # > BA ( a r t # = A l ) ( B A . b # = B 3 > (R.pri j s < BA.pri js)(R.b#> S(b#=b#> B ( k l a n t ) 12.
R:= BA(b#=b#> B ( a r t # , k l a n t ) R(klant:klant> B
13.
T:= BA(b#, a r t # ) ( a r t # - a r t # > BA ( b # = B l > B(b#=b#> T ( k l a n t )
RELATIONELE SYSTEMEN P R I N C I P E S - 156 U
UITWERKING OPGAVE 2
LE:= CE(A#=A#> LAP (P#=P#) L E (L#=L#> L ( I n a a m )
P(P#=P#>
P r o j (Pnaarn, P l a a t s )
3.
A:= LAP (L#, A#, P#) B:= P ( P l a a t s = P u t t e n ) ( P # )
4.
A a l i a s f o r LAP T:= A ( P # > - A(P#=P#) P(P#=P#> T (Pnaarn)
5.
P1 ( L # )
LAP ( A . L # L A P . L # ) ( P # )
pH:= P(Pnaarn=Hoogbouw)(P#) R:= LAP(P#=P#>PH T a l i a s for R S:= T(L#=L#>R s(T.A##R.A#)(L#)