Samenvatting: Databanken

Maat: px
Weergave met pagina beginnen:

Download "Samenvatting: Databanken"

Transcriptie

1 Samenvatting: Databanken Hoofdstuk Enkele basisconcepten Data zijn gegeven feiten Informatie > betekenis van gegevens Een database is een collectie van persistente (permanent geheugen van de pc) data Een computersysteem voor het beheer van databases wordt een databasesysteem genoemd. 1.2 Gegevensbeheer door de eeuwen heen Gegevens registreren en conserveren > geleidelijk aan structureren Relationeel databasemodel > verzameling van samenhangende tabellen. 1.3 Databasesysteem 3 Hoofdcomponenten in databasesysteem: Hardware: CPU en geheugen Primair geheugen: Statisch (cache) en dynamisch (werk/hoofdgeheugen) RAM Meestal databasebuffers Hoe meer geheugen > betere prestatie Secundair geheugen: Schrijven, CD Rom, Bestandsorganisatie: Primair: manier waar fysiek wordt opgeslagen Secundair: toegang optimaliseren > extra data (locatie & verbanden) Data: Database = coalitie van records Record= opgebouwd uit 1 of meerdere velden (vastgelegd in het recordtype) die data kunnen bevatten. In het secundair geheugen > records opgeslagen in bestanden Database > geïntegreerd geheel: linken behouden Software: Het databasemanagementsysteem (dbms) is de softwarecomponent van een databasesysteem die instaat voor het beheer van de databases. Toepassingsprogramma s > indirecte manier want gaan via dbms Tools voor gemak en automatiseren van de taken Bv: back up software Communicatiesoftware (database verspreid) Datawarehouse: Grote database bedoeld voor data analyse Vaak gestructureerd volgens tijdsdimensie Datamining heeft tot doel zinvolle verbanden te vinden die voorheen niet bij de gebruiker bekend waren. Rapportgeneratoren Gebruikers: Persoon, op 1 of andere manier interactie met dbs Verschillende > gebruikersprofielen Data administrator: centraal verantwoordelijk Database administrator: Technisch verantwoordelijk voor implementatie en onderhoud Toepassingsontwikkelaar Eindgebruiker: dagelijks werken met de database Gewone: afgeschermd Geavanceerd: complexe instructies

2 1.4 Databasemanagementsysteem Hoofdfunctionaliteit: Databasedefinitie: Zowel structuur als semantische regels vastleggen > integriteit (correctheid vd data) Manipulatie: Efficiënt toevoegen, verwijderen, aanpassen en doorzoeken Constructie: Opslag in geheugen Andere functionaliteit: Delen van data: Simultane toegang tot de database, conflicten verhinderen Beveiliging van data: Ongeoorloofd gebruik of fysiek falen tegengaan Optimaal systeemgedrag: Alles realiseren zonder nadeel voor de gebruiker. Architectuur: 3 lagen architectuur Interne laag (opslaglaag) : Databaserecords in bestanden Sommige recordvelden zijn meerwaardig Sommige velden van het recordtype zijn optioneel Fileheader/prefixveld Index = <veldwaarde,referentie>! anders voor variabele lengte Logische laag: Abstracte voorstelling van de database Enkel entiteiten, verbanden, Volgens databaseschema Externe laag (individuele laag) : Dichtst bij eindgebruiker In de laag worden views gedefinieerd Views: bepaalt hoe de database gezien wordt door bepaalde eindgebruikers Mappings: Omzettingsprocessen van data en operaties tussen de 3 lagen van de architectuur Dataonafhankelijkheid: (gegarandeerd door het gebruik van meerdere lagen) Fysieke DO: Interne beschrijving aangepast zonder impact op de logische beschrijving Logische DO: Logische beschrijving aangepast zonder impact op de diverse views 1.5 Wanneer gebruik je een databasesysteem Voordelen en nadelen zie boek pg 27

3 Hoofdstuk Enkele basisconcepten Een datamodel is een verzameling van voorschriften en regels die het mogelijk maken om de structuur en het gedrag te beschrijven van data die in bepaalde software voorkomen. Een databasemodel is een verzameling van voorschriften en regels die het mogelijk maken om zowel de structuur, de beperkingen voor integriteit en beveiliging, als het gedrag van een database te beschrijven op het niveau van de logische laag uit een drielagen architectuur voor databasemanagementsystemen. 2.2 De operationele modellen Het hiërarchisch databasemodel: Hiërarchisch georganiseerd in boomstructuren Boomstructuur is opgebouwd uit knopen > root, kindknopen, bladknopen, subbomen, Databaseschema > collectie van boomstructuren ( knopen: recordtypes) Database > collectie van bomen (knopen: records)! elke kind maar 1 ouder > kopie nemen (gevaarlijk) > virtuele ouder kind relatie Opgeslagen als hiërarchische recordsequentie > lineair te ordenen, overlopen in pre order Manipuleren via hosttaal m.b.v. hostvariabelen > doorgeefluik (controle) $ > ingebedde operatoren Het netwerkmodel: Veralgemening van het hiërarchisch databasemodel (boomstructuur > graafstructuur) Graaf: ook cyclisch, gericht, Recordtypes = toegangspunten tot de database (zie voorbeeld pg 39) Toegang > efficiënter, manipulatie > complexer (verborgen voor gebruiker) Eveneens via hosttaal en hostvariabelen 2.3 De structurele modellen Abstracte structuur!! Het relationeel databasemodel: Data gestructureerd in tabellen > vooraf gedefinieerde vorm Tabel : voorstellingsvorm van het wiskundige concept relatie Waarden in tabel zijn atomaire waarden > niet verder opgesplitst Elke kolom > unieke naam en datatype Kandidaat sleutel van een tabel is een irreducibele verzameling van kolommen, waarvan de waarden de rijen op een unieke manier identificeren. M.a.w. 2 eigenschappen: Uniciteit : voor elke rij in de tabel is de combinatie van de waarden van de kolommen van de kandidaat sleutel uniek binnen de tabel Irreducibiliteit: je kunt geen enkele kolom uit de kandidaat sleutel weglaten zonder dat hierdoor de uniciteiteigenschap teniet wordt gedaan Vreemde sleutel > verwantschap tussen rijen van 2 tabellen Manipulatie aan de hand van SQL 2.4 De semantische modellen Modelleren van semantiek van gegevens benadrukt!! De objectgeoriënteerde databasemodellen: Tegemoet komen aan extra noden door nieuwe programmeertalen enzo Steunen op notie van objecten die elk een unieke identiteit hebben en gedefinieerd > datatypes of objectprototypes > structuur en gedrag klasse > rechthoek, overerving > pijl van specifieke klasse naar algemene klasse, binaire verwantschappen > gemarkeerde pijlen (dubbele of enkele pijl > meerdere of enkele verwantschappen)

4 Het objectrelationeel databasemodel: Uitgaan van relationeel model, met extra objectgeoriënteerde faciliteiten (overerving, operatoren enkel geldig op bepaalde tabellen, ) Hybride databasemodellen: Postrelationeel model > beschouwt verschillende databasemodellen in de logische laag Mapping naar de onderliggende laag gemaakt > kan simpel overschakelen 2.5 Verdere ontwikkelingen Impedance mismatch > incompatibiliteit > nadelig informatieverlies vage databasemodellen 2.6 Wanneer gebruik je welk databasemodel Aspecten die de keuze kunnen beïnvloeden: Snelheid, aanwezige kennis en technologie, aanleercurve voor gebruikers, duurzaamheid, standaardisatie, schaalbaarheid, technische support en ondersteuning,

5 Hoofdstuk Het volledige databaseontwerpproces Bestaat uit 4 fasen: Informatievergaring, conceptueel, logisch en fysiek ontwerp. (vb. pg 57) Informatievergaring: Cruciaal > juiste betekenis en context (domeinanalyse) Informatiestromen vinden > functionele analyse Behoefteanalyse: zicht op informatiebehoeften Abstrahering, modellering en implementatie: Abstrahering: schetsen wat het belangrijkst is > verwantschappen!! Modellering: representatietechniek > EER diagram Alternatief > UML (objectgeorienteerd) Implementatie: kies model, zet schema om naar instructies in de DDL van model Aangevuld met andere shizzle (pg60) Het gebruik van CASE tools: Gedeeltelijk geautomatiseerd Meestal optie > grafisch conceptueel model te bouwen 3.2 Het (uitgebreid) entity relationship model Entiteitstypes en relatietypes: Structurele aspecten: Een entiteit is een ding dat een zelfstandig bestaan leidt in de reële wereld. Een entiteittype (rechthoek) karakteriseert een collectie van entiteiten en wordt gekenmerkt door een naam & een verzameling van attributen (ovaal) Een relatietype (ruit) is een verwantschap tussen twee of meer al dan niet verschillende entiteittypes. Men spreekt respectievelijk van een binair, ternair of n air (n>3) relatietype. Verder wordt elk relatietype gekenmerkt door een naam. Karakteristieken en restricties: Attributen: Verder karakteriseren > betere semantiek Meerwaardige (op elk tijdstip collectie van waarden kan aannemen) < > enkelwaardige attributen (op elk tijdstip 1 waarde kan aannemen) Meerwaardig > dubbel ovaal Samengesteld (opgebouwd uit andere attr.) < > enkelvoudig Ovaal verbonden met hoofd attribuut Afgeleide attributen > berekenen uit andere attributen (ovaal stippellijn) Sleutelattributen zijn attributen van een sleutel Sleutel = verzameling van attributen waarvoor uniciteit en irreduc. gelden Sleutel > onderstreept in ovaal Orthogonaliteit: kunnen willekeurig gecombineerd voorkomen Zwakke entiteittypes: Een zwak entiteittype karakteriseert zwakke entiteiten. Dit zijn entiteiten die niet op zichzelf kunnen bestaan, maar die voor hun bestaan afhankelijk zijn van het bestaan van andere, identificerende entiteiten. Partiële sleutels : sleutelattributen van het zwakke entiteittype Zwak > dubbele rechthoek Identificerend relatietype > dubbele ruit Partiële sleutel > onderstreepte stippellijn

6 Relatietypes: Kardinaliteitsrestrictie: max aantal entiteiten op een gegeven tijdstip > 1 of N schrijven naast verbindingslijn Participatierestricitie: bepaalt op op elk tijdstip moet voorkomen Totale participatie < > partiële participatie > dubbele lijn : totale participatie, enkele lijn: partiële participatie Wordt ook gebruik gemaakt van de (min,max) notatie Subtypes, supertypes en overerving: Structurele aspecten: Een subtype is een entiteittype dat een subcollectie van entiteiten karakteriseert. Het entiteittype van de collectie waarbinnen deze subcollectie wordt beschouwd, wordt het supertype genoemd. Erft alle attributen en verwante relatietypes van supertype Kan aparte specifieke attributen en relatietypes hebben In schema : C (deelverzamelingsymbool) Diverse subtypes binnen dezelfde onderverdeling > cirkeltje Het creëren van specifieke subtypes voor een gegeven entiteittype noemen we specialisatie. Het creëren van een algemeen supertype dat de gemeenschappelijke attributen en relatietypes van een aantal gegeven entiteittypes verenigt, noemen we generalisatie. Supertype/subtype netwerk < > supertype/subtype hiërarchie (elk entiteitype heeft maar 1 supertype) Karakteristieken en restricties: Overlappende versus disjuncte subtypes: Verschillende subtypes > aangegeven of entiteit van supertype tegelijkertijd kan voorkomen in meerder subtypes > overlappende (o) Anders disjunct (d) Geconditioneerde subtypes: Om te zien of bepaalde entiteit supertype ook entiteit subtype > bepaalde conditie definiëren bij attribuut van supertype als voldoet aan de vwe > geconditioneerd subtype. Als hetzelfde attribuut > alle subtypes > attribuutgedefinieerde supertype/subtype verwantschap (naam naast verbindingslijn schrijven) Participatierestrictie voor supertype/subtype verwantschappen: Totale participatie (moet een entiteit zijn van minstens 1 subtype) versus partiële participatie Categorieën: Structurele aspecten: Een categorie of een unietype is een speciaal subtype met verschillende supertypes, dat wordt ingevoerd om de entiteiten van deze supertypes te groeperen. Elke entiteit van een categorie > entiteit van precies 1 van de supertype Gevolg > overerving werkt selectief Cirkeltje met een U in en deelverzameling teken op de verbinding Karakteristieken en restricties: Geconditioneerde supertypes: Een entiteit van de categorie behoort tot het supertype waarvoor zijn attribuutwaarde voldoet aan de geassocieerde conditie (naam naast verbindingslijn schrijven)

7 Participatierestrictie voor categorieën: Idem hierboven 3.3 Het ontwerp van een (E)ER diagram Bijzonder aandachtspunt: de connection trap : Ternair relatietype is niet semantisch equivalent met 3 binaire relatietypes. Wel weergeven met behulp van een zwak entiteitstype Casestudie: database voor een jeugdvereniging Casestudie: reserveringssysteem voor een theater Casestudie: database voor een softwarefirma Elementen/verbindingen in (E)ER schema Entiteittype Rechthoek Attribuut Ovaal Relatietype Ruit Meerwaardige attributen Dubbel ovaal Afgeleide attributen Stippellijn ovaal Sleutel attributen Onderstreept in ovaal Zwak entiteittype Dubbele rechthoek Identificerend relatietype Dubbele ruit Partieel sleutel attribuut Onderstreept stippellijn in ovaal Kardinaliteitsrestrictie 1 of N schrijven naast verbindingslijn Totale participatie Dubbele lijn Partiële participatie Enkele lijn Subtype C (deelverzamelingsymbool) Diverse subtypes in zelfde onderverdeling cirkeltje Overlappende subtypes O in cirkeltje disjuncte subtypes D in cirkeltje Geconditioneerde subtypes,categories naam naast verbindingslijn schrijven Categorie U in cirkeltje en deelverzamelingteken

8 Hoofdstuk Structurele aspecten basisrelaties: Geïnspireerd op het wiskundige concept relatie Atomaire datatypes: Bouwstenen van een basisrelatie Een atomair datatype wordt gespecificeerd door een verzameling van toegelaten atomaire waarden (het domein van het datatype) en een verzameling van operatoren die allemaal inwerken op de domeinwaarden en het gedrag van het datatype vastleggen. Atomair > niet verder conceptueel opdeelbaar Typecompatibel > domeinwaarden van het ene datatype kunnen omzetten naar domeinwaarden van het andere datatype Omschrijving van een basisrelatie: Het schema R(A 1 :T 1, A 2 :T 2,,A n :T n ) van een relatie is opgebouwd uit een relatienaam R en een eindige verzameling van attributen {A 1 :T 1,A 2 :T 2,,A n :T n }. Elk attribuut A i :T i, 1<=i<=n is op zijn beurt opgebouwd uit een attribuut i en een geassocieerd atomair datatype T i. Wordt ook wel hoofding of intentie van R genoemd De extentie van een basisrealtie met schema R(A 1 :T 1, A 2 :T 2,,A n :T n ) is een met de tijd variërende verzameling van m (m>=0) n tuples, die allemaal volledig worden gekarakteriseerd door de attributen uit het schema van de relatie. Elk n tuple t i = (A 1 :w i,1, A 2 :w i,2,,a n :w i,n ), 1<=i<=m is op zijn beurt opgebouwd uit n (attribuutnaam:waarde) paren A j :w i,j, 1<=j<=n, waarbij er geldt dat w i,j behoort tot het domein van het atomair datatype T j. Een basisrelatie wordt gevisualiseerd in een tabel. Terminologie: Graad = aantal attributen Datatype van attribuut = attribuuttype n tuples = tuples kardinaliteit = aantal tuples Eigenschappen: Binnen een relatie kunnen geen dubbele tuples voorkomen De tuples van een relatie zijn niet geordend De attributen van een relatie zijn niet geordend Alle attribuutwaarden van een relatie zijn atomair Interpretatie: Metadata: de catalogus: Relationele database > opgebouwd als een verzameling van basisrelaties Metadata = data over de data: gevolg van interactie met een toepassing of gebruiker Gebruikergedefinieerde relaties > aangemaakt door de database ontwerper Systeemgedefinieerde relaties > automatisch aangemaakt door het dbms SG basisrelaties vormen samen de catalogus/ data dictionary Views: Het concept view: Een view is een benoemde, virtuele relatie die is afgeleid van gebruikergedefinieerde en/of systeemgedefinieerde basisrelaties en/of andere views. Wordt ook afgeleide of virtuele relatie genoemd. Definiërende expressie Niet gematerialiseerd want materialiseren > redundante gegevensopslag

9 Geen redundantie: Enkel genormaliseerde basisrelaties materialiseren Geen afleidbare data opnemen in basisrelaties Het nut van views: Basisrelaties > logische laag Views > externe laag (concretiseren) Ook: Nieuwe data af te leiden Bevragingsinstructies in te korten In individuele gebruikersbehoeften te voorzien Data af te schermen Het werken met views: Doel: door gebruikers niet te onderscheiden van een basisrelatie Zoeken: Geen onderscheid tussen views en basisrelaties Querymodificatie: vraagstelling m.b.t. een view omgezet naar vraagstelling enkel betrekking op basisrelaties (m.b.v. definiërende expressie) Aanpassen, toevoegen en verwijderen: Essentieel: view expliciet als aanpasbaar gedefinieerd Manipulatie niet conflicterend met definiërende expressie Geen manipulaties op afgeleide data with check option > aanpasbaar maken Opletten: tuple verwijderen > tuple in basisrelatie verwijderen (ook niet zichtbare attributen) tuple aanpassen > attr.waarde in basisrelatie ook aangepast tuple toevoegen > tuple in basisrelatie toevoegen (informatie ontbreekt voor niet zichtbare attributen) Indexen: Een index over n attributen van een basisrelatie R kan worden omschreven als een geordende lijst van (n+1) tuples. Voor elk tuple t uit de extentie van R is er één (n+1) tuple opgenomen in de lijst. Dit (n+1) tuple is opgebouwd uit de n beschouwde attribuutwaarden van t en een referentie naar t. De (n+1) tuples zijn geordend op basis van de n attribuutwaarden, volgens een opgegeven volgorde. Referenties kunnen zowel fysieke als logische pointers zijn create index Uniciteitindex > uniciteit af te dwingen van de waarden van een attribuut in de extentie van een relatie Ontbrekende informatie: Onbekende info en niet gedefinieerde info Null waarden: Pseudo beschrijving > ontbrekend Kan opleggen dat iets niet null mag zijn Defaultwaarden: Benadering/model 4.2 Integriteitaspecten Sleutels: Kandidaatsleutels: Als K een deelverzameling is van de verzameling van alle attributen van een gegeven basisrelatie R, dan is K een kandidaat sleutel voor R als en slechts als voldaan is aan: 1. De uniciteiteigenschap: geen enkele legale extentie van R bevat twee tuples met dezelfde waarden voor alle attributen uit K. 2. De irreducibiliteitseigenschap: wanneer uit K attributen worden weggelaten, mag niet meer voldaan zijn aan de uniciteiteigenschap.

10 Primaire sleutels: Precies 1 gekozen uit de kandidaat sleutels (rest : alternatieve sleutels) Mogen geen null waarden bevatten primary key < > unique Vreemde sleutels: Een vreemde sleutel F van een basisrelatie R 2 is een verzameling van attributen van R 2 waarvoor het volgende geldt: 1. Er bestaat een basisrelatie R 1 (R 1 niet noodzakelijk verschillend van R 2 ) met een kandidaatsleutel K, die evenveel attributen bevat als F en waarbij er een één opééncorrespondentie is tussen de attributen van K en de attributen van F, zodat corresponderende attributen dezelfde geassocieerde datatypes hebben. 2. Op elk tijdstip komt elke reguliere waarde van F in R 2 eveneens voor als waarde van K in een tuple van R 1. foreign key references Cyclische referenties > alter table (want volgorde is belangrijk) Zelfreferentie kan ook! referentiële integriteit! ( alle niet null waarden van vreemde sleutels komen op elk ogenblik voor als waarden van kandidaatsleutels) Integriteitrestricties: Een integriteitrestrictie is een voorwaarde waaraan alle data uit een database op elk moment moeten voldoen. Naam en logische expressie create assertion check drop assertion Toestands en transitierestricties vs. relatie en databaserestrictie Toestand: waakt over correcte toestand Transitie: waakt over de integriteit bij overgang naar een nieuwe toestand Relatie: data uit 1 relatie < > database: verschillende relaties! Referentiële integriteitrestrictie! Stored procedures en triggers: businessregels Stored procedures: Expliciete procedure oproep Create Procedure procedurenaam (parameterlijst (in/out)) Lokale_declaraties Procedure_corpus execute procedure Triggers: triggered action bij een trigger event als voldaan aan trigger condition 1. naam 2. Trigger event 3. Trigger condition 4. Triggered action 4.3 Gedragsaspecten: relationele algebra De operatoren vereniging, doorsnede, verschil e cartesiaans product: (traditionele verzamelingoperatoren) Twee relatieschema s zijn van hetzelfde type als ze evenveel attributen bevatten en er een één op ééncorrespondentie is tussen hun attributen, zodat corresponderende attributen dezelfde geassocieerde datatypes hebben. Als R een relatie is waarin het attribuut A:T voorkomt, dan resulteert de rename operatie R RENAME A as A new in een nieuwe relatie met een schema dat we verkrijgen uit het schema van R door het attribuut A:T te vervangen door het attribuut A new :T en met dezelfde extentie als R.

11 Vereniging: Als R 1 en R 2 twee relaties zijn met schema s van hetzelfde type, dan is de vereniging, R 1 UNION R 2 van deze relaties een relatie met een schema van hetzelfde type en met een extentie die bestaat uit alle tuples die ofwel voorkomen in R 1, ofwel voorkomen in R 2, ofwel voorkomen in R 1 en R 2. Doorsnede: Als R 1 en R 2 twee relaties zijn met schema s van hetzelfde type, dan is de doorsnede, R 1 INTERSECT R 2 van deze relaties een relatie met een schema van hetzelfde type en met een extentie die bestaat uit alle tuples die zowel voorkomen in R 1 als in R 2. Verschil: Als R 1 en R 2 twee relaties zijn met schema s van hetzelfde type, dan is het verschil, R 1 MINUS R 2 van deze relaties een relatie met een schema van hetzelfde type en met een extentie die bestaat uit alle tuples die wel voorkomen in R 1 en niet in R 2. Cartesiaans Product: Als R 1 en R 2 twee relaties zijn die geen gemeenschappelijke attributen hebben, dan is het cartesiaans product, R 1 TIMES R 2 van deze relaties een nieuwe relatie waarvan de attributen uit het relatieschema worden verkregen door de unie te nemen van de verzameling van de attributen van R 1 en de verzameling van de attributen van R 2. De extentie van de resulterende relatie bestaat uit alle tuples die worden verkregen door een tuple die voorkomt in R 1 samen te voegen met een tuple die voorkomt in R 2. De operatoren selectie, projectie, join en deling: (relationele operatoren) Selectie: Als R een relatie is en e een logische expressie is waarvan alle parameters attributen zijn van R dan resulteert de selectie, R WHERE e in een nieuwe relatie die dezelfde attributen heeft als R en waarvan de extentie bestaat uit alle tuples van R waarvoor de expressie e evalueert naar de waardeheidswaarde waar. Projectie: Als R een relatie is en {A 1 :T 1,A 2 :T 2,,A p :T p } een deelverzameling is van de attributen van R dan resulteert de projectie, R {A 1,A 2, A p } in een nieuwe relatie waarvan het schema verkregen wordt uit het schema van R door alleen de attributen uit {A 1 :T 1,A 2 :T 2,,A p,t p } te behouden en waarbij de extentie bestaat uit alle tuples t=(a 1 :w 1,A 2 :w 2,,A p :w p ) waarvoor een tuple voorkomt in R met attribuutwaarde w 1 voor A 1, w 2 voor A 2, en w p voor A p. Join: 2 verschillende variëteiten Inner join: Als R 1 een relatie is met attributen {X 1 :T X 1,X 2 :T X2,,X m :T Xm, Y 1 :T Y1,Y 2 :T Y2,,Y n :T Yn } en R 2 een relatie is met attributen { Y 1 :T Y1,Y 2 :T Y2,,Y n :T Yn,Z 1 :T Z1,Z 2 :T Z2,,Z p :T Zp } dus beide relaties hebben de attributen Y 1 :T Y1,Y 2 :T Y2,,Y n :T Yn gemeenschappelijk dan resulteert de join, R 1 JOIN R 2 in een nieuwe relatie waarvan het schema bestaat uit de attributen {X 1 :T X 1,X 2 :T X2,,X m :T Xm,Y 1 :T Y1,Y 2 :T Y2,,Y n :T Yn, Z 1 :T Z1,Z 2 :T Z2,,Z p :T Zp } en waarvan de extentie bestaat uit alle tuples die worden verkregen door een tuple van R 1 samen te voegen met een tuple van R 2 onder de voorwaarde dat alle gemeenschappelijke attributen gelijke waarden moeten hebben.

12 Outer join: Als R 1 een relatie is met attributen {X 1 :T X 1,X 2 :T X2,,X m :T Xm, Y 1 :T Y1,Y 2 :T Y2,,Y n :T Yn } en R 2 een relatie is met attributen { Y 1 :T Y1,Y 2 :T Y2,,Y n :T Yn,Z 1 :T Z1,Z 2 :T Z2,,Z p :T Zp } dan resulteert de (left) outer join, R 1 OUTER JOIN R 2 in een nieuwe relatie die verkregen wordt door het resultaat van de join operatie R 1 JOIN R 2 uit te breiden met alle tuples uit R 1 waarvoor minstens één van de gemeenschappelijke attributen een nullwaarde bevat en daarbij de ontbrekende p attribuutwaarden van R 2 weet te geven met extra null waarden. Deling: Als R 1 een relatie is met attributen {X 1 :T X 1,X 2 :T X2,,X m :T Xm, Y 1 :T Y1,Y 2 :T Y2,,Y n :T Yn } en R 2 een relatie is met attributen {X 1 :T X 1,X 2 :T X2,,X m :T Xm } dan resulteert de deling, R1 DIVIDEBY R2 in een nieuwe relatie waarvan het schema bestaat uit de attributen { Y 1 :T Y1,Y 2 :T Y2,,Y n :T Yn } en de extentie bestaat uit alle tuples t=(y 1 :w Y1,Y 2 :w Y2,,Y n :w Yn ) waarvoor alle mogelijke samenvoegingen met een tuple uit R 2 voorkomen in R 1. Bijkomende operatoren voor de relationele algebra: Uitbreiding: Als R een relatie is, {A 1 :T 1,A 2 :T 2,,A p :T p } een deelverzameling is van de attributen van R en {B 1 :F 1,B 2 :F 2,,B q :F q } een verzameling is van afgeleide attributen B i :F i, i:1,2,,q met B i een unieke attribuutnaam, die niet voorkomt in R en F i een functie is over de attributen van R, die constanten kan bevatten en gebruikt wordt om de waarden van B i te berekenen, dan resulteert de uitbreiding, EXTEND R {A 1,A 2,,A p } (B 1 :F 1,B 2 :F 2,,B q :F q ) in een nieuwe relatie waarvan het schema verkregen wordt door de afgeleide attributen uit {B 1 :F 1,B 2 :F 2,,B q :F q } toe te voegen aan het schema van de projectie R {A 1,A 2,,A p } en waarvan de extentie wordt verkregen door elk tuple van R {A 1,A 2,,A p } uit te breiden met de waarden B i :w i, i=1,2,,q, met w i de waarde die verkregen wordt door F i te evalueren met de attribuutwaarden van het corresponderende tuple uit R. Groepeer: Als R een relatie is en {A 1 :T 1,A 2 :T 2,,A p :T p } een deelverzameling is van de attributen van R dan resulteert de groepering, R GROUP (A 1,A 2,,A p ) in een nieuwe relatie met hetzelfde schema als R, maar waarbij de tuples in de extentie gegroepeerd zijn in disjuncte deelverzamelingen zodat een deelverzameling enkel tuples bevat met een gelijke waarde voor elk van de attributen A 1,A 2,,A p. Aggregatie: Doel = 1 waarde te berekenen uit alle tuples uit de extentie van een relatie. COUNT, MIN, MAX, AVG, SUM In combinatie met de uitbreidingsoperator (eventueel ook groepeeroperator) Het gesloten zijn en nut van de relationele algebra: Elke operator werkt in op 1 of 2 relaties > nieuwe relatie= gesloten zijn

13 Hoofdstuk Logisch relationeel databaseontwerp met behulp van een (E)ER diagram Overzicht: Van (E)ER diagram omzetten naar databaseschema > omzettingsalgoritmen Logisch databaseontwerp: forward engineering (reverse engineering bestaat ook) Ook functionele beschrijvingen omzetten naar gedragspecificaties Het omzettingsalgoritme voor relationele databases: Stap 1: Omzetting van reguliere entiteittypes: * relatienaam=naam van entiteittype (ET) * toevoegen enkelvoudige, enkelwaardige en niet afgeleide attributen (v.h. ET) * voor samengestelde attributen: enkel toevoeging van componentattributen * attributen uit sleutel (v.h. ET) vormen primaire sleutel Stap2: Omzetting van zwakke entiteittypes: * relatienaam=naam van zwak entiteittype (ZET) * idem van ZET * idem * vreemde sleutels > attributen van elke primaire sleutel ( van identificerend ET) * toevoegen van enkelv., enkelw., niet afg. atrributen van de IET * primaire sleutel: samenvoeging van attributen v.d. vreemde sleutels + partiele sleutel van ZET Stap 3: Omzetting van specialisaties en generalisaties: (pg.146) Met 1 supertype (enkelvoudige overerving): * verschillende basisrelaties, voor het supertype en de subtypes * verschillende basisrelaties, enkel voor de subtypes * één basisrelatie met één typeattribuut * één basisrelatie met meerdere typeattributen Met verschillende supertypes (meervoudige overerving): * diverse basisrelaties, voor de supertypes en het subtype * één basisrelatie Stap 4: Omzetting van categorieën: De supertypes > verschillende primaire sleutels: * artificieel indentificatorattribuut toevoegen, surrogaatsleutel * primaire sleutel van basisrelatie > vreemde sleutel basisrelaties v alles supertypes De supertypes > dezelfde primaire sleutel: * primaire sleutel toevoegen aan basisrelatie *in basisrelaties van alle supertypes ook gespecificeerd als vreemde sleutel Stap 5: Omzetting van binaire één op één relatietypes: * Samenvoegen van beide basisrelaties * Behoud van beide basisrelaties, geen extra basisrelatie * behoud van beide basisrelaties, met extra basisrelatie Stap 6: Omzetting van binaire één op meerdere relatietypes: *Primaire sleutel van de 1 zijde toevoegen als vreemde sleutel aan de meerdere zijde * Enkelv., enkelw., niet afgeleide attr. toevoegen aan gekozen basisrelatie Stap 7: Omzetting van binaire meerdere op meerdere relatietypes: * nieuwe basisrelatie > relatienaam * primaire sleutels toevoegen als vreemde sleutels in nieuwe basisrelatie * Enkelv., enkelw., niet afgeleide attr. toevoegen aan gekozen basisrelatie * primaire sleutel = samenvoeging attributen van beide vreemde sleutels Stap 8: Omzetting van meerwaardige attributen: * gepaste relatienaam * primaire sleutels basisrelatie > vreemde sleutel nieuwe relatie

14 * attributen toevoegen aan nieuwe basisrelatie om 1 waarde te kunnen opslaan * primaire sleutel = samenvoeging alle attributen Stap 9: Omzetting van n aire relatietypes waarbij n>2: * gepaste relatienaam * primaire sleutels basisrelatie > vreemde sleutel nieuwe relatie * Enkelv., enkelw., niet afgeleide attr. toevoegen aan gekozen basisrelatie * primaire sleutel = samenvoeging attributen van alle vreemde sleutels Aanmaken van gedragspecificaties: Richtlijnen: Uniciteit van attribuutwaarden van dezelfde basisrelatie > omzetten naar een alternatieve sleutel. Beperking op de tuples > omzetten integriteitrestrictie Uitvoering complexe actie > omzetten stored procedure of trigger Casestudie: database voor een jeugdvereniging Casestudie: reserveringssysteem voor een theater: Casestudie: database voor een softwarefirma: 5.2 Normalisatie Normaalvorm = kwaliteitsnorm voor basisrelaties Normalisatieproces = relatie met lagere NV > opgesplitst in relaties met hogere NV Probleemstelling: Bepaalde data worden overtollig opgeslagen Overtollige data kunnen anomalieën bevatten Gegevens kunnen ongewenst verloren gaan Het normalisatieproces: Een verzameling van attributen Y is functioneel afhankelijk van een verzameling van attributen X als de waarden van de attributen van Y op elk moment uniek worden vastgelegd door de waarden van de attributen van X. Als de attribuutwaarden van X bekend zijn, zijn daardoor ook de attribuutwaarden van Y bekend. X wordt de determinant van de functionele afhankelijkheid genoemd. Een verzameling van attributen Y is irreducibel functioneel afhankelijk van een verzameling van attributen X (genoteerd X > Y) als Y functioneel afhankelijk is van X en er bovendien geldt dat: 1. X en Y disjunct zijn en dus geen gemeenschappelijke attributen hebben. 2. ER geen echte deelverzameling X c X van X bestaat, zodat Y functioneel afhankelijk is van X. Kan voorgesteld worden in een functioneel afhankelijkheidsdiagram Een relatie staat in eerste normaalvorm als de datatypes van al de voorkomende attributen atomair zijn. Een relatie staat in tweede normaalvorm als ze in eerste normaalvorm staat en elk attribuut van de relatie, dat geen deel uitmaakt van een kandidaat sleutel, irreducibel functioneel afhankelijk is van elke kandidaat sleutel van de relatie. Een irreducibele functionele afhankelijkheid X > Z is transitief, als er een verzameling van attributen Y bestaat, die geen kandidaat sleutel of deelverzameling van een kandidaatsleutel is, waarvoor geldt dat X > Y en Y > Z. Een relatie staat in derde normaalvorm als ze in tweede normaalvorm staat en elk attribuut van de relatie, dat geen deel uitmaakt van een kandidaat sleutel, niet transitief irreducibel functioneel afhankelijk is van een kandidaat sleutel van de relatie. Een relatie staat in Boyce Codd normaalvorm als ze in eerste normaalvorm staat en elke determinant een kandidaat sleutel is van de relatie. Een verzameling van attributen Y is meerwaardig functioneel afhankelijk van een verzameling van attributen X ( genoteerd X > > Y) als de waarden van de attributen van X op elk moment een collectie met meerdere waarden voor de attributen van Y vastleggen.

15 Een relatie staat in vierde normaalvorm als ze in Boyce Codd normaalvorm staat en geen enkele meerwaardige functionele afhankelijkheid bevat, tenzij dit de enige afhankelijkheid is die voorkomt in de relatie. 5.3 Denormalisatie Nadelen van normalisatie proces : door opsplitsen > heel veel relaties extra tijd : opvraging opnieuw samenvoegen, aanpassen, verwijderen, denormalisatie: lagere normaalvorm om betere prestaties te krijgen extra controle tegen inconsistentie van de data

16 Hoofdstuk Overzicht Laatste ontwerpfase: fysiek databaseontwerp: databaseschema, sleutels, integriteitrestricties, stored procedures en triggers geïmplementeerd in relationeel dbms. SQL wordt hiervoor gebruikt (SQL scripts, DDL scripts, forward and reverse engeneering, ) 6.2 Enkele voorbeschouwingen over SQL Kerntaal + pakketten Kerntaal : datadefinitietaal (DDL) en datamanipulatietaal (DML) Beschrijvende taal: niet hoe maar wat Kan worden ingebed in een hosttaal (bv:java, C/C++, ) Elke constructeur werkt met eigen dialect BNF notatie: zie figuur 6.3 pg 187 Identificatoren en gereserveerde woorden 6.3 Datadefinitietaal Databases: Aanmaken: CREATE SCHEMA naam [AUTHORIZATION maker] Meestal uitgebreide paramaters Verwijderen: DROP SCHEMA naam [RESTRICT CASCADE] Restrict: enkel leeg wordt verwijderd< > cascade : wordt altijd verwijderd Domeinen: Aanmaken: CREATE DOMAIN naam [AS] datatype [DEFAULT defaultwaarde] [CHECK (logische_expressie)] Datatype: atomair datatyp, check: restrictie, Ook geavanceerde opties Verwijderen en aanpassen: DROP DOMAIN naam [RESTRICT CASCADE] ALTER DOMAIN Relaties: Aanmaken: CREATE TABLE naam ( ({kolomnaam datatype [NOT NULL][UNIQUE] [DEFAULT defaultwaarde][check (logische_expressie)]} [, ]) {PRIMARY KEY (lijst_van_kolomnamen) [,]} ([UNIQUE (lijst_van_kolomnamen)] [, ]) ([FOREIGN KEY (lijst_van_kolomnamen) REFERENCES tabelnaam [ON DELETE actie] [ON UPDATA actie] [, ]) ([CHECK(logische_expressie)] [, ]) Aanpassen: ALTER TABLE naam {ADD [COLUMN] kolomnaam datatype [NOT NULL][UNIQUE] [DEFAULT defaultwaarde][check (logische_expressie)] DROP [COLUMN] kolomnaam [RESTRICT CASCADE] ADD [CONSTRAINT [restrictienaam]] restrictieoptie DROP CONSTRAINT restrictienaam [RESTRICT CASCADE] ALTER [COLUMN] kolomnaam SET DEFAULT defaultoptie ALTER [COLUMN] kolomnaam DROP DEFAULT} Verwijderen: DROP TABLE naam [RESTRICT CASCADE]

17 Indexen: Aanmaken: CREATE [UNIQUE] INDEX indexnaam ON tabelnaam ((kolomnaam [ASC DESC][, ])) Verwijderen: DROP INDEX indexnaam Views : Aanmaken: CREATE VIEW viewnaam [((nieuwe_kolomnaam [, ]))] AS definiërende_expressie [WITH CHECK OPTION] Verwijderen: DROP VIEW viewnaam [RESTRICT CASCADE] 6.4 Datamanipulatietaal Instructies voor het toevoegen, aanpassen en verwijderen van data: Toevoegen van data: Toevoeging van een tuple waarvan de waarden expliciet worden opgegeven: INSERT INTO naam [(kolomlijst)] VALUES (Lijst_met_attribuutwaarden) Toevoeging van tuples die afkomstig zijn van een andere relatie: INSERT INTO naam [(kolomlijst)] (select_instructie) Toevoeging van data die afkomstig zijn uit een databestand: LOAD FROM bestand [DELIMITER karakter] INSERT INTO naam [(kolomlijst)] Aanpassen van data: UPDATE naam SET ({kolomnaam=expressie}[, ]) [WHERE zoekconditie] Verwijderen van data: DELETE FROM naam [WHERE zoekconditie] Instructies voor het opzoeken van data: SELECT [ALL DISTINCT] {* kolomexpressie [AS nieuwe_naam][, ]} FROM ({naam} [alias][, ]) [WHERE zoekconditie] [{GROUP BY kolomlijst}[having zoekconditie]] [ORDER BY (kolomexpressie [ASC DESC][, ])] FROM WHERE GROUP BY SELECT ORDER BY Tuple bevindt zich in de relatie waarvan de naam gegeven is Tuples moeten voldoen aan voorwaarde Tuples worden gegroepeerd op basis van gelijke waarden voor alle attributen die voorkomen in kolomlijst (HAVING enkele degene die aan de voorwaarde voldoen) Enkel de attributen bijgehouden die gevraagd worden (* = alle attributen) Tuples worden geordend op basis van hun waarden voor alle attributen die voorkomen in kolomlijst Dingen hieronder vrij simpel, niet de moeite om op teschrijven: pg s in boek staan erbij Basisfunctionaliteit: zie pg 200 Gebruik van verschillende relaties: zie pg 202 Aggregatiefuncties: zie pg 203 Groepering: zie pg 204

18 Werken met geneste queries: zie pg 205 Werken met de operatoren voor unie, intersectie en verschil: 6.5 Verwerking van DML instructies door een databasemanagementsysteem Validatie en omzetting van een DML instructie: DML instructie gescand op fouten Vertaald naar een expressie (opgebouwd uit operatoren van de relationele algebra) zodat efficiënte optimalisatie mogelijk is zie figuur 6.6 en 6.7 pg Optimalisatie: Dbms zal proberen relationele expressie om te vormen naar een equivalente expressie die efficiënter werkt. Queryplan puntjes pg De Query By Example techniek DML instructie wordt opgebouwd door het invullen van grafische templates die de structuur weergeven van de relaties uit de datebase. Zie figuur 6.8 pg 212

19 Hoofdstuk Voorbeschouwing Semantisch rijkere gegevensmodellen Object = autonome entiteit Structuur en gedrag vastgelegd in objecttype Basisconcepten van het objectgeoriënteerde programmeerparadigma : Object, objecttype, toestand en gedrag: In elke objectgeoriënteerde aanpak wordt gewerkt met objecten die een complexe waarde hebben, die de toestand van het object wordt genoemd. In een systeem dat werkt met datatypes worden objecten opgebouwd via objecttypes, waarin zowel de complexe datastructuur van de toestand, als de specifieke operaties die voor het object gedefinieerd zijn, door de softwareontwikkelaars zijn vastgelegd. Inkapseling van operatoren: Slechts de signatuur van een operator wordt zichtbaar gemaakt voor de gebruikers. Het verborgen houden van de methode van de operator wordt inkapseling genoemd. Overerving en typehiërarchieën: Een ander basisconcept is overerving. Objectoriëntatie schrijft voor dat in nieuwe objecttypes een deel van de toestands en gedragsspecificaties van bestaande objecttypes overgenomen kan worden. De toestand en het gedrag van het nieuwe objecttype worden dan bepaald door de combinatie van de overgenomen en de eigen specificaties. Het mechanisme dat vastlegt hoe en onder welke voorwaarden deze combinatie gebeurt, wordt het overervingsmechanisme genoemd. Operatoroverlading en polymorfisme: Bij objectoriëntatie maakt het overervingsmechanisme het doorgaans mogelijk om overgeërfde operatoren te herdefiniëren binnen het nieuwe objecttype en daarbij de naam van de operator te behouden. Dit heet operatoroverlading. Dezelfde operatornaam verwijst dan naar verschillende operatoren (en methodes). Objectgeoriënteerde databasetechnologie : Objectpersistentie: Opnemen database > persistent: worden bewaard in het computergeheugen. Naamgevingsmechanisme: unieke persistente naam Bereikbaarheidsmechanisme: object dat voorkomt in persistent object > ook persist wordt gemaakt. Objectidentiteit: Elk object wordt daarom geïdentificeerd door een unieke objectidentificator (OID) die door het dbms wordt aangemaakt en toegekend. Deze identificator kan niet worden gewijzigd (ook niet door het dbms). Een objectidentificator wordt na verwijdering van het object het liefst niet meer opnieuw gebruikt door het dbms. 7.2 ODMG 3.0 Het objectmodel : Constructie van objecttypes: Objecttypes zijn opgebouwd uit bouwstenen Bouwstenen bestaat uit 1 specificatie en 1 of meerdere implementaties Literaaltypes: Modeleren van structurele kenmerken Basistypes: gehele getallen, reële getallen, boolean,

20 ODL : OQL : Ook de mogelijkheid tot enumeratietypes Gestructureerde types zijn uit componenten samengesteld: datum, tijd, Collectietypes: datacollecties: set, bag, list, array, Interfaces: Modeleren van gedrag Klassen: Structurele kenmerken en gedragskenmerken worden vastgelegd in klasse Structuur: attributen en relaties Gedrag: operatoren Overerving: Isa overerving: supertype=interface, subtype= klasse of interface Subtype erft alle operatoren van het supertype Extends overerving: zowel super als subtype = klasse Objecten en literalen: Instanties zijn waarden uit het domein Literalen zijn instanties van een literaaltype Objecten zijn instanties van een objecttype Elk object gekenmerkt door een toestand Extensies en sleutels: Extentie is de verzameling van alle persistente objecten van een objecttype Sleutel zijn 1 of meerdere attributen/relaties waarvan de waarden uniek moeten zijn voor elk object in de extentie. Integriteitsrestricties: Geen extra faciliteiten Specificatietaal die het mogelijk maakt om logische databaseschema s te beschrijven die zijn opgebouwd volgens de regels/voorschriften van het ODMG objectmodel. Taalbindingen nodig voor fysiek databaseontwerp Zie vb: figuur 7.2 pg 227 Objectbevragingstaal die enkel wordt gebruikt voor het opzoeken van data. Objectdatabase enkel doorzoeken vanuit programmeercode > beperking ivm SQL Taalbindingen zorgen ervoor dat de resultaten worden voorgesteld met een datastructuur uit de programmeertaal > naadloze integratie Toegangspunten tot de database: Toeganspunt: vereist bv objectnamen (persistente objecten),namen (extenties) Iteratorvariabelen: Als er gewerkt wordt met elementen van een collectie > iteratorvariabele Aggregatieoperatoren: Min, max, sum, avg, count, Werken met geordende collecties: Eerste, laatste of i de element oproepen Groeperen: Iteratorvariabele aangeduid met partition 7.3 SQL 3 Basis relationeel model uitgebreid tot objectrelationeel model Gebruikergedefinieerde datatypes : De type constructor row : Aanmaken van gestructureerde tupletypes CREATE TYPE typenaam AS [ROW] (componentspecificaties) Waarden van de componenten van een tupletype bereikt met dot notatie CREATE TABLE tabelnaam OF typenaam

21 Mogelijkheid relatie op te bouwen op basis van een tupletype De type constructor array : Aanmaken van collectietypes van het rijtype Type ARRAY[aantal_elementen] Bereiken elementen van een rij met [] notatie Tuple identiteit : Tuple identificator is een unieke referentie naar een tuple Twee mogelijkheden: DERIVED en SYSTEM GENERATED Afgeleid van primaire sleutel of onafhankelijk door het systeem opgebouwd Aangeven bij aanmaken van een tabel: Werkwijze 1: create tabel instructie uitgebreid REF IS identificatornaam {DERIVED SYSTEM GENERATED} Werkwijze 2: extra referentieattribuut Attribuutnaam REF(naam_tupletype)[SCOPE(tabelnaam)] VALUES FOR attribuutnaam ARE {DERIVED SYSTEM GENERATED} Bereiken warden van de attributen van het gerefereerde tuple met > notatie Inkapseling van operatoren : Signatuur van gebruikersgedef. operator toevoegen als component van tupletype METHOD operatornaam (argumentlijst) RETURNS type Moet worden gekoppeld aan implementatiecode Werkwijze 1: vindt plaats in SQL/PSM taal METHOD CREATE FUNCTION operatornaam (parameterlijst) RETURNS type FOR naam_tupletype AS [locale_declaratie] {functie_corpus} Werkwijze 2: vindt plaats in algemene objectgeoriënteerde programmeertaal METHOD CREATE FUNCTION operatornaam (parameterlijst) RETURNS type FOR naam_tupletype AS EXTERNAL NAME padnaam_voor_bestand LANGUAGE naam_taal Standaard ingebouwde functies Constructorfunctie T() Nieuw object o aanmaakt en teruggeeft Observatiefunctie A(o) Waarde van A in o teruggeeft Mutatorfunctie Waarden attribuut aan te passen Overerving : Overerving bij tupletypes: Tupletypes kunnen componenten en operatoren overerven van andere tt s Verschillende supertypes dezelfde component > enkel die eerst in de lijst CREATE TYPE typenaam UNDER (naam_supertype[, ]) AS [ROW] (componentspecificaties) Overerving bij de aanmaak van relaties: Nieuwe relatie erft attributen, operatoren en ook alle tuples CREATE TABLE naam_subtabel UNDER naam_supertabel Multimedia : clob : character large object Weergeven van grote karaktersequenties die samen een tekst vormen blob : binary large object Grote bitsequenties weer te geven

22 7.4 Logisch databaseontwerp Ontwerp van objectgeoriënteerde databaseschema s : Stap 1: Omzetting van reguliere entiteittypes: *klassenaam : naam entiteittype * maak extentie aan voor klasse * voeg alle attributen toe: samengesteld > gestructureerde datatypes meerwaardig > collectietypes * maak voor sleutelattributen een sleutel aan Stap 2: Omzetting van zwakke entiteittypes: Zelfde manier al reguliere entiteittypes Alternatief: 1 identificerend relatietype > attribuut daarvan M.b.v. set<struct{ }>, list<struct{ }>, Stap 3: Omzetting van binaire relatietypes: Voor één op één relatietypes: * toevoegen als attribuut bij één van de klasses * als relatietype attributen heeft: nieuwe klasse aanmaken (stap 4) anders bij beide een relatie toevoegen (inverse van elkaar) Voor één op meerdere relatietypes: * toevoegen als attribuut(collectietype) bij klasse (kardinaliteit 1) * toevoegen als attribuut bij klasse (kardinaliteit meerdere) * als relatietype attributen heeft: nieuwe klasse aanmaken (stap 4) anders bij beide een relatie toevoegen (inverse van elkaar) Voor meerdere op meerdere relatietypes: *als relatietype attributen heeft: nieuwe klasse aanmaken (stap 4) anders bij beide een relatie toevoegen (inverse van elkaar) Stap 4: Omzetting van n aire relatietypes waarbij n>2: * klassenaam : naam relatietype *betrokken entiteittypes > relatie toegevoegd aan nieuwe klasse in klasse entiteittype eveneens inverse relatie toegevoegd *toevoegen alle attributen Stap 5: Omzetting van categorieën: moeilijkst : verwantschap tussen categorie en haar supertypes modelleren door aan haar corresponderende klasse en klassen die corresponderen met de supertypes relaties toe te voegen. Geen enkele relatie mag gespecificeerd zijn over collectietype Stap 6: Toevoeging van operatoren: Functionele beschrijving omgezet naar gedragspecificaties Uniciteit > sleutels Andere > vertaald naar operatoren Stap 7: Omzetting van specialisaties en generalisaties: *enkelvoudige overerving: naam supertype > extends clausule * meervoudige: alle attributen, relaties en operatoren van supertypes kopiëren naar subtype (ODMG ondersteunt geen meervoudige extends) Objectrelationele mapping : (equivalent paragraaf 5.1.2) *samengestelde attributen: tupletypes *meerwaardige attributen: rijtypes * specialisaties en generalisaties: op basis van tupletypes en overerving bij tupletypes * relatietypes: referentie attributen * gedragsspecificaties: ingekapselde, gebruikersgedefinieerde operatoren

23 Hoofdstuk Voorbeschouwing Verschillende technieken om vanuit applicaties toegang te krijgen tot databasesystemen ALTIJD gebruikt gemaakt van API (applicatieprogramma interface) Een API voor databasetoegang zorgt voor de verbinding of interface tussen de applicatie en het dbms. De API wordt door de applicatie gebruikt om instructies door te geven aan het dbms en wordt omgekeerd door het dbms gebruikt om resultaten en status en foutcodes door te geven aan de applicatie. 8.2 Databasetoegang via ingebouwde API s Bij een ingebouwde API worden de instructies voor databasetoegang integraal ingebouwd in de applicatiecode. De uitvoering van de verrijkte applicatiecode bewerkstelligt de interactie met het dbms, dat op zijn beurt verantwoordelijk is voor de correcte afhandeling van de instructies en de feitelijke databasetoegang. Gebruikte programmeertaal : hosttaal Embedded SQL : SQL instructies inbouwen via specifieke taalconstructies Precompiler Nadeel: databasespecifiek Ingebedde SQL instructies: Voorafgegaan door EXEC SQL en beëindigt met ; of END EXEC CONNECT en DISCONNECT Hostvariabelen: Enige variabelen die kunnen voorkomen in embedded SQL BEGIN DECLARE SECTION END DECLARE SECTION Bij gebruik: naam voorafgegaan door : Foutbehandeling: Status en foutcode bv. SQLCODE Cursors: Iteratorconstructie die toelaat om tuples één voor één op te halen en te verwerken DECLARE OPEN FETCH CLOSE Dynamische SQL: Statische SQL vormt soms een te grote beperking DSQL vraag late binding foutcontrole en omzetting instructie gebeurt bij uitvoering SQLJ : Tegenhanger van embedded SQL API databaseonafhankelijk proberen maken 8.3 Databasetoegang via call level API s Bij een call level API geschiedt de databasetoegang via aparte software die zowel communiceert met de applicatie als met het dbms. Binnenkomende functieoproepen van de applicatie worden door de software omgezet naar een intern formaat dat voor uitvoering wordt doorgegeven aan het dbms. Geretourneerde resultaten, status en foutcodes worden door de software omgezet naar een dataformaat dat door de applicatie kan worden gelezen en verwerkt. Situatie van late binding > laat dynamischer werken toe. Nadeel: omzetting moet elke keer opnieuw gebeuren Voordeel: eenvoudiger verschillende databases werken ODBC en JDBC : Open DataBase Connectivity: relationele DB op dbms onafhankelijke manier benaderen vanuit applicaties. Applicatieinterface, driverbeheerder en ODBC drivers Belangrijkste functies: zie pg

24 Java DataBase Connectivity: opvolger van ODBC Operatoren: zie pg. 257 SQL/CLI : Call Level Interface, bouwt verder op ODBC. Handles : environment, connection, statement, descriptionrecords. OLE DB en ADO : Object Linking and Embedding for Databases ontwikkeld om heterogene (e mail, rekenbladen,webpagina s, ) databronnen op een uniforme wijze vanuit een applicatie te kunnen benaderen Wordt gewerkt met COM objecten Moeilijk rechtstreeks oproepen > ActiveX Data Objects Data consumers, data providers en service providers blablabla 8.4 Databasetoegang via webpagina s: ASP, JSP en PHP Dynamische webpagina s. webpagina vernieuwd: gegevens opnieuw uit de databron opgehaald en in de pagina geladen. Web client = data consumer/applicatie Meest bekende : ASP(Active Server Pages) JSP(Java Server Pages) en PHP ASP en JSP > ADO PHP > ODBC 8.5 Databasetoegang via het J2EE en.net framework J2EE gericht op Java > JDBC.NET > OLE DB en ADO = ADO.NET > ODBC.NET

25 Hoofdstuk Mogelijke gevaren en vormen van ongeoorloofd gebruik Diefstal, fraude, schending privacy, beschadiging database en sabotage databasesysteem 9.2 Beveiligingsstrategieën Gebruikers: Alles registreren in een auditbestand (toegangscontrole vereist) Ook belangrijk om de volledige bevoegdheid te verdelen over verschillende admin s Flow control (covert channel) via opeenvolging legale handelingen toch ongeoorloofd gebruik. Hardware: Diefstal, beschadiging, componenten uitgeschakeld/bijgeplaatst, Software: Installatie en werkingsvoorschriften goed volgen Beveiligingsfaciliteiten regelmatig onderhouden Toepassingsprogramma s grondig installeren Programmeurs > bewust achterpoortjes open laten (moeilijk te vinden) Data: Afgeschermd door toegangsbeperkingen Alternatief: views Afluisteren > versleuteltechnieken Ook hier auditbestand 9.3 Toegangscontrole en toegangsbeperking Authenticatie is het controleproces om uit te maken of een gebruiker is wie hij of zij beweert te zijn. Aanmaken gebruikersaccount (best standaardpaswoord vervangen) CREATE USER gebruikersnaam IDENTIFIED BY wachtwoord ALTER USER gebruikersnaam IDENTIFIED BY nieuw_wachtwoord DROP USER gebruikersnaam Ook toegangsbeperkingen (zie volgende puntjes) Werken met privileges en gebruikersprofielen : Een instructie waarvoor expliciet toestemming wordt verleend, wordt een privilege genoemd. Vergetelheid > minder erg dan bij bepaalde instructies verbieden i.p.v. privileges Datadefinitie < > datamanipulatie DAC toegangscontrole (Discretionary Access Control) Toekennen van privileges: GRANT {privilegelijst ALL PRIVILEGES} ON {componentnaam [databasenaam.]* *.*} TO {lijst_met_gebruikersnaam PUBLIC} [WITH GRANT OPTION] (mogen zelf mensen ook privileges geven) Mogelijkheden voor de ON clausule Databasecomponent Componentnaam Alle relaties uit de opgegeven database databasenaam.* Alle relaties uit de geactiveerde database * Alle relaties van alle databases *.* Belangrijkste privileges: SELECT, DELETE, INSERT, UPDATE, REFERENCES, CREATE, ALTER, DROP, INDEX, CREATE VIEW, CREATE ROUTINE en CREATE USER Privileges kunnen ook contextafhankelijk zijn (ingebouwde functies: TODAY, DAY,NOW, TERMINAL,

Antwoorden op de vraagjes in het boek

Antwoorden op de vraagjes in het boek Antwoorden op de vraagjes in het boek Hallo, Ik heb dit bestand samengesteld op basis van volgende forumthread: http://vtk.ugent.be/forum/viewtopic.php? f=124&t=26719&sid=fc1e24c0443c31c619539150e30fd59c

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

Databases - Inleiding

Databases - Inleiding Databases Databases - Inleiding Een database is een verzameling van een aantal gegevens over een bepaald onderwerp: een ledenbestand van een vereniging, een forum, login gegevens. In een database worden

Nadere informatie

1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model...

1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 4 1.1.4. Wat is SQL?... 6 1.1.5. Verschillende categorieên

Nadere informatie

Samenvatting Databanken D.E.R.P.

Samenvatting Databanken D.E.R.P. Samenvatting Databanken D.E.R.P. 26 december 2017 Inleiding Deze samenvatting is gemaakt voor De Examen Repo Plaats (DERP), een github organisatie die te vinden is op http://github.ugent.be/derp, die dergelijke

Nadere informatie

Informatie & Databases

Informatie & Databases Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat

Nadere informatie

Databases en SQL Foundation (DBSQLF.NL)

Databases en SQL Foundation (DBSQLF.NL) Databases en SQL Foundation (DBSQLF.NL) EXIN Hét exameninstituut voor ICT ers Janssoenborch - Hoog Catharijne Godebaldkwartier 365 3511 DT Utrecht Postbus 19147 3501 DC Utrecht Nederland T +31 30 234 48

Nadere informatie

Samenvatting Databanken

Samenvatting Databanken Samenvatting Databanken D.E.R.P. 26 december 2017 Inleiding Deze samenvatting is gemaakt voor De Examen Repo Plaats (DERP), een github organisatie die te vinden is op http://github.ugent.be/derp, die dergelijke

Nadere informatie

Vragen Databases. Hoofdstuk 1

Vragen Databases. Hoofdstuk 1 Vragen Databases Hoofdstuk 1 1. Data: gegeven feiten Informatie: gegeven feiten + de betekenis, de context. Nuttig: huidige databanksystemen zijn enkel in staat de data op te slaan (de informatie is vager,

Nadere informatie

Samenvatting Databanken

Samenvatting Databanken Pieter Reuse p. 1/14 Samenvatting Databanken 0.1 Voorwoord Dit hoort bij Principes van Databases door Guy De Tré die het vak Databanken doceert aan de UGent. Academiejaar 2010-2011, zittijd januari. De

Nadere informatie

Hoofdstuk: 1 Principes van databases

Hoofdstuk: 1 Principes van databases DBSQLF Databases en SQL Hoofdstuk: 1 Principes van databases aant Css: 4 732 blz 9 1.1 Doel ve database - om op het juiste moment op de juiste plaats de juiste gegevens beschikbaar te hebben richten we

Nadere informatie

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003 SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets

Nadere informatie

ER-modeling. Wat is ER-modeling? ERD & relationeel model. ER-benadering DMO Datamodellering 2008

ER-modeling. Wat is ER-modeling? ERD & relationeel model. ER-benadering DMO Datamodellering 2008 ER-modeling Datamodellering 2008 1 Wat is ER-modeling? ER-modelleren: top-down benadering bedacht door P. Chen 1976, paper in ACM Transactions on Database Systems Codd (Relationeel Model) aanvankelijk

Nadere informatie

ER-modeling. Datamodellering Wat is ER-modeling?

ER-modeling. Datamodellering Wat is ER-modeling? ER-modeling Datamodellering 2008 1 Wat is ER-modeling? ER-modelleren: top-down benadering bedacht door P. Chen 1976, paper in ACM Transactions on Database Systems Codd (Relationeel Model) aanvankelijk

Nadere informatie

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd. SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Relationele databases

Nadere informatie

Datamodelleren en databases 2011

Datamodelleren en databases 2011 Datamodelleren en databases 21 Capita selecta 1 In dit college Modelleren Normaliseren Functionele afhankelijkheid 1-3N M:N-relaties, associatieve entiteittypes, ternaire relaties Weak entiteittypes Multivalued

Nadere informatie

12. Meer dan één tabel gebruiken en sub-queries

12. Meer dan één tabel gebruiken en sub-queries 12. Meer dan één tabel gebruiken en sub-queries 12.1. Inleiding In de vorige hoofdstukken heb je telkens queries uitgevoerd op één tabel. In de praktijk is het raadplegen van gegevens over het algemeen

Nadere informatie

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64 Klas Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters JONGENS Number Integer MEISJES Number Integer Lessen Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters DOCCODE Short Text 3 Characters

Nadere informatie

SQL datadefinitietaal

SQL datadefinitietaal SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen

Nadere informatie

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank v Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank 1 Introductie: data en informatie 1.0 Wat leer je in dit hoofdstuk? 1.1 Verschil tussen gegevens en

Nadere informatie

Data Definition Language

Data Definition Language Data Definition Language We gaan hier dezelfde database gebruiken als in de vorige les. Nu gaan we deze echter maken met behulp van DDL gedeelte van SQL. Om in het SQL deel van Microsoft Access te komen

Nadere informatie

Query SQL Boekje. Fredrik Hamer

Query SQL Boekje. Fredrik Hamer Query SQL Boekje Query SQL Boekje Fredrik Hamer Schrijver: Fredrik Hamer Coverontwerp: Fredrik Hamer ISBN: 9789402162103 Fredrik Hamer Inhoudsopgave A. Aanhef bepalen 17 Aantal 18 Aantal dagen tussen

Nadere informatie

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster 4. 4. Inhoud rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 4 Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries (Vragen) [Ook in SQL] sorteren filter volgens

Nadere informatie

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. SQL manipulatietaal We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: INSERT : toevoegen van gegevens DELETE : verwijderen van gegevens UPDATE : wijzigen van gegevens

Nadere informatie

6. Het maken van een database

6. Het maken van een database 6. Het maken van een database 6.1. Inleiding In hoofdstuk 5 heb je de oefendatabase gemaakt doormiddel van een script. In dit hoofdstuk ga je zelf een database maken en deze vullen met tabellen. Hiervoor

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

H 1 Databases en databasesystemen (10 punten) a. Veel van de huidige databases zijn gebaseerd op een drie-laags systeemarchitectuur:

H 1 Databases en databasesystemen (10 punten) a. Veel van de huidige databases zijn gebaseerd op een drie-laags systeemarchitectuur: Tentamen Engineering 2007/2008 Opleiding: Embedded Systems Opl.variant: vt Groep/Klas: T Engineering Volledige vaknaam: Databases in Dag en Datum: woensdag, Tijd: 18.1-18.4 Technische Automatisering Vakcode:

Nadere informatie

SQL & Datamodelleren

SQL & Datamodelleren SQL & Datamodelleren HVA-CMD-V1-datamodelleren Algemene handleiding bij het lesprogramma 2012-2013 Inhoud Inhoud... 2 Inleiding... 3 Leerdoelen:... 3 Plaats in het leerplan:... 3 Werkwijze:... 3 Lesstof:...

Nadere informatie

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

Nadere informatie

EXIN Databases en SQL Foundation

EXIN Databases en SQL Foundation EXIN Databases en SQL Foundation Preparation Guide Editie 201608 Copyright 2016 EXIN All rights reserved. No part of this publication may be published, reproduced, copied or stored in a data processing

Nadere informatie

Relationele databanken

Relationele databanken Relationele databanken De meeste databanken zijn relationeel. Gegevens in tabellen. Relationele model stoelt op de verzamelingenleer (leer der relaties). Relatie betekent hier tabel. Grote kracht van deze

Nadere informatie

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen. SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Op dit moment gebruiken

Nadere informatie

Inhoud. Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2

Inhoud. Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2 v Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2 1 Introductie: data en informatie 3 1.0 Wat leer je in dit hoofdstuk? 3 1.1 Verschil tussen

Nadere informatie

Secure Application Roles

Secure Application Roles Secure Application Roles Beheer de toegang tot de database 1. Inleiding Het realiseren van geautoriseerde toegang tot een database lijkt eenvoudig. Echter, vaak blijkt dat dezelfde combinatie van gebruikersnaam

Nadere informatie

ISO Datamodelleren. Prof. dr. Paul De Bra. Gebaseerd op: Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan

ISO Datamodelleren. Prof. dr. Paul De Bra. Gebaseerd op: Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan ISO Datamodelleren Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. het bank voorbeeld waarom zijn er drie tabellen om klanten en rekeningen voor te stellen? customer (customer_name,

Nadere informatie

Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts

Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts Studenten: Peter Asnong Rik Broens Tom De Keyser Daan Gielen Kris Gregoire Koen Olaerts Toon Wouters Inhoudsopgave

Nadere informatie

het bank voorbeeld ISO Datamodelleren modelleren met het E-R R model een database ontwerpen verzamelingen van relaties (verbanden)

het bank voorbeeld ISO Datamodelleren modelleren met het E-R R model een database ontwerpen verzamelingen van relaties (verbanden) het bank voorbeeld ISO Datamodelleren Prof. dr. Paul De Bra waarom zijn er drie tabellen om klanten en rekeningen voor te stellen? customer (customer_name, customer_street, customer_city) account (account_number,

Nadere informatie

Les 2 Eenvoudige queries

Les 2 Eenvoudige queries Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten

Nadere informatie

Het omzetten van een ER-diagram naar SQL

Het omzetten van een ER-diagram naar SQL Het omzetten van een ER-diagram naar SQL Huub de Beer Eindhoven, 4 juni 2011 Omzetting ER-diagram naar SQL in twee stappen 1: ER-Diagram relationeel model Onderwerp van hoofdstuk 3 Entiteittype relatie,

Nadere informatie

Vragen hoofdstuk 1: Resultaat

Vragen hoofdstuk 1: Resultaat Vragen hoofdstuk 1: Resultaat Het ontwikkelen van informatiesystemen bevat volgende activiteiten: Analyse van het probleem. Toewijzen van resources. Ontwerp van de onderdelen van het systeem. Bouw van

Nadere informatie

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1 Workshop 3x Analytisch vermogen Huiswerk Lestijden 10:00 12:30 Pauze 10:15 10:30 Deze les: Hiëarchische database Relationele database ODBMS Normaliseer stappen Hiëarchische database Elk record in een database

Nadere informatie

Versieperikelen. Bijlage C

Versieperikelen. Bijlage C Bijlage C Versieperikelen In dit boek beschrijven we PL/SQL aan de hand van Oracle versie 11g. Alle eigenschappen die in dit boek behandeld worden, zijn in deze versie van Oracle (en in nog te verschijnen

Nadere informatie

DATAMODELLERING ER DIAGRAM

DATAMODELLERING ER DIAGRAM DATAMODELLERING ER DIAGRAM Inleiding In dit whitepaper wordt de datamodelleervorm ER diagram beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil je een beeld krijgen

Nadere informatie

Structured Query Language (SQL)

Structured Query Language (SQL) Structured Query Language (SQL) Huub de Beer Eindhoven, 4 juni 2011 Database: in essentie 0 of meer tabellen elke tabel nul of meer kolommen (of velden) elke tabel nul of meer unieke rijen elke query werkt

Nadere informatie

Technisch Ontwerp W e b s i t e W O S I

Technisch Ontwerp W e b s i t e W O S I Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept

Nadere informatie

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1 DATAMODEL SQL Middelbare School Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1 INHOUDSOPGAVE 1. Informatiedomein 3 1.1 Informatiedomein 3 1.2 Toepassingen 3 2.

Nadere informatie

Canonieke Data Modellering op basis van ArchiMate. Canonieke Data Modellering op basis van Archimate Bert Dingemans

Canonieke Data Modellering op basis van ArchiMate. Canonieke Data Modellering op basis van Archimate Bert Dingemans Canonieke Data Modellering op basis van ArchiMate Canonieke Data Modellering op basis van Archimate Bert Dingemans Abstract Modelleren op basis van de open standard ArchiMate is een goed uitgangspunt voor

Nadere informatie

Databanken - les 2.

Databanken - les 2. Databanken - les 2 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn/ Bv. tennisclub Onze tennisclub heeft een aantal spelers, die allemaal een uniek spelersnummer hebben. Soms krijgt een

Nadere informatie

Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn:

Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn: 5. De oefendatabase 5.1. Inleiding In de volgende hoofdstukken ga je oefenen / werken met SQL. Om te kunnen oefenen heb je natuurlijk wel een database nodig. In dit hoofdstuk wordt besproken hoe je deze

Nadere informatie

Technische nota AbiFire Rapporten maken via ODBC

Technische nota AbiFire Rapporten maken via ODBC Technische nota AbiFire Rapporten maken via ODBC Laatste revisie: 23 januari 2018 Inhoudsopgave 1 Inleiding... 2 2 Systeeminstellingen in AbiFire... 3 2.1 Aanmaken extern profiel... 3 2.2 Toewijzing extern

Nadere informatie

Zelftest DB2 for z/os basiscursus

Zelftest DB2 for z/os basiscursus Zelftest DB2 for z/os basiscursus Document: n1067test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST DB2 FOR Z/OS BASISCURSUS

Nadere informatie

Van een ER-diagram naar een database specificatie in SQL

Van een ER-diagram naar een database specificatie in SQL Van een ER-diagram naar een database specificatie in SQL Huub de Beer Eindhoven, 4 juni 2011 Inhoudsopgave 1 Inleiding 1 2 Van een ER-diagram naar het relationele model 1 3 Van relationeel model naar SQL

Nadere informatie

Les S-01: De basisbeginselen van SQL

Les S-01: De basisbeginselen van SQL Les S-01: De basisbeginselen van SQL 1.0 Relationele databases en SQL Een database is een bestand waarin gegevens worden opgeslagen in de vorm van tabellen. Zo kan een huisarts met behulp van een database

Nadere informatie

Databanken - les 2.

Databanken - les 2. Databanken - les 2 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn/ Samenvattend Probleemstelling ER-Diagramma Databank definitie Gegevens invoeren Gegevens opvragen Huiswerk! Practicum

Nadere informatie

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Wat is een database? Een verzameling van georganiseerde data Een database bestaat uit applicaties, SQL en het DBMS Watis eendbms? EenDBMS

Nadere informatie

Een website maken met databasetoegang.

Een website maken met databasetoegang. Hoofdstuk 5 Een website maken met databasetoegang. In dit hoofdstuk gaan we het weblog dat je in hoofdstuk 4 hebt gemaakt verder uitbreiden. Een belangrijk onderdeel wordt toegevoegd aan de applicatie,

Nadere informatie

Na bestudering van dit hoofdstuk moet je tot het onderstaande in staat zijn:

Na bestudering van dit hoofdstuk moet je tot het onderstaande in staat zijn: 15. Toegangsbeheer Tot nu toe heb je gewerkt met DML en DDL statements. Echter de DCL statements zijn nog niet aan bod geweest. DCL commando s gebruik je voor de beveiliging van je database. Wie mag wat

Nadere informatie

Als er besloten is een database op te stellen dient men een analyse van de informatiegegevens te volbrengen.

Als er besloten is een database op te stellen dient men een analyse van de informatiegegevens te volbrengen. Normaliseren Een van de voornaamste rollen in een informatie systeem is het bewaren van gegevens en liefst over een lange tijd. Meestal doen we dat door middel van een gegevensbank of databank. Deze gestructureerde,

Nadere informatie

Inleiding... 3. 1 Databases en Data Base Management Systems... 3. 2 Tabellen... 3. 3 Wat is SQL?... 5

Inleiding... 3. 1 Databases en Data Base Management Systems... 3. 2 Tabellen... 3. 3 Wat is SQL?... 5 1 Inhoudsopgave. Inleiding.... 3 1 Databases en Data Base Management Systems.... 3 2 Tabellen.... 3 3 Wat is SQL?... 5 4 Gegevens opvragen (deel 1).... 5 4.1 Boolean operatoren.... 7 4.2 IN en BETWEEN

Nadere informatie

Introductie (relationele) databases

Introductie (relationele) databases Eerste les Introductie (relationele) databases Database en DBMS Een verzameling van gestructureerd opgeslagen gegevens Dus ook een kaartenbak is een database Van oudsher waren er hiërarchische en netwerkdatabases

Nadere informatie

SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.

SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p. SQL en XML Datamodellering 2007 1 XML schema s & DMO Schema een ruim begrip (zie Møller, p. 96) DTD schema W3C Schema In dit overzicht: Wat zijn de belangrijke zaken uit XML voor datamodellering? (onvolledig)

Nadere informatie

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC Aantekeningen IRDB Vak: IRDB > Infrma1ca Rela1nele DataBase Onderstaande database scripts zijn gebaseerd p PstgreSQL. Standaarden Schrijf SQL wrden al1jd in hfdlefers, k al werkt het met kleine lefers;

Nadere informatie

ISO Query By Example

ISO Query By Example ISO Query By Example Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. QBE waarom nog een query taal? de relationele algebra en SQL geven niet alleen een specificatie van een query-resultaat,

Nadere informatie

Normaliseren versie 1.1

Normaliseren versie 1.1 Normaliseren versie 1.1 Datamodellering 27 1 Wat is normaliseren? Data organiseren in tabelvorm, zó dat: er minimale redundantie is update operaties (toevoegen, wijzigen, verwijderen) eenvoudig zijn uit

Nadere informatie

Thinking of development

Thinking of development Thinking of development Databases Arjan Scherpenisse HKU / Miraclethings Agenda voor vandaag Opdracht tussenstand State diagram / Observer pattern Bret Victor Databases 2/42 Opdracht tussenstand Slides

Nadere informatie

Koppeling met een database

Koppeling met een database PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt

Nadere informatie

Database Structuur via menus

Database Structuur via menus Data Dictionary Database Structuur via menus Na het normaliseren en maken van een data dictionary kunnen de tabellen worden ingevoerd in de database. In deze les wordt getoond hoe dit in Access gebeurt.

Nadere informatie

Entiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto.

Entiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto. Relationele databases SqlServer en Oracle zijn relationele client server databases. De verwerking van de opdrachten vindt plaats op de server. Access is een relationele pc database. De verwerking van de

Nadere informatie

Ontwerp van Informatiesystemen

Ontwerp van Informatiesystemen 1ste bach HIB Ontwerp van Informatiesystemen Prof. Verelst Q www.quickprinter.be uickprinter Koningstraat 13 2000 Antwerpen 112 2,50 Online samenvattingen kopen via www.quickprintershop.be Table of Contents

Nadere informatie

Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0

Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0 Auteur Arjaan den Ouden Datum 4 december 2013 Status Definitief Versie 1.0 Behoudens uitzondering door de wet gesteld, mag zonder schriftelijke toestemming van de rechthebbende op het auteursrecht van

Nadere informatie

EMBEDDED SQL. Inleiding. Queries en update-opdrachten. Embedden en hostvariabelen

EMBEDDED SQL. Inleiding. Queries en update-opdrachten. Embedden en hostvariabelen Inleiding In het boek Databases & SQL wordt beschreven hoe opdrachten in de programmeertaal SQL gebruikt worden om de inhoud van een relationele database te raadplegen en te bewerken. SQL wordt daarbij

Nadere informatie

Data Manipulatie. Query Talen. / Informatica

Data Manipulatie. Query Talen. / Informatica Data Manipulatie Query Talen 1 Queries maken in TC en SQL (ter verduidelijking) We kijken nog even naar bier-query q: Geef alle paren van drinkers die niet samen naar een kroeg kunnen gaan en daar allebei

Nadere informatie

voorbeeldexamen I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006

voorbeeldexamen I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006 voorbeeldexamen Databases and SQL Foundation (DBSQLF) I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006 inhoud 3 inleiding 4 voorbeeldexamen 21 antwoordindicatie 44 beoordeling

Nadere informatie

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank Inhoud Computervaardigheden Hoofdstuk 5 Databanken (Let op: dit is enkel voor studenten Bio-Ingenieur.) Terminologie Data importeren Basis queries Allerhande Joins Doe dit. Aandachtspunt! Wat gebeurt hier?

Nadere informatie

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1 relationele databases 9.1 hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit Als voorbeeld nemen we een eenvoudige database, bestaande uit twee tabellen. De

Nadere informatie

DATAMODELLERING BASIS UML KLASSEMODEL

DATAMODELLERING BASIS UML KLASSEMODEL DATAMODELLERING BASIS UML KLASSEMODEL Inleiding In dit whitepaper wordt de datamodelleervorm basis UML klassemodel beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen.

Nadere informatie

Module 1 Programmeren

Module 1 Programmeren Module 1 Programmeren Programmeertalen 13 1.1 Inleiding 13 1.2 Programmeertalen in historisch perspectief 13 1.2.1 Machinecode 13 1.2.2 Assembleertalen (assembly) 14 1.2.3 Hogere programmeertalen 15 1.2.4

Nadere informatie

EXAMEN juni 2018 Gegevensbanken

EXAMEN juni 2018 Gegevensbanken 22 juni 2018 9.00 u. EXAMEN juni 2018 Gegevensbanken Het examen bestaat uit drie vragen die schriftelijk uitgewerkt worden. Instructies a. De vragen moeten worden opgelost in de volgorde waarin ze genummerd

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Functionele beschrijving: Scannen naar AFAS Profit.

Functionele beschrijving: Scannen naar AFAS Profit. Functionele beschrijving: Scannen naar AFAS Profit. Algemeen Met de Kyocera Scannen naar AFAS Profit beschikt u over een efficiënte oplossing om uw documenten te scannen naar AFAS Profit. Met deze oplossing

Nadere informatie

Excel Controller. Handleiding Excel Controller Wizard

Excel Controller. Handleiding Excel Controller Wizard Excel Controller Handleiding Excel Controller Wizard 1 Inhoud Inleiding... 3 Eigen SQL... 3 Stap 1 Eigen SQL... 3 Stap 2 Testen SQL... 8 Stap 3 Wizard... 11 Stap 4 Parameters... 13 Voorbeeld Eigen Parameter...

Nadere informatie

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50%

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50% Naam project Lost And Found Animals Url Lokaal gehost Groepsleden Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50% 1. Beveiliging in de toepassing Naam gebruiker Wachtwoord

Nadere informatie

Data Warehouse Script Generator Doel

Data Warehouse Script Generator Doel Data Warehouse Script Generator Doel Op basis van een aantal standaard sql scripts ( create table, create view ) een nieuwe sql script genereren welke alle objecten ( tables & views ) kan aanmaken in een

Nadere informatie

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren Handleiding om te beginnen met mysql WorkBench. In twee stappen 0. WorkBench verbinden met mysql 1. een hallo

Nadere informatie

Functionele beschrijving: scannen naar Exact Globe.

Functionele beschrijving: scannen naar Exact Globe. Functionele beschrijving: scannen naar Exact Globe. Algemeen Met de KYOCERA scannen naar Exact Globe beschikt u over een efficiënte oplossing om uw documenten te scannen naar Exact Globe. Met deze oplossing

Nadere informatie

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat: Training Trainingscode Duur Gepubliceerd Taal Type Leermethode Kosten SF2015V8 4 dagen 02/02/2015 Nederlands & Engels Developer, basis Invidueel & klassikaal Op aanvraag Deze training richt zich op het

Nadere informatie

Dynamiek met VO-Script

Dynamiek met VO-Script Dynamiek met VO-Script Door Bert Dingemans DLA Ontwerp & Software bert@dla-architect.nl Inleiding Op de SDGN nieuwsgroep voor Visual Objects ontstond laatst een draad van berichten over de nieuwe libraries

Nadere informatie

11. Het selecteren van gegevens deel II

11. Het selecteren van gegevens deel II 11. Het selecteren van gegevens deel II 11.1. Inleiding In hoofdstuk 7 heb je kennis gemaakt met het statement Select. In dit hoofdstuk ga je wat dieper in op het statement. Je gaat sorteren / groeperen

Nadere informatie

Martiris 2011. Secure Private Data. Gegevensbescherming in Oracle Databases

Martiris 2011. Secure Private Data. Gegevensbescherming in Oracle Databases Martiris 2011 Secure Private Data Gegevensbescherming in Oracle Databases Inhoudsopgave INTRODUCTIE... 3 HISTORIE... 4 SECURE PRIVATE DATA: FUNCTIONEEL... 4 A) ROW LEVEL SECURITY... 4 B) COLUMN MASKING...

Nadere informatie

EXAMEN juni 2016 Gegevensbanken

EXAMEN juni 2016 Gegevensbanken EXAMEN juni 2016 Gegevensbanken 8 juni 2016 14.00 u. Het examen bestaat uit twee vragen die schriftelijk uitgewerkt worden. Instructies a. De vragen moeten worden opgelost in de volgorde waarin ze genummerd

Nadere informatie

DATAMODELLERING CRUD MATRIX

DATAMODELLERING CRUD MATRIX DATAMODELLERING CRUD MATRIX Inleiding In dit whitepaper wordt de datamodelleervorm CRUD Matrix beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil je een beeld

Nadere informatie

Structured Query Language

Structured Query Language Structured Query Language SQL = internationale standaardtaal. Origineel IBM. SQL92 (SQL2), SQL99 (SQL3), SQL:2003, SQL:2007 en SQL:2008. Vele dialecten. In wat volgt beperken we ons tot wat tot de kern

Nadere informatie

Functionele beschrijving: scannen naar UNIT4 DocumentManager

Functionele beschrijving: scannen naar UNIT4 DocumentManager Functionele beschrijving: scannen naar UNIT4 DocumentManager Algemeen Met de KYOCERA Scannen naar UNIT4 DocumentManager beschikt u over een efficiënte oplossing om uw documenten te scannen naar UNIT4 DocumentManager

Nadere informatie

Technische nota AbiFire5 Rapporten maken via ODBC

Technische nota AbiFire5 Rapporten maken via ODBC Technische nota AbiFire5 Rapporten maken via ODBC Laatste revisie: 29 juli 2009 Inhoudsopgave Inleiding... 2 1 Installatie ODBC driver... 2 2 Systeeminstellingen in AbiFire5... 3 2.1 Aanmaken extern profiel...

Nadere informatie

Integriteitsbewaking bij een relationele database

Integriteitsbewaking bij een relationele database Integriteitsbewaking bij een relationele database Bij het ontwikkelen van een informatiesysteem voor een organisatie moet er koste wat koste voor gezorgd worden, dat er geen tegenstrijdige gegevens in

Nadere informatie

[TOETS SQL INLEIDING]

[TOETS SQL INLEIDING] 2011 ROC ter AA afdeling T&T Team ICT Toets SQL Inleiding Duur: 100 minuten Hulpmiddelen: Alleen Pen en Papier Er is één voorblad en vijf opgaven pagina s. Normering: Deel I: 14 punten (7x2 Deel II: 10

Nadere informatie

Les 11 : Basis SQL (deel2).

Les 11 : Basis SQL (deel2). Les 11 : Basis SQL (deel2). Wat is SQL? SQL gaan we gebruiken voor het raadplegen van de database. We gaan gegevens invoegen in de database, selecteren, aanpassen en verwijderen van de database. Om dit

Nadere informatie

Datakwaliteitsborging met Oracle dynamisch SQL

Datakwaliteitsborging met Oracle dynamisch SQL Ook zonder specifieke tools goede oplossing mogelijk Datakwaliteitsborging met Oracle dynamisch SQL Reinbert Hamstra De bruikbaarheid van gegevens in een organisatie is rechtstreeks afhankelijk van de

Nadere informatie

Het belang van. Data Modellering. GEMINIT Training. Data Modellering. Frédéric BARBIER

Het belang van. Data Modellering. GEMINIT Training. Data Modellering. Frédéric BARBIER Het belang van Data Modellering Studiedag Informatiemanagement Politeia, 22 februari 2013, Gent Open data en de cloud: een revolutie in de informatiehuishouding van de overheid Training Data Modellering

Nadere informatie

Archimate risico extensies modelleren

Archimate risico extensies modelleren Archimate risico extensies modelleren Notatiewijzen van risico analyses op basis van checklists versie 0.2 Bert Dingemans 1 Inleiding Risico s zijn een extra dimensie bij het uitwerken van een architectuur.

Nadere informatie