Entity Relationship (ER) Diagram Model med DBMS Eksempel
โก Smart oppsummering
Eksempel pรฅ enhetsrelasjonsdiagrammodell (ER) med DBMS illustrerer en strukturert metode for รฅ visuelt representere data og deres sammenkoblinger i relasjonsdatabaser. Foreslรฅtt av Peter Chen, gir den et konseptuelt modelleringsgrunnlag for รฅ definere enheter, attributter, relasjoner og deres kardinaliteter presist.
Hva er et ER-diagram?
Entitetsrelasjonsdiagrammet (ER-diagrammet) er et kraftig visuelt verktรธy for รฅ designe relasjonelle databasestrukturer. Det ble fรธrst foreslรฅtt av Peter Chen i 1976, og gir et konseptuelt modelleringsgrunnlag som definerer enheter, attributter, relasjoner og deres kardinaliteter med presisjon. Denne veiledningen dekker alt fra grunnleggende konsepter til avanserte teknikker, og hjelper deg med รฅ mestre databaseskjemadesign.
ER-diagrammer inneholder forskjellige symboler som bruker rektangler til รฅ representere enheter, ovaler til รฅ definere attributter og diamantformer til รฅ representere relasjoner.
Ved fรธrste รธyekast ser et ER-diagram veldig likt et flytskjema. Et ER-diagram inneholder imidlertid mange spesialiserte symboler, og betydningene deres gjรธr denne modellen unik. Formรฅlet med et ER-diagram er รฅ representere enhetsrammeverkets infrastruktur.

Historien om ER-modeller
Peter Chen foreslo ER-diagrammet i 1976 i sin banebrytende artikkel ยซThe Entity-Relationship Model: Toward a Unified View of Dataยป. Mรฅlet hans var รฅ skape en ensartet konvensjon som kunne brukes for bรฅde relasjonsdatabaser og nettverk. Chen sรฅ for seg ER-modellen som en konseptuell modelleringstilnรฆrming som ville bygge bro mellom virkelige krav og teknisk databaseimplementering.
Siden den gang har ER-modellen utviklet seg med ulike notasjonssystemer, inkludert Chen-notasjon (originalen), krรฅkefotnotasjon (populรฆr i moderne verktรธy) og UML-baserte tilnรฆrminger. Til tross for disse variasjonene forblir kjernekonseptene konsistente pรฅ tvers av alle implementeringer.
Hvorfor bruke ER-diagrammer?
ER-diagrammer gir en rekke fordeler for databasedesign og -utvikling:
- Visuell kommunikasjon: De gir en tydelig visuell representasjon som bรฅde tekniske og ikke-tekniske interessenter kan forstรฅ.
- Plan for utvikling: De viser nรธyaktig hvordan tabeller skal kobles sammen og hvilke felt hver tabell skal inneholde.
- Klar for oversettelse: ER-diagrammer kan oversettes direkte til relasjonstabeller, slik at du raskt kan bygge databaser.
- Feilforebygging: De hjelper med รฅ identifisere designfeil og overflรธdigheter fรธr implementering, noe som sparer tid og ressurser.
- Dokumentasjon: De fungerer som varig dokumentasjon som hjelper nye teammedlemmer med รฅ forstรฅ systemarkitekturen.
- System analyse: De hjelper med รฅ identifisere alle enheter som finnes i et system og forholdet mellom dem.
ER-diagramkomponenter
Hvert ER-diagram er bygget opp av tre kjernekomponenter: enheter, attributter og relasjoner. ร forstรฅ hver komponent og hvordan de samhandler er viktig for รฅ lage effektive databasedesign.
Eksempler pรฅ ER-diagram
I en universitetsdatabase kan vi for eksempel ha enheter for Studenter, Kurs og Forelesere. En studententitet kan ha attributter som Rollnr., Navn og AvdelingsID. De kan ha relasjoner med Kurs og Forelesere.
enheter
En enhet representerer ethvert objekt i den virkelige verden โ levende eller ikke-levende โ som kan identifiseres tydelig og som det kan lagres data om. Det kan vรฆre en fysisk ting, et faktum om bedriften eller en hendelse som skjer i den virkelige verden. Enheter kan inkludere personer, steder, objekter, hendelser eller konsepter.
Eksempler pรฅ enheter etter kategori:
- person: Ansatt, student, pasient, kunde
- Sted: Butikk, bygning, kontor, lager
- Gjenstand: Maskin, produkt, bil, bok
- Hendelse: Salg, registrering, fornyelse, transaksjon
- Konsept: Konto, Kurs, Avdeling, Prosjekt
Enhetssett
Et entitetssett er en gruppe lignende enheter som deler felles attributter. For eksempel danner alle studenter ved et universitet et ยซStudentยป-entitetssett. Enheter er representert i ER-diagrammer ved hjelp av rektangler, med enhetsnavnet skrevet inni.
Enheter er representert av egenskapene sine, som ogsรฅ kalles attributter. Alle attributter har sine separate verdier. For eksempel kan en studententitet ha navn, alder og klasse som attributter.
Sterke enheter vs. svake enheter
Enheter klassifiseres som enten sterke eller svake basert pรฅ deres evne til รฅ eksistere uavhengig. ร forstรฅ dette skillet er avgjรธrende for riktig databasedesign.
En sterk entitet har sin egen primรฆrnรธkkel og kan eksistere uavhengig. For eksempel kan en ยซStudentยป-entitet identifiseres unikt av Student_ID uten รฅ vรฆre avhengig av noen annen entitet.
En svak enhet mangler en egen primรฆrnรธkkel og er avhengig av en sterk enhet (kalt eierenheten) for identifikasjon. Den bruker en delvis nรธkkel (diskriminator) kombinert med eierens primรฆrnรธkkel for รฅ oppnรฅ unikhet. I et banksystem er for eksempel en ยซtransaksjonsยป-enhet avhengig av en ยซkontoยป-enhet โ transaksjonsnummeret alene er ikke unikt pรฅ tvers av hele databasen, men kombinert med kontonummeret blir det unikt.
| Sterk enhet | Svak enhet |
|---|---|
| Har sin egen primรฆrnรธkkel | Har ikke en primรฆrnรธkkel; bruker delvis nรธkkel |
| Representert av et enkelt rektangel | Representert av et dobbelt rektangel |
| Primรฆrnรธkkelen er understreket med heltrukket linje | Delvis toneart er understreket med stiplet linje |
| Kan eksistere uavhengig | Avhenger av eierenheten for eksistens |
| Koblet til forholdet mellom รฉn diamant | Forbundet med dobbel diamant (identifiserende forhold) |
| Eksempel: Student, Ansatt, Produkt | Eksempel: Transaksjon, Avhengig, Ordrevare |
Slektskap
En relasjon representerer en assosiasjon mellom to eller flere enheter. Relasjoner identifiseres vanligvis ved hjelp av verb eller verbfraser som beskriver hvordan enheter samhandler med hverandre. I ER-diagrammer representeres relasjoner ved hjelp av diamantformer. Eksempel: Tom jobber i kjemiavdelingen.
Enheter tar del i relasjoner. Vi kan ofte identifisere relasjoner med verb eller verbfraser.
Eksempler:
- Du deltar pรฅ denne forelesningen
- Jeg holder foredraget
- En student deltar pรฅ en forelesning
- En foreleser holder et foredrag
attributter
Et attributt er en egenskap eller et kjennetegn som beskriver en enhet eller et forhold. Attributter gir den detaljerte informasjonen som gjรธr hver enhetsforekomst unik og meningsfull. I ER-diagrammer er attributter representert ved hjelp av ovaler (ellipser) koblet til den overordnede enheten med en linje.
For eksempel kan en student-enhet ha attributter som Student_ID, Navn, Fรธdselsdato, E-post og Telefonnummer.
Typer attributter
| Attributttype | Tekniske beskrivelser | Eksempel |
|---|---|---|
| Enkel (Atomic) | Kan ikke deles ytterligere inn i mindre komponenter | Telefonnummer, personnummer, e-post |
| Kompositt | Kan deles opp i mindre underattributter | Fullt navn (fornavn, mellomnavn, etternavn), adresse (gate, poststed, postnummer) |
| Avledet | Verdien beregnes fra andre attributter; lagres ikke direkte | Alder (avledet fra fรธdselsdato), totalpris |
| Flerverdig | Kan inneholde flere verdier for en enkelt enhet | Phone Numbers, E-postadresser, Ferdigheter |
| Nรธkkelattributt | Identifiserer hver enhetsforekomst unikt (primรฆrnรธkkel) | Student-ID, ansatt-ID, ISBN |
Nรธkkel Tips: I ER-diagrammer vises nรธkkelattributter med navnene understreket. Avledede attributter vises i stiplede ovaler, og flerverdiattributter vises i doble ovaler.
Kardinalitet (relasjonstyper)
Kardinalitet definerer de numeriske begrensningene for en relasjon โ nรฆrmere bestemt hvor mange forekomster av รฉn enhet som kan knyttes til forekomster av en annen enhet. ร forstรฅ kardinalitet er viktig for รฅ designe effektive databasestrukturer.
1. En-til-en (1:1)
รn enhet fra sett A kan vรฆre assosiert med maksimalt รฉn enhet fra sett B, og omvendt.
Eksempel: รn student fรฅr tildelt nรธyaktig รฉn student-ID, og โโhver student-ID tilhรธrer nรธyaktig รฉn student.
2. En-til-mange (1:N)
รn enhet fra sett A kan vรฆre assosiert med flere enheter fra sett B, men hver enhet i B er bare assosiert med รฉn enhet i A.
Eksempel: รn klasse bestรฅr av flere elever.
3. Mange-til-en (N:1)
Flere enheter fra sett A kan assosieres med รฉn enhet fra sett B.
Mange elever tilhรธrer for eksempel samme klasse.
4. Mange-til-mange (M:N)
Flere enheter fra sett A kan assosieres med flere enheter fra sett B, og omvendt.
For eksempel er studenter som en gruppe assosiert med flere fakultetsmedlemmer, og fakultetsmedlemmer kan assosieres med flere studenter.
ER-diagramsymboler og notasjoner
ER-diagrammer bruker standardiserte symboler for รฅ representere ulike komponenter. Selv om det finnes flere notasjonssystemer, er de to mest brukte Chen-notasjonen og krรฅkefotnotasjonen.
Chen-notasjon
Chen-notasjon, utviklet av Peter Chen i 1976, bruker geometriske former for รฅ representere forskjellige elementer:
| symbol | Navn | Representerer |
|---|---|---|
| rektangel | Entity | Sterk enhet (f.eks. student, produkt) |
| Double rektangel | Svak enhet | Enhet avhengig av en annen (f.eks. transaksjon) |
| Ellipse/Oval | Egenskap | En enhets egenskap (f.eks. navn, ID) |
| Double Ellipse | Flerverdig attributt | Attributt med flere verdier (f.eks. Telefon Numbers) |
| Stiplet ellipse | Avledet attributt | Beregnet verdi (f.eks. alder fra fรธdselsdato) |
| Diamant | Slektskap | Tilknytning mellom enheter (f.eks. registreringer) |
| Double Diamant | Identifiserende forhold | Forholdet til den svake enheten |
| linje | link | Kobler komponenter sammen |
| Understreket tekst | Primรฆrnรธkkel | Unik identifikator for enhet |
Krรฅkefotnotasjon
Krรฅkefotnotasjon (ogsรฅ kalt IE-notasjon) brukes oftere i moderne databasedesignverktรธy. Den bruker forskjellige linjeavslutninger for รฅ representere kardinalitet og er spesielt effektiv for รฅ vise "mange"-siden av relasjoner.
| symbol Description | Betydning |
|---|---|
| Enkel vertikal linje (|) | Obligatorisk รฉn (nรธyaktig รฉn) |
| Sirkel med linje (O|) | Valgfri รฉn (null eller รฉn) |
| Krรฅkefot med strek (>|) | Obligatorisk Mange (en eller flere) |
| Krรฅkefot med sirkel (>O) | Valgfritt Mange (null eller mer) |
Chen-notasjon vs. krรฅkefot: Nรฅr skal man bruke hver av dem?
| Aspekt | Chen-notasjon | Krรฅkefotnotasjon |
|---|---|---|
| Best For | Konseptuell modellering, akademisk bruk | Fysisk/logisk modellering, bruk i industrien |
| Attributtvisning | Viser alle attributter visuelt | Viser attributter i enhetsboksen |
| kardinalitet | Bruker tall (1, N, M) | Bruker visuelle symboler |
| kompleksitet | Kan bli rotete | Mer kompakt og renere |
| Verktรธysstรธtte | Begrenset stรธtte for moderne verktรธy | Bredt stรธttet i verktรธy |
Hvordan lage et Entity Relationship Diagram (ERD)
I denne veiledningen for ER-diagram (ERD) skal vi lรฆre hvordan du lager et ER-diagram. Fรธlgende er trinnene for รฅ lage et ER-diagram:
La oss studere dem med et Entity Relationship Diagram Eksempel:
Pรฅ et universitet melder en student seg pรฅ kurs. En student mรฅ vรฆre tildelt minst ett kurs. รn professor underviser i hvert kurs. For รฅ opprettholde undervisningskvaliteten kan en professor bare levere ett kurs.
Trinn 1) Enhetsidentifikasjon
Vi har tre enheter:
- Student
- Kurs
- Professor
Trinn 2) Relasjonsidentifikasjon
Vi har fรธlgende to forhold:
- Studenten er tildelt et kurs
- Professoren leverer et kurs
Trinn 3) Kardinalitetsidentifikasjon
Fra problemformuleringen vet vi at:
- En student kan tildeles flere kurs
- En professor kan bare levere en kurs
Trinn 4) Identifiser attributter
Du mรฅ studere filene, skjemaene, rapportene og dataene som for tiden vedlikeholdes av organisasjonen for รฅ identifisere attributter. Du kan ogsรฅ gjennomfรธre intervjuer med ulike interessenter for รฅ identifisere enheter. I utgangspunktet er det viktig รฅ identifisere attributtene uten รฅ tilordne dem til en bestemt enhet.
Nรฅr du har en liste over attributter, mรฅ du tilordne dem til de identifiserte enhetene. Sรธrg for at et attributt skal pares med nรธyaktig รฉn enhet. Hvis du mener at et attributt skal tilhรธre mer enn รฉn enhet, kan du bruke en modifikator for รฅ gjรธre det unikt.
Nรฅr kartleggingen er ferdig, identifiserer du primรฆrnรธklene. Hvis en unik nรธkkel ikke er lett tilgjengelig, oppretter du en.
| Entity | Primรฆrnรธkkel | Egenskap |
|---|---|---|
| Student | Student ID | Studentnavn |
| Professor | Ansatt ID | Professornavn |
| Kurs | Course_ID | Kursnavn |
For Kursenhet kan attributter vรฆre Varighet, Studiepoeng, Oppgaver osv. For enkelhets skyld har vi bare vurdert ett attributt.
Trinn 5) Opprett ERD-en
En mer moderne representasjon av et eksempel pรฅ et enhetsrelasjonsdiagram:
Beste praksis for effektive ER-diagrammer
Fรธlg disse retningslinjene for รฅ lage tydelige, vedlikeholdbare og effektive ER-diagrammer:
- Eliminer redundans: Fjern dupliserte enheter, attributter eller relasjoner.
- Bruk tydelige navnekonvensjoner: Bruk konsistente, beskrivende navn. Unngรฅ forkortelser.
- Valider mot krav: Sรธrg for at diagrammet stรธtter alle behov for datalagring.
- Hold det enkelt: Lag flere diagrammer pรฅ forskjellige nivรฅer i stedet for ett rotete diagram.
- Bruk farge sparsomt: Bruk farger konsekvent for รฅ fremheve kategorier.
- Dokumentforutsetninger: Ta med notater som forklarer antagelser om forretningsregler.
- Revmed interessenter: La forretningsbrukere og det tekniske teamet gjennomgรฅ diagrammet.
- Versjonskontroll: Vedlikehold versjoner etter hvert som designet utvikler seg.
ER-diagrammer kontra UML-klassediagrammer
Selv om bรฅde ER-diagrammer og UML-klassediagrammer brukes til datamodellering, tjener de forskjellige formรฅl og kontekster. ร forstรฅ nรฅr man skal bruke hver av dem er viktig for effektiv systemdesign.
| Aspekt | ER-diagram | UML klassediagram |
|---|---|---|
| Hovedformรฅl | Databasedesign | Programvare-/objektdesign |
| Fokus | Data og relasjoner | Objekter, metoder og atferd |
| Metoder/Operasjoner | Stรธttes ikke | Fullt stรธttet |
| Arv | Begrenset (kun i EER) | Full stรธtte |
| Bransjebruk | Databaseadministratorer, dataanalytikere | Programvareutviklere, arkitekter |
















