Identifikacija entiteta i odnosa među njima. Predmetno područje baze podataka i njen model Određivanje je li atribut neobavezan

3 . Komponente podatkovnog modela

Entitet, definicija entiteta, izvori informacija o entitetima

Model podataka - konceptualni opis predmetnog područja - najapstraktnija je razina dizajna baze podataka. Model podataka sastoji se od entiteta, atributa, domena i odnosa. Dalje - o svakom od elemenata u detalje.

3.1 Entiteti

Entitet je nešto o čemu informacije trebaju biti pohranjene u bazi podataka.

Pri projektiranju baza podataka dovoljno je opisati trenutno stanje – i većina imenica i neki glagoli bit će kandidati za entitete. Na primjer: "Kupci kupuju robu. Zaposlenici prodaju robu kupcima. Dobavljači opskrbljuju robu" - kupci, roba, zaposlenici i dobavljači su entiteti. Glagoli "kupiti" i "prodati" također su entiteti (iako mogu biti isti entitet, različiti sa stajališta kupca i prodavača).

Prilikom izrade baze podataka glavni izvor informacija o entitetima je razgovor s kupcem kako bi se razumjeli njegovi poslovni procesi. Dodatno se analiziraju standardni dokumenti koji se koriste u poslovnim procesima: obrasci, izvješća, upute i sl. Nakon primitka takvog popisa potrebno je provjeriti njegovu cjelovitost i koherentnost, kao i identificirati duplikate - identične entitete koji se nazivaju različitim riječima i entitete koji su zapravo različiti, ali su opisani istim pojmom.

Entiteti mogu modelirati specifične koncepte (kupci, roba, pozivi) i apstraktne (agent je odgovoran za klijenta, student je upisan na tečaj).

Koncept ER modela. Pojam entiteta. atributi. Vrste atributa

1. Koje probleme može imati programer prilikom dizajniranja baze podataka?

Kod projektiranja baze podataka i razvoja softverskog proizvoda najvažniji problem je problem interakcije između programera i kupca. Zadatak programera je najtočnije rekreirati želje kupca prilikom razvoja softverskog proizvoda za upravljanje bazom podataka. Glavni problem koji programer treba riješiti je ispravna konstrukcija baze podataka, odnosno shema (struktura) baze podataka.

Osim toga, programer se dodatno susreće s drugim poteškoćama, koje uključuju:

  • traženje učinkovitih algoritama;
  • izbor odgovarajućih struktura podataka;
  • otklanjanje pogrešaka i testiranje složenog koda;
  • dizajn i upotrebljivost sučelja aplikacije.

U fazi razvoja softver upravitelja baze podataka, programer mora detaljno upoznati zahtjeve kupca. Baza podataka treba biti dizajnirana tako da je razumljiva, da najtočnije odražava problem koji se rješava i da ne sadrži suvišnost podataka.

Kako bi se olakšao proces razvoja (dizajniranja) baze podataka, tzv semantički modeli podaci. Za različiti tipovi Najpoznatija baza podataka je ER podatkovni model (Entity-Relationship model).

2. Što je ER-model (Entity-relationship model)? Zašto trebate razviti ER model?

ER-model (Entity-relationship model ili Entity-relationship diagram) je semantički podatkovni model koji je dizajniran za pojednostavljenje procesa dizajna baze podataka. Iz ER modela mogu se generirati sve vrste baza podataka: relacijske, hijerarhijske, mrežne, objektne. ER model temelji se na konceptima "entiteta", "odnosa" i "atributa".

Za velike baze podataka izgradnjom ER modela izbjegavaju se pogreške u dizajnu koje je izuzetno teško popraviti, posebno ako je baza podataka već u funkciji ili je u fazi testiranja. Pogreške u dizajnu strukture baze podataka mogu dovesti do izmjene koda softvera koji upravlja ovom bazom podataka. Kao rezultat toga, vrijeme, novac i ljudski resursi će se koristiti neučinkovito.

ER model je prikaz baze podataka u obliku vizualnih grafičkih dijagrama. ER model vizualizira proces koji definira određeno predmetno područje. Dijagram entitet-odnos je dijagram koji grafički predstavlja entitete, atribute i odnose.

ER model je samo konceptualna razina modeliranja. ER model ne sadrži detalje implementacije. Za isti ER model, detalji njegove implementacije mogu se razlikovati.

3. Što je entitet u bazi podataka? Primjeri

Entitet u bazi podataka je svaki objekt u bazi podataka koji se može razlikovati na temelju suštine predmetnog područja za koje se ta baza podataka razvija. Dizajner baze podataka mora biti u stanju ispravno definirati entitete.

Primjer 1 U bazi podataka knjižare mogu se razlikovati sljedeći entiteti:

  • knjiga;
  • pružatelj usluga;
  • plasman trgovine.

Primjer 2 U bazi podataka računovodstva obrazovnog procesa neke obrazovne ustanove mogu se razlikovati sljedeći entiteti:

  • studenti (učenici);
  • učitelji;
  • grupe;
  • discipline koje se proučavaju.
4. Koje su varijante tipova entiteta? Označavanje tipova entiteta u ER modelu

U modelu "entitet" - "odnos" postoje dvije vrste tipova entiteta:

  • slab tip. Ovaj tip entiteta ovisi o jakom entitetu;
  • jak tip. Ovo je neovisna vrsta entiteta koja ne ovisi ni o kome.

Slika 1 prikazuje označavanje tipa slabog i jakog entiteta u ER modelu.

Riža. 1. Označavanje tipova jakih i slabih entiteta

5. Čemu služe atributi? Vrste atributa. Označavanje atributa na ER modelu

Svaki tip entiteta ima određeni skup atributa. Atributi su namijenjeni opisivanju određenog entiteta.

Postoje sljedeće vrste atributa:

  • jednostavan atributi. To su atributi koji mogu biti dio složenih atributa. Ovi se atributi sastoje od jedne komponente. Na primjer, jednostavni atributi uključuju: šifru knjige u knjižnici ili tečaj studenta u obrazovnoj ustanovi;
  • kompozitni atributi. To su atributi koji se sastoje od nekoliko jednostavnih atributa. Na primjer, adresa stanovanja može sadržavati naziv države, mjesto, ulicu, kućni broj;
  • nedvosmislen atributi. To su atributi koji sadrže samo jednu vrijednost za neki entitet. Na primjer, atribut "Broj razredne knjige" za tip entiteta "Student" je nedvosmislen, jer učenik može imati samo jedan broj razredne knjige (jedna vrijednost);
  • polisemantičan atributi. To su atributi koji mogu sadržavati više vrijednosti. Na primjer, viševrijedni atribut "Broj telefona" za entitet "Student", budući da student može imati nekoliko telefonskih brojeva (kućni, mobilni itd.);
  • proizvoljan atributi. To su atributi čija se vrijednost formira na temelju vrijednosti drugih atributa. Na primjer, studentova trenutna godina studija može se izračunati na temelju razlike između tekuće godine studija i studentove godine ulaska u obrazovna ustanova(ako student nije imao problema s učenjem i dobro je proučavao disciplinu "Organizacija baza podataka i znanja").

Na ER dijagramu atributi su označeni kao što je prikazano na slici 2. Kao što se može vidjeti sa slike, svaki atribut je označen kao elipsa s imenom unutar elipse. Ako je atribut primarni ključ, tada je njegovo ime podvučeno.

Slika 2. Prikaz atributa na dijagramima ER modela

6. Kako su tipovi entiteta i atributi ER modela implementirani u stvarne baze podataka i programe kojima upravljaju?

Prilikom razvoja programa za upravljanje bazom podataka, tipovi entiteta i njihovi atributi mogu se prikazati na različite načine, pridržavajući se nekoliko pristupa:

  • odaberite dobro poznatu tehnologiju kao izvor podataka (na primjer, Microsoft SQL Server, Oracle Database, Microsoft Access, Microsoft ODBC Data Source itd.), koja je već istražena, testirana, standardizirana i ima ogroman skup upravljanja bazom podataka alati;
  • razviti vlastiti format baze podataka i implementirati metode za njegovu obradu, te implementirati interakciju s poznatim izvorima podataka u obliku posebnih naredbi poput Import/Export. U tom slučaju morat ćete vlastitim rukama programirati sav rutinski rad kako biste održali i osigurali pouzdan rad baze podataka;
  • implementirati kombinaciju gore navedena dva pristupa. Suvremeni alati za razvoj softvera imaju snažan skup biblioteka za obradu složenih skupova i vizualizaciju podataka u njima (zbirke, nizovi, komponente vizualizacije itd.).

Ako je baza podataka implementirana u dobro poznati relacijski DBMS (na primjer, Microsoft Access, Microsoft SQL Server, itd.), tada se tipovi entiteta predstavljaju tablicama. Atributi iz ER modela odgovaraju poljima tablice. Jedan unos u tablici baze podataka predstavlja jednu instancu entiteta.

Svaka vrsta atributa implementirana je na sljedeći način:

  • jednostavan atribut ili se jednoznačni atribut može predstaviti dostupnim skupom osnovnih tipova koji se nalaze u bilo kojem programskom jeziku. Na primjer, atributi cijelog broja predstavljeni su tipom int, integer, uint i tako dalje; atributi koji sadrže razlomak mogu se predstaviti tipom float, double; atributi niza tipa string, itd.;
  • kompozitni atribut je objekt koji uključuje nekoliko ugniježđenih jednostavnih atributa. Na primjer, u Microsoft Access DBMS-u, kompozitni atribut određene tablice može se formirati na temelju skupa jednostavnih tipova (polja). U programskim jezicima, unija polja implementirana je strukturama ili klasama;
  • atribut s više vrijednosti može se implementirati kao niz ili zbirka jednostavnih ili složenih atributa;
  • proizvoljni atribut implementiran dodatnim poljem koje se izračunava prilikom pristupa tablici. Takvo polje naziva se izračunato polje i formira se na temelju ostalih polja u tablici;
  • atribut koji je primarni ključ može biti cijeli broj, niz ili bilo koji drugi redni tip. U ovom slučaju, vrijednost svake ćelije tablice koja odgovara primarnom ključu je jedinstvena. Najčešće je primarni ključ cjelobrojnog tipa (int, integer).

Ako je baza podataka implementirana u jedinstvenom formatu, tada je najprikladnije tipove entiteta prikazati kao klase ili strukture. Atributi entiteta implementirani su kao polja (interni podaci) klase. Metode klase implementiraju potrebnu obradu polja (atributa) klase. Interakcija (komunikacija) između klasa provodi se pomoću posebno dizajniranih sučelja koristeći dobro poznate obrasce dizajna.

7. Primjer fragmenta ER modela za tip entiteta "Student"

Gornji primjer pokazuje fragment ER modela za tip entiteta Student.

Slika 3. Fragment ER modela za tip entiteta "Student"

Gornja slika deklarira sljedeće atribute, koji u DBMS (programu) mogu imati sljedeće tipove:

  • atribut Primarni ključ - jedinstvena je cjelobrojna vrijednost koja se automatski generira. U DBMS-u, ovo je polje brojača;
  • atribut godine unosa je jednostavan atribut koji se može implementirati kao cjelobrojna vrijednost (int, integer);
  • atribut Telefonski broj je atribut s više vrijednosti koji se može implementirati kao niz ili zbirka, itd.;
  • atribut Broj knjige evidencije- jednostavan atribut koji se može implementirati kao niz znakova, budući da broj u bilježnici pored brojeva može sadržavati i slova;
  • atribut Država, Grad, Ulica, Kućni broj su atributi koji tvore složeni atribut Adresa. Svi ovi atributi mogu biti string (tekst) tipa (string, Text);
  • atribut Prezime, Ime, Patronim su jednostavni atributi koji su dio složenog atributa Ime učenika. Svi ovi atributi mogu biti string (tekst) tipa (string, Text);
  • atribut Birthday je jednostavan atribut tipa Datum (DateTime);
  • atribut Studentska dob je izračunato polje koje se definira kao razlika između trenutnog (sustavnog) datuma i vrijednosti atributa Rođendan.

Osnovni koncepti DB modela "entitet-odnos" (ER-model): entiteti, odnosi između njih i njihovi atributi (svojstva).

Esencija- svaki konkretni ili apstraktni objekt u predmetnom području koje se razmatra. Entiteti su osnovne vrste informacija koje su pohranjene u bazi podataka (u relacijskoj bazi podataka svakom entitetu je dodijeljena tablica). Entiteti mogu uključivati: studente, klijente, odjele itd. Instanca entiteta i tip entiteta različiti su koncepti. Koncept tipa entiteta odnosi se na skup homogenih osoba, objekata ili događaja koji djeluju kao cjelina (na primjer, student, klijent itd.). Instanca entiteta odnosi se, na primjer, na određenu osobu u skupu. Tip entiteta može biti student, a instanca može biti Petrov, Sidorov itd.

Atribut je vlasništvo entiteta u predmetnom području. Njegovo ime mora biti jedinstveno za određenu vrstu entiteta. Na primjer, za entitet student mogu se koristiti sljedeći atributi: prezime, ime, patronim, datum i mjesto rođenja, podaci o putovnici itd. U relacijskoj bazi podataka atributi su pohranjeni u poljima tablice.

Veza– odnos između entiteta u predmetnom području. Odnosi su veze između dijelova baze podataka (u relacijskoj bazi podataka to je veza između zapisa tablice).

Esencije su podaci koji su klasificirani prema vrsti, a odnosi pokazuju kako su te vrste podataka međusobno povezane. Ako određeno predmetno područje opišemo u terminima entitet - odnos, tada dobivamo model entitet - odnos za ovu bazu podataka.

strelica je simbol veze: jedan - prema - mnogima.

Glavne prednosti ER-modela: * vidljivost; * modeli vam omogućuju dizajn baza podataka s velikim brojem objekata i atributa;

Glavni elementi ER-modela: * objekti (entiteti); * atributi objekta; * veze između objekata.

Odnos između entiteta karakteriziraju: * vrsta odnosa (1:1, 1:N, N:M); * članski razred. Klasa može biti obavezna ili izborna. Ako svaka instanca entiteta sudjeluje u odnosu, tada je klasa članstva obavezna, inače je izborna.


Koncept normalizacije podataka. funkcionalna ovisnost.

Normalizacija je formalna metoda za analizu odnosa na temelju njihovog primarnog ključa i postojećih odnosa. Njegov zadatak je zamijeniti jednu shemu baze podataka (ili skup odnosa) drugom shemom u kojoj odnosi imaju jednostavniju i pravilniju strukturu.

funkcionalna ovisnost. Neka su X i Y dva atributa neke relacije. Za Y se kaže da je funkcionalno ovisan o X ako, u bilo kojem trenutku, svaka vrijednost od X odgovara najviše jednoj vrijednosti atributa Y.

Funkcionalna ovisnost označena je kao X -\u003e Y.

Odnos student S(Ns, Fio, Ngr, Addr, Tel). Svaki od atributa Fio, Ngr, Addr, Tel funkcionalno je ovisan o atributu Ns.

Dakle, u normaliziranoj relaciji, svi ne-ključni atributi funkcionalno ovise o ključu relacije. Ključ relacije S je atribut Ns.

Osnovno pravilo kod izrade tablica entiteta je “svaki entitet - zasebna tablica”.

Polja tablice entiteta mogu biti dvije vrste: ključ I ne-ključni. Uvođenje ključeva u tablicu u gotovo svim relacijskim DBMS-ovima omogućuje osiguravanje jedinstvenosti vrijednosti u zapisima tablice po ključu, ubrzavanje obrade zapisa tablice, kao i automatsko sortiranje zapisa prema vrijednostima u ključnim poljima.

Obično je dovoljno definirati jednostavan ključ, rjeđe - unesite kompozitni ključ. Tablica sa složenim ključem može biti, na primjer, tablica za pohranu popisa zaposlenika (prezime, ime i patronim), u kojem se nalaze imenjaci. U nekim DBMS-ovima od korisnika se traži da definiraju automatski generirano polje za numeriranje ključeva (u Accessu je to polje tipa “brojač”), što pojednostavljuje rješenje problema jedinstvenosti zapisa tablice.

Ponekad tablice entiteta imaju polja koja opisuju svojstva ili karakteristike objekata. Ako tablica ima značajan broj ponavljanja za ova polja i te informacije imaju značajnu količinu, onda ih je bolje izdvojiti u posebnu tablicu (po pravilu: "svaki entitet - zasebna tablica"). Štoviše, treba formirati dodatnu tablicu ako su svojstva međusobno povezana.

Prilikom obrade tablica entiteta, imajte na umu sljedeće. Lako je dodati i promijeniti novi entitet, ali kada ga brišete, treba uništiti sve reference na njega iz tablica povezivanja, inače će tablice poveznica biti netočne. Mnogi moderni DBMS blokiraju neispravne akcije u takvim operacijama.

Upisi tablice veza dizajnirani su za prikaz odnosa između entiteta, informacije o kojima se nalaze u odgovarajućim tablicama entiteta.

Obično jedna tablica poveznica opisuje odnos dvaju entiteta. Budući da tablice entiteta u najjednostavnijem slučaju imaju po jedno polje ključa, povezna tablica dviju tablica mora imati dva ključa kako bi se osigurala jedinstvenost zapisa veza. Možete stvoriti poveznu tablicu, poput tablice objekata, i bez ključeva, ali tada kontrola nad jedinstvenošću zapisa pada na korisnika.

Složenije veze (ne binarne) treba svesti na binarne. Za opisivanje odnosa N objekata potrebne su N-1 tablice odnosa. Ne bi trebalo biti tranzitivnih veza. Višak odnosa dovodi do nedosljednosti (pogledajte primjer odnosa OSOBLJE-ODJEL, OSOBLJE-PROJEKTI i ODJEL-PROJEKTI u prethodnom pododjeljku).

Karakteristike entiteta ne bi trebale biti uključene u tablice odnosa, inače su anomalije neizbježne. Bolje ih je pohraniti u zasebne tablice entiteta.


Uz pomoć tablica veza može se opisati i nešto specifična vrsta veze - linearna veza ili slaba veza. Primjerom linearnog odnosa može se smatrati odnos pripadnosti entiteta nekom drugom entitetu višeg reda (sustavi koji se sastoje od čvorova; lijekovi koji se sastoje od komponenti; metalne legure itd.). U ovom slučaju dovoljna je jedna tablica poveznica za opis poveznica.

Kada radite s poveznim tablicama, trebate imati na umu da se svaki unos iz povezne tablice može lako izbrisati, jer entiteti mogu neko vrijeme bez veza. Prilikom dodavanja ili mijenjanja sadržaja unosa u tablici potrebno je kontrolirati ispravnost referenci na postojeće objekte, jer veza ne može postojati bez objekata. Većina modernih DBMS-ova kontrolira valjanost referenci objekata.

Pod, ispod integritet razumjeti svojstvo baze podataka, što znači da ona sadrži potpune, dosljedne i primjereno odražavaju informacije o predmetnom području.

razlikovati fizički i logički integritet. Fizički integritet znači da postoji fizički pristup podacima i da se podaci ne gube. Logički integritet podrazumijeva nepostojanje logičkih pogrešaka u bazi podataka, što uključuje narušavanje strukture baze podataka ili njezinih objekata, brisanje ili promjenu uspostavljenih veza između objekata itd. U budućnosti ćemo govoriti o logičkom integritetu.

Održavanje cjelovitosti baze podataka uključuje provjeru (kontrolu) cjelovitosti i njezino vraćanje u slučaju odstupanja u bazi podataka. Cjelovitost stanja baze podataka postavlja se pomoću ograničenja cjelovitosti u obliku uvjeta koje moraju zadovoljiti podaci pohranjeni u bazi podataka.

Ograničenja integriteta mogu se podijeliti u dvije glavne vrste ograničenja: vrijednosna ograničenja atributi odnosa i strukturna ograničenja u torke odnosa.

Primjer vrijednosna ograničenja relacijski atributi su zahtjev nedopustivosti praznih ili duplih vrijednosti u atributima, kao i kontrola nad pripadnošću vrijednosti atributa zadanom rasponu. Na primjer, u zapisima odnosa okvira, vrijednosti atributa date_of_birth ne mogu premašiti vrijednosti atributa date_of_reception.

Najfleksibilniji način implementacije kontrole vrijednosti atributa jesu pohranjene procedure I okidači, dostupan u nekim DBMS-ovima.

Strukturna ograničenja definirati zahtjeve cjelovitost entiteta I cjelovitost veze. Svaka instanca entiteta predstavljena u relaciji ima samo jednu od svojih torki. Zahtjev cjelovitost entiteta je da svaka relacija mora biti različita od bilo koje druge relacije, tj. drugim riječima, svaka relacija mora imati primarni ključ.

Formulacija zahtjeva referencijalne cjelovitosti usko je povezana s pojmom strani kljuc. Podsjetimo se da se strani ključevi koriste za međusobno povezivanje odnosa (tablica baze podataka). U ovom slučaju se poziva atribut jednog odnosa (roditelj). strani kljuc ovaj odnos, ako jest primarni ključ druge relacije (dijete). Za relaciju u kojoj je definiran strani ključ kaže se da se odnosi na relaciju u kojoj je isti atribut primarni ključ.

Zahtjev referentnog integriteta je da za svaku vrijednost stranog ključa nadređene tablice mora postojati red u podređenoj tablici s istom vrijednošću primarnog ključa. Na primjer, ako relacija R1 sadrži podatke o zaposlenicima odjela, a atribut te relacije Must je primarni ključ relacije R2, tada u ovoj relaciji za svako radno mjesto iz R1 treba postojati linija s pripadajućom plaćom.

U mnogim modernim DBMS-ovima postoje sredstva koja osiguravaju kontrolu integriteta baze podataka.

Entitet je stvarni ili apstraktni entitet koji je bitan za domenu. Entitet mora imati ime izraženo imenicom u jednini

Neformalan način identificiranja entiteta je traženje apstrakcija koje opisuju objekte, procese, uloge i druge koncepte. Formalni način identificiranja entiteta je analiza tekstualnih opisa predmetnog područja, izdvajanje imenica i njihovo odabiranje kao apstrakcije.

Instanca entiteta je specifična instanca tog entiteta. Na primjer, zaposlenik Ivanov može biti instanca entiteta zaposlenika.

Svaki entitet mora imati sljedeća svojstva:

imaju jedinstveno ime;

imaju jedan ili više atributa koji ili pripadaju entitetu ili su naslijeđeni kroz odnos;

imaju jedan ili više atributa koji jedinstveno identificiraju svaki primjerak entiteta.

Atribut - karakteristika entiteta koja je značajna za predmetno područje koje se razmatra i namijenjena je identificiranju, klasificiranju, kvantificiranju ili izražavanju stanja entiteta.

Postoje sljedeće vrste atributa:

jednostavan - sastoji se od jednog podatkovnog elementa;

kompozitni - sastoji se od nekoliko podatkovnih elemenata;

nedvosmislen - sadrži jednu vrijednost za jedan entitet;

viševrijedan - sadrži nekoliko vrijednosti za jedan entitet;

izborno - može imati praznu (nedefiniranu) vrijednost;

izvedeno - vrijednost izvedena iz vrijednosti drugog atributa.

Jedinstveni identifikator je skup atributa čije su vrijednosti zajedno jedinstvene za svaku instancu entiteta. Uklanjanje bilo kojeg atributa iz identifikatora narušava njegovu jedinstvenost. Jedinstveni identifikatori su podvučeni u dijagramu.

Svaki entitet može imati neograničeni broj odnosa s drugim entitetima.

Odnosi između entiteta

Odnos je imenovana asocijacija između entiteta koja ima smisla za predmetnu domenu.

Stupanj odnosa je broj entiteta koji sudjeluju u odnosu.

Snaga veze - broj instanci entiteta koji sudjeluju u vezi.

Ovisno o vrijednosti snage, veza može imati jednu od tri vrste:

jedan na jedan (označeno 1:1).

jedan-prema-više (označeno 1:N).

mnogo-prema-više (označeno sa M:N).

Jedan na jedan. Znači da u takvom odnosu, entitet s jednom ulogom uvijek odgovara samo jednom entitetu s drugom ulogom. Budući da je stupanj povezanosti za svaki entitet 1, oni su povezani jednom linijom.

Jedan prema više. Entitet s jednom ulogom može se podudarati s bilo kojim brojem entiteta s različitim ulogama.

Mnogi prema mnogima. U ovom slučaju, svaki od pridruženih entiteta može biti predstavljen bilo kojim brojem instanci.