Relationsdatabasdesign, 2I-4067



Relevanta dokument
Konceptuell modellering

IT i organisationer och databasteknik

Introduktion till informationssystem Från verklighet till relationsdatabas Konceptuell modellering och databasmodellering Modelleringsmönster

Kontoutdelning EFTER dagens föreläsning (WinXP/FC/Daisy/Unix) Programvaror på kursen: MySQL MS Access 2003 Rational Rose

Informationssystem och Databasteknik

Relationsmodellen och syntetisk databasdesign

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Föreläsning 4 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Normalisering (Analytisk databasdesign)

(Data)Modellering. nikos dimitrakas rum 2423

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Databasdesign. E-R-modellen

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Karlstads Universitet, Datavetenskap 1

Databaser design och programmering. Design processen ER- modellering

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Föreläsning 3 Dagens föreläsning går igenom

IT i organisationer och databasteknik

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Lite om databasdesign och modellering

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

Databaser design och programmering. Fö 2: Design processen, ER-modellering

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Tentamen för DD1370 Databasteknik och informationssystem

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

Grunderna för relationsmodellen!

Tentamen DATABASTEKNIK - 1DL116

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

Analytisk relationsdatabasdesign

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Tentamen EIT:DB Databastmetodik 11/ kl Lösningsförslag

Informationssystem och databasteknik

Introduktion till databaskursen. Välkomna. till kursen. Databasteknik och informationssystem. DD1370 (kursomgång dbtinf12)

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

Exempel tentamen. Skriv bara på en sida av pappret Skriv namn på varje papper Skriv läsligt, annars rättas inte tentamen Alla hjälpmedel är tillåtna

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

Databaser - Design och programmering

ER-Diagram. Databasutveckling Diagram

INTRODUKTION TILL ER ENTITY-RELATIONSHIP

Databaser. Vad du ska lära dig: Ordlista

732G16: Databaser - Design och programmering

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

25/11/14. Databasteknik och informationssystem DD1370. Påminnelse inför Lab 1 redovisningen. Repetition: ER modellering (gammalt + nytt)

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

Relationsdatabasdesign

Kursens mål. Databasteknik TDDB48. Lärare. Kursorganisation. Laborationsinformation. Inlämning av laborationer. Responsible:

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

Exempel-tentamen 1. + Lösningsförslag. Inga hjälpmedel är tillåtna.

IT i organisationer och databasteknik

TDDD12 och TDDD46 Databasteknik. Lena Strömbäck

Tentamen för DD1370 Databasteknik och informationssystem

GIS, databasteknik och kartografi. Databasmodellering

Concepts learned this far. ER till relationer. ER till relationer. ER till relationer. TDDD12 Database Technology

Logisk databasdesign

Informationssystem och Databasteknik

16/11/14. Databasteknik och informationssystem DD1370. Information. Dagens föreläsning: ERmodeller Dagens föreläsning. Påminnelse: Kursens mål

Tentamen för DD1370 Databasteknik och informationssystem

Laboration 1: Figurer i hierarki

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Databaser och Datamodellering Foreläsning IV

Objektorientering. Grunderna i OO

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Funktionella beroenden - teori

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

11/11/13. Databasteknik och informationssystem DD1370. Dagens föreläsning. Dagens föreläsning: ERmodeller Jmf: Relationer i Base

Relationell databasdesign

E-R-modellen, E-R-diagram E-R-diagram. representerar entitetsmängder

Design och underhåll av databaser

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Del 2: ER-modellering och överföring till Databasstruktur v0.9

Databaser och databasdesign, 7,5 hp

Konceptuella datamodeller

Exempel-Tentamen III

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Reducering till relationsscheman

Föreläsning 6: Normalisering & funktionella beroenden

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Karlstads Universitet, Datavetenskap 1

D0004N Databaser I. Greenline. Petter Hedlin / epeehi-4 Rikard Stenmark / rikste-8 Markus Almberg / maralm-5

Semantik VT Introduktion. Dagens föreläsning. Morfem-taxonomi forts. Morfem-taxonomi. Lexikal semantik: studerar ords betydelse

Introduktionsmöte Innehåll

Transkript:

Relationsdatabasdesign 2I-4067 Relationsdatabasdesign, 2I-4067 Lärare Maria Bergholtz, rum 4636, telefon 6658, e-mail maria@dsv.su.se Nikos Dimitrakas, e-mail nikos-di@dsv.su.se Michael Persson, rum 2675, telefon 663, e-mail mpe@dsv.su.se Peter Wibom, telefon 6644 e-mail wibom@dsv.su.se Petia Wohed, rum 463, telefon 6674, e-mail petia@dsv.su. Obligatoriska moment 2 Inlämningsuppgifter som redovisas på 2 Seminarier Tentamen av

Relationsdatabasdesign 2I-4067 Föreläsning Introduktion till relationsmodellen Informationssystem Konceptuell modellering ER-scheman Modelleringsmönster: - Supertyper - subtyper - kategori - Template-Copy - strukturer - Relationsobjekt - Ingår-i -strukturer Inlämningsuppgift 2 av

Relationsdatabasdesign 2I-4067 Konceptuell modell,m,t,p m,m,t,p dynamisk modell interactive & embeded SQL Användargränsnitt DBMS ISA,m,t,p kokbok transformering +normalisering DB 3 av

Relationsdatabasdesign 2I-4067 Vad är en databas? Logiskt sammanhängande mängd av data, med en därtill hörande betydelse, strukturerad och försedd med data avsedda för ett visst ändamål, en viss användargrupp i åtanke och återspeglande någon aspekt av världen. En gemensam samling av logiskt relaterade data för att möta ett företags informationsbehov. 4 av

Relationsdatabasdesign 2I-4067 Vad är ett databashanteringssystem? En mängd program som tillåter användaren att skapa och underhålla databaser 5 av

Relationsdatabasdesign 2I-4067 DATABASSYSTEM Användare/Programmerare Applikationsprogram/Frågor DBMS Program för att hantera frågor/program Program för att hantera lagrade data Lagrad databasdefinition (metadata) Lagrad databas 6 av

Relationsdatabasdesign 2I-4067 Problem med traditionella filbaserade system Data definieras i användarprogram Data måste dubbellagras för att kunna användas av flera användare Applikationsprogram är beroende av speciella filformat Data från olika filer kan vara icke kompatibla Data lagras på ett icke-användarvänligt sätt Mål för databasbaserade system Dataoberoende Delning Beständighet/flexibilitet 7 av

Relationsdatabasdesign 2I-4067 Relationsdatabasdesign Logisk relationsdatabasdesign Design- specificera form och struktur Designa - specificera form och struktur structur... fysisk db-design logisk db-design 8 av

Relationsdatabasdesign 2I-4067 Fysisk design En telefonkatalog innehåller en datamängd, där varje element består av namn, adress och telefonnummer. Katalogen består av ett antal A4-sidor där varje sida innehåller tre spalter. Ett dataelement upptar en eller flera rader. Dataelementen är sorterade på namn. Den beskriver hur data är representerat, inte vad det betyder. 9 av

Relationsdatabasdesign 2I-4067 Logisk design En telefonkatalog för ett område innehåller följande uppgifter: För alla hushåll i området som har telefon finns namn på en eller flera personer i hushållet, samt hushållets adress och telefonnummer Den beskriver vad data betyder, inte hur det är representerat. 0 av

Relationsdatabasdesign 2I-4067 Relationsdatabas En relationsdatabas är en databas som uppfattas av användaren som en samling tabeller - oberoende av hur datamängden fysiskt är lagrad. av

Relationsdatabasdesign 2I-4067 Relations schema Project PRNR START KLART PLATS BUDGET Attribut Domän t.ex. Domänen för attributen BUDGET är Integer större än noll Domän(BUDGET) = {x: x???z+} Grad - antal attribut 2 av

Relationsdatabasdesign 2I-4067 Project Relation PRNR START KLART PLATS BUDGET Prnr 94020 9603 Goteborg 90 Prnr2 Prnr3 93026 955 9523 970630 Falun Stockholm 45 220 Tuppel ( sveng elska ) (Rad) Prnr4 9200 96070 Lund 550 Cell Kardinalitet - antalet rader (tuppler) 3 av

Relationsdatabasdesign 2I-4067 Egenskaper hos relationer Värden i varje cell är atomär Värden i varje kolumn är av samma typ Varje rad (tuple) är unik Ordningen mellan attributen är INTE oväsentlig Ordningen mellan raderna är oväsentlig Namnet för varje attribut är unikt för en relation 4 av

Relationsdatabasdesign 2I-4067 Relationsdatabasdesign Logisk databasdesign Logisk datamodell Fysisk databasdesign Sekundärminnesstrukturer för relationsdatabaser Transformation från logisk datamodell till relationsschema (syntetisk databasdesign) Normalisering av relationsschema (Analytisk databasdesign) Prestandaoptimering i relationsdatabaser 5 av

Relationsdatabasdesign 2I-4067 MODELLER Modell: En struktur som avbildar vissa aspekter av någon del av verkligheten Ex på modell - KARTA Modeller förenklar Modeller förvanskar - Grönland, Afrika Modeller fokuserar - topografisk, politisk 6 av

Relationsdatabasdesign 2I-4067 Konceptuell modellering En konceptuell modell beskriver data och datasamband på ett representationsoberoende sätt. Grundbegrepp: Objekt, Attribut (relationer), Typer (Entiteter), Regler. Objekt: företeelser av intresse Konkreta objekt: Eiffeltornet, George Washington, London Abstrakta objekt: Talet 7, Beethovens sjunde symfoni, Valutan Euro Attribut: Uttrycker relationer mellan objekt och egenskaper hos objekt. Typer (Entiteter) : Typer grupperar samman likartade objekt Konkreta typer: Personer, Byggnader, Bilar Abstrakta typer: Symfonier, Tal, Valutor Regler uttrycker vilka sakförhållanden som kan och bör föreligga i ett system En person kan vara gift med högst en annan person, En person måste ha ett personnummer. 7 av

Relationsdatabasdesign 2I-4067 Grafisk notation för konceptuella scheman: ER-diagram Entitet (typ) attribut (relation) APA Namn : Sträng 0.. äter..* BANAN attribut (relation) Avbildningsregel (för relationen, attributet) 8 av

Relationsdatabasdesign 2I-4067 ER-scheman på andra sätt : APA äter N BANAN Namn APA 0 äter BANAN Namn: Sträng 9 av

Relationsdatabasdesign 2I-4067 Attribut (relationer) har en DOMÄN och ett VÄRDEFÖRRÅD: APA Namn : Sträng 0....* BANAN Domän för äter är APA VÄrdeförråd för äter är BANAN Domän för namn är APA VÄrdeförråd för namn är Sträng En lexikal entitetstyp är en sträng eller ett tal (el. boolskt värde) Alla andra entiteter kallas icke lexikala entitetstyper. 20 av

Relationsdatabasdesign 2I-4067 BIL Regno : Sträng Avbildningsregler 0..* ägs_av PERSON Namn: Sträng En relation ( pil ) har avbildningsregler (kardinalitetsregler). Man kan sas läsa pilen i två riktningar och för varje riktning måste vi avgöra vilka avbildningsregler som gäller. Vi använder oss av en Minimum..Maximum -notation (alternativ finns...). I minimum-posistionen kan vi skriva värdet 0 eller. I maximimum -positionen kan vi skriva värdet eller *, där * står för många. Det ger oss fyra möjliga avbildningsregler: 0.., 0..*,.. och..*. I praktiken brukar man förkorta.. till. För att förstå vad de olika max..min-värdena står för kan vi börja med att betrakta relations-pilen från BIL:ens synvinkel. Om en BIL kan ägas av HÖGST EN PERSON så skriver vi en :a i max-positionen (annars *). Om en BIL måste ägas av NÅGON PERSON sätter vi en :a i min-positionen (annars 0). I just detta fall fattades beslutet att en BIL kan ägas av högst en person och att alla bilar ägas av någon. Dvs avbildningsregeln blev.., vilket vi förkortade till. Om en PERSON kan äga HÖGST EN BIl skriv en :a i max-position (annars *). Om en PERSON måste äga minst en BIL, skriv en :a i min-position (annars 0). Här tyckte vi att en PERSON kan äga många BIL:ar men inte nödvändigvis måste äga någon BIL, 0..*! 2 av

Relationsdatabasdesign 2I-4067 Avbildningsregler BIL Regno : Sträng ägs_av 0..* PERSON Namn: Sträng Även attribut (som t ex Regno och Namn) behöver få sina avbildningsregler bestämda. Detta kan i vissa notationer visas grafiskt i det konceptuella schemat (vilket har många fördelar). Ett sätt är att explicit rita ut relationen (via en pil) mellan entiteten i fråga och attributet: Regno BIL Sträng Ska utläsas varje BIL har högst ett registreringsnummer, Ett givet värde i mängden av text-strängar (t ex ABC23 ) kan vara relaterad till högst 0.. en BIL via attributet Regno. En BIL måste ha ett registreringnummer och, slutligen, det finns text-strängar (t ex Maria Bergholtz ) som inte utgör registreringsnummer. Som synes används samma princip som för avbildningsregler för relationer mellan entiteter. BIL Regno: Sträng UNIK, TOTAL Ett alternativ är att använda notationen ovan, den har nästan samma informationskapacitet som notationen till vänster ( en BIL kan ha högst ett värde på registreringsnummer, ett viss strängvärde hör till precis en BIL (dessa båda villkor gör Regno UNIKT) och en BIL måste ha ett registreringnummer (TOTAL:t). Däremot visar inte notationen ovan om det finns sträng-värden som inte utgör reg.nummer. 22 av

Relationsdatabasdesign 2I-4067 Modelleringsmönster: Arv Vilken verklighet man än vill avbilda så förekommer hierarkiska strukturer. Det betyder att vi måste fånga dessa strukturer i vår modell av samma verklighet. Däggdjur Djur Fåglar Gräsätare Rovdjur Pingvin Hovdjur Gnagare Tax Gnu Kanin 23 av

Relationsdatabasdesign 2I-4067 Konceptuell modell av en hierarkisk struktur: DJUR DÄGG- DJUR isa isa FÅGLAR HOVDJUR GRÄS- ÄTARE isa isa isa GNAGARE isa ROV- DJUR TAX isa isa PINGVIN isa isa GNU HARE 24 av

Relationsdatabasdesign 2I-4067 Boolean Militärtjänst 0..* isa MAN PERSON isa KVINNA 0.. Namn Arv Textsträng Heltal..* Skatt 0.. Pnr DJUR isa isa HUND KATT 0..* MAN och KVINNA är ömsesidigt uteslutande och uttömmande map PERSON HUND och KATT är ömsesidigt uteslutande men inte uttömmande map DJUR En arvs-hierarki består av sub- och supertyper. Subtyperna utgör en delmängd av supertypen. Om subtyperna täcker upp hela supertypen säger man att de är uttömmande (eng. exhaustive). Om en och samma instans inte kan tillhöra till flera subtyper säger man att subtyperna är ömsesidigt uteslut ande (eng. mutually independent). 25 av

Relationsdatabasdesign 2I-4067 Arv forts. En objekttyp kan ärva en annan objekttyp En objekttyp som ärver kallas subtyp Den objekttyp som ärvs från kallas supertyp Subtypen har samma attribut och samband som supertypen Subtypen kan ha ytterligare attribut och samband En supertyp kan vara abstrakt, dvs den kan inte instansieras Primärnyckeln för en subtyp måste vara densamma som för supertypen 26 av

Relationsdatabasdesign 2I-4067 Heltal Kundnr 0.. Arv Kund Kontohavare Konto..* Heltal Kontonr 0.. 0..* Namn Textsträng Person Bankbok 0..* Börsnoterad Boolean Företag Arbetar på..* 0..* Lånesumma Heltal Lån Hur hade schemat blivit om isa-relationer inte använts? 27 av

Relationsdatabasdesign 2I-4067 Arv forts. Om subtyper har alla attribut och relationer gemensamma: Överväg att kombinera dem till en subtyp. Lägg ev. till ett extra attribut i entiteten som tjänas som typ-beteckning. Om en subtyp är uttömmande map supertypen: Låt subtypen uppgå i supertypen. Om flera subtyper inte har några egna attribut eller relationer: Överväg att göra dem till en subtyp. 28 av

Relationsdatabasdesign 2I-4067 Andra typer av hierarkiska strukturer CONTINENT stands_on 0..* COUNTRY belongs_to 0..* Detta är en hierarkisk struktur som inte utgörs av en sub/supertyps hierarki! CITY CITY situated_in 0..* STREET 29 av

Relationsdatabasdesign 2I-4067 Reifiering SJUKDOM..* botar 0..* BEHANDLING blir: botas BOT 0..*..* botmedel SJUKDOM procent 0..* Flyttal BEHAND- LING Relationen botar är M:M. Om man vill lagra information som berör relationen botar måste relationen reifieras, dvs göras till ett objekt. Övriga M:M kan lämnas som de är på modelleringsnivå, men måste brytas upp när man skapar en relationsdatabas! 30 av

Relationsdatabasdesign 2I-4067 Rekursiva strukturer ARTIKEL blir: Flyttal 0..* procent SPECIFIKATION 0..* 0..* består_av Som synes egentligen ett specialfall av reifiering! 0..* 0..* del_i ARTIKEL består_ av 3 av

Relationsdatabasdesign 2I-4067 Template-Copy strukturer Vissa objekt kan ses som mallar för andra objekt, kopior. En mall beskriver de generella dragen hos kopiorna som i sin tur kan innehålla ett antal idividuella drag. Mallar är ofta abstrakta objekt medan kopior är konkreta objekt. Kopior kan ses som materialiseringar av mallar. BOK är ett typiskt exempel på en mall, boken som ett litterärt verk. BOK:en har en titel, en författare osv. De individuella kopiorna är de fysiska exemplaren av det litterära verket som kan ha egenskaper som vikt, antal sidor etc. BOK titel 0..* KOPIA av_typ Textsträng Författare 0..* Titel..0 Vikt 0..* Textsträng Flyttal Observera att KOPIA inte utgör en delmängd av BOK. Template- Copies är inte samma sak som supertyp-subtyp. Heltal Antal_sidor 0..* 32 av

Relationsdatabasdesign 2I-4067 Provider-Transfer-Aquisition-Recipient strukturer PRODUCER producer 0..* PURCHASE 0..* article PRODUCT CONSUMER provider 0..* Provider-Transfer-Aquisition-Recipient strukturer är ett vanligt förekommande modelleringsmönster. Bilden till höger uttgör ett exempel på ett sådant mönster där PRODUCER är lika med Provider, PURCHASE lika med Transfer, PRODUCT svarar mot Aquisition och CONSUMER är lika med Recipient. Andra exempel: En person köper en bil från en bilhandlare En person lånar en bok från ett bibliotek En fotbollsklubb köper en spelare från en annan fotbollsklubb (PRODUCER och CONSUMER behöver alltså inte nödvändigtvis vara olika!) 33 av

Relationsdatabasdesign 2I-4067 Modelleringsarbete är ett SAMARBETE mellan verksamhetskunniga och systemkonstruktörer! Arbetet innefattar: analys skapande förhandling och beslut Arbetet kräver: erfarenhet fantasi/kreativitet kommunikationsförmåga 34 av

Relationsdatabasdesign 2I-4067 Differeces in Terminology Synonyms Homonyms Ex: lecturer teacher Ex: article Scale differences Ex: Dollar - Ecu Celsius - Fahrenheit 35 av

Relationsdatabasdesign 2I-4067 Differences in Structure MAN married_to WOMAN PERSON sex String MAN WOMAN PERSON husband wife ISA ISA MARRIAGE MAN WOMAN 36 av

Relationsdatabasdesign 2I-4067 Differences in Structure PERSON PERSON ISA of EMPLOYEE works_at COMPANY EMPLOY- MENT at COMPANY 37 av

Relationsdatabasdesign 2I-4067 Textsträng Namn 0.. PERSON Övning reifiering är_medlem_i Textsträng Klubbnamn KLUBB 0....* 0..* Uttöka det konceptuella schemat ovan så att det klarar av att representera att en viss person gick in i en viss klubb vid ett visst tillfälle! av