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 elk van de onderdelen van het systeem. Score : 0/4 Wat is een domein? Beschrijft de grenzen waarbinnen een informatie probleem speelt. Begrenst wat voor een gegeven kan worden opgeslagen. Bevat minimaal een datatype (string, integer,...). Wordt ook meta-gegevens genoemd. Waarom bestaat een databank uit drie niveau's? Vraag 4 Laat toe dat verschillende gebruikers een verschillend gedeelte van de database kunnen benaderen. De rol van gebruiker en ontwerper kan dan door dezelfde persoon uitgeoefend worden. De gegevens zijn op die manier onafhankelijk van het probleem. Geegevens kunnen op die manier verspreid worden over een willekeurig aantal computers. Volgende zijn bekende databasemanagement producten: Oracle MySQL
Firefox SQL2.7 Informix Sybase PostgreSQL Score : 0/5 Vraag 5 Vanuit het perspectief van de gebruiker moet een database voldoen aan volgende kwaliteitseisen: Moet betrouwbaar zijn. Moet begrijpelijk zijn. Moet volledig zijn. Moet aanpasbaar zijn. Moet uniek zijn. Vraag 6 SQL... Staat voor System Query Language. Is een standaard. Bestaat in vele dialecten. Vragen hoofdstuk 2: Resultaat Welke uitdrukkingen in verband met objecten zijn correct? Elk object kan uniek geïdentificeerd worden. Elk object heet een aantal kenmerken (ook attributen genoemd). Een object is iets dat je kan vastnemen. Meerdere objecten samen vormen een klasse. Elk object dat we weerhouden speelt een rol in ons gegevensmodel. Een object heeft steeds een waarde; een klasse kan ook zonder waarde bestaan.
Welke uitdrukkingen in verband met attributen zijn correct? Een object heeft steeds een aantal attributen met ene bepaalde waarde. Een attribuut is de representatie van een klasse. Een klasse heeft steeds een aantal attributen, maar dat er een waarde aan werd toegekend. De verzameling van waarden die één attribuut kan aannemen, noemen we een domein. Attributen kunnen altijd een nulwaarde hebben. "Persoon" kan nooit een attribuut zijn; het is typisch de naam van een klasse. Toepassing op headhuntermodel uit hoofdstuk 1. Antwoord [ / 2] objectsoorten [ / 9] objecten [ / 5] kenmerken [ / 5] domeinen Score : 0/4 Score : 0/4 Vraag 4 Naamgeving attributen. Antwoord [ / telefoon] toevoegen bij organisatie. Ik zou de attributen telkens laten beginnen met [ / telefoon] en laten eindigen met het [ / type telefoon]. Vraag 5 Type, individu en kenmerk. Elementen auto waarmee een persoon rijdt (sedan, break, coupé). auto's met nummerplaat in de DIR databank. transport van werknemers naar een bedrijf. Vraag 6 Magazijn met artikelen. Correspondeert met / type / individu / kenmerk
Antwoord Object [ / artikel] met attributen [ / nummer], [ / naam] en [ / aantal]. Score : 0/4 Vraag 7 Ledenadministratie deel 1. Vraag 8 Ledenadministratie deel 2. Vraag 9 Ledenadministratie deel 3. We kunnen beter geen afkortingen gebruiken zoals wp en pc, maar wel voluit woonplaats en postcode gebruiken. Etiketten is een goede naam want daar dient deze tabel voor. Naam en voornaam zijn goede namen voor een attribuut. Het is goed dat we in tabel Etiketten de naam anr gerbuiken en in de tabel Ledenlijst adres. Zo kan er nooit verwarring zijn tussen deze twee velden. Er wordt veel verwarring gecreëerd. Zo kan iemand denken dat hij met tabel Etiketten voldoende heeft om etiketten te drukken. Maar hij mist dan wel de naam. Geboren kan zowel voor geboortedatum gebruikt worden als voor geboorteplaats. Of zelfs voor beiden. Dat is wel een voordeel. Akkoord dat de namen beter konden gekozen worden. Maar voor de programmeur die de applicatie moet maken is alles wel duidelijk, en dat is uiteindelijk toch het hoofddoel. Geen enkele gebruiker gaat zomaar naar tabellen kijken. Zelfs als ik deze database zelf in elkaar gestoken heb is de kans groot dat ik er niet meer aan uit geraak als ik na enkele jaren iets moet aanpassen.
Antwoord [ / ADRES] ([ / woonplaats], straat, postcode, huisnummer) LID (naam, voornaam, geboren, lidnummer, teamnummer, [ / postcode], [ / huisnummer]) [ / TEAM] ([ / teamnummer], categoriecode, poule, teamnaam, clubnaam) [ / CATEGORIE] ([ / categoriecode], max, min) Score : 0/8 0 Werving personeel. De personeelsdienst stelt advertentieteksten op. Kranten vragen advertenties. Advertentieteksten worden in kranten geplaatst. De personeelsdienst ontvangt sollicitatiebrieven. De personeelsdienst nodigt sollicitanten uit. De sollicitant komt op bezoek. Sollicitanten leggen test af. De personeelsdienst trekt referenties na. Vragen hoofdstuk 3: Resultaat De kandidaat krijgt een aanbod. De kandidaat start zijn carriëre in het bedrijf. Score : 0/6 Een ERD bevat volgende gegevens: Er zijn verschillende soorten relaties: Relaties d.i. verbanden tussen klasses. Attributen, de gegevens die door een klasse kunnen bewaard worden. Records: hierin worden de gegevens opgeslagen. Klasses, ook wel entiteiten genoemd.
Een ERD voor discussie: Vragen hoofdstuk 4: Resultaat Bij een specialisatie / generalisatie relatie spreekt men ook wel van subklasses en superklasse. Een decompositie relatie geeft aan dat klasses gesplits worden in andere klasses. Bij een associatie kan meestal een associatieklasse geplaatst worden. Een covering relatie tussen twee klassen geeft aan dat er geen andere relaties tussen de twee klassen kunnen zijn. Wordt gebruikt tijdens de bouw bij de discussie tussen programmeurs en bouwers. Wordt gebruikt bij gesprekken tussen analisten en gebruikers. Bevat altijd alle attributen van alle klasses. Wordt soms later aangevuld waarna het dan gebruikt wordt ter documentatie. Denormalisatie......wordt soms gedaan om de databank gemakkelijker onderhoudbaar te maken...wordt soms gedaan bij heel grote databanken waarin bijna uitsluitend wordt gelezen...maakt het toevoegen van nieuwe informatie meestal trager dan tevoren...wordt soms gedaan omdat het normaliseren van de databank te moeilijk is
Bekijk volgende tabel Een primaire sleutel... Vraag 4 Een vreemde sleutel... Vraag 5 Eén op veel relaties... Pagina's is functioneel afhankelijk van Naam Pagina's is functioneel afhankelijk van ISBN Pagina's is functioneel afhankelijk van Auteur Niveau is functioneel afhankelijk van Pagina...identificeert een object volledig...beschrijft een object volledig...is altijd een kandidaatsleutel...is altijd ook een vreemde sleutel...is een attribuut in tabel B dat ook aanwezig is in een andere tabel A maar dan als kandidaatsleutel...wordt gebruikt om een superklasse te laten verwijzen naar haar subklasses...kan ook verwijzen naar een kandidaatsleutel uit dezelfde tabel...kan ook een deel zijn van de primaire sleutel van de tabel...leiden steeds tot drie verschillende tabellen: twee voor de klassen die naar elkaar verwijzen en één om de verwijzing zelf vast te leggen...worden gelegd door bij een klasse een verwijzend attribuut
naar de tweede klasse op te nemen...kunnen op drie manieren gelegd worden in de databank: als aparte tabellen, gezamelijk in één tabel, of met verwijzing naar de superklasse Vraag 6 Volgende uitspraken over normaliseren zijn juist: Vragen hoofdstuk 5: Resultaat In eerste normaalvorm hangen alle niet-sleutel attributen af van de volledige sleutel In tweede normaalvorm hangen alle niet-sleutel attributen af van de volledige sleutel In derde normaalvorm hangen alle niet-sleutel attributen af van de volledige sleutel Het verschil tussen twee verzamelingen is assymetrisch omdat: ze verschillende elementen bevatten deze bewerking assymetrisch is de bewerking van een andere soort is dan unie en intersectie het resultaat bij wijziging van de volgorde verschillend is Score : 0/1 Met de volgende SQL commando's werk je met gewone gegevens: select, insert, alter, delete select, grant, alter, drop select, insert, update, delete select, create, update, delete Score : 0/1 Het resultaat van welke bewerking levert elementen van een ander type op:
unie intersectie verschil product Score : 0/1 Vraag 4 Welke beweringen over join en product zijn correct? Vraag 5 De query optimiser: Vraag 6 Wat zijn juiste beweringen voor transacties? Een product is meestal zinloos, een join niet. Een product is hetzelfde als een join. Een product is geschikt om een volledige tabel te evalueren, een join is geschikter voor een gedeelte van een tabel. Een join tussen twee relaties is een deelverzameling van het product tussen dezelfde relaties. probeert de vertaling van gebruikersniveau naar SQL zo performant mogelijk te maken probeert de vertaling van SQL naar conceptueel schema zo performant mogelijk te maken kiest de volgorde waarin verschillende SQL opdrachten worden uitgevoerd kiest de volgorde waarin verschillende bewerkingen van één SQL opdracht worden uitgevoerd Een transactie werkelijk uitvoeren noemt men: commit Een transactie terugdraaien noemt men: roll-out Een transactie wordt uitgevoerd op momenten dat de databank minder druk bezet is
Een transactie wordt initieel uitgevoerd op een kopij van de gegevens Vraag 7 Wat zijn juiste beweringen voor een lock? Vraag 8 Locks worden geplaatst om bepaalde gebruikers de toegang te ontzeggen tot bepaalde gegevens Locks worden geplaatst om foutieve gegevensinvoer te vermijden Locks kunnen ook nodig zijn wanneer slechts één gebruiker met de database werkt Locks zijn ook nodig wanneer uitsluitend lezende operaties worden uitgevoerd Wat zijn correcte beweringen over encryptie? Vraag 9 De data-dictionary bevat: 0 Encryptie is de vernietiging van gegevens door ze te versleutelen Encryptie is de beveiling van gegevens door ze te versleutelen Encryptie maakt altijd gebruik van een wachtwoord Encryptie maakt soms gebruik van een wachtwoord gegevens meta-gegevens gegevens en meta-gegegevens Score : 0/1 In een geïntegreerde data-dictionary geldt voor de meta-gegevens het volgende: ze worden opgeslagen in tabellen en kolommen zoals gewone gegevens
ze worden samen met de gewone gegevens in dezelfde tabel en kolom opgeslagen ze worden opgeslagen in aparte bestanden ze kunnen opgevraagd worden via SQL Vragen hoofdstuk 6: Resultaat De query "SELECT * FROM a" kan een geldige subquery zijn: Met SQL kan je: altijd soms Een SQL statement: wanneer de query slechts één record oplevert wanneer de query een resultaatset oplevert met slechts één kolom een gegevensmodel van een databank wijzigen een analyse van het universe of discourse uitvoeren programmeren een backup maken van een databank gegevens uit een databank opvragen gegevens in een databank vernietigen mag op een wilekeurig aantal lijnen staan mag een willekeurig aantal ; bevatten mag een willekeurig aantal spaties bevatten
is hoofdlettergevoelig Vraag 4 Volgende gereserveerde SQL woorden kunnen in een WHERE clausule gebruikt worden IN CONTAINS LIKE DISTINCT ORDER NOT LIKE Vraag 5 Volgende zijn aggregaatsfuncties: AVG MID MAX CNT Vraag 6 Volgende zijn geldige join-opdrachten (a en b zijn tabellen waarin telkens het veld id voorkomt): Vragen hoofdstuk 7: Resultaat FROM a LEFT INNER JOIN b ON a.id=b.id FROM a JOIN b ON a.id=b.id FROM a LEFT JOIN b WHERE a.id=b.id FROM a LEFT OUTER JOIN ON a.id=b.id Wanneer je met een INSERT statement gegevens uit tabel A toevoegt aan tabel B... moeten beide tabellen precies evenveel kolommen bevatten moeten alle kolommen van tabel B die niet NULL kunnen zijn en geen defaultwaarde hebben een waarde krijgen
moet tabel A minimaal één kolom bevatten moet tabel A minstens zoveel kolommen bevatten als tabel B Wanneer je een aantal records uit een tabel wil verwijderen moet volgende voorkomen in je SQL statement IN SET WHERE FROM DELETE DROP Volgende manieren bestaan om met auto-increment velden te werken: Vraag 4 Een CHECK... IDENTITY SEQUENCE TERMINATOR UNIQUE Vraag 5 Met een UPDATE statement... controleert de geldigheid van een datatytpe controleert de geldigheid van gegevens in een kolom is een vorm van identity is een vorm van constraint kan je gegevens in verschilende tabellen wijzigen kan je gegevens wijzigen in een tabel moet er altijd een SET clausule
volgen moet er altijd een WHERE clausule volgen Vraag 6 Als je de waarden tussen twee kolommen wil wijzigen moet je altijd gebruik maken van een tijdelijke kolom moet je meestal gebruik maken van een tijdelijke kolom kan je zonder tijdelijke kolom wanneer de te wisselen kolommen beide alfanumeriek zijn kan je zonder tijdelijke kolom wanneer de te wisselen kolommen beide numeriek zijn Vraag 7 Met DELETE... kan je alle gegevens in een tabel verwijderen kan je alle gegevens in een databank verwijderen Vragen hoofdstuk 8: Resultaat kan je een gedeelte van de gegevens in één tabel verwijderen kan je gebruiken samen met de SET clausule om een gedeelte van de gegevens van een kolom te verwijderen In een CREATE TABLE statement kan je per veldnaam... opgeven tot welk datatype het veld behoort opgeven waar de data wordt opgeslagen op de harde schijf opgeven of de waarde van het veld NULL kan zijn opgeven wie het veld mag lezen en wie het mag updaten
Met het DROP commando kan je... tabellen leegmaken tabellen verwijderen een index verwijderen een index herinitialiseren Volgende zijn meestal geldige datatypes voor databanken INTEGER VARCHAR STRING NATURAL Score : 0/1 Vraag 4 Het CREATE statement kan je ook gebruiken met als volgwoord... KEY INDEX DOMAIN TESTTABLE Vraag 5 Met het ALTER commando kan je... tabellen toevoegen aan een databank kolommen toevoegen aan een tabel indexes toevoegen aan een tabel constraints toevoegen aan een tabel