Domeinmodellering/2010-11/Assignments/Opdracht10-B03/2 Opdrachtbeschrijving

Uit Werkplaats
< Domeinmodellering‎ | 2010-11‎ | Assignments‎ | Opdracht10-B03
Versie door Engelbert Hubbers (overleg | bijdragen) op 7 sep 2012 om 14:03 (Nieuwe pagina aangemaakt met '{{contents|showcomments=no}} == Studietaak 10 - B03: transformeren ORM-schema: ''bepalen structuur relationele database'' == <br /> '''Achtergrond''' Bij vorige ...')
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Ga naar: navigatie, zoeken

Domeinmodellering
BCFA-IPI004




Studietaak 10 - B03: transformeren ORM-schema: bepalen structuur relationele database


Achtergrond

Bij vorige studietaken uit blok A zijn aspecten bekeken als:

  • verwoording van elementaire feitexpressies en bepaling feittype-expressies;
  • opstellen van een ORM-schema;
  • aanbrengen van ‘beperkingsregels.

In deze studietaak gaan we nu verder met het uit het opgestelde ‘Conceptuele Schema’ bepalen van de structuur van de bijbehorende relationele database, waarbij de voor het ‘Conceptuele Schema’ geldende beperkingsregels zoveel mogelijk overgenomen zijn in de database-structuur.


Leerdoelen

Na afloop van deze studietaak:
  • kun je een transformatie uitvoeren van gangbare ORM-schema’s naar een relationele database-structuur, waarbij voor het beschouwde UoD geen (of weinig, geplande) redundantie voorkomt en geldende beperkingsregels uit het conceptuele model gehandhaafd blijven;
  • kun je semantisch equivalente conceptuele schema’s in elkaar omzetten en aangeven wat de voor- en/of nadelen van een dergelijke transformatie zijn;
  • kun je aangeven op welke wijze(n) constraints uit een CS om te zetten zijn in database-constraints.


Instructie

Vereiste voorkennis: de materie van blok A.


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/Opdracht10-B03/Opdracht) en een waarin je je reflectie erop plaatst in Speciaal:Mypage/2010-11/Domeinmodellering/Opdracht10-B03/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 13 december 2010 (10:00u) de volgende studieactiviteiten uit: a) Bestudeer de sheets van de colleges van donderdag 2, maandag 6 en donderdag 9 december 2010, het artikel over optimalisatie van ORM-schema’s en het collegedictaatdeel over transformaties van subtypes/generalisaties/set-typen 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 13 december 2010 ter sprake wilt brengen (ter verduidelijking ...). c) Werk de volgende 3 opgaven uit:

Let op:
  1. er is op maandag 13 december 2010 maar één werk(groep)college: van 13:45-14:30u (zowel voor de IC- 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 10.1

In the shown table below you find the result of a ‘wrestle’ competition between countries. In the preliminaries of this competition in each weight category many country teams are wrestling against others. The best four teams in each category go on to the finals. Only the finalists are recorded, so not the participating countries that were already eliminated. Each country may only delegate one team per category, so that in each category there will always be four different countries participating in the final round. In the finals they are competing for the first and the second position, indicated as Gold and Silver (in this competition there is no ‘Bronze’). It is not possible to have shared positions: in each category there is exactly one Gold- and one Silver-winner. There are 4 weight categories: Fly-, Light-, Middle- and Heavyweight.


Weight category Finalists Gold Silver
Flyweight Uruguay Belgium Norway
Belgium
Zambia
Norway
Lightweight Belgium Belgium Uruguay
Uruguay
China
Mali
Middleweight Norway Australia China
Canada
China
Australia
Heavyweight Uruguay Japan Belgium
Japan
Netherlands
Belgium


  • a) 1) Do a complete ORM-information analysis on this UoD (based on an analysis of the elementary fact expressions and inclusive putting all existent constraints in the CS), making use of the following (not-elementary) wording (that delivers three binary fact types):
    In the weight category flyweight the finalists were Belgium, Uruguay, Zambia and Norway; in lightweight it were Belgium, Mali, Uruguay and China. In lightweight Belgium won Gold and in middleweight Australia. In the category flyweight Norway won Silver, in middleweight China and in the category heavyweight Belgium.
  • a) 2) Determine by applying the ‘relational mapping’-algorithm the to this obtained CS belonging relational scheme and show (schematic or not) as good as possible how you came to your result. And of course: indicate in the relational scheme all constraints to be enforced.

  • b) 1) Use a standard-transformation to get (based on the CS from part a)1) a semantically equivalent CS with one binary and one ternary fact type. Adapt of course all existing constraints.
  • b) 2) Determine again by applying the Rmapping-algorithm to the in b)1) obtained CS, the corresponding relational scheme (obviously again inclusive the constraints and showing as good as possible how you came to this result).

  • c) 1) Transform the in b)1) obtained CS (once again), but now by applying a nesting. Adapt again all constraints.
  • c) 2) Determine again by applying the mapping-algorithm to the in c)1) obtained CS, the corresponding relational scheme (and of course again inclusive the constraints and a sketch about how you came to your answer).

  • d) If you found in the sub questions a)2), b)2) and/or c)2) different relational schemes, then give qualitatively the differences and also indicate which advantages/disadvantages go with the different schemes.


Opgave 10.2

Consider the following schematized UoD in which people are identified by the combination of their surname, first given name and (if it exists) second given name.

PersonWeightSport Rmap.gif

  • a) Rmap this scheme, using the given identification scheme for persons.
  • b) Introduce ‘personNr’ as the primary identifier. Rmap the new conceptual schema.
  • c) Instead, concatenate surname and given names to a single name. Rmap this.
  • d) Instead, introduce “nil” as a default for no second given name. Rmap this.
  • e) Which solution do you prefer? Why?


Opgave 10.3

Discuss the schema below, and show why it is not well designed. (Names are unique between Doctors, Dentists and Pharmacists.)

DoctorDentistPharmacist Rmap.gif

  • a) Derive an improved (equivalent) ORM-schema. Hint: remember subtypes and their defining rules…
  • b) Rmap the original schema
  • c) Rmap the improved schema (if necessary: make an argued mapping choice…)
  • d) Which of the Rmap-results do you prefer? Why?



Resultaat:
relationele schema’s (in horizontale layout) en bijbehorende gevraagde verklaringen. Zie ook de ‘beoordelingscriteria’, zoals hieronder aangegeven.


(zelf)Reflectie / discussie

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 specifiek bij deze opdracht behorende beoordelingscriteria nagegaan als:

  • 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).


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 13 december 2010 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.

N.B. Breng een uitdraai van zowel je uitwerkingen als van je reflectie-deel als entreebewijs mee naar het werkcollege.


Deadline voor het inleveren:

maandag 13-12-10 vóór 10:00u in de DM-werkplaats; vergeet niet je naam (en studie en studentnummer) ook binnen je uitwerking te vermelden.