Entity Relationship (ER) Diagram Model med DBMS Exempel
โก Smart sammanfattning
Enhetsrelationsdiagrammodellen (ER) med exempel pรฅ DBMS illustrerar en strukturerad metod fรถr att visuellt representera data och dess sammankopplingar inom relationsdatabaser. Den fรถreslogs av Peter Chen och ger en konceptuell modelleringsgrund fรถr att exakt definiera entiteter, attribut, relationer och deras kardinaliteter.

Vad รคr ett ER-diagram?
Entitetsrelationsdiagrammet (ER-diagrammet) รคr ett kraftfullt visuellt verktyg fรถr att utforma relationsdatabasstrukturer. Det fรถreslogs fรถrst av Peter Chen 1976 och ger en konceptuell modelleringsgrund som definierar entiteter, attribut, relationer och deras kardinaliteter med precision. Denna handledning tรคcker allt frรฅn grundlรคggande koncept till avancerade tekniker och hjรคlper dig att bemรคstra databasschemadesign.
ER-diagram innehรฅller olika symboler som anvรคnder rektanglar fรถr att representera entiteter, ovaler fรถr att definiera attribut och diamantformer fรถr att representera relationer.
Vid fรถrsta anblicken ser ett ER-diagram vรคldigt likt ett flรถdesschema. Ett ER-diagram innehรฅller dock mรฅnga specialiserade symboler, och deras betydelser gรถr modellen unik. Syftet med ett ER-diagram รคr att representera enhetens ramverksinfrastruktur.

ER-modellernas historia
Peter Chen fรถreslog ER-diagrammet 1976 i sin banbrytande artikel "The Entity-Relationship Model: Toward a Unified View of Data". Hans mรฅl var att skapa en enhetlig konvention som kunde anvรคndas fรถr bรฅde relationsdatabaser och nรคtverk. Chen fรถrestรคllde sig ER-modellen som en konceptuell modelleringsmetod som skulle รถverbrygga klyftan mellan verkliga krav och teknisk databasimplementering.
Sedan dess har ER-modellen utvecklats med olika notationssystem, inklusive Chen-notation (originalet), krรฅkfotsnotation (populรคr i moderna verktyg) och UML-baserade metoder. Trots dessa variationer fรถrblir kรคrnkoncepten konsekventa i alla implementeringar.
Varfรถr anvรคnda ER-diagram?
ER-diagram ger mรฅnga fรถrdelar fรถr databasdesign och utveckling:
- Visuell kommunikation: De ger en tydlig visuell representation som bรฅde tekniska och icke-tekniska intressenter kan fรถrstรฅ.
- Ritning fรถr utveckling: De visar exakt hur tabeller ska kopplas samman och vilka fรคlt varje tabell kommer att innehรฅlla.
- Klar fรถr รถversรคttning: ER-diagram kan direkt รถversรคttas till relationstabeller, vilket gรถr att du snabbt kan bygga databaser.
- Felfรถrebyggande: De hjรคlper till att identifiera designfel och redundanser fรถre implementering, vilket sparar tid och resurser.
- Dokumentation: De fungerar som bestรฅende dokumentation som hjรคlper nya teammedlemmar att fรถrstรฅ systemarkitekturen.
- Systemanalys: De hjรคlper till att identifiera alla enheter som finns i ett system och relationerna mellan dem.
ER-diagramkomponenter
Varje ER-diagram รคr uppbyggt av tre kรคrnkomponenter: entiteter, attribut och relationer. Att fรถrstรฅ varje komponent och hur de interagerar รคr avgรถrande fรถr att skapa effektiva databasdesigner.
Exempel pรฅ ER-diagram
Till exempel, i en universitetsdatabas kan vi ha entiteter fรถr Studenter, Kurser och Fรถrelรคsare. En studententitet kan ha attribut som Rollno, Namn och DeptID. De kan ha relationer med Kurser och Fรถrelรคsare.
enheter
En entitet representerar vilket verkligt objekt som helst โ levande eller icke-levande โ som tydligt kan identifieras och om vilket data kan lagras. Det kan vara en fysisk sak, ett faktum om fรถretaget eller en hรคndelse som intrรคffar i den verkliga vรคrlden. Enheter kan inkludera personer, platser, objekt, hรคndelser eller koncept.
Exempel pรฅ enheter per kategori:
- Person: Anstรคlld, student, patient, kund
- Plats: Butik, byggnad, kontor, lager
- Objekt: Maskin, Produkt, Bil, Bok
- Hรคndelse: Fรถrsรคljning, registrering, fรถrnyelse, transaktion
- Begrepp: Konto, Kurs, Avdelning, Projekt
Entitetsuppsรคttning
En entitetsmรคngd รคr en grupp liknande entiteter som delar gemensamma attribut. Till exempel bildar alla studenter pรฅ ett universitet en entitetsmรคngd av typen "Student". Entiteter representeras i ER-diagram med hjรคlp av rektanglar, med entitetsnamnet skrivet inuti.
Entiteter representeras av sina egenskaper, vilka ocksรฅ kallas attribut. Alla attribut har sina separata vรคrden. Till exempel kan en studententitet ha ett namn, en รฅlder och en klass som attribut.
Starka enheter kontra svaga enheter
Enheter klassificeras som antingen starka eller svaga baserat pรฅ deras fรถrmรฅga att existera sjรคlvstรคndigt. Att fรถrstรฅ denna distinktion รคr avgรถrande fรถr korrekt databasdesign.
En stark entitet har sin egen primรคrnyckel och kan existera oberoende. Till exempel kan en "Student"-entitet identifieras unikt med Student_ID utan att vara beroende av nรฅgon annan entitet.
En svag entitet saknar en egen primรคrnyckel och รคr beroende av en stark entitet (kallad รคgarentiteten) fรถr sin identifiering. Den anvรคnder en partiell nyckel (diskriminator) kombinerad med รคgarens primรคrnyckel fรถr att uppnรฅ unikhet. Till exempel, i ett banksystem รคr en "transaktions"-entitet beroende av en "konto"-entitet โ transaktionsnumret ensamt รคr inte unikt i hela databasen, men i kombination med kontonumret blir det unikt.
| Stark enhet | Svag enhet |
|---|---|
| Har sin egen primรคrnyckel | Har ingen primรคrnyckel; anvรคnder partiell nyckel |
| Representerad av en enda rektangel | Representerad av en dubbel rektangel |
| Primรคrnyckeln รคr understruken med heldragen linje | Delvis tonart รคr understruken med streckad linje |
| Kan existera oberoende | Beror pรฅ รคgarenheten fรถr existens |
| Kopplat till en enda diamantrelation | Sammankopplad med dubbel diamant (identifierande relation) |
| Exempel: Student, Anstรคlld, Produkt | Exempel: Transaktion, Beroende, Order_Item |
Fรถrhรฅllande
En relation representerar en koppling mellan tvรฅ eller flera entiteter. Relationer identifieras vanligtvis med hjรคlp av verb eller verbfraser som beskriver hur entiteter interagerar med varandra. I ER-diagram representeras relationer med diamantformer. Exempel: Tom arbetar pรฅ kemiavdelningen.
Entiteter deltar i relationer. Vi kan ofta identifiera relationer med verb eller verbfraser.
Exempel:
- Du deltar i denna fรถrelรคsning
- Jag hรฅller fรถrelรคsningen
- En student gรฅr pรฅ en fรถrelรคsning
- En fรถrelรคsare hรฅller en fรถrelรคsning
attribut
Ett attribut รคr en egenskap eller karaktรคristik som beskriver en entitet eller relation. Attribut ger den detaljerade information som gรถr varje entitetsinstans unik och meningsfull. I ER-diagram representeras attribut med hjรคlp av ovaler (ellipser) som รคr kopplade till deras รถverordnade entitet med en linje.
Till exempel kan en student-entitet ha attribut som Student_ID, Namn, Fรถdelsedatum, E-postadress och Telefonnummer.
Typer av attribut
| Attributtyp | BESKRIVNING | Exempelvis |
|---|---|---|
| Enkel (Atomic) | Kan inte delas upp ytterligare i mindre komponenter | Telefonnummer, personnummer, e-postadress |
| Komposit | Kan delas upp i mindre underattribut | Fullstรคndigt namn (fรถrnamn, mellannamn, efternamn), adress (gata, ort, postnummer) |
| Hรคrledd | Vรคrdet berรคknas frรฅn andra attribut; lagras inte direkt | ร lder (hรคrledd frรฅn fรถdelsedatum), Totalpris |
| Flervรคrderad | Kan innehรฅlla flera vรคrden fรถr en enda enhet | Telefon: Numbers, E-postadresser, Fรคrdigheter |
| Nyckelattribut | Identifierar varje entitetsinstans unikt (primรคrnyckel) | Student-ID, Anstรคlld-ID, ISBN |
Viktigt tips: I ER-diagram visas nyckelattribut med deras namn understrukna. Hรคrledda attribut visas i streckade ovaler och flervรคrdesattribut visas i dubbla ovaler.
Kardinalitet (relationstyper)
Kardinalitet definierar de numeriska begrรคnsningarna fรถr en relation โ specifikt hur mรฅnga instanser av en entitet som kan associeras med instanser av en annan entitet. Att fรถrstรฅ kardinalitet รคr avgรถrande fรถr att utforma effektiva databasstrukturer.
1. En-till-en (1:1)
En entitet frรฅn mรคngd A kan associeras med hรถgst en entitet frรฅn mรคngd B, och vice versa.
Exempel: En student tilldelas exakt ett student-ID, och varje student-ID tillhรถr exakt en student.
2. En-till-mรฅnga (1:N)
En entitet frรฅn mรคngd A kan associeras med flera entiteter frรฅn mรคngd B, men varje entitet i B รคr endast associerad med en entitet i A.
Exempel: En klass bestรฅr av flera elever.
3. Mรฅnga-till-ett (N:1)
Flera entiteter frรฅn mรคngd A kan associeras med en entitet frรฅn mรคngd B.
Mรฅnga elever tillhรถr till exempel samma klass.
4. Mรฅnga-till-mรฅnga (M:N)
Flera entiteter frรฅn mรคngd A kan associeras med flera entiteter frรฅn mรคngd B, och vice versa.
Studenter som grupp รคr till exempel associerade med flera fakultetsmedlemmar och fakultetsmedlemmar kan associeras med flera studenter.
ER-diagramsymboler och notationer
ER-diagram anvรคnder standardiserade symboler fรถr att representera olika komponenter. รven om det finns flera notationssystem, รคr de tvรฅ mest anvรคnda Chen-notationen och krรฅkfotsnotationen.
Chen-notation
Chen Notation, utvecklad av Peter Chen 1976, anvรคnder geometriska former fรถr att representera olika element:
| Symbol | Namn | Representerar |
|---|---|---|
| rektangel | Entity | Stark enhet (t.ex. student, produkt) |
| Double rektangel | Svag enhet | Enhet beroende av en annan (t.ex. transaktion) |
| Ellips/Oval | Attribut | En entitets egendom (t.ex. namn, ID) |
| Double ellips | Flervรคrdigt attribut | Attribut med flera vรคrden (t.ex. Telefon Numbers) |
| Streckad ellips | Hรคrlett attribut | Berรคknat vรคrde (t.ex. รฅlder frรฅn fรถdelsedatum) |
| Diamant | Fรถrhรฅllande | Kopplingar mellan enheter (t.ex. registreringar) |
| Double Diamant | Identifierande relation | Relation med svag enhet |
| linje | Lรคnk | Kopplar samman komponenter |
| Understruken text | Primรคrnyckel | Unik identifierare fรถr enheten |
Krรฅkafotnotation
Krรฅkfotsnotation (รคven kallad IE-notation) anvรคnds oftare i moderna databasdesignverktyg. Den anvรคnder olika radslut fรถr att representera kardinalitet och รคr sรคrskilt effektiv fรถr att visa "mรฅnga"-sidan av relationer.
| Symbol Description | Betydelse |
|---|---|
| Enkel vertikal linje (|) | Obligatorisk Ett (exakt ett) |
| Cirkel med linje (O|) | Valfri Ett (noll eller ett) |
| Krรฅkafot med linje (>|) | Obligatorisk Mรฅnga (en eller flera) |
| Krรฅkafot med cirkel (>O) | Valfritt Mรฅnga (noll eller fler) |
Chen-notation vs. krรฅkfot: Nรคr man ska anvรคnda varje
| Aspect | Chen-notation | Krรฅkafotnotation |
|---|---|---|
| bรคst fรถr | Konceptuell modellering, akademisk anvรคndning | Fysisk/logisk modellering, industriell anvรคndning |
| Attributvisning | Visar alla attribut visuellt | Listar attribut inuti entitetsrutan |
| Fรถrekomst | Anvรคnder siffror (1, N, M) | Anvรคnder visuella symboler |
| Komplexitet | Kan bli rรถrigt | Mer kompakt och renare |
| Verktygssupport | Begrรคnsat stรถd fรถr moderna verktyg | Brett stรถd i verktyg |
Hur man skapar ett Entity Relationship Diagram (ERD)
I den hรคr handledningen om ER-diagram (ERD) ska vi lรคra oss hur man skapar ett ER-diagram. Fรถljande รคr steg fรถr att skapa ett ER-diagram:
Lรฅt oss studera dem med ett exempel pรฅ entitetsrelationsdiagram:
Pรฅ ett universitet registrerar sig en student i kurser. En student mรฅste tilldelas minst en kurs. En enda professor undervisar i varje kurs. Fรถr att upprรคtthรฅlla undervisningskvaliteten kan en professor endast ge en kurs.
Steg 1) Enhetsidentifiering
Vi har tre enheter:
- student
- Kurs
- Professor
Steg 2) Relationsidentifiering
Vi har fรถljande tvรฅ relationer:
- Studenten รคr delad en kurs
- Professorn levererar en kurs
Steg 3) Kardinalitetsidentifikation
Frรฅn problemformuleringen vet vi att:
- En elev kan tilldelas multipel kurser
- En professor kan endast leverera ett Naturligtvis
Steg 4) Identifiera attribut
Du behรถver studera de filer, formulรคr, rapporter och data som fรถr nรคrvarande hanteras av organisationen fรถr att identifiera attribut. Du kan ocksรฅ genomfรถra intervjuer med olika intressenter fรถr att identifiera entiteter. Inledningsvis รคr det viktigt att identifiera attributen utan att mappa dem till en viss entitet.
Nรคr du har en lista med attribut mรฅste du mappa dem till de identifierade entiteterna. Se till att ett attribut ska paras ihop med exakt en entitet. Om du tror att ett attribut ska tillhรถra mer รคn en entitet, anvรคnd en modifierare fรถr att gรถra det unikt.
Nรคr mappningen รคr klar, identifiera de primรคra nycklarna. Om en unik nyckel inte รคr lรคttillgรคnglig, skapa en.
| Entity | Primรคrnyckel | Attribut |
|---|---|---|
| student | Student-ID | Elevs namn |
| Professor | Anstรคllnings-ID | Professornamn |
| Kurs | Course_ID | Kursnamn |
Fรถr kursentitet kan attribut vara varaktighet, poรคng, uppgifter etc. Fรถr enkelhetens skull har vi bara betraktat ett attribut.
Steg 5) Skapa ERD:n
En mer modern representation av ett exempel pรฅ ett entitetsrelationsdiagram:
Bรคsta praxis fรถr effektiva ER-diagram
Fรถlj dessa riktlinjer fรถr att skapa tydliga, lรคttskรถtta och effektiva ER-diagram:
- Eliminera redundans: Ta bort dubbletter av entiteter, attribut eller relationer.
- Anvรคnd tydliga namngivningskonventioner: Anvรคnd konsekventa, beskrivande namn. Undvik fรถrkortningar.
- Validera mot krav: Sรคkerstรคll att diagrammet stรถder alla datalagringsbehov.
- Hรฅll det enkelt: Skapa flera diagram pรฅ olika nivรฅer istรคllet fรถr ett rรถrigt diagram.
- Anvรคnd fรคrg sparsamt: Anvรคnd fรคrger konsekvent fรถr att markera kategorier.
- Dokumentantaganden: Inkludera anteckningar som fรถrklarar antaganden om affรคrsregler.
- Revmed intressenter: Lรฅt affรคrsanvรคndare och det tekniska teamet granska diagrammet.
- Versionskontroll: Behรฅll versioner allt eftersom designen utvecklas.
ER-diagram kontra UML-klassdiagram
รven om bรฅde ER-diagram och UML-klassdiagram anvรคnds fรถr datamodellering, tjรคnar de olika syften och sammanhang. Att fรถrstรฅ nรคr man ska anvรคnda var och en รคr viktigt fรถr effektiv systemdesign.
| Aspect | ER-diagram | UML klassdiagram |
|---|---|---|
| Huvudsakliga syfte | Databasdesign | Programvara/objektdesign |
| Fokus | Data och relationer | Objekt, metoder och beteenden |
| Metoder/Operationer | Stรถds inte | Fullt stรถd |
| Arv | Begrรคnsad (endast i EER) | Fullt stรถd |
| Industrianvรคndning | Databasadministratรถrer, dataanalytiker | Programvaruutvecklare, arkitekter |















