Ekvivalente stier (Equivalence of Path, EOP) i storm

Like dokumenter
Ekvivalente stier (Equivalence of Path, EOP) i storm

INF1300 Oblig 2. Øyvind Kolbu

Dagens tema: Relasjonsmodellen (funksjonelle avhengigheter og nøkler, integritetsregler) Realisering: Fra ORM til relasjoner

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data

Løsningsforslag matoppskrifter modellering

HØGSKOLEN I SØR-TRØNDELAG

1. SQL datadefinisjon og manipulering

Integritetsregler i SQL. Primærnøkler

Databaser: Relasjonsmodellen, del I

INF1300 Introduksjon til databaser

Datamodellering og databaser SQL, del 2

Integritetsregler i SQL

INF1300 Introduksjon til databaser

Oppgave 1 (Opprett en database og en tabell)

1. Innføring i bruk av MySQL Query Browser

Datamodellering og databaser SQL, del 2

*UXSSHULQJ IRU JUDXWVNDOOHU (QYLVXHOOJXLGHJMHQQRPQRHQ DY1,$0JUXSSHULQJHQV XQGHUIXQGLJKHWHU

Datamodellering og databaser SQL, del 2

Relasjonsdatabasedesign

>>21 Datamodellering i MySQL Workbench

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

Miniverden og ER- modell

Relasjonsdatabasedesign

Oppgaver Oppgave a: Sett opp mulige relasjoner

Communicate SymWriter: R1 Lage en tavle

Integritetsregler i SQL

INF1300 Introduksjon til databaser

Løsningsforslag maskindatabasen på Ifi SQL og normalisering

Relasjonsdatabasedesign

HØGSKOLEN I SØR-TRØNDELAG

Databaser. Relasjonsmodellen 1 Læreboka: Kap. 2 Relasjonsmodellen Faglærere: Tore Mallaug, Kjell Toft Hansen

Gruppeøvelse 20/ Dagens tema: - Gruppering/realisering

IST Skole Vurdering - Elev

SQL: Integritetsregler, triggere og views

Utvikling fra kjernen og ut

INF1300 SQL Structured Query Language del 1. Stoff som blir/ble forelest i oktober 2013

Relasjonsdatabasedesign

INF1300 Introduksjon til databaser

En lett innføring i foreninger (JOINs) i SQL

ID Tilpasse skjermbilder, endre kolonner og redigere profiler

IN2090 Introduksjon til databaser

Tilpasse sengepostliste - profiler (0416)

INF1300 Introduksjon til databaser

IST Skole Vurdering - Foresatt

INF1300 Introduksjon til databaser

Likning- bingo ark 1

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

Notater: INF1300. Veronika Heimsbakk 8. januar 2013

Repetisjon: Normalformer og SQL

Oppgavesett for NVivo 9

Oppgavesett videregående kurs i NVivo 9

INF1300 Introduksjon til databaser

UNIVERSITETET. triggere og views. Institutt for Informatikk. INF Arne Maus 1

I Primo Back Office, finn Resource Recommender under Advanced Configuration eller i FE & Delivery-menyen.

Skranker og avledninger

INF1300 Introduksjon til databaser

Utvikling fra kjernen og ut

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

Oppgavesett for NVivo 10

IN2090 Databaser og datamodellering 07 Datamanipulering

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning mandag 14.

INF1300 Introduksjon til databaser

HØGSKOLEN I SØR-TRØNDELAG

BRUKERMANUAL. Telsys Online Backup

Telsys e-post Brukermanual

IST Skole Fravær - Foresatt

Oppgavesett for NVivo 10

Metaspråket for å beskrive grammatikk

INF1300 Introduksjon til databaser

VEILEDER GI FJERNHJELP

Hvordan databasesystemene kan hjelpe RAM-produsentene

Kom i gang med Zotero: En enkel veiledning

Importere referanser fra databaser

Huldt & Lillevik Payslip for daglig bruk

Sette opp Payslip for nyansatte

VÆRSTASJONER Obligatorisk oppgave nr. 2 i INF1300 høsten 2011

Oppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring:

Utvidet kravspesifikasjon for ArkN4

Flere skranker i ORM Integritetsregler med «CHECK» i SQL

Repetisjon: (nesten) alt du trenger å kunne om ORM og realisering

Lese og signere prøvesvar (medisinsk biokjemi og mikrobiologi) (0423)

INF1300 Introduksjon til databaser

VEILEDNING FOR INSTALLASJON AV SIGNALOPPSETT I AUTOCAD

HØGSKOLEN I SØR-TRØNDELAG

svarforslag SLUTTEKSAMEN IBE211 Databaser, våren 2015

MySQL-database, php. Innhold. 8 MySQL-database, php. 8.1 Databasen MySQL

IN2090 Introduksjon til databaser

Rapportmodulen i Extensor 05

Dagens tema: Begrepsdannelse Eksterne entydighetsskranker

Hvordan legge til kommentarer i PDF dokumenter

INF1300 Introduksjon til databaser: SQL Structured Query Language. En første introduksjon Lysark til forelesning onsdag 22.

NY PÅ NETT. Enkel tekstbehandling

esam/byggeweb Rolleveiledning: Utgiver og Fordeler (Bane NOR) Byggeweb Prosjekt

Brukerveiledning for rapportering av Utenrikshandel med tjenester (RA-0692) via Altinn

Dagens tema: Ekvivalente stier og joinskranker Ringskranker Informasjonsbærende representasjoner Behandling av tid

HØGSKOLEN I SØR-TRØNDELAG

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet. Løsningsforslag

UNIVERSITETET. Relasjonsdatabasedesign

Ajourhold av DMK i FYSAK F2.6 Kokebok Norsk institutt for skog og landskap, Steinkjer

Transkript:

Ekvivalentestier(EquivalenceofPath,EOP)istORM Detteerikkerettfram,derfordennebeskrivelsen.Vitarutgangspunktifølgende modellforkinoerogkinoforestillinger: Bilde1 ORM2 modell

I bildet under ser du modellen og litt av skjermbildet. Merk spesielt de to røde pilene, som peker ut verktøy som skal brukes i prosessen å definere en EOP, samtdenblåpilasomviserstatusfeltetogetverktøy. Bilde2 Modellenogskjermbildet ViseravmodellenatreferansentilKino(kinonavn,definertvedperfektbropå annet ark) inngår i referansen til både Benk og Forestilling. Videre inngår referansentilbenkireferansentilsete,ogtilsluttfremkommerbillettsomen begrepsdannelse over Sete og Forestilling. Det betyr at referansen til Kino blir

gruppert inn to ganger til Billett. I og med at det er et stort poeng at disse to felteneharsammeverdiihverenkeltpostitabellen,måvisikredennelikheten. DetobegrepeneTidspunktogFilmerogsådefinertvedperfektebroer(somhhv. ÅÅÅÅMMDDHHMM og filmnavn) på et annet ark, og etter å kjørt hele produksjonslinjagjennomgruppererogsql generator,sertabellenbillettslikut (automatikkenbytterutåmedaa): CREATE TABLE Billett ( AaAaAaAaMMDDHHMM_med Kinonavn_med stolnr_med Kinonavn_med_B radnr_med Beloep_for... ALTER TABLE Billett ADD PRIMARY KEY (AaAaAaAaMMDDHHMM_med,Kinonavn_med,stolnr_med,Kinonavn_med_B,radnr_med Vi ser her de to forekomstene av Kinonavn i primærnøkkelen til Billett; Kinonavn_medogKinonavn_med_B.Deterdissetoforekomstenesommåvære likeihverenkeltpostitabellen.erdeikkedet,såharduikkegyldigbilletttilden filmen du ønsker å se: forestillingen går på Saga, men setet befinner seg på Colosseum.Upraktisk! Vimådefineredissetostienesomekvivalente.Førvibeskriverfremgangsmåten repeterer vi kjapt at grupperende rolle er den rollen som står under entydighetspila, refererende rolle er den som ikke står under entydighetspil. Fremgangsmåten er som følger, og det er her viktig at du gjør eksakt det som stårbeskrevet,ikkemerogikkemindre: 1. Identifiserdetostiene.StartiBillettogklikkpådenrefererenderollenien av stiene(i bilde 2 markert med et grønt 1 tall), vi starter f.eks. med den nederste.klikkpådengrønne+ enveddenrødepilaibilde2.dufårda oppetdialogvindu:

Bilde3 Prosedyrer 2. VelgProjectionfradennedtrekssmenyenderdetnåstårAdd.KlikkOK. 3. Utenåklikkenoeannetstedgårdutildenandreendenavstien(Kino)og klikkerpådenrefererenderollen(ivårttilfelle med,markertmedgrønt 2 tall).merkdegatnåkommerdetoppenparameterlisteidetfeltetsomer markertmedblåpilibilde2 Bilde4 Parameterliste og det kommer opp en P ved den rollen der du definerte en projeksjon: Bilde5 Projeksjon

4. FortsattutenåklikkenoestedgårduetthoppiretningavBillettogklikker pårefererenderolle(denheterogså med,markertmedetgrønt3 tall).vi merkerossatparameterlistadablirutvidetmedettnyttattributt: Bilde6 Lengreparameterliste 5. Klikk så på den grønne haken til venstre for parameterlista. Du har nå definertensti. 6. Gjørakkuratdetsammelangsdenandrestien.Påsammemåtesomiden førstestienvildufåen P veddenrollendudefinererenprojeksjonfor. 7. Velg ekvivalens verktøyet fra verktøylinja (rød pil i bilde 2) og sett inn beskrankningenpåetpassendestedimodellen. 8. TrekkutbenatildetorollenesomnåermarkertmedenP,ogduerferdig. Denviktigstebitenavmodellensernåslikut: Bilde7 Ekvivalentestiererdefinert Når du nå kjører automatisk gruppering og SQL generering, vil du se at definisjonen for tabellen Billett kun inneholder én forekomst av attributtet Kinonavn:

CREATE TABLE Billett ( AaAaAaAaMMDDHHMM_med Kinonavn_med stolnr_med radnr_med Beloep_for... ALTER TABLE Billett ADD PRIMARY KEY (AaAaAaAaMMDDHHMM_med,Kinonavn_med,stolnr_med,radnr_med DuvilnåaldrifåproblemermedatforestillingengårpåSaga,menskinoseteter påcolosseum. Så vil muligens noen stille spørsmålet men hvorfor alt dette, kan vi ikke bare sletteogendredetsomskalgjøresisql fila?.muligdet,hvisduvetakkurathva du skal gjøre. Og da sitter du med en SQL fil som ikke stemmer overens med dokumentasjonen(datamodellendin).oppmedhandadensomsynesdethøres utsomengodidé. NB!IvårversjonavstORMvirkeroppskriftenoverbarehvisEOPenkanhåndheves ved å gjøre endringer i én tabell (tabellen til begrepet der de to stiene starter; i eksempeletovererdettebillett).andreeoperstøttesikke. I bildet under vises et annet eksempel (der storm ikke støtter håndheving av EOPer): Det inneholder en bit av en modell for administrasjon av supermarkeder.hererdetfølgendeeoper: 1. Segment_tilhører Hylle_tilhører Reol_tilhører Avdelingog Segment_med Vare_tilhører Avdeling: Etsegmentavenhylleienreolinneholderéntypevarer.Allevarerav sammetypetilhørerénavdeling.detteskalværesammeavdelingsom densomadministrererreolenderhyllesegmentetbefinnerseg. 2. Innkjøp_gjort_av_1 Ansatt_jobber_i Avdelingog Innkjøp_gjort_av_2 Ansatt_jobber_i Avdeling: Detoansattesomsammenmåundertegneinnkjøpetavenvare,må tilhøresammeavdeling. 3. Innkjøp_av Vare_tilhører Avdelingog Innkjøp_gjort_av_2 Ansatt_jobber_i Avdeling: Innkjøpavenvaretilenavdelingmågjøresavansatteiavdelingen.

Bilde8 Administrasjonavsupermarkeder Disse EOPene vil involvere to eller flere tabeller. F.eks. innebærer den første EOPen at hvis vi tar en join mellom tabellene Segment, Hylle, Reol og Vare (tabellene er gjengitt under, fremmednøklene indikerer hvilke attributter som det skal joines på), så skal vi for hvert tuppel i resultattabellen ha at Avdeling#_eier(fraReol)ogAvdeling#_har(fraVare)alltidharsammeverdi. Selv om storm godtar at vi definerer projeksjoner og ekvivalenser mellom projeksjoneneidesignfasen,kommerdenmedfeilmeldingerknyttettileopene omviforsøkerågrupperediagrammet.

CREATE TABLE Segment ( Segment#_for Rad#_har Side#_har Nr_i_rad_har Hylle#_har Katalog#_staar_i Grossistnavn_staar_i ALTER TABLE Segment ADD PRIMARY KEY (Segment#_for,Rad#_har,Side#_har,Nr_i_rad_har,Hylle#_har ALTER TABLE Segment ADD CONSTRAINT Hylle_Segment FOREIGN KEY (Rad#_har,Side#_har,Nr_i_rad_har,Hylle#_har) REFERENCES Hylle (Rad#_har,Side#_har,Nr_i_rad_har,Hylle#_for ALTER TABLE Segment ADD CONSTRAINT Vare_Segment FOREIGN KEY (Katalog#_staar_i,Grossistnavn_staar_i) REFERENCES Vare (Katalog#_for,Grossistnavn_har CREATE TABLE Hylle ( Rad#_har Side#_har Nr_i_rad_har Hylle#_for ALTER TABLE Hylle ADD PRIMARY KEY (Rad#_har,Side#_har,Nr_i_rad_har,Hylle#_for ALTER TABLE Hylle ADD CONSTRAINT Reol_Hylle FOREIGN KEY (Rad#_har,Side#_har,Nr_i_rad_har) REFERENCES Reol (Rad#_med,Side#_med,Nr_i_rad_for CREATE TABLE Reol ( Rad#_med Side#_med Nr_i_rad_for Avdeling#_eier ALTER TABLE Reol ADD PRIMARY KEY (Rad#_med,Side#_med,Nr_i_rad_for ALTER TABLE Reol ADD CONSTRAINT Avdeling_Reol FOREIGN KEY (Avdeling#_eier) REFERENCES Avdeling (Avdeling#_paa CREATE TABLE Vare ( Katalog#_for Grossistnavn_har Avdeling#_har ALTER TABLE Vare ADD PRIMARY KEY (Katalog#_for,Grossistnavn_har