270 likes | 553 Views
Datamodellering med E/R-diagram. Datamodellering. ER ( E ntity R elationship) - diagram. Konceptuell datamodellering ER modellen beskriver data utifrån entiteter attribut relationer. Entiteter. ”Sak” i verkliga världen existerar fysiskt, ex bil, student
E N D
ER (Entity Relationship) - diagram • Konceptuell datamodellering • ER modellen beskriver data utifrån • entiteter • attribut • relationer
Entiteter • ”Sak” i verkliga världen • existerar fysiskt, ex bil, student • existerar konceptuellt, ex univ.kurs, jobb
Entiteter och attribut • Varje entitet har attribut, dvs. egenskaper som beskriver entiteten • Student: namn, ålder, adress...
Attributens värde • En existerande entitet har värden på sina attribut • student s1: ”Kalle”, 47, ”Karlstad” • Denna typ av data utgör majoriteten av information sparad i en databas!
Sammansatta attribut • Kan delas ned i mindre delar som har oberoende betydelse
Mångvärdes attribut • Vanligtvis har ett attribut bara ett värde, men... • Vad händer om ex. en bil har tre olika färger?
Härledda attribut • Exempelvis kan man härleda en persons ålder från personnummer och nuvarande år
Entitetstyper • Definierar en mängd av entiteter som har samma attribut (varje entitet i mängden har dock egna värden på attributen) • En entitetstyp beskrivs därmed med hjälp av entitetens namn och dess attribut • STUDENT: Namn, ålder, adress
Entitetsmängder • Samlingen/mängden av alla entiteter av en viss entitetstyp i databasen vid någon given tid
Nyckelattribut • Varje entitetstyp skall ha ett attribut vars värde skall vara unikt för varje enskild entitet i entitetsmängden • Student: Personnummer, namn, ålder
Relationer mellan entiteter • Som i: samband mellan entiteter
Relationer och attribut • En relation kan också ha attribut • Exempelvis: en student på en kurs har ett betyg...
DAV B04 - Databasteknik Mappning mellan ER-diagram och relationsmodellen (kap 7)
Mappning ER-diagram / relationsmodellen • Används för att skapa den logiska databasdesignen som baseras på den konceptuella designen
Algoritm • Finns en algoritm för att stegvis utföra mappningen • denna finns mer detaljerat beskriven i kapitel 7.1
Starka entiteter • Steg 1 ~ • varje stark entitetet blir en basrelation där primärnyckeln i relationen motsvarar nyckelattributet(en) i entiteten
Svaga entiteter • Steg 2 ~ • bildar sin primärnyckel genom att ta • primärnyckeln från ”ägande” relationen (som främmandenyckel) och egen partiell nyckel tillsammans • Reglerna för främmandenycklar i en relation mellan en svag och en stark entitet måste vara • DELETE CASCADES • UPDATE CASCADES • Visar på beroendeförhållandet mellan entiteterna
1:1 förhållanden • Steg 3 ~ • välj en av entiterna och lägg in primärnyckeln i den ena som främmandenyckel i den andra • eventuella attribut till relationen mellan dessa bör hamna på samma sida
1:N förhållanden • Steg 4 ~ • introducera primärnyckeln från ”en” relationen som främmandenyckel i relationen på ”många” sidan • eventuella attribut till relationen (sambandet) mellan dessa två entiteter migreras till ”många” sidan
N:M förhållanden • Steg 5 ~ • varje många-till-många relation (samband) blir en basrelation • varje sådan basrelation måste innehålla minst en främmandenyckel från varje deltagare i relationen • primärnyckeln kan skapas genom kombinationen av främmandenycklarna eller genom att introducera ett nytt attribut
Attribut • Steg 6 ~ • Varje egenskap i för en entitet blir ett attribut i den relation den tillhör. • Undantaget är om attributet för entiteten är ett ”mångvärdes” attribut, i så fall skapas en ny relation
Värdedomäner • Skapas för alla attributens värdemängder