Domeinmodellering/2010-11/Assignments/Opdracht11-B04/2 Opdrachtbeschrijving

Uit Werkplaats
< Domeinmodellering‎ | 2010-11‎ | Assignments‎ | Opdracht11-B04
Versie door Engelbert Hubbers (overleg | bijdragen) op 7 sep 2012 om 14:07 (Nieuwe pagina aangemaakt met '<li>daarbij ook alle ''beperkingsregels'' uit het ORM-schema omzetten naar constraints op tabel- of database-niveau.</li> </ul> In deze studietaak gaan we nu verder me...')
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Ga naar: navigatie, zoeken
  • daarbij ook alle beperkingsregels uit het ORM-schema omzetten naar constraints op tabel- of database-niveau.
  • </ul> 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

    Na afloop van deze studietaak:
    • 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 gebruikelijk zul je in de DM-werkplaats voor deze opdracht twéé bijdragen moeten aanmaken: eentje waar je je uitwerking van deze eerste opdracht inzet (in Speciaal:Mypage/2010-11/Domeinmodellering/Opdracht11-B04/Opdracht) en een 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 3 januari '11 (10:00u) de volgende studieactiviteiten uit:
    a) Bestudeer de sheets van de colleges van maandag 13 december en donderdag 16 december '10 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 3 januari 2011 ter sprake wilt brengen (ter verduidelijking ...).
    c) Werk de volgende 2 opgaven uit:


    Let op:
    1. er is op maandag 3 januari '11 maar één werk(groep)college: van 13:45-14:30u (zowel voor de Informatica- als voor de IK-studenten). Na afloop van dit werkcollege ‘gaan we verder met een uur college over vervolgstof van blok B.
    2. 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 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.

    ApplicantTasksOptimizing.gif


    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!


    N.B. Geef in het gekopieerde -bij deze opdracht behorende- werkplaatssjabloon bij de parameter 'Percentage' aan hoeveel procent -naar jouw eigen inschatting- van deze opdracht je correct gemaakt hebt. (dus bijvoorbeeld [tussen dubbele vierkante haken..] Percentage::80 ). En geef bij de parameter 'Status' een van de volgende waarden aan: 'bezig', 'klaar', 'opgegeven', 'deels geslaagd'. (Dus bijvoorbeeld de default-waarde Status::bezig geeft aan dat je op dat moment nog bezig bent met het werken aan deze opdracht. Als je later er verder aan gewerkt hebt, pas dan die Status- en Percentage-waarde aan.)
    Vul voor de Studie-parameter een van de volgende waarden in: IC, IK, hbo-IC of hbo-IK (die laatste 2 mogelijkheden voor 'hbo-doorstromers'.


    Vergeet ook 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 3 januari ’110 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 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 3-1-11 vóór 10:00u in de DM-werkplaats; vergeet niet je naam (en studie en studentnummer) ook binnen je uitwerking te vermelden.