Databasdesign. E-R-modellen



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

Relationell databasdesign

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

Grunderna för relationsmodellen!

Reducering till relationsscheman

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

Karlstads Universitet, Datavetenskap 1

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

Andra relationella språk

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

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

Databaser design och programmering. Design processen ER- modellering

Uppdelning. Relationell databasdesign, FB Teori Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Lite om databasdesign och modellering

Funktionella beroenden - teori

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

Ett databashanteringssystem (DBHS) skiljer sig från andra programmeringssystem bl.a.

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

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

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

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

Logisk databasdesign

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

ER-Diagram. Databasutveckling Diagram

Tentamen för DD1370 Databasteknik och informationssystem

INTRODUKTION TILL ER ENTITY-RELATIONSHIP

Universitetet: ER-diagram

Databaser och Datamodellering Foreläsning IV

Relationsmodellen och syntetisk databasdesign

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

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

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

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

Databaser Design och programmering

Entity-Relationship-modellen

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

Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

GIS, databasteknik och kartografi. Databasmodellering

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

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

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

Webbprogrammering, grundkurs 725G54

Databasteori. Övningar

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

Karlstads Universitet, Datavetenskap 1

Tentamen för DD1370 Databasteknik och informationssystem

Konceptuella datamodeller

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

Informationssystem och databasteknik

Tentamen för DD1370 Databasteknik och informationssystem

Relationsdatabasdesign

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

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

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

Tentamen DATABASTEKNIK - 1DL116

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Tentamen för DD1370 Databasteknik och informationssystem

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

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

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

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

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

(Data)Modellering. nikos dimitrakas rum 2423

IT i organisationer och databasteknik

SQL, nästlade delfrågor Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga.

Ett annat exempel på en E-R modell. En bank. Beskrivning av banken

Databasteori Övningar

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

NORMALISERING. Mahmud Al Hakim

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

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

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

Frågeoptimering. Frågeoptimering kapitel 14

Induktionsprincipen Starka induktionsprincipen Välordningsprincipen Divisionsalgoritmen

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

Informationssystem och Databasteknik

Databaser - Design och programmering. Operationer i relationsalgebra. Att söka ut data. Exempel DBschema. Att plocka ut data, forts

Lösningar till tentamen i EDAF75

EMPS(NAME, SALARY, DEPT)

732G16: Databaser - Design och programmering

Tentamen för DD1370 Databasteknik och informationssystem

Design och underhåll av databaser

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

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

Lösningsförslag, tentamen i Databaser

Tentamen. Databasmetodik Lördag 27 september 2014 kl

TENTAMEN TDDB77 Databaser och Bioinformatik 22 augusti 2006, kl 14-18

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

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

Mitthögskolan ITM Telefon Access. Laborationskompendium för grunderna i databasen Microsoft Access. Detta exemplar tillhör:

TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18

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

Databaser - Design och programmering

Konceptuell modellering

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

Databaser. Vad du ska lära dig: Ordlista

Transkript:

Databasdesign Kapitel 6 Databasdesign E-R-modellen sid Modellering och design av databaser 1 E-R-modellen 3 Grundläggande begrepp 4 Begränsningar 10 E-R-diagram 14 E-R-design 16 Svaga entitetsmängder 19 Utvidgade E-R drag 20 Exempel 25 Reducering av E-R-diagram till tabeller 26

Databasdesign 6-1 Tre aspekter på att studera databashanteringssystem (DBHS): Modellering och design av databaser Design av en databas innebär att man skisserar upp de strukturer som behövs. Detta tillåter diskussion i förenklade termer innan man slår fast hur databasen implementeras. Designnotationer: Entitet/relationskap (E-R) Object Description Language (ODL) Programmering - förfrågningar och operationer som uppdaterar databasen (SQL). DBHS implementering. Modellering och design av databaser Faser vid utformning av en databas Kravspecifikation Specificerar vilka krav användarna har på databasen. Tekniker för att representera användarnas krav som diagram finns. (tas ej upp i dennna kurs utan kraven framställs verbalt) Begreppsmässig design Utformning av databasens logiska struktur. Val av datamodell (t.ex. E-R-modellen) Skapa ett begreppmässigt schema för databasen genom att tillämpa begreppen i datamodellen på kraven. Dvs. för E-R-modellen: schemat specificerar de entiteter som är representerade i databasen, deras attribut, relationerna mellan dem samt deras begränsningar.

Databasdesign 6-2 Den begreppsmässiga designfasen resulterar då i ett E-R-diagram som ger en grafisk representation av schemat. Specifikation av funktionella krav De funktionella kraven indikeras av schemat och beskriver de transaktioner (operationer) som kommer att utföras på databasen. Logisk design Schemat konverteras till en implementations/datamodell för databasen. Typiskt används den relationella datamodellen, dvs. det begreppsmässiga schemat konverteras till relationsschema (relationstabeller). För både E-R-scheman och ODL-designnotation finns det halvautomatiska sätt att konvertera till relationsdesign. (från E-R-diagram -> relationstabeller) Fysisk design Specifikation av de fysiska egenskaperna för databasen (t.ex. filorganisation, intern datastruktur )

E-R-modellen 6-3 E-R-modellen E-R datamodellen baseras på en uppfattning av en verklig värld som består av objekt kallande entiteter och relationskaper bland dessa objekt. En entitet är ett objekt som existerar och kan skiljas från andra objekt. Distinktionen sker genom att associera attribut, som beskriver objektet, med varje entitet. En relationskap är en association bland flera entiteter. En avbildningskardinalitet uttrycker antalet entiteter till vilka en entitet kan vara associerad via en relationskap. Från ett databasperspektiv måste distinktionen mellan individuella entiteter och relationskaper ske i termer av deras attribut. För att göra detta tillordnas en primärnyckel åt varje entitetsmängd. En entitetsmängd som inte har tillräckligt med attribut för att bilda en primärnyckel kallas en svag entitetsmängd, annars stark. Grafiskt: E-R-diagram

E-R-modellen, Grundläggande begrepp 6-4 Grundläggande begrepp Entitet Begreppet entitet är svårt att definiera formellt. Implicit är en entitet ett ting eller objekt som existerar och kan skiljas från andra objekt m.h.a. sina egenskaper. Ex.: bil person myra? En entitet kan vara konkret (person, bil) abstrakt (lån, semester) Entitetsmängd Representeras i E-R-diagram med en rektangel. En entitetsmängd (ej precist definierat) är en mängd av "liknande" entiteter, dvs. de har en mängd gemensamma karakteristika ("attribut"). Ex.: alla personer alla rödhåriga personer alla bilar Entitetsmängder är på schemanivå. Motsvarande på instansnivå är aktuella delmängder av alla element av en given entitetsmängd som finns i databasen. Ex.: Registercentralen kunde ha entitetsmängden bilar. I den aktuella instansen av denna entitetsmängd finns alla registrerade bilar i Finland, inte alla bilar i världen. Entitetsmängderna i en databas behöver inte vara disjunkta, t.ex. i en bankdatabas kan en viss person tillhöra både entitetsmängden customer och employee.

E-R-modellen, Grundläggande begrepp 6-5 Attribut Representeras i E-R-diagram med ellips, cirkel. En entitet representeras av en mängd attribut, dvs. beskrivande egenskaper hos alla element i en entitetsmängd. Ex.: customer = ( customer_id, customer_name, customer_street, customer_city ) Varje entitet har ett värde för varje attribut (värdet kan vara null). Mängden av tillåtna värden för ett attribut kallas attributets domän. Ex.: Attribut customer_city kan ha värdet Åbo. Formellt är ett attribut för en entitetsmängd en funktion som avbildar från entitetsmängden till en domän. Eftersom en entitetsmängd kan ha flera attribut kan varje entitet beskrivas med en mängd av par (attribut, datavärde), ett par per attribut. Ex.: { (kurs_id, 456302 ) (kurs_namn, Databaser ) } Attributtyper Enkelt / sammansatt attribut - är ej/ är uppdelat i flere delar, delattribut Ex.: adress kan bestå av delarna gatuadress, postnummer, stad. och gatuadress kan i sin tur vara indelat i gatunamn och nummer. adress gatuadress postnummer stad gatunamn nummer

E-R-modellen, Grundläggande begrepp 6-6 En-värt / flervärt attribut - kan ha ett / flere värden Flervärda attribut kan ges övre och undre gränser. Ex.: ett attribut telefon_nummer är flervärt om en person tillåts ha flere telefonnummer. Härlett attribut - värdet kan beräknas ur andra attribut Värdet för ett härlett attribut lagras ej utan beräknas då det behövs. Ex.: ålder kan beräknas givet ett födelsedatum

E-R-modellen, Grundläggande begrepp 6-7 Relationskap En relationskap sammanbinder två (binär relationskap) eller flera entiteter. Ex.: Vi kan definiera en relationskap som associerar studerande Calle med kurs 456302 vilket specificerar att Calle åhör kurs 456302. kurs studerande 456103 Logik 5 2 456302 Databaser 5 3 451100 Intro 5 1 Calle DT M Brita DT K Lasse IS M Relationskapsmängd Entitetsmängd Representeras i E-R-diagram av ruter (diamond) <> En relationskapsmängd är en mängd av relationskaper av samma typ. Formellt är den en matematisk relation på n (n > 2, ev. icke-distinkta) entitetsmängder. Om E 1,E 2,..., E n är entitetsmängder, så är en relationskapsmängd R en delmängd av { (e 1, e 2,..., e n ) e 1 E 1, e 2 E 2,..., e n E n } där (e 1, e 2,..., e n ) är en relationskap. "Värdet" på en relationskapsmängd kan ses som en tabell. Varje rad representerar de entiteter som deltar i relationskapen: studerande kurser Calle 456302 Brita 456302 Lasse 451100 {(Calle, 456302),(Brita,456302),(Lasse,451100)} kurs 456103 Logik 5 2 456302 Databaser 5 3 451100 Intro 5 1 studerande Calle DT M Brita DT K Lasse IS M

E-R-modellen, Grundläggande begrepp 6-8 Vanligen räcker binära relationskaper (sammanbinder två entitetsmängder) men i vissa fall måste tre eller flera entitetsmängder sammanbindas med en relationskap. Ex.: Relationskap mellan studerande, kurser och RÖassistenter (RÖ-grupper hålls av RÖassistenter) 2-vägsrelationskaper räcker för att associera en RÖ-assistent med en student, om varje kurs har bara en RÖ-assistent. studerande Sambandet mellan studenter och RÖassistenter går via kurser. åhör kurser En 3-vägsrelationskap behövs om RÖ-grupperna kan ha olika RÖ-assistenter. RÖassist. studerande assist- erar kurser åhör RÖassist. studerande kurser RÖassistent Calle 456302 Ulla Brita 456302 Annamari Lasse 451100 Ulla

E-R-modellen, Grundläggande begrepp 6-9 Deskriptiva attribut En relationskapsmängd kan ha deskriptiva attribut. Ex.: Ett attribut access_date kan associeras till depositor för att specificera datum då kunden senast accesserade sitt konto. customer (customer_name) depositor(...,access_date) account(account_number) Adams Brooks Curry 2 jan 2007 15 juli 2006 15 feb 2007 A-101 A-215 A-306 En relationskapsinstans i en relationskapsmängd måste kunna identifieras entydigt utan att utnyttja deskriptiva attribut.

E-R-modellen, Begränsningar 6-10 Avbildningskardinaliteter Uttrycker antalet entiteter till vilka en annan entitet kan vara associerad via en relationskapsmängd. Mest användbar för binära relationskapsmängder. För en binär relationskapsmängd måste avbildningskardinaliteten vara en av följande typer: En till en (1-1) En till många (1-m) Många till en (m-1) Många till många (m-m) I E-R-diagram anges "en" som en riktad linje ( ->) och många som en oriktad linje ( ) customer-id Ex.: en-till-en Ett lån associeras med högst customer-name customer-city en kund via relationskapen customer borrower och en kund associeras med högst ett lån via borrower Ex.: en-till-många customer-id Ett lån associeras med högst customer-name en kund via relationskapen customer borrower men en kund kan associeras med många (även 0) lån via borrower customer-street customer-street customer-city borrower borrower loan-number loan-number Ex.: många-till-en Ett lån kan associeras med flera customer-id customer-street kunder (även 0) men en kund kan customer-name customer-city associeras med högst ett lån Ex.: många-till-många customer borrower Ett lån kan associeras med flera kunder (även 0) och en kund kan associeras till flere lån (även 0). loan loan loan-number amount loan amount amount customer-id customer-street loan-number amount customer-name customer-city customer borrower loan

E-R-modellen, Begränsningar 6-11 Existensberoenden Entitet x säges vara existensberoende av entitet y om existensen av x är beroende av y. y kallas dominerande entitet (loan i exemplet) och x kallas underordnad entitet (payment i exemplet) Att x är existensberoende av y medför att om y strykes så strykes även x. Ex.: Om en loan-entitet strykes, så måste även alla dess associerade payment-entiteter strykas. loan loan-paym payment

E-R-modellen, Begränsningar 6-12 Nycklar Det är viktigt att specificera hur entiteter inom en given entitetsmängd och relationskaper inom en given relationskapsmängd skiljes åt. Från databasperspektivet måste skillnaden mellan dem uttryckas i termer av deras attribut. Begreppet nyckel gör det möjligt att göra en dylik identifikation. Entitetsmängder: Supernyckel: ett eller flera attribut som entydigt identifierar en entitet i en entitetsmängd. Kandidatnyckel: en minimal supernyckel (ingen äkta delmängd är en supernyckel). Primärnyckel: en kandidatnyckel vald av databaskonstruktören som den viktigaste för att identifiera entiteter i entitetsmängden ifråga. Relationskapsmängder: En relationskapsmängd måste även har en kandidatnyckel - en primärnyckel (som identifierar individuella relationskaper i relationskapsmängden) som i stort sett består av de attribut som utgör primärnycklarna för de entitetsmängder som definierar relationskapsmängden. Låt R vara en relationskapsmängd som involverar entitetsmängderna E 1, E 2,..., E n. Låt pn (E i ) beteckna mängden av alla attribut som bildar primärnyckeln för E i. Antag att attributnamnen är entydiga, om ej byt namn. Antag att R inte har några attribut. Då är attributen som beskriver individuella relationskaper för R: attribut(r) = pn (E 1 ) pn (E 2 )... pn(e n )

E-R-modellen, Begränsningar 6-13 Om R har deskriptiva attribut {a 1, a 2,..., a m }, så beskriver mängden pn(e 1 ) pn(e 2 )... pn(e n ) {a 1, a 2,..., a m } av attribut en individuell relationskapsmängd i R. I vardera fallet bildar attributmängden pn(e 1 ) pn(e 2 )... pn(e n ) en supernyckel för R. Sammansättningen av primärnyckeln beror på avbildningskardinalitet och på strukturen av attributassociationer med relationskapsmängden: Ex.: type-ass. customer-id customer-street emp-name address customer-name customer-city customer Om kunden bara har en bankir, dvs. cust-banker-relationen är m-1, så är primärnyckeln för cust-banker helt enkelt primärnyckeln för customer. För 1-1-relationer kan vardera primärnyckeln användas. cust- banker employee relationskapsmängden cust-banker representerar en association mellan en kund och dennes bankir. cust-banker har attributet type-ass som representerar naturen av relationskapen (t.ex. lånebeviljare, personlig bankir) Om cust-banker relationen är m-m består primärnyckeln av unionen av primärnycklarna för customer och employee