Hoofdstuk 2 Flashcards
Door wie is de relationele model geintroduceerd en in welke jaar?
Wat zijn de voodelen van een relationele model?
- Geintroduceerd door E.F. Codd in 1970
- Eenvoudig concept: verzameling tabellen
- Degelijk wiskundige basis: verzamelingenleer en leer van relaties
Verzameling:
Ongeordend geheel van gelijksoortige elementen
Voorbeeld: N = verzameling van natuurlijke getallen
Relatie:
Deelverzameling van de productverzameling van twee of meer verzamelingen
Cartesisch product
Product van verzamelingen
Relatie = verzameling kleur(3), verzameling maat(3)
Productverzameling = kleur x maat (9)
Hoe wordt een relatie weergegeven in een relationele databank?
Doormiddel van een tabel
Tabel = relatie
Tupel = rij
Attribuutnaam
kop van kolom
Attribuutwaarde
- Gelijksoortige waarden in kolom , deze moeten atomair zijn
Wat is atomair
Elke cel bevat 1 waarde en heeft dus 1 betekenis
Wat is globaal
Als een attribuutnaam voorkomt in twee verschillende tabellen dan is de betekenis gelijk
Invariant in de tijd
tijdsonafhankelijk(geboortedatum ipv leeftijd)
Graad van de tabel
Aantal attributen in een tabel
Cardinaliteit
Aantal tupels
Cardinaliteit kan veranderen
Graad niet
Domein
Verzameling waarden die attribuut mag aannemen
Tupel
De gegevens in een rij van een tabel. Een rij is een verzameling bij elkaar hogende attribuutwaarden
Tupelschema
Relatieschema waar we de juiste attribuutnamen vermelden (studgebnr, studgebnaam, studgebmanager, managerstartdate)
Nulwaarden
als een attribuutwaarde niet van toepassing is of onbekend is
Kandidaatsleutel
De attributenverzameling die voor elke tupel verschillend is.
- heeft eigenschp van minimaliteit
- elke tupel is uniek dus min. 1 kandidaatsleutel
- mag geen overtollige attributen bevatten
primaire sleutel
De sleutel die gekozen wordt voor tupelidentificatie
- mag geen nulll bevatten
Alternatieve sleutel
kandidaatsleutel die niet verkozen is tot primaire sleutel
verwijssleutel
Verwijst naar 1 of meerdere ttabelle. Op die manier zorgen ze voor samenhang tussen verschillende tabellen
ERD datastructuurdiagram
Toont de entiteiten of objecten en hun relaties
Hoe worden verbanden gelegd tussen tabellen
Met foreign key
Op welke manieren kunnen we een tabel ontwerpen
Conceptuele niveau
Logische niveau
Fysieke niveau
Wat is de ouder kind associatie?
Tabel met foreign key = kind tabel
Tabel met primary key = ouder tabel waarnaar verwezen wordt
Optionele relatie
Een iet verplichte relatie ( foreign key mag null zijn )
Recursieve relatie
verwijzzizng gebeurt naar de tabel zelf
Integriteit
Gegevens moeten consistent zijn (met elkaar in overeenstemming)
Hoe kunnen we zorgen voor integriteit
Redundantie vermijden
Streven naar genormaliseerde database
Wat is redundantie
Afleidbare en overbodige gegevens vermijden
Entity integrity
Geen attributen met nulwaarden
Elk tupel moet uniek geidentificeerd zijn, primaire sleutel is uniek (entity integrity)
Referential integrity
Waardencombinatie mag niet verwijzen naar niet bestaand tupel als T1 verwijst naar T2 moet T2 bestaan
Als tupel T1 niet verwijst naar een andere sleutel dan moeten alle attribuutwaarden van de verwijssleutel null zijn
(referential itegrity
Domein restricties
Geeft aan dat een attribuutwaarde is gedefinieerd op een specifiek domein
Constraints
Beperkende voorwaarden met betrekking tot de toegestane inhoud van een database
Welke constraints zijn er met buhulp van SQL
primary key constraints foreign key constraints unique key constraints not null constraints check constraint
Relationele algebra
Formele taal waarmee we onze database bevragen door middel van algabraische operatoren
Noem enkele van deze algabraische operatoren op:
Verzamellnigsoperatoren
relationele operatoren
Selectie (operator)
Relationele operator die tot doel heeft het selecteren van tupels uit een tabel
hierbij wordt een attribuutwaarde
vergeleken met een constante, of worden twee attribuutwaarden uit dezelfde tabel met elkaar
vergeleken.
Daarbij maken we gebruik van de vergelijkingsoperatoren: =, <>, , >=.
Projectie (operator)
licht een aantal kolommen (attributen) uit een tabel, en voegt ze samen tot een nieuwe tabel,
waarna de identieke rijen worden verwijderd (een tabel mag geen identieke rijen bevatten).
Join (operator)
Met behulp
van de join-operatie is het mogelijk om gegevens uit verschillende tabellen te combineren aan de
hand van gemeenschappelijke attributen en attribuutwaarden.
Vereniging (Union)
De vereniging of unie van twee tabellen is op dezelfde manier gedefinieerd als gebruikelijk is in de
verzamelingenleer. Voorwaarde is dat de tabellen vergelijkbaar zijn, dit betekent dat de tabellen
evenveel attributen tellen (zelfde graad) en dat de overeenkomstige attributen hetzelfde domein
hebben.
Het resultaat van de vereniging van 2 vergelijkbare tabellen is de verzameling van alle tupels die in
tabel1 of in tabel2 of in beide tabellen voorkomen. Het resultaat bevat geen duplicaatrijen.
Doorsnede (Intersect)
Voorwaarde is terug dat de tabellen vergelijkbaar zijn. De doorsnede van 2 vergelijkbare tabellen is
de verzameling van alle tupels die zowel in tabel1 als in tabel2 voorkomen. Het resultaat bevat geen
duplicaatrijen.
Verschil (minus)
De functie van de verschiloperator is het selecteren van de tupels van een tabel welke wel in de
tabel, maar niet in een andere tabel voorkomen. Voorwaarde is eveneens dat de tabellen
vergelijkbaar zijn.
Views
Bij een combinatie van projecties, selecties, joins, … verkrijgen we een resultaat dat ook een tabel is.
Deze “kijk” op de gegevens kunnen we ook permanent maken en als een virtuele tabel opslaan. Dat
noemen we een view.
De bekomen informatie wordt echter niet fysiek in de database opgeslagen. Views zijn te
beschouwen als virtuele tabellen, een wijziging van gegevens in een tabel wijzigt dus ook gegevens in
een view die ervan afgeleid is.
Men kan views net als tabellen benaderen en manipuleren met behulp van SQL-commando’s. Vaak
weet een gebruiker niet of hij een tabel, dan wel een view op een tabel benadert.