Domeinmodellering/2 Activiteiten/Assignments/Opdracht11-B04/2 Opdrachtbeschrijving
Inhoud
Studietaak 11 - B04: transformeren ORM-schema: 'omzetten via DDL naar fysiek schema'
Achtergrond
Bij de vorige studietaak zijn aspecten bekeken als:
- via Rmap omzetten van een Conceptueel Schema naar een logische databasestructuur;
- daarbij ook alle beperkingsregels uit het ORM-schema omzetten naar constraints op tabel- of database-niveau.
In deze studietaak gaan we nu verder met het transformeren van de zo bepaalde databasestructuur naar een 'fysieke implementatie', waarbij we zoveel mogelijk gebruik maken van de DDL-mogelijkheden (Data Definition Language) van het te gebruiken RDBMS.
Leerdoelen
- kun je een 'logische relationele databasestructuur' [in de zogenaamde 'horizontale layout'] omzetten naar dusdanige DDL, dat alle constraints bewaakt zullen worden.
N.B. ook herhalen we nog het doel van vorige opgave hoe je semantisch equivalente conceptuele schema's in elkaar kunt omzetten en aangeven wat de voor- en/of nadelen van een dergelijke transformatie zijn.
Instructie
Vereiste voorkennis: de materie van blok A en de voorafgaande onderdelen van blok B.
Voorbereiding:
Zoals ook voor opdracht 10 hoef je in de DM-werkplaats voor deze opdracht maar één bijdrage aan te maken: eentje waarin je je reflectie erop plaatst in Speciaal:Mypage/2010-11/Domeinmodellering/Opdracht11-B04/Reflectie. Let er weer op, dat je helemaal op het einde van deze 'URL's' (dus achter enerzijds 'Opdracht' en anderzijds 'Reflectie' géén '/' backslash plaatst! Plaats -zoals aangegeven in de 'Werkplaats instructies'- de daar gegeven exacte code aan het begin van de bijdrages.
De taken:
1. Voer vóór maandag 12 december '11 (13:30u) de volgende studieactiviteiten uit:
a) Bestudeer de sheets van de colleges van maandag 5 december en donderdag 8 december '11 en het collegedictaatdeel over Integrity enforcement in relational database (en zonodig opnieuw het artikel over optimalisatie van ORM-schema's);
b) Stel, mede naar aanleiding van je ervaringen/problemen/invallen bij het uitwerken van de hierna gestelde opgaven, een lijstje op van punten die je op het werkcollege van maandag 12 december 2011 ter sprake wilt brengen (ter verduidelijking ...).
c) Werk de volgende 2 opgaven uit:
- er is op maandag 12 december '11 een werk(groep)college: van 13:45-14:30u. Na afloop van dit werkcollege ‘gaan we verder met een uur college over vervolgstof van blok B.
- je bent op het werk(groep)college alléén welkom als je serieus aan deze studietaak hebt gewerkt en je uitwerking (ook al heb je maar een deel van de opdracht succesvol kunnen oplossen) hebt ingeleverd en een print/kopie van je uitwerkingen meeneemt naar het werkcollege. Op die print kun je dan voor jezelf eventueel benodigde correcties/aantekeningen maken.
Opgave 11.1
In exercise 10.a (about the Country competition wrestling) (probably) you found for the parts a.2, b.2 and c.2 three different relational table structures. If necessary, use the discussed 'standard solution' to continue.
- 11.1.a) Transform now for each of those different database structures the determined constraints to SQL-commands (e.g. via create table-commands), as a result of which it is possible to enforce all constraints in such a way that the integrity of each of those (three different) databases is guarded. Make sure that the integrity enforcement via SQL-DDL- or different commands is completely!
- 11.1.b) Give on the basis of the complexity and extent of the necessary constraint enforcement, which of the three structures deserves your preference (in other words: in which case is needed the minimum and/or easiest ‘programming workload’?).
Observations:
- Use as criteria for the applicable constraints the population of the for this exercise given table content. It is true that in this way the system is completely 'sealed up' (i.e. it will not be possible at all to add to or delete etc. any data from it), but this exercise is about training with database constraint enforcement!
- Mind that if you use the Visiomodeler-casetool, that maybe this tool does not process correctly all the complex constraints of this 'Country competition wrestling'-example! So you will have to check 'by hand' how and if all constraints from this CS have been correctly transformed to database constraints!
Opgave 11.2
The following CS deals with applicants for positions as astronauts. Applicants are given ability tests (C=cognitive, A=affective, P=psychomotor), and their performance on various tasks is also measured.
N.B. Helaas zijn in deze weergave de deelverzamelingsregels tussen '..on..got..', '..for..took..' en '..undertook..' niet heel goed zichtbaar. Ze worden beter zichtbaar als je deze beschrijving als .pdf-bestand' download (zie optie geheel links in Wiki-menu).
a) Rmap this CS.
b) Optimize the conceptual schema.
c) Rmap your optimized conceptual schema.
d) Give SQL-DDL to create a database and to enforce data-integrity on it for this optimized schema.
Resultaat:
[deels: alleen bij opgave 11.2] relationele schema’s (in horizontale layout) en overal correcte SQL DDL-code om de gevonden schema’s te implementeren. Indien gevraagd moeten ook bijbehorende verklaringen worden gegeven. Zie ook de ‘beoordelingscriteria’ zoals hierna aangegeven.
(zelf)Reflectie/nabespreking
In dit deel (dat je bent begonnen via het tweede te kopiëren werkplaatssjabloon) geef je enerzijds kort aan hoe het er bij deze opdracht vanaf hebt gebracht en geef je anderzijds aan andere studenten een mogelijkheid om op een vraag van jou te reageren. Dit ‘reflectieonderdeel’ is voor iedereen zichtbaar en kan door iedereen die een verbetering of aanvulling wil doorvoeren, aangepast worden. Dus als je twijfels hebt bij je eigen beheersing van de stof, vraag dan expliciet om reacties van anderen.
a) je reflectie
Beantwoord hier (kort) de volgende vragen:
- Wat heb je deze week geleerd in relatie tot de vooraan in deze opdracht geformuleerde leerdoelen? Heb je die bereikt?
- Hoe moeilijk vond je deze te bestuderen/verwerken stof?
- Heb je tips voor verbetering?
Uiteraard ben je van tevoren al nagegaan of je uitwerking voldoet aan de bij deze opdracht behorende beoordelingscriteria als:
a) Specifiek bij deze opdracht:
- in de ontworpen database (-structuur) mag geen redundantie zitten (of: als je welbewust kiest voor enige redundantie, dat je dan kunt aangeven waarom je die hebt aangebracht);
- de beperkingsregels uit het conceptuele schema moeten uitdrukkelijk terugkomen in de relationele databasestructuur;
- het indien nodig doorvoeren van semantisch equivalente transformaties op CS;
- het kunnen aangeven van de voor- en/of nadelen van zulke transformaties;
- het aantal gevonden gegevenstabellen moet minimaal zijn (of indien het er meer zijn: geef aan waarom je bewust voor een groter aantal tabellen hebt gekozen);
- via de gegeven SQL DDL moet het mogelijk zijn alle bepaalde constraints ook inderdaad te handhaven.
b) Daarnaast blijven uiteraard criteria zoals geformuleerd in eerdere studietaken van kracht, zoals:
- algemeen: helder, leesbaar en niet-omslachtig;
- specifiek: als je ‘verwoordingen’ toepast op het verkregen resultaat, dan moeten die overeenkomen met de gebruikelijke communicatie binnen het betreffende UoD;
b) je discussie-bijdrage/verzoek
Bij dit tweede deel (waar anderen op kunnen reageren) kan je bijdrage heel divers zijn. Het kan zijn dat je hier aan anderen vraagt je te helpen om een bepaalde 'theoretische' vraag te beantwoorden. Of het kan bijvoorbeeld zijn dat je zelf een in jouw ogen hééél moeilijke vraag over 'relational mapping' formuleert -die je gezien de leerdoelen van deze opdracht nu op zou moeten kunnen lossen- en dat je daarna het resultaat van zo'n mapping [al dan niet bewust fout opgesteld] geeft en dan aan anderen vraagt of je uitwerking correct is en zo niet om er commentaar op te leveren.
Het is hierbij uitdrukkelijk niet de bedoeling, dat je anderen vraagt hier een uitwerking van een opgave uit het eerste deel te geven!
Vergeet niet om bij het reflectiedeel waarden in te vullen voor zowel 'Studie' als voor 'Remark' (de inhoud van die laatste parameter verschijnt in het reflectieoverzicht onder het kopje 'Korte opmerking van auteur zelf').
Kijk ook bij de 'reflectieonderdelen' van anderen wat zij daar als vraag hebben gesteld of moeilijke gegevensvraag hebben bedacht en of je correcties in of aanvullingen bij hun uitwerking kunt aanbrengen. We verwachten dat je bij de 'reflecties' van zeker 2 andere studenten een reactie/commentaar/suggestie hebt gegeven.
Breng je commentaar.. als volgt aan: Bewerk de reflectie-pagina van je mede-student. Kopieer en plak onderstaande regel onder zijn/haar reflectie en vervang "Mijn commentaar" door je eigen commentaar en/of vragen.
{{!|~~~|| Mijn commentaar }}
En kijk uiteraard regelmatig bij je eigen 'reflectie' of je door anderen aangebrachte veranderingen begrijpt en/of ze correct zijn en reageer er desnoods op!
Nogmaals: op het voor IC- en IK-studenten gezamenlijk werk(groep)college van maandag 12 december 2011 worden (van 13:45-14:30u) de ingeleverde opdrachten en eventueel gerezen vragen&problemen nabesproken. Zorg er voor dat je eventuele problemen/onduidelijkheden, die je tegen gekomen bent bij het maken van het inleverdeel van deze opdracht, op een rijtje hebt staan, zodat als die knelpunten in de nabespreking niet al eerder ter tafel zijn komen, jij ze zèlf kunt aankaarten.
=> Breng een uitdraai/kopie van zowel je uitwerkingen als van je reflectie-deel als entreebewijs mee naar het werkcollege.
N.B. als je er echt serieus aan hebt zitten werken, is ook een print van een slechts ‘gedeeltelijk gelukte’ uitwerking al voldoende als entreebewijs...
Deadline voor het inleveren:
maandag 12-12-11 vóór 13:30u in de DM-inleverbus op de 2e verdieping (vleugel 5); vergeet niet je naam (en studie en studentnummer) ook binnen je uitwerking te vermelden.