Voorbeeld tussentijds examen
Voorbeeld tussentijds examen
Hieronder vind je een voorbeeldexamen. Dit examen is bedoeld om je een idee te geven van de soort vragen die je kan verwachten.
Verbeter het model
Bekijk onderstaand model dat gebruikt wordt om een muziekbibliotheek bij te houden voor een streamingdienst.
Beschrijf in korte en bondige zinnen wat er verkeerd is en/of wat er beter kan. Beperk je tot de attributen die aanwezig zijn in onderstaand model, je hoeft bijvoorbeeld niets te zeggen over het gebrek aan genres.
Oplossing
- Artiest moet afgezonderd worden in een nieuwe entiteit. Vervolgens moet deze gekoppeld worden met Nummer via een associatie-entiteit.
- Titel moet NNA zijn
- ReleaseDatum moet het datatype date krijgen.
- Speelduur moet een numeriek datatype krijgen
Waar staat/staan de FK(s)
Waar staan de FK(s) in onderstaand model?
- Enkel in de entiteit Maatschappij
- Bij Vliegtuigmaatschappij en Vliegtuig
- Nergens
- Enkel bij Vliegtuigmaatschappij
Oplossing
- Enkel bij Vliegtuigmaatschappij
Juist of fout?
Zijn onderstaande uitspraken juist of fout?
- Een attribuut naam, krijgt de waarde "John Doe". We spreken hier van goede normalisatie.
- In een documentdatabase wordt de data, in alle gevallen, opgehaald met één query per view in de applicatie.
- Alternatieve sleutel en kandidaat-sleutel zijn verschillende namen voor hetzelfde begrip.
Oplossing
- Fout: Dit is geen goede normalisatie, de naam moet opgesplitst worden in voornaam en achternaam.
- Fout: Bij Document Database zoals MongoDB wordt de data niet alle gevallen opgehaald met één query per view. Er kan ook gebruik gemaakt worden van references.
- Fout: Kandidaat-sleutels zijn sleutels die kans maken om eventueel een PK of andere sleutel te worden. Een alternatieve sleutel (AK) was een kandidaat-sleutel die geen PK is geworden, omdat bv. een voorwaarde niet is vervuld (geen betekenis, geen int, ...)
Verklaar
Geef twee kenmerken van een primaire sleutel.
Oplossing
Een primaire sleutel is minimaal en heeft geen betekenis.
Relationeel modelleren
Bouw een volledig model op, inclusief datatypes en FK specificaties. Voor 5 relaties geef je de multipliciteiten en relatiebeschrijvingen, je kiest zelf voor welke relaties je dit doet. Je mag hiervoor slecht één veel-op-veel relatie gebruiken.
Geef voor 5 entiteiten de soort aan (kern, karakteristiek of associatie). Kies zelf voor welke 5 entiteiten je dit doet, maar zorgt dat je van elke soort minstens één aanduidt.
Beperk je voor deze opgave tot het gevraagde, voeg geen extra entiteiten toe die, in realiteit nodig zijn, maar waarover niets gezegd wordt in de opgave.
Book network
Je bouwt een sociaal netwerk voor fanatieke lezers, via dit sociaal netwerk kunnen gebruikers de gelezen boeken bijhouden en organiseren. Daarnaast kunnen gebruikers ook reviews schrijven.
Boeken
Voor elk boek moet de titel, beschrijving, het unieke ISBN nummer, de publicatiedatum, de cover, het aantal pagina’s en de uitgever bewaard worden. Voor een uitgever moet eventueel een website bewaard worden. Voor elk boek wordt een score weergegeven op de website, dit is een score tussen 1 en 5.
Een boek kan door één of meerdere auteurs geschreven worden. Een auteur heeft minimaal een voornaam. In de meeste gevallen wordt ook de achternaam bewaard, als deze bekend is. Voor sommige historische auteurs, zoals Homerus, is er geen achternaam bekend. Een auteur heeft eventueel een geverifieerde gebruikersaccount. Indien een auteur zijn/haar geverifieerde account afsluit, moet de auteursinformatie (naam, voornaam) nog steeds bewaard blijven.
Gebruikers
Gebruikers kunnen zich registreren op de website en moeten hiervoor hun e-mailadres en wachtwoord opgeven. Daarnaast kunnen ze eventueel een voornaam, achternaam, en leeftijd opgeven en kan een gebruiker eventueel een profielfoto uploaden. Tenslotte kan een gebruiker "Librarian" status aanvragen, een gebruiker kan deze status slechts één keer aanvragen. Als deze status toegekend wordt, kan de gebruiker de boeken op de website aanpassen.
Boekenplanken
Een gebruiker kan "boeken schappen" aanmaken, deze kunnen gebruikt worden om boeken te organiseren. Bijvoorbeeld een schap voor gelezen, te lezen, en favoriete boeken. Een gebruiker kan meerdere schappen aanmaken en in elk van deze schappen meerdere boeken plaatsen. Een schap heeft een naam en is eventueel als exclusief aangeduid. Een boek kan slechts op één van de exclusieve planken geplaatst worden. Een boek kan, ook als het in exclusief schap geplaatst is, nog steeds in alle andere niet-exclusieve schappen geplaatst worden.
Als een gebruiker zijn/haar account verwijderd, moeten al zijn/haar boekenplanken ook verwijderd worden.
Reviews
Een gebruiker kan reviews plaatsen voor een boek, een review bestaat minimaal uit een rating tussen 1 en 5. Daarnaast kan een review ook een uitgeschreven argument bevatten dat meer uitleg geeft over de gegeven score. Tenslotte moeten we ook de datum kennen waarop de review geplaatst wordt.
Als een gebruiker zijn/haar account verwijdert, dan moeten de geplaatste review blijven bestaan.
Gelezen boeken
Een gebruiker kan de website gebruiken om bij te houden welke boeken hij/zij gelezen heeft. We moeten weten wanneer het boek gelezen is, i.e. tussen welke datums.
Als een gebruiker verwijderd wordt, moet ook alle informatie over alle gelezen boeken verwijderd worden.