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



Relevanta dokument
Reducering till relationsscheman

Databasdesign. E-R-modellen

Relationell databasdesign

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

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

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

Frågeoptimering. Frågeoptimering kapitel 14

Tentamen för DD1370 Databasteknik och informationssystem

Andra relationella språk

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

Tentamen för DD1370 Databasteknik och informationssystem

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

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

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

Entity-Relationship-modellen

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

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

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

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

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

INTRODUKTION TILL ER ENTITY-RELATIONSHIP

Tentamen för DD1370 Databasteknik och informationssystem

Databaser design och programmering. Design processen ER- modellering

Tentamen för DD1370 Databasteknik och informationssystem

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.

Relationsdatabasdesign

ER-Diagram. Databasutveckling Diagram

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

Karlstads Universitet, Datavetenskap 1

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

Tentamen för DD1370 Databasteknik och informationssystem

NORMALISERING. Mahmud Al Hakim

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

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.

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

Konceptuella datamodeller

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

Relationsmodellen och syntetisk databasdesign

Grunderna för relationsmodellen!

Lite om databasdesign och modellering

Relationer mellan objekt

Funktionella beroenden - teori

Karlstads Universitet, Datavetenskap 1

Objektorienterad Systemutveckling 1 (7,5 hp)

Föreläsning 8 i kursen Ma III, #IX1305, HT 07. (Fjärde föreläsningen av Bo Åhlander)

OOMPA 2D1359 Föreläsning 5

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

TNK046 GIS - Databaser Laborationsuppgift 1 Introduktion till Microsoft Access 2007

OOMPA 2D1359 Föreläsning 2

02/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Dagens föreläsning. Om Lab 1. De 11 Stegen (Kokbok)

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

(Data)Modellering. nikos dimitrakas rum 2423

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

Avancerad SQL Kapitel 4. Databaser: Avancerad SQL. sid SQL datatyper 1 Integritetsbegränsningar 3 Auktorisering 7 Inbäddad SQL 10 Dynamisk SQL 10

Databaser och Datamodellering Foreläsning IV

Objektorientering Användning

Databaser. Vad du ska lära dig: Ordlista

Att öva på och förstå ett program med flera samverkande klasser.

Vad är en designprocess?

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

Inkapsling (encapsulation)

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

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

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

Logisk databasdesign

Databaser Design och programmering

Introduktion till arv

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

Databasteori. Övningar

Modul DB1-1 Databasmodellering

Objektorientering. Grunderna i OO

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

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

Webbprogrammering, grundkurs 725G54

Tentamen plus lösningsförslag

Lösningar till tentamen i EDAF75

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

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

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

Databaser - Design och programmering. Programutveckling. Programdesign, databasdesign. Kravspecifikation. ER-modellen. Begrepps-modellering

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

GIS, databasteknik och kartografi. Databasmodellering

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Introduktion. Byggstenar TDBA

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

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

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

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

Informationssystem och Databasteknik

1 Skapa Tabell Skapa Relationer Redigera Relationer Redigera Fält i Tabell Lägga till Poster i Tabell...

Övningshäfte 3: Funktioner och relationer

Integritetsprincipen. Objektorienterad modellering och diskreta strukturer / design

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

Om inte denna rekommendation efterföljs kan vi tyvärr inte ge några garantier för att vi kan supportera de problem som då kan uppstå.

2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY!, där RIDKURS.KursId = KURS.KursId 3NF Hästnamn, Art, NY! NY! NY! NY!

Transkript:

E-R-modellen, E-R-diagram 6-14 Komponenter Rektanglar Ellipser Ruter Linjer E-R-diagram representerar entitetsmängder repr. attribut repr. relationskapsmängder länkar attribut till entitetsmängder och entitetsmängder till relationskapsmängder Dubbla ellipser repr. flervärda attribut Streckade ellipser repr. härledda attribut Dubbla linjer totalt deltagande av en entitetsmängd i en relationskapsmängd Primärnyckelattribut är understreckade En riktad linje från en relationskapsmängd till en entitetsmängd anger att relationskapsmängden är 1-1 eller m-1. En oriktad linje anger att den är 1-m eller m-m. last-name middle-name type-ass. date-of-birth first-name -id -street emp-name address -city tel-num cust- banker age

E-R-modellen, E-R-diagram 6-15 title level 3-vägsrelationskap branch-name branch-city assets job emp-name address emp-id branch works- on Endast en pil ut från en icke-binär relationskapsmängd är tillåten ty i annat fall kan relationsskapen tolkas på två olika sätt. Totalt deltagande av en entitetsmängd i en relationskapsmängd -id adress -number borrower Varje entitet i entitetsmängden () deltar i åtminstone en relationskap i relationskapsmängden (borrower). Kardinalitetsbegränsningar för relationskapsmängder -id adress -number borrower 0..* 1..1 Undre och övre gränser för antalet deltagare i en relationskap kan anges i formen l..h där l anger minimum och h maximum kardinalitet. En stjärna (*) för h betyder att inga begränsningar finns.

E-R-modellen, E-R-diagram 6-15 Roller Entitetsmängder för en relationskap behöver ej vara olika. Ex.: emp-name works- for emp-id tel-num manager worker Etiketterna "manager" och "worker" kallas roller; de anger hur -entiteten verkar via works-for-relationskapsmängden

E-R-modellen, Designfrågor 6-16 E-R-design Skall ett objekt modelleras som en entitet eller som ett attribut? emp-id emp-name tel-num Bättre om en person har många telefoner och information om t.ex. typen (bärbar, vägg,..) behövs, om flere personer delar en telefon? Många telefonnummer per person kan impl. som ett emp-name flervärt attribut emp-id tel-num location emp-- tel telephone Inget enkelt svar. Vilket alternativ som är bättre är beroende av strukturen hos organisationen - hurdan typ av information som behövs. Men allmänt gäller: En primärnyckel för en entitetsmängd bör inte väljas som attribut till en annan entitetsmängd istället för en relationskap. Primärnycklar för entitetsmängderna som är relaterade bör ej vara attribut för relationskapsmängd ty dessa ingår redan implicit i relationskapen. -id -number -id -number borrower

E-R-modellen, Designfrågor 6-17 Skall ett objekt modelleras som en entitetsmängd eller som en relationskapsmängd? -id -number branch-city branch-name adress assets brach? branch-name -id adress -number borrower En relationskapsmängd är ett sämre val än en entitetsmängd om ett lån bör kunna associeras med flere kunder eller med flere grenar. Ty om ett lån är gemensamt för flere kunder måste en relationskap per kund definieras. Dubblering av information i databasen. För varje delägare av lånet lagras -number och. Rättesnöre: För att modellera aktioner som sker mellan entitetsmängder används relationskapmängder.

E-R-modellen, Designfrågor 6-18 Skall relationskaper modelleras som binära eller icke-binära? Vissa icke-binära relationskaper kan representeras effektivare som flere binära relationskaper: mamma barn parent pappa mamma mother barn father pappa En icke-binär, n-faldig (n>2) relationskap kan alltid ersättas av flere binära relationskaper: C C R C A R B A R A E R B B E ärver R:s attribut. För E skapas ett attribut som identifierar entiteterna i E. För varje relationskap (a i, b i, c i ) i R skapas en entitet e i i E och för varje e i införs (e i, a i ) i R A (e i, b i ) i R B (e i, c i ) i R C En E-R-modell kan begränsas att omfatta enbart binära relationskapsmängder Detta är dock inte alltid önskvärt ty En n-faldig relationskapsmängd visar tydligare att flere entiteter deltar i en viss relationskap Kräver mera lagringskapacitet (flere tabeller, ett extra identifierande attribut). Begränsningarna på den icke-binära relationskapsmängden kan ej alltid överföras på de binära.

E-R-modellen, Svaga entitetsmängder 6-19 Svaga entitetsmängder En svag entitetsmängd har ingen primärnyckel (en entitetsmängd som har en primärnyckel kallas stark). Relaterat till begreppet existensberoende. Ex.: Entitetsmängden payment har tre attribut: pay-number, pay-date och pay-. pay-number är ett löpnummer startande från 1 för varje lån. Dvs. Betalningar på ett lån har unika nummer men betalningar på två olika lån har samma nummer. pay-number är ingen primärnyckel. pay-date diskriminator -number pay-number pay- -pay. payment Varje svag entitetmängd måste associeras med en identifierande entitetsmäng. Den svaga mängden säges vara existensberoende av den identifierande, starka mängden. Den associerande relationskapsmängden kallas identifierande relationskapsmängd. För att kunna skilja mellan alla de entiteter (i den svaga mängden) som är relaterade till en viss entitet i den identifierande mängden behövs en diskriminator eller partiell nyckel (dvs. pay-number i exemplet). Primärnyckel för en svag entitet : Primärnyckeln för den identifierande entiteten (på vilken den är existensberoende) + dess diskriminator Primärnyckeln för payment är alltså {-number, pay-number}

E-R-modellen, Utvidgade E-R-drag 6-20 Utvidgade E-R-drag Ibland kan vissa aspekter av en databas uttryckas med utvidgningar av den grundläggande E-R-modellen. T.ex.. Specialisering balance Generalisering account-number Attributarv overdraft- Aggregering interest-rate account Specialisering Specialisering är en top-down designprocess som grupperar entiteter inom en entitetsmängd till lägrenivåentitetsmänder: En entitetsmängd kan innehålla delmängder som kan åtskiljas från andra entiteter i mängden. T.ex. kan en delmängd ha attribut som ej de övriga entiteterna i mängden har. E-R-modellen tillåter gruppering av entiteter inom en entitetsmängd. Dessa undergrupperingar blir lägrenivåentitetsmängder som har attribut eller relationskaper som inte gäller för den högrenivåentitetsmängden. Ex.: Konton inom en entitetsmängd account med attributen accountnumber och klassificeras som saving-account eller checking-account. Alla konton beskrivs av attributen ovan och savingaccount dessutom av interest-rate och checking-account av overdraft-. Specialisering anges i E-Rdiagram m.h.a. en triangel kallad ISA (= is a ). account-number account balance checking-account IS An account interest-rate ISA overdraft- saving-account check.-account

E-R-modellen, Utvidgade E-R-drag 6-21 Designen för ett system kan förfinas stegvis genom att successivt tillämpa specialisering på undergrupp. account-number balance account depositor interest-rate ISA overdraft- saving-account check.-account ISA standard gold senior num-checks intr.-payment min-balance date-of-birth Generalisering Generalisering är en bottom-up designprocess som kombinerar ett antal entitetsmängder som delar samma drag till en högrenivåentitetsmängd. Specialisering och generalisering är således inversioner av varandra och representeras i ett E-R-diagram på samma sätt. Attributarv - en lägrenivåentitetsmängd ärver alla attribut och relationskap från den högrenivåentitetsmängden.

E-R-modellen, Utvidgade E-R-drag 6-22 Designinskränkningar på en generalisering: Begränsningar på vilka entiteter som kan vara medlemmar av en given lågrenivåentitetsmängd: Villkorsdefinierade begränsningar: medlemskapet bestäms av ett villkor som entiteten måste satisfiera för att tillhöra lågnivåmängden. Användardefinierade begränsningar: databasanvändaren bestämmer vilka entiteter som tillhör en given entitetsmängd. Begränsning / icke -begränsning av medlemskap till mera än en lägrenivåentitetsmängd inom en enda generalisering: En disjunkt generalisering kräver att en entitet tillhör bara en lågnivåentitetsmängd. En överlappande generalisering tillåter att en entitet tillhör flere lågnivåentitetsmängder (default). Fullständighetsbegränsningar: En total generalisering eller specialisering kräver att varje högnivåentitet tillhör en lågnivåentitetsmängd. En partiell generalisering eller specialisering tillåter att högnivåentiteter ej tillhör någon lågnivåentitetsmängd (default).

E-R-modellen, Utvidgade E-R-drag 6-23 Aggregering En begränsning i E-R-modellen är att den inte kan uttrycka relationskaper mellan relationskaper. Lösningen är att använda aggregering, en abstraktion där relationskaper behandlas som högrenivåentiteter. Ex.: Lånekunder kan få råd av flera än en -officer. soc-sec adress -number branch-name borrower - officer e-soc-sec tel-num emp-name Relationskapsmängderna borrower och -officer representerar samma information. Denna dubblering kan elimineras via aggregering.

E-R-modellen, Utvidgade E-R-drag 6-24 Aggregering Behandlar relationskap som en abstrakt entitet Tillåter relationskaper mellan relationskaper Abstraktion av relationskap till en ny entitet Utan att introducera redundans representerar följande diagram: att en kund kan ha lån att en anställd kan vara en officer för ett - -par. soc-sec adress -number branch-name borrower högnivåentitetsmängd (mängd av - -par) - officer e-soc-sec tel-num emp-name