Entity Relationship (ER) -kaaviomalli DBMS-esimerkillä
⚡ Älykäs yhteenveto
Entiteettisuhdekaavio (ER) ja esimerkki tietokannan hallintajärjestelmästä havainnollistaa strukturoitua menetelmää datan ja sen välisten yhteyksien visuaaliseen esittämiseen relaatiotietokannoissa. Peter Chenin ehdottama menetelmä tarjoaa käsitteellisen mallinnusperustan entiteettien, attribuuttien, suhteiden ja niiden kardinaalisuuksien tarkalle määrittelemiselle.

Mikä on ER-diagrammi?
Entiteettisuhdekaavio (ER-kaavio) on tehokas visuaalinen työkalu relaatiotietokantarakenteiden suunnitteluun. Peter Chen ehdotti sen ensimmäisen kerran vuonna 1976, ja se tarjoaa käsitteellisen mallinnusperustan, joka määrittelee entiteetit, attribuutit, suhteet ja niiden kardinaalisuudet tarkasti. Tämä opetusohjelma kattaa kaiken peruskäsitteistä edistyneisiin tekniikoihin ja auttaa sinua hallitsemaan tietokantakaavojen suunnittelun.
ER-kaavioissa on erilaisia symboleja, jotka käyttävät suorakulmioita entiteettien esittämiseen, soikioita ominaisuuksien määrittelemiseen ja vinoneliön muotoisia muotoja suhteiden esittämiseen.
Ensi silmäyksellä ER-kaavio näyttää hyvin samankaltaiselta kuin vuokaavio. ER-kaavio sisältää kuitenkin monia erikoissymboleja, ja niiden merkitykset tekevät tästä mallista ainutlaatuisen. ER-kaavion tarkoituksena on esittää kokonaisuuden viitekehyksen infrastruktuuria.

ER-mallien historia
Peter Chen esitti ER-diagrammin vuonna 1976 uraauurtavassa artikkelissaan ”The Entity-Relationship Model: Toward a Unified View of Data”. Hänen tavoitteenaan oli luoda yhtenäinen käytäntö, jota voitaisiin käyttää sekä relaatiotietokannoissa että verkoissa. Chen näki ER-mallin käsitteellisenä mallinnusmenetelmänä, joka kuroisi umpeen kuilun tosielämän vaatimusten ja teknisen tietokannan toteutuksen välillä.
Sittemmin ER-malli on kehittynyt useilla merkintäjärjestelmillä, mukaan lukien Chen-notaatio (alkuperäinen), Crow's Foot -notaatio (suosittu nykyaikaisissa työkaluissa) ja UML-pohjaiset lähestymistavat. Näistä vaihteluista huolimatta ydinkonseptit pysyvät yhdenmukaisina kaikissa toteutuksissa.
Miksi käyttää ER-kaavioita?
ER-kaaviot tarjoavat lukuisia etuja tietokannan suunnitteluun ja kehittämiseen:
- Visuaalinen viestintä: Ne tarjoavat selkeän visuaalisen esityksen, jonka sekä tekniset että ei-tekniset sidosryhmät voivat ymmärtää.
- Kehityssuunnitelma: Ne näyttävät tarkalleen, miten taulukoiden tulisi yhdistyä ja mitä kenttiä kukin taulukko sisältää.
- Käännösvalmis: ER-kaaviot voidaan muuntaa suoraan relaatiotaulukoiksi, mikä mahdollistaa tietokantojen nopean rakentamisen.
- Virheiden ehkäisy: Ne auttavat tunnistamaan suunnitteluvirheet ja päällekkäisyydet ennen toteutusta, mikä säästää aikaa ja resursseja.
- Dokumentaatio: Ne toimivat pysyvänä dokumentaationa, joka auttaa uusia tiimin jäseniä ymmärtämään järjestelmän arkkitehtuuria.
- Järjestelmäanalyysi: Ne auttavat tunnistamaan kaikki järjestelmässä olevat yksiköt ja niiden väliset suhteet.
ER-kaavion komponentit
Jokainen ER-kaavio koostuu kolmesta ydinosasta: entiteeteistä, attribuuteista ja suhteista. Kunkin komponentin ja niiden vuorovaikutuksen ymmärtäminen on olennaista tehokkaiden tietokantasuunnitelmien luomiseksi.
ER-kaavioesimerkkejä
Esimerkiksi yliopiston tietokannassa meillä voi olla opiskelijoille, kursseille ja luennoitsijoille tarkoitettuja entiteettejä. Opiskelijaentiteetillä voi olla attribuutteja, kuten opiskelijanumero, nimi ja osastotunnus. Niillä voi olla suhteita kursseihin ja luennoitsijoihin.
yhteisöt
Entiteetti edustaa mitä tahansa reaalimaailman kohdetta – elävää tai elotonta – joka voidaan selvästi tunnistaa ja josta voidaan tallentaa tietoa. Se voi olla fyysinen asia, yritystä koskeva tosiasia tai todellisessa maailmassa tapahtuva tapahtuma. Entiteettejä voivat olla ihmiset, paikat, esineet, tapahtumat tai käsitteet.
Esimerkkejä yksiköistä luokittain:
- Henkilö: Työntekijä, Opiskelija, Potilas, Asiakas
- Paikka: Myymälä, Rakennus, Toimisto, Varasto
- Esine: Kone, Tuote, Auto, Kirja
- Tapahtuma: Myynti, rekisteröinti, uusiminen, tapahtuma
- Konsepti: Tili, Kurssi, Osasto, Projekti
Entiteettijoukko
Entiteettijoukko on joukko samankaltaisia entiteettejä, joilla on yhteisiä ominaisuuksia. Esimerkiksi kaikki yliopiston opiskelijat muodostavat "Opiskelija"-entiteettijoukon. Entiteetit esitetään ER-kaavioissa suorakulmioilla, joiden sisään on kirjoitettu entiteetin nimi.
Entiteettejä edustavat niiden ominaisuudet, joita kutsutaan myös attribuuteiksi. Kaikilla attribuuteilla on omat arvonsa. Esimerkiksi opiskelijaentiteetillä voi olla attribuutteina nimi, ikä ja luokka.
Vahvat yksiköt vs. heikot yksiköt
Entiteetit luokitellaan joko vahvoiksi tai heikkoiksi sen perusteella, miten ne pystyvät olemaan olemassa itsenäisesti. Tämän eron ymmärtäminen on ratkaisevan tärkeää tietokannan asianmukaisen suunnittelun kannalta.
Vahvalla entiteetillä on oma ensisijainen avaimensa ja se voi olla olemassa itsenäisesti. Esimerkiksi ”Opiskelija”-entiteetti voidaan tunnistaa yksilöllisesti Student_ID:n avulla ilman, että se on riippuvainen mistään muusta entiteetistä.
Heikolla entiteetillä ei ole omaa ensisijaista avainta, ja se on riippuvainen vahvasta entiteetistä (jota kutsutaan omistajaentiteetiksi). Se käyttää osittaisavainta (erottelijaa) yhdistettynä omistajan ensisijaiseen avaimeen ainutlaatuisuuden saavuttamiseksi. Esimerkiksi pankkijärjestelmässä "Transaction"-entiteetti on riippuvainen "Account"-entiteetistä – pelkkä tapahtumanumero ei ole ainutlaatuinen koko tietokannassa, mutta yhdistettynä tilinumeroon siitä tulee ainutlaatuinen.
| Vahva kokonaisuus | Heikko yksikkö |
|---|---|
| Sillä on oma ensisijainen avain | Ei omaa ensisijaista avainta; käyttää osittaista avainta |
| Edustaa yksi suorakulmio | Edustaa kaksoissuorakulmio |
| Ensisijainen avain on alleviivattu yhtenäisellä viivalla | Osittainen avain on alleviivattu katkoviivalla |
| Voi esiintyä itsenäisesti | Riippuu omistajayhteisöstä olemassaolon osalta |
| Yhdistetty yhden timantin suhteeseen | Yhdistetty kaksoistimanttiin (tunnistava suhde) |
| Esimerkki: Opiskelija, Työntekijä, Tuote | Esimerkki: Tapahtuma, Riippuvainen, Tilaus_nimike |
Yhteys
Suhde kuvaa kahden tai useamman olion välistä yhteyttä. Suhteet tunnistetaan tyypillisesti verbeillä tai verbilausekkeilla, jotka kuvaavat, miten oliot ovat vuorovaikutuksessa keskenään. ER-kaavioissa suhteet esitetään vinoneliön muotoisina. Esimerkki: Tom työskentelee kemian laitoksella.
Entiteetit osallistuvat ihmissuhteisiin. Voimme usein tunnistaa suhteita verbeillä tai verbilauseilla.
Esimerkkejä:
- Osallistut tälle luennolle
- Minä pidän luennon
- Opiskelija osallistuu luennolle
- Luennoitsija pitää luentoa
Ominaisuudet
Attribuutti on ominaisuus tai piirre, joka kuvaa entiteettiä tai suhdetta. Attribuutit tarjoavat yksityiskohtaista tietoa, joka tekee jokaisesta entiteetti-instanssista ainutlaatuisen ja merkityksellisen. ER-kaavioissa attribuutit esitetään soikeilla (ellipseillä), jotka on yhdistetty pääentiteettiin viivalla.
Esimerkiksi Opiskelija-entiteetillä voi olla ominaisuuksia, kuten Opiskelijatunnus, Nimi, Syntymäaika, Sähköpostiosoite ja Puhelinnumero.
Attribuuttien tyypit
| Attribuuttityyppi | Tuotetiedot | esimerkki |
|---|---|---|
| Yksinkertainen (Atomic) | Ei voida jakaa edelleen pienempiin osiin | Puhelinnumero, henkilötunnus, sähköpostiosoite |
| Yhdistetty | Voidaan jakaa pienempiin aliominaisuuksiin | Koko nimi (Etunimi, Toinen nimi, Sukunimi), Osoite (Katuosoite, Kaupunki, Postinumero) |
| johdettu | Arvo lasketaan muista ominaisuuksista; sitä ei tallenneta suoraan | Ikä (johdettu syntymäajasta), Kokonaishinta |
| Moniarvoinen | Voi sisältää useita arvoja yhdelle yksikölle | Puhelin Numbers, Sähköpostiosoitteet, Taidot |
| Key Attribuutti | Tunnistaa yksilöllisesti jokaisen entiteetin esiintymän (ensisijainen avain) | Opiskelijatunnus, Työntekijätunnus, ISBN |
Avainvinkki: ER-kaavioissa avainattribuutit on esitetty alleviivattuina nimillä. Johdetut attribuutit on esitetty katkoviivalla merkityillä soikioilla ja moniarvoiset attribuutit kaksoissoikioilla.
Kardinaalisuus (suhdetyypit)
Kardinaalisuus määrittelee suhteen numeeriset rajoitukset – erityisesti sen, kuinka monta yhden entiteetin instanssia voidaan liittää toisen entiteetin instansseihin. Kardinaalisuuden ymmärtäminen on olennaista tehokkaiden tietokantarakenteiden suunnittelussa.
1. Yksi yhteen (1:1)
Yksi joukosta A oleva entiteetti voi olla yhteydessä enintään yhteen joukosta B olevaan entiteettiin ja päinvastoin.
Esimerkki: Yhdelle opiskelijalle annetaan täsmälleen yksi opiskelijatunnus, ja jokainen opiskelijatunnus kuuluu täsmälleen yhdelle opiskelijalle.
2. Yksi-moneen (1:N)
Yksi joukon A entiteetti voi olla liitettynä useisiin joukon B entiteetteihin, mutta jokainen joukon B entiteetti on liitettynä vain yhteen joukon A entiteettiin.
Esimerkki: Yksi luokka koostuu useista oppilaista.
3. Monta yhteen (N:1)
Useita joukon A entiteettejä voidaan liittää yhteen joukon B entiteettiin.
Esimerkiksi monet opiskelijat kuuluvat samaan luokkaan.
4. Monesta moneen (M:N)
Useita joukon A entiteettejä voidaan liittää useisiin joukon B entiteetteihin ja päinvastoin.
Esimerkiksi opiskelijat ryhmänä liitetään useisiin tiedekunnan jäseniin, ja tiedekunnan jäsenet voivat liittyä useisiin opiskelijoihin.
ER-kaavion symbolit ja merkinnät
ER-kaavioissa käytetään standardoituja symboleja eri komponenttien esittämiseen. Vaikka merkintäjärjestelmiä on useita, kaksi yleisimmin käytettyä ovat Chen-notaatio ja Crow's Foot -notaatio.
Chen-merkintä
Peter Chenin vuonna 1976 kehittämä Chen-notaatio käyttää geometrisia muotoja eri elementtien esittämiseen:
| Symboli | Nimi | edustaa |
|---|---|---|
| Suorakulmio | Entity | Vahva kokonaisuus (esim. Opiskelija, Tuote) |
| Double Suorakulmio | Heikko yksikkö | Toisesta riippuvainen yksikkö (esim. tapahtuma) |
| Ellipsi/Soikea | Ominaisuus | Yksikön ominaisuus (esim. nimi, tunnus) |
| Double Ellipsi | Moniarvoinen ominaisuus | Useita arvoja sisältävä attribuutti (esim. Puhelin Numbers) |
| Katkoviivainen ellipsi | Johdettu ominaisuus | Laskettu arvo (esim. ikä syntymäajasta) |
| Diamond | Yhteys | Yksiköiden välinen yhteys (esim. ilmoittautumiset) |
| Double Diamond | Suhteen tunnistaminen | Suhde heikkoon kokonaisuuteen |
| linja | Linkki | Yhdistää komponentit toisiinsa |
| Alleviivattu teksti | Pääavain | Yksilöllinen tunniste entiteetille |
Variksenjalka-merkintä
Variksenjalka-notaatio (tunnetaan myös nimellä IE-notaatio) on yleisemmin käytetty nykyaikaisissa tietokantojen suunnittelutyökaluissa. Se käyttää erilaisia rivinloppuja kardinaalisuuden esittämiseen ja on erityisen tehokas suhteiden "monta"-puolen esittämiseen.
| Symboli Descriptioni | Merkitys |
|---|---|
| Yksi pystysuora viiva (|) | Pakollinen Yksi (täsmälleen yksi) |
| Ympyrä ja viiva (O|) | Valinnainen Yksi (nolla tai yksi) |
| Variksenjalka viivalla (>|) | Pakollinen Monta (yksi tai useampi) |
| Variksenjalka ympyrällä (>O) | Valinnainen monta (nolla tai enemmän) |
Chen-notaatio vs. variksenjalka: Milloin kumpaakin käytetään
| Aspect | Chen-merkintä | Variksenjalka-merkintä |
|---|---|---|
| Best For | Käsitteellinen mallinnus, akateeminen käyttö | Fyysinen/looginen mallinnus, teollisuuskäyttö |
| Ominaisuuden näyttö | Näyttää kaikki ominaisuudet visuaalisesti | Listaa attribuutit entiteettiruudussa |
| mahtavuus | Käyttää numeroita (1, N, M) | Käyttää visuaalisia symboleja |
| Monimutkaisuus | Voi tulla sotkuiseksi | Kompaktimpi ja siistimpi |
| Työkalujen tuki | Rajoitettu moderni työkalutuki | Laajasti tuettu työkaluissa |
Entiteettisuhdekaavion (ERD) luominen
Tässä ER-kaavio (ERD) -opetusohjelmassa opimme luomaan ER-kaavion. Seuraavat vaiheet ER-kaavion luomiseksi:
Tutkitaan niitä entiteettisuhdekaavion esimerkillä:
Yliopistossa opiskelija ilmoittautuu kursseille. Opiskelijalla on oltava vähintään yksi kurssi. Jokaista kurssia opettaa yksi professori. Opetuksen laadun ylläpitämiseksi professori voi vetää vain yhden kurssin.
Vaihe 1) Kokonaisuuden tunnistus
Meillä on kolme tahoa:
- opiskelija
- Kurssi
- Opettaja
Vaihe 2) Suhteen tunnistaminen
Meillä on seuraavat kaksi suhdetta:
- Opiskelija on osoitettu kurssi
- Professori Antaa kurssi
Vaihe 3) Kardinaalisuuden tunnistaminen
Ongelmalauseesta tiedämme, että:
- Opiskelija voidaan määrätä moninkertainen kurssit
- Professori voi toimittaa vain yksi kurssi
Vaihe 4) Tunnista attribuutit
Sinun on tutkittava organisaation ylläpitämiä tiedostoja, lomakkeita, raportteja ja tietoja tunnistaaksesi ominaisuudet. Voit myös haastatella eri sidosryhmiä tunnistaaksesi kokonaisuudet. Aluksi on tärkeää tunnistaa ominaisuudet yhdistämättä niitä tiettyyn kokonaisuuteen.
Kun sinulla on luettelo attribuuteista, sinun on yhdistettävä ne tunnistettuihin yksiköihin. Varmista, että attribuutti yhdistetään täsmälleen yhteen yksikköön. Jos mielestäsi attribuutin tulisi kuulua useampaan kuin yhteen yksikköön, käytä muokkaajaa tehdäksesi siitä yksilöllisen.
Kun kartoitus on valmis, tunnista ensisijaiset avaimet. Jos yksilöllinen avain ei ole helposti saatavilla, luo sellainen.
| Entity | Pääavain | Ominaisuus |
|---|---|---|
| opiskelija | Opiskelijanumero | Opiskelijan nimi |
| Opettaja | Henkilöstökortti | ProfessoriNimi |
| Kurssi | Kurssin_ID | Kurssin nimi |
Kurssikokonaisuuden attribuutteja voivat olla kesto, opintopisteet, tehtävät jne. Yksinkertaisuuden vuoksi olemme ottaneet huomioon vain yhden attribuutin.
Vaihe 5) Luo ERD
Nykyaikaisempi esitys entiteettisuhdekaaviosta: Esimerkki:
Tehokkaiden ER-kaavioiden parhaat käytännöt
Noudata näitä ohjeita luodaksesi selkeitä, ylläpidettäviä ja tehokkaita ER-kaavioita:
- Poista redundanssi: Poista päällekkäiset entiteetit, määritteet tai suhteet.
- Käytä selkeitä nimeämiskäytäntöjä: Käytä johdonmukaisia ja kuvaavia nimiä. Vältä lyhenteitä.
- Vahvista vaatimusten mukaisesti: Varmista, että kaavio tukee kaikkia tiedontallennustarpeita.
- Pidä se yksinkertaisena: Luo useita kaavioita eri tasoilla yhden sekavan kaavion sijaan.
- Käytä värejä säästeliäästi: Käytä värejä johdonmukaisesti korostaaksesi luokkia.
- Asiakirjan oletukset: Sisällytä muistiinpanoja, joissa selitetään liiketoimintasääntöihin liittyviä oletuksia.
- Revsidosryhmien kanssa: Pyydä yrityskäyttäjiä ja teknistä tiimiä tarkistamaan kaavio.
- Version hallinta: Säilytä versiot suunnittelun kehittyessä.
ER-kaaviot vs. UML-luokkakaaviot
Vaikka sekä ER-kaavioita että UML-luokkakaavioita käytetään datan mallintamiseen, ne palvelevat eri tarkoituksia ja konteksteja. Tehokkaan järjestelmäsuunnittelun kannalta on tärkeää ymmärtää, milloin kumpaakin käytetään.
| Aspect | ER-kaavio | UML-luokkakaavio |
|---|---|---|
| Päätarkoitus | Tietokannan suunnittelu | Ohjelmisto-/objektisuunnittelu |
| Focus | Data ja suhteet | Objektit, menetelmät ja käyttäytymismallit |
| Menetelmät/OperaTIONS | Ei tuettu | Täysin tuettu |
| Perintö | Rajoitettu (vain EER:ssä) | Täysi tuki |
| Teollisuuden käyttö | Tietokannan ylläpitäjät, data-analyytikot | Ohjelmistokehittäjät, arkkitehdit |















