Modeller for design av Web-Applikasjoner

Like dokumenter
Oppsummering. Thomas Lohne Aanes Thomas Amble

Data design p.1/17. Data design. Lage ER modell av kravspesifikasjoner.

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004

ITGK - H2010, Matlab. Dagens tema : Teori - Databaser

Datamodellering 101 En tenkt høgskoledatabase

AMS-case. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt

Inf 329 Kapittel 3 Hypertekstmodell

Kap3: Klassemodellering

Datamodellering: ER-modeller ER = Enitity-Relationship del 1: Notasjon og oversetting av ulike ER-modeller til tilsvarende relasjonsmodeller

Databaser: Relasjonsmodellen, del I

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

UML 1. Use case drevet analyse og design Kirsten Ribu

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

1. Datamodellering Kommentarer til læreboka

1. Relasjonsmodellen Kommentarer til læreboka

Del 1: ER-modellering og databaseteori

Databaser & objektorientering.

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

Kunnskapsorganisasjon og gjenfinning 1. Relasjonsmodellen og -databaser

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

INF212 - Databaseteori. Kursinnhold

Repetisjon: Normalformer og SQL

INF3100 Databasesystemer

1. Designe ER-modeller med MS Visio

Prosjektoppgave: Bildedatabase. TDT4145 Datamodellering og Databasesystemer. Våren 2007

EKSAMENSFORSIDE Eksamen med tilsyn

Realiseringsalgoritmen fra ORM til relasjoner Intro til mengdeskranker i ORM

1. Innføring i bruk av MySQL Query Browser

INF1300 Introduksjon til databaser

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

UNIVERSITETET SQL-99. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Hvordan designe en ER-modell med MS-VISIO

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

UNIVERSITETET I OSLO. Relasjonsmodellen. Relasjoner og funksjonelle avhengigheter. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

UML- Use case drevet analyse og design. Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Forespørsel om fastlege Informasjonsmodell og XML meldingsbeskrivelse HIS 1022:2010

Forespørsel og svar om egenandel

INF1300 Introduksjon til databaser

IN2090 Databaser og datamodellering. Databasedesign og normalformer

SOSI-forvaltning - logisk modell

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

Obbligatorisk oppgave 2 Slektsdatabase

IN2090 Introduksjon til databaser

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

Universitetet i Oslo Institutt for informatikk. Eskild Busch. UML hefte

Datamodellering med E/R

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

Eksamen. Objektorientert Programmering IGR 1372

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

INF1300 Introduksjon til databaser

Acer Euro Case. Utviklet i 2000 av European branch of Acer Corp.

INF3100 Databasesystemer

To mengder S og T er like, S = T, hvis de inneholder de samme elementene. Notasjon. Mengden med elementene a, b, c og d skrives ofte {a, b, c, d}.

Oppgave 3 - normalisering

INF3100 V2016 Obligatorisk oppgave nr. 1

Spesifikasjon av Lag emne

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser

Modellering av data. Magnus Karge, Kartverket

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Databaser. - Normalisering -

Fra krav til objektdesign

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Modellering av verk Verk og uttrykk i et brukerperspektiv. Litt om modeller/modellering

Dagens plan. INF3170 Logikk. Mengder. Definisjon. Notasjon. Forelesning 0: Mengdelære, Induksjon. Martin Giese. 23. januar 2008.

19. januar 2012 Noen punkter fra i går

Forside. Eksamen i IN1030 for Våren Ingen hjelpemidler tillatt.

2 of :19 1 of :19 [Kurssidene] [ ABI - fagsider bibin ]

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign

Objektorientering i ER-modeller EER-modeller Enhanced Entity Relationship Models

1. Normalisering Kommentarer til læreboka

Informasjonsorganisering. Information Architecture Peter Morville & Jorge Arango Kapittel 4, 5 & 6

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Fra problem til program

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning

Relasjonsdatabasedesign

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

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

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

Dokumentasjon av XML strukturer for ByggSøk

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

UNIVERSITETET I OSLO

Læreplan i informasjonsteknologi - programfag i studiespesialiserende utdanningsprogram

INF1800 LOGIKK OG BEREGNBARHET

Repetisjon INF1800 LOGIKK OG BEREGNBARHET FORELESNING 3: MENGDELÆRE, RELASJONER, FUNKSJONER. Mengder. Multimengder og tupler.

INF3100 V2015 Obligatorisk oppgave nr. 1

EKSAMENSOPPGAVE. Adm.bygget, rom K1.04 og B154 Ingen. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl.

Forelesning 1: Introduksjon og mengdelære Christian Mahesh Hansen januar Praktisk informasjon. 1.1 Forelesere og tid/sted

Dagens plan. INF3170 Logikk

Kapittel 7: Mer om arv

Andre sett obligatoriske oppgaver i INF3100 V2013

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

Transkript:

Modeller for design av Web-Applikasjoner Kapittel 2: Data Modell Kapittel 3: Hypertekst Modell Av Eskil Saatvedt og Arianna Kyriacou. http://www.ii.uib.no/~eskil/fag/ http://www.ii.uib.no/~arianna/fag/

Kapittel 2: DATA MODELL Innhold: Mål Resultat ER-Modellen Basis Notasjon Entiteter Attributter Attributt-typer Identifikasjon og Primær Nøkkel IS-A Hierarkier (Generaliserende Hierarkier) Relasjoner Binære Relasjoner og Relasjonsroller Relasjonsroller og Kardinalitet MultiVerdi-Attributter Strukturerte Attributter Relasjoner med Attributter N'ære Relasjoner Utledet (Derivert) Informasjon

DATA MODELL Mål: Data som skal brukes av applikasjonen blir spesifisert på en formell og likevel intuitiv måte. Resultat: Vi får et konseptuelt skjema som på en lettfattelig måte viser tilgjengelig kunnskap om applikasjonsdataene. User Article User2Article User2Preference Category

DATA MODELL ER (Entity - Relationship) Modellen: Essensielle ingredienser i ER-modellen: Entitet Attributt IS-A Hierarki Relasjon Relasjonsrolle

Essensielle ingredienser i ER-modellen: Entitet(Sentralt konsept): Kontainer av strukturert data. En klasse av objekter i applikasjons-domenet som beskriver et sett elementer med lignende egenskaper. F.eks. klassene Lærer og Elev. Attributt: Beskriver entiteter. Uttrykker en egenskap til en entitet. F.eks ForNavn og EtterNavn til en Lærer eller Elev. Hvert attributt inneholder kun en enkelt verdi.

Essensielle ingredienser i ER-modellen: IS-A Hierarki: Uttrykker en utledning av et spesifikt konsept fra et mer generelt. Brukes til å klassifisere og gruppere. (Som arv i Objekt Programmering) F.eks. kan entitetene Lærer og Elev utledes fra den mer generelle entiteten Person.

Essensielle ingredienser i ER-modellen: Relasjon: Semantisk assosiasjon / forbindelse mellom entiteter. En beskrivelse av forholdet mellom to objekter. I forholdet mellom Lærer og elev kan relasjonen f.eks. få navnet «Undervisning». Relasjonsrolle: Beskriver hvilken betydning forholdet har for den enkelte entiteten. For entiteten Elev kan f.eks. relasjonsrollen fra Elev til Lærer få navnet «Blir_undervist_av».

Basis Notasjon Entiteter:Entiteter er firkantede figurer, merket med entitetsnavnet i øvre halvdel. EntityName1 EntityName2

Basis Notasjon Attributter(assosiert med entiteten): Attributter blir listet opp i nederste halvdel av entitets-firkanten. Eksempler: EntityName Attribute1 Attribute2 Attribute3 Book Title Year Price Photo Person FirstName LastName Adress TelephoneNr

Basis Notasjon Relasjon: Relasjoner representeres med en solid linje mellom entiteter. Entity1 Entity2

Basis Notasjon IS-A Hierarki: Notasjonen her er en pil som peker fra Sub-Entiteten (Mer spesifikt konsept) til Super- Entiteten (Generelt konsept). Entity2 SuperEntity SubEntity

PS: En knagg å henge det på : Sammenligner vi løst med objekt-orientert programmering, vil en entitet tilsvare en klasse, populasjonen til entiteten vil tilsvare instanser (opprettede objekter) av klassen, attributter tilsvarer klassens field, primær-nøkkel vil tilsvare en objektid, deriverte attributter vil tilsvare klassens funksjoner, IS-A hierarkiet tilsvarer arv (der multibel arv ikke er tillatt), en relasjon viser en forbindelse fra en klasse til en annen og kardinalitet for en relasjonsrolle vil løst tilsvare hvor mange objekter av en annen klasse en klasse har lov til å opprette.

Entiteter Entiteter har en populasjon: et sett av objekter beskrevet av entiteten, dvs instansene til entiteten. eks: populasjonen til Artist er et sett av artister.

Entiteter Attributter(assosiert med entiteten): - de egenskapene til et objekt fra den virkelige verden som er relevante for hensikten til applikasjonen. Eksempel: navn, adresse og telefonnummer til en person. Alle instanser av en entitet har samme sett med attributter. En attributt kan noenganger ha en null-verdi, dvs at den spesifikke instansen ikke har noen verdi for attributten eller at verdien er ukjent. Eksempel: en person uten telefon vil få en null verdi på attributten telefonnummer. Null-verdier kan gi ambiguitet-problemer. (Ikke entydig tolkning av data)

Entiteter Attributt Typer: Attributter kan være typert, og det er god praksis å uttrykke attributt typen i Data Modellen. Eksempel på datatyper: String, Text, Integer, Float, Date, Time, Boolean, Enumeration, BLOB (Binary Large OBject) og URL. Notasjon: Attributtnavn:Datatype Eksempler: Fornavn:String Tlf_Nummer:Integer Grafisk Eksempel: Book Title: string Year: string Price: float Photo: image

Entiteter Identifikasjon og Primær Nøkkel: iii. Alle instanser av en entitet må kunne skilles fra hverandre med en unik identifikator; en Primær Nøkkel. En eller flere attributter kan bli definert som entitetens primærnøkkelen, f.eks. kan attributtene Fornavn og Etternavn sammen definere en unik identifikator for en person. Primærnøkkel attributtene må tilfredstille to betingelser: 1.Den må være ikke_null og 2.den må være unik for hver instans som blir opprettet.

Entiteter Identifikasjon og Primær Nøkkel: Det er god praksis å definere primærnøkkelen til en entitet ved å bruke en egen attributt spesielt beregnet på dette: en objekt identifikator (OID). En OID har kun et formål: å tilegne hver instans av entiteten en unik identifikator. NB: Boken antar OID som implisitt definert for alle entiteter, og skriver ikke denne attributten opp i ER Diagrammene. Det er likevel viktig å være klar over at den er der.

Entiteter Identifikasjon og Primær Nøkkel: En kan i tillegg definere alternative nøkler: Disse nøkkelattributtene må også tilfredstille betingelsene om å være ikke_null og unik for hver instans av entiteten. Notasjon: Attributtnavn nøkkelsymbol Eksempel: Fornavn nøkkelsymbol Etternavn nøkkelsymbol

Entiteter IS A Hierarkier: ER modellen tillater designeren å organisere entiteter i et hierarki, der de deler felles egenskaper. Det grunnleggende(basic) generaliserte hierarki blir kalt IS A hierarki. Et IS A hiererki har en super entitet og en eller flere sub entiteter. Hierarkiet er ikke begrenset til to nivåer; en sub entitet kan igjen spesialiseres i en eller flere sub entiteter osv, så en kan designe så mange nivåer som en ønsker.

Entiteter IS A Hierarkier: En sub entitet arver alle attributter og relasjoner som er definert i super entiteten. En sub entitet kan legge til lokalt definerte attributter og relasjoner.

Entiteter IS A Hierarkier: Følgende sikrer at et ER skjema er lett å implementere ved å bruke vanlig database teknologi: 1. Hver entitet er definert som en spesialisering av max en super entitet. En sub entitet kan da arve fra kun en superentitet; multippel arv unngåes. 2. Hver instans av en super entitet blir spesialisert til kun en sub entitet. Dvs. instansen kan ikke være to eller flere subentiteter samtidig. 3. Hver entitet opptrer i max et generaliserende hierarki.

Entitet IS A Hierarkier: Eksempel på et IS A Hierarki: Book Novel Biography Thriller

Relasjoner representerer semantiske forbindelser mellom entiteter. En relasjon beskriver forholdet mellom entiteter. har et navn. En relasjon blir gitt navn som assosieres med betydningen forbindelsen har. Eksempel: Relasjonen mellom entitetene Artist og Album kan f.eks få navnet «Publikasjon».

Relasjoner Binære Relasjoner og Relasjonsroller: Den enkleste formen for relasjon er den binære relasjonen. Denne forbinder to entiteter. N ære relasjoner er tillatt men ikke anbefalt. Det anbefales heller å bruke multible binære relasjoner, noe N ære relasjoner lett kan oversettes til. En binær relasjon har to relasjonsroller. Hver av de to rollene uttrykker hvilken funksjon en av de to tilhørende entitetene har i relasjonen.

Relasjoner Binære Relasjoner og Relasjonsroller: I eksempelet med Artist og Album har vi en relasjonsrolle fra Artist til Album(rolle1) og en fra Album til Artist (rolle2). Rolle1 kan gies rollenavnet Publiserer, og rolle2 navnet Er_Publisert_Av, for å få frem hvilken funksjon entitetene Artist og Album har i relasjonen. Notasjon for relasjonsnavn: Skrives over eller under relajonslinjen. Notasjon for rolle: pil med retning fra en entitet til en annen, plassert over eller under relasjonslinjen.

Relasjoner Binære Relasjoner og Relasjonsroller: Eksempel på notasjon: Author Author2book Book Author_Book book2author

Relasjoner Relasjonsroller og Kardinalitet: En kan definere minimum og maksimum kardinalitetsbegrensning for en relasjonsrolle. Eksempel: En Artist kan publisere mellom 0 og N album: Vi kan dermed sette kardinalitetsbegrensning for rolle1 til: minkard=0, makskard=n. Notasjon: 0:N Et Album må ha minimum en artist, maksimum N artister. Kardinalitetsbegrensning for rolle2 kan bli: minkard=1, makskard=n. 1:N Relevante verdier for minimum kardinalitet er 0 eller 1, og for maksimum kardinalitet 1 eller N. Hvis minimum kardinaliteten = 0 er relasjonen valgfri, ellers er den obligatorisk.

Relasjoner Relasjonsroller og Kardinalitet: Basert på maksimumsverdiene blir relasjonene kalt: One To One hvis kardinaliteten er 1:1 One To Many hvis kardinaliteten er 1:N: og Many To Many hvis kardinaliteten er N:N Eksempel: Many To Many Author 0..N Book 1..N

MultiVerdi-Attributter Et multiverdi attributt er et attributt der objektet kan ha et sett av verdier. F.eks. kan en person ha en hel rekke med telefonnumre. Et multiverdi attributt blir representert ved hjelp av en entitet og en relasjon. Eksempel: Person 1..N TlfNr 1..1

Strukturerte Attributter Attributter med en indre struktur. F.eks. attributten Adresse, der hver adresse består av gatenavn, gatenr, postnummer, poststed/by, land. Et strukturert attributt blir også representert ved hjelp av en entitet og en relasjon. Eksempel: Person 1..N Address 1..1 Number Street City Province State

Relasjoner Med Attributter Relasjoner med Attributter beskriver en egenskap som refererer til et par av objekter (eller et sett av objekter). Relasjoner med Attributter representeres av en entitet og to (eller flere) relasjoner Eksempel: Karakteren en student får for avlagt eksamen i et fag. Student 0..N Grade 1..1 Course 1..1 Value:integer 0..N

N-ære Relasjoner En N ær relasjon er en relasjon som har flere enn to entiteter (N>2). Representeres av en entitet pluss N binære relasjoner. Eksempel: «A Supplier Supplies a Part to a Department» Part 0..N Supplier 0..N 1..1 Supply 1..1 Department 1..1 0..N

Utledet (Derivert) Informasjon Verdien til noen attributter eller relasjoner kan kalkuleres ut fra verdiene til andre elementer i skjemaet. Disse attributtene/relasjonene kalles for utledede(deriverte). ER har ikke standard notasjon for dette, men spesifikasjonen for en attributt eller relasjon kan lett utvides til å støtte derivert informasjon. En legger til en skråstrek foran attributt eller relasjons navnet. notasjon: /attributtnavn

Utledet (Derivert) Informasjon Utlednings(Derivasjons)regelen som definerer den deriverte verdien blir definert som er uttrykk(expression). Uttrykket blir så lagt til bak attributt eller relasjonsnavnet. Eksempler: /Rabattert_Pris {Pris*Rabatt} /Antall_Album {Count(Artist.ArtistToAlbum)} Utledningsregelen er her uttrykt som et sti uttrykk.

Mer informasjon og eksempler finnes på boken Designing Data-intensive Web Applications sine hjemmesider: http://www.webml.org/webml/page2.do?

Modeller for design av Web-Applikasjoner Kapittel 3 er tilgjengelig på: http:www.ii.uib.no/~eskil/fag og http:www.ii.uib.no/~arianna/fag