Identifikacija entitet in odnosov med njimi. Predmetno področje baze podatkov in njen model Ugotavljanje, ali je atribut neobvezen

3. Komponente podatkovnega modela

Entiteta, definicija entitete, viri informacij o entitetah

Podatkovni model - konceptualni opis predmetnega področja - je najbolj abstraktna raven oblikovanja baze podatkov. Podatkovni model je sestavljen iz entitet, atributov, domen in odnosov. Nadalje - o vsakem od elementov podrobno.

3.1 Entitete

Entiteta je nekaj, o čemer morajo biti informacije shranjene v bazi podatkov.

Pri načrtovanju baz podatkov je dovolj, da opišemo trenutno stanje – in večina samostalnikov in nekaj glagolov bo kandidatov za entitete. Na primer: "Kupci kupujejo blago. Zaposleni prodajajo blago strankam. Dobavitelji dobavljajo blago" - kupci, blago, zaposleni in dobavitelji so subjekti. Tudi glagola "kupiti" in "prodati" sta entiteti (čeprav sta lahko ista entiteta, različna z vidika kupca in prodajalca).

Pri načrtovanju podatkovne baze je glavni vir informacij o entitetah pogovor z naročnikom za razumevanje njegovih poslovnih procesov. Poleg tega se analizirajo standardni dokumenti, ki se uporabljajo v poslovnih procesih: obrazci, poročila, navodila itd. Po prejemu takega seznama ga je treba preveriti glede popolnosti in skladnosti ter identificirati dvojnike - enake entitete, ki se imenujejo z različnimi besedami, in entitete, ki so dejansko različne, vendar so opisane z istim izrazom.

Entitete lahko modelirajo specifične pojme (kupci, blago, klici) in abstraktne (zastopnik je odgovoren za stranko, študent je vpisan v predmet).

Koncept modela ER. Koncept entitete. lastnosti. Vrste atributov

1. Kakšne težave ima lahko razvijalec pri oblikovanju podatkovne baze?

Pri načrtovanju baze podatkov in razvoju programskega izdelka je najpomembnejši problem interakcije med razvijalcem in naročnikom. Naloga razvijalca je, da najbolj natančno poustvari želje stranke pri razvoju programskega izdelka za upravljanje baz podatkov. Glavna težava, ki jo mora razvijalec rešiti, je pravilna konstrukcija baze podatkov oziroma shema (struktura) baze podatkov.

Poleg tega razvijalec naleti še na druge težave, ki vključujejo:

  • iskanje učinkovitih algoritmov;
  • izbor ustreznih podatkovnih struktur;
  • odpravljanje napak in testiranje kompleksne kode;
  • oblikovanje in uporabnost vmesnika aplikacije.

Na stopnji razvoja programsko opremo upravitelj baze podatkov, mora razvijalec podrobno spoznati zahteve stranke. Podatkovna baza mora biti zasnovana tako, da je razumljiva, najbolj natančno odraža problem, ki ga rešujemo, in ne vsebuje odvečnih podatkov.

Za lažji proces razvoja (oblikovanja) podatkovne baze, t.i pomenski modeli podatke. Za različni tipi Najbolj znana zbirka podatkov je podatkovni model ER (Entity-Relationship model).

2. Kaj je ER-model (Entity-relationship model)? Zakaj morate razviti model ER?

ER-model (Entity-relationship model ali Entity-relationship diagram) je semantični podatkovni model, ki je zasnovan za poenostavitev procesa oblikovanja baze podatkov. Iz modela ER je mogoče generirati vse vrste baz podatkov: relacijske, hierarhične, mrežne, objektne. Model ER temelji na pojmih "entiteta", "odnos" in "atribut".

Pri velikih bazah podatkov se z izgradnjo modela ER izognemo načrtovalskim napakam, ki jih je izjemno težko popraviti, zlasti če baza podatkov že deluje ali je v fazi testiranja. Napake pri načrtovanju strukture baze podatkov lahko povzročijo spremembo kode programske opreme, ki upravlja to bazo podatkov. Posledično bodo čas, denar in človeški viri porabljeni neučinkovito.

Model ER je predstavitev baze podatkov v obliki vizualnih grafičnih diagramov. ER model vizualizira proces, ki definira določeno predmetno področje. Diagram entiteta-relacija je diagram, ki grafično predstavlja entitete, atribute in odnose.

Model ER je le konceptualna raven modeliranja. Model ER ne vsebuje podrobnosti izvedbe. Za isti model ER se lahko podrobnosti njegove izvedbe razlikujejo.

3. Kaj je entiteta v zbirki podatkov? Primeri

Entiteta v bazi podatkov je vsak objekt v bazi podatkov, ki ga je mogoče razlikovati glede na bistvo predmetnega področja, za katerega se ta baza podatkov razvija. Oblikovalec baze podatkov mora biti sposoben pravilno definirati entitete.

Primer 1 V zbirki podatkov knjigarne lahko ločimo naslednje entitete:

  • knjiga;
  • ponudnik;
  • postavitev trgovine.

Primer 2 V bazi podatkov o računovodstvu izobraževalnega procesa neke izobraževalne ustanove je mogoče razlikovati naslednje subjekte:

  • študenti (dijaki);
  • učitelji;
  • skupine;
  • discipline, ki se preučujejo.
4. Katere so sorte tipov entitet? Označevanje tipov entitet v modelu ER

V modelu "entiteta" - "razmerje" obstajata dve vrsti tipov entitet:

  • šibek tip. Ta tip entitete je odvisen od močne entitete;
  • močan tip. To je neodvisna vrsta entitete, ki ni odvisna od nikogar.

Slika 1 prikazuje oznake tipa šibke in močne entitete v modelu ER.

riž. 1. Označevanje močnih in šibkih tipov entitet

5. Čemu so atributi? Vrste atributov. Označevanje atributov na modelu ER

Vsaka vrsta entitete ima poseben niz atributov. Atributi so namenjeni opisu določene entitete.

Obstajajo naslednje vrste atributov:

  • preprosto lastnosti. To so atributi, ki so lahko del sestavljenih atributov. Ti atributi so sestavljeni iz ene komponente. Enostavni atributi na primer vključujejo: kodo knjige v knjižnici ali tečaj študenta v izobraževalni ustanovi;
  • sestavljeno lastnosti. To so atributi, ki so sestavljeni iz več preprostih atributov. Na primer, naslov prebivališča lahko vsebuje ime države, kraj, ulico, hišno številko;
  • nedvoumno lastnosti. To so atributi, ki vsebujejo samo eno vrednost za neko entiteto. Na primer, atribut "Številka ocenjevalnice" za tip entitete "Študent" je nedvoumen, saj ima lahko študent samo eno številko ocenjevalnice (ena vrednost);
  • večpomensko lastnosti. To so atributi, ki lahko vsebujejo več vrednosti. Na primer večvrednostni atribut "Telefonska številka" za entiteto "Študent", saj ima lahko študent več telefonskih številk (domačo, mobilno itd.);
  • arbitrarna lastnosti. To so atributi, katerih vrednost se oblikuje na podlagi vrednosti drugih atributov. Na primer, študentovo trenutno leto študija se lahko izračuna na podlagi razlike med trenutnim letnikom študija in študentovim letnikom vstopa v izobraževalna ustanova(če študent ni imel težav s študijem in je dobro študiral disciplino "Organizacija baz podatkov in znanja").

Na diagramu ER so atributi označeni, kot je prikazano na sliki 2. Kot je razvidno iz slike, je vsak atribut označen kot elipsa z imenom znotraj elipse. Če je atribut primarni ključ, je njegovo ime podčrtano.

Slika 2. Predstavitev atributov na diagramih modela ER

6. Kako so tipi entitet in atributi modela ER implementirani v realne baze podatkov in programe, ki jih upravljajo?

Pri razvoju programov za upravljanje baz podatkov lahko tipe entitet in njihove atribute predstavimo na različne načine, pri tem pa upoštevamo več pristopov:

  • kot vir podatkov izberite znano tehnologijo (na primer Microsoft SQL Server, Oracle Database, Microsoft Access, Microsoft ODBC Data Source itd.), ki je že raziskana, testirana, standardizirana in ima ogromen nabor upravljanja baz podatkov orodja;
  • razviti lasten format baze podatkov in implementirati metode za njeno obdelavo ter implementirati interakcijo z znanimi viri podatkov v obliki posebnih ukazov, kot je Import/Export. V tem primeru boste morali programirati vse rutinsko delo za vzdrževanje in zagotavljanje zanesljivega delovanja baze podatkov z lastnimi rokami;
  • uporabiti kombinacijo zgornjih dveh pristopov. Sodobna orodja za razvoj programske opreme imajo zmogljiv nabor knjižnic za obdelavo kompleksnih nizov in vizualizacijo podatkov v njih (zbirke, nizi, vizualizacijske komponente itd.).

Če je baza podatkov implementirana v znanem relacijskem DBMS (na primer Microsoft Access, Microsoft SQL Server itd.), potem so tipi entitet predstavljeni s tabelami. Atributi iz modela ER ustrezajo poljem tabele. En vnos v tabeli zbirke podatkov predstavlja en primerek entitete.

Vsaka vrsta atributa je implementirana na naslednji način:

  • preprost atribut ali pa je lahko nedvoumen atribut predstavljen z dostopnim naborom osnovnih tipov, ki jih najdemo v katerem koli programskem jeziku. Na primer, celoštevilski atributi so predstavljeni s tipom int, integer, uint in tako naprej; atributi, ki vsebujejo ulomek, so lahko predstavljeni s tipom float, double; atributi nizov tipa niz itd.;
  • sestavljen atribut je objekt, ki vključuje več ugnezdenih preprostih atributov. Na primer, v Microsoft Access DBMS je mogoče sestavljeni atribut določene tabele oblikovati na podlagi niza preprostih tipov (polj). V programskih jezikih je združevanje polj izvedeno s strukturami ali razredi;
  • večvrednostni atribut se lahko implementira kot niz ali zbirka preprostih ali sestavljenih atributov;
  • poljuben atribut izvaja dodatno polje, ki se izračuna ob dostopu do tabele. Tako polje se imenuje izračunano polje in se oblikuje na podlagi ostalih polj v tabeli;
  • atribut, ki je primarni ključ je lahko celo število, niz ali kateri koli drug vrstni red. V tem primeru je vrednost vsake celice tabele, ki ustreza primarnemu ključu, edinstvena. Najpogosteje je primarni ključ celoštevilskega tipa (int, integer).

Če je zbirka podatkov implementirana v edinstvenem formatu, je najprimerneje, da tipe entitet predstavimo kot razrede ali strukture. Atributi entitete so implementirani kot polja (notranji podatki) razreda. Metode razreda izvajajo potrebno obdelavo polj (atributov) razreda. Interakcija (komunikacija) med razredi se izvaja s pomočjo posebej oblikovanih vmesnikov z uporabo znanih oblikovalskih vzorcev.

7. Primer fragmenta modela ER za tip entitete "Študent"

Zgornji primer prikazuje delček modela ER za tip entitete študent.

Slika 3. Fragment modela ER za tip entitete "Študent"

Zgornja slika deklarira naslednje atribute, ki imajo lahko v DBMS (programu) naslednje vrste:

  • atribut Primarni ključ - je unikatna cela vrednost, ki se generira samodejno. V DBMS je to polje števca;
  • atribut vstopnega leta je preprost atribut, ki ga je mogoče implementirati kot celoštevilsko vrednost (int, integer);
  • atribut Telefonska številka je atribut z več vrednostmi, ki ga je mogoče implementirati kot niz ali zbirko itd.;
  • atribut Številka evidenčne knjige- preprost atribut, ki ga je mogoče implementirati kot znakovni niz, saj lahko številka redovalnice poleg številk vsebuje tudi črke;
  • atribut Država, Mesto, Ulica, Hišna številka so atributi, ki tvorijo sestavljeni atribut Naslov. Vsi ti atributi so lahko tipa niz (besedilo) (niz, besedilo);
  • atribut Priimek, Ime, Srednje ime so enostavni atributi, ki so del sestavljenega atributa Ime študenta. Vsi ti atributi so lahko tipa niz (besedilo) (niz, besedilo);
  • atribut Birthday je preprost atribut tipa Datum (DateTime);
  • atribut Študentska starost je izračunano polje, ki je definirano kot razlika med trenutnim (sistemskim) datumom in vrednostjo atributa Rojstni dan.

Osnovni koncepti modela DB "entiteta-relacija" (ER-model): entitete, odnosi med njimi in njihovi atributi (lastnosti).

Esenca- vsak konkreten ali abstrakten predmet na obravnavanem predmetnem področju. Entitete so osnovne vrste informacij, ki so shranjene v bazi podatkov (v relacijski bazi podatkov je vsaki entiteti dodeljena tabela). Subjekti lahko vključujejo: študente, stranke, oddelke itd. Primerek entitete in vrsta entitete sta različna pojma. Koncept tipa entitete se nanaša na niz homogenih oseb, predmetov ali dogodkov, ki delujejo kot celota (na primer študent, stranka itd.). Primerek entitete se nanaša na primer na določeno osebo v nizu. Tip entitete je lahko študent, primerek pa je lahko Petrov, Sidorov itd.

Atribut je last subjekta na predmetnem področju. Njegovo ime mora biti edinstveno za določeno vrsto entitete. Na primer, za entiteto študent se lahko uporabijo naslednji atributi: priimek, ime, patronim, datum in kraj rojstva, podatki o potnem listu itd. V relacijski bazi podatkov so atributi shranjeni v poljih tabele.

Povezava– odnos med entitetami predmetnega področja. Relacije so povezave med deli baze podatkov (v relacijski bazi podatkov je to povezava med zapisi tabele).

Esence so podatki, ki so razvrščeni po vrsti, razmerja pa kažejo, kako so te vrste podatkov povezane med seboj. Če neko predmetno področje opišemo z entiteto - povezavo, potem dobimo model entiteta - povezava za to bazo podatkov.

puščica je simbol povezave: eden proti več.

Glavne prednosti ER-modelov: * vidljivost; * modeli vam omogočajo oblikovanje baz podatkov z velikim številom objektov in atributov;

Glavni elementi ER-modelov: * objekti (entitete); * atributi objekta; * povezave med objekti.

Za razmerje med entitetami je značilno: * tip razmerja (1:1, 1:N, N:M); * članski razred. Razred je lahko obvezen ali neobvezen. Če vsak primerek entitete sodeluje v razmerju, je članski razred obvezen, sicer pa neobvezen.


Koncept normalizacije podatkov. funkcionalna odvisnost.

Normalizacija je formalna metoda za analizo odnosov na podlagi njihovega primarnega ključa in obstoječih odnosov. Njegova naloga je nadomestiti eno shemo baze podatkov (ali nabor relacij) z drugo shemo, v kateri imajo relacije enostavnejšo in bolj pravilno strukturo.

funkcionalna odvisnost. Naj sta X in Y dva atributa neke relacije. Y naj bi bil funkcionalno odvisen od X, če v danem trenutku vsaka vrednost X ustreza največ eni vrednosti atributa Y.

Funkcionalna odvisnost je označena kot X -\u003e Y.

Odnos študent S(Ns, Fio, Ngr, Addr, Tel). Vsak od atributov Fio, Ngr, Addr, Tel je funkcionalno odvisen od atributa Ns.

Torej so v normalizirani relaciji vsi neključni atributi funkcionalno odvisni od ključa relacije. Ključ relacije S je atribut Ns.

Osnovno pravilo pri izdelavi tabel entitet je “vsaka entiteta - tabela posebej”.

Polja tabele entitet so lahko dveh vrst: ključ in ne-ključ. Uvedba ključev v tabeli v skoraj vseh relacijskih DBMS-jih omogoča zagotavljanje edinstvenosti vrednosti v zapisih tabele po ključu, pospešitev obdelave zapisov tabele in tudi samodejno razvrščanje zapisov po vrednostih v ključnih poljih.

Običajno zadošča že opredelitev preprosto ključ, manj pogosto - enter sestavljeno ključ. Tabela s sestavljenim ključem je lahko na primer tabela za shranjevanje seznama zaposlenih (priimek, ime in patronim), v katerem so soimenjaki. V nekaterih DBMS so uporabniki pozvani, da določijo samodejno generirano polje za oštevilčevanje ključev (v Accessu je to polje tipa "števec"), kar poenostavi rešitev problema edinstvenosti zapisov tabele.

Včasih imajo tabele entitet polja, ki opisujejo lastnosti ali lastnosti predmetov. Če ima tabela precejšnje število ponovitev za ta polja in imajo te informacije veliko količino, potem je bolje, da jih ločite v ločeno tabelo (po pravilu: "vsaka entiteta - ločena tabela"). Poleg tega je treba oblikovati dodatno tabelo, če so lastnosti med seboj povezane.

Pri obdelavi tabel entitet upoštevajte naslednje. Novo entiteto je enostavno dodati in spremeniti, vendar je treba pri brisanju uničiti vse reference nanjo iz povezovalnih tabel, sicer bodo povezovalne tabele nepravilne. Veliko sodobnih DBMS-jev blokira nepravilna dejanja v takih operacijah.

Vnosi povezovalne tabele so zasnovani za prikaz odnosov med entitetami, informacije o katerih se nahajajo v ustreznih tabelah entitet.

Običajno ena povezovalna tabela opisuje odnos dveh entitet. Ker imajo tabele entitet v najpreprostejšem primeru po eno ključno polje, mora povezovalna tabela dveh tabel imeti dva ključa, da se zagotovi edinstvenost povezovalnih zapisov. Ustvarite lahko povezovalno tabelo, kot je tabela predmetov, in brez ključev, vendar potem nadzor nad edinstvenostjo zapisov pade na uporabnika.

Kompleksnejše povezave (ne binarne) je treba zmanjšati na binarne. Za opis odnosov N objektov je potrebnih N-1 tabel odnosov. Prehodnih povezav ne sme biti. Presežek odnosov vodi do nedoslednosti (glej primer odnosov OSEBJE-ODDELEK, OSEBJE-PROJEKTI in ODDELEK-PROJEKTI v prejšnjem podpoglavju).

Značilnosti entitet ne smejo biti vključene v relacijske tabele, sicer so anomalije neizogibne. Bolje jih je shraniti v ločene tabele entitet.


S pomočjo povezovalnih tabel lahko opišemo tudi nekoliko specifično vrsto povezave - linearno povezavo ali šibko povezavo. Kot primer linearnega razmerja lahko štejemo odnos pripadnosti entitet neki drugi entiteti višjega reda (sistemi, sestavljeni iz vozlišč; zdravila, sestavljena iz komponent; kovinske zlitine itd.). V tem primeru je za opis povezav dovolj ena povezovalna tabela.

Pri delu s povezovalnimi tabelami ne pozabite, da je mogoče kateri koli vnos iz povezovalne tabele enostavno izbrisati, saj lahko entitete nekaj časa ostanejo brez povezav. Pri dodajanju ali spreminjanju vsebine vnosov v tabelo je potrebno nadzorovati pravilnost sklicevanja na obstoječe objekte, saj povezava brez objektov ne more obstajati. Večina sodobnih DBMS nadzoruje veljavnost objektnih referenc.

Spodaj celovitost razumeti lastnost podatkovne baze, kar pomeni, da vsebuje popolne, konsistentne in ustrezno odražajo informacije o predmetnem področju.

Razlikovati fizično in logično celovitost. Fizična celovitost pomeni, da obstaja fizični dostop do podatkov in da se podatki ne izgubijo. Logična celovitost pomeni odsotnost logičnih napak v bazi podatkov, ki vključujejo kršitev strukture baze podatkov ali njenih objektov, izbris ali spremembo vzpostavljenih povezav med objekti itd. V prihodnje bomo govorili o logični celovitosti.

Vzdrževanje celovitosti podatkovne baze vključuje preverjanje (nadzor) celovitosti in njeno obnavljanje v primeru neskladij v bazi podatkov. Celovitost stanja baze podatkov je nastavljena z uporabo omejitve integritete v obliki pogojev, ki jih morajo izpolnjevati podatki, shranjeni v bazi podatkov.

Omejitve integritete lahko razdelimo na dve glavni vrsti omejitev: vrednostne omejitve lastnosti odnosa in strukturne omejitve v relacijske tuple.

Primer vrednostne omejitve relacijski atributi so zahteva po nesprejemljivosti praznih ali podvojenih vrednosti v atributih, pa tudi nadzor nad pripadnostjo vrednosti atributov danemu obsegu. Na primer, v zapisih okvirnih odnosov vrednosti atributa date_of_birth ne morejo preseči vrednosti atributa date_of_reception.

Najbolj prilagodljiva sredstva za izvajanje nadzora vrednosti atributa so shranjeni postopki in sprožilci, na voljo v nekaterih DBMS.

Strukturne omejitve določiti zahteve celovitost entitete in celovitost povezave. Vsak primerek entitete, predstavljen v relaciji, ima samo eno od svojih tulp. Zahteva celovitost entitete je, da se mora vsaka relacija razlikovati od katere koli druge relacije, tj. z drugimi besedami, vsaka relacija mora imeti primarni ključ.

S konceptom je tesno povezana formulacija zahteve po referenčni celovitosti tuji ključ. Spomnimo se, da se tuji ključi uporabljajo za medsebojno povezovanje odnosov (tabel baze podatkov). V tem primeru se kliče atribut enega razmerja (starša). tuji ključ to razmerje, če je primarni ključ drugega razmerja (otrok). Relacija, v kateri je definiran tuji ključ, se nanaša na relacijo, v kateri je isti atribut primarni ključ.

Zahteva glede referenčne celovitosti je, da mora za vsako vrednost tujega ključa nadrejene tabele obstajati vrstica v podrejeni tabeli z isto vrednostjo primarnega ključa. Na primer, če relacija R1 vsebuje informacije o zaposlenih v oddelku in je atribut te relacije Must primarni ključ relacije R2, potem mora biti v tej relaciji za vsako delovno mesto iz R1 vrstica z ustrezno plačo.

V mnogih sodobnih DBMS obstajajo sredstva za zagotavljanje nadzora celovitosti baze podatkov.

Entiteta je resnična ali abstraktna entiteta, ki je bistvena za domeno. Entiteta mora imeti ime izraženo s samostalnikom v ednini

Neformalen način za prepoznavanje entitet je iskanje abstrakcij, ki opisujejo predmete, procese, vloge in druge koncepte. Formalni način za identifikacijo entitet je analiza besedilnih opisov predmetnega področja, ekstrahiranje samostalnikov in njihovo izbiro kot abstrakcije.

Primerek entitete je določen primerek te entitete. Na primer, zaposleni Ivanov je lahko primerek entitete zaposleni.

Vsaka entiteta mora imeti naslednje lastnosti:

imajo edinstveno ime;

imajo enega ali več atributov, ki pripadajo entiteti ali so podedovani prek razmerja;

imajo enega ali več atributov, ki enolično identificirajo vsak primerek entitete.

Atribut - značilnost subjekta, ki je pomembna za obravnavano predmetno področje in je namenjena identifikaciji, klasifikaciji, kvantificiranju ali izražanju stanja subjekta.

Obstajajo naslednje vrste atributov:

preprost - sestavljen je iz enega podatkovnega elementa;

sestavljen - sestavljen je iz več podatkovnih elementov;

nedvoumno - vsebuje eno vrednost za eno entiteto;

večvrednost - vsebuje več vrednosti za eno entiteto;

izbirno - lahko ima prazno (nedefinirano) vrednost;

izpeljano - vrednost, izpeljana iz vrednosti drugega atributa.

Enolični identifikator je nabor atributov, katerih skupne vrednosti so edinstvene za vsak primerek entitete. Odstranitev katerega koli atributa iz identifikatorja prekine njegovo edinstvenost. Enolični identifikatorji so v diagramu podčrtani.

Vsaka entiteta ima lahko poljubno število razmerij z drugimi entitetami.

Odnosi med entitetami

Razmerje je poimenovana povezava med entitetami, ki je pomembna za zadevno domeno.

Stopnja odnosa je število subjektov, ki sodelujejo v odnosu.

Moč povezave - število primerkov entitet, ki sodelujejo v povezavi.

Glede na vrednost moči ima lahko povezava eno od treh vrst:

ena proti ena (označeno 1:1).

ena proti mnogo (označeno z 1:N).

mnogo-proti-mnogim (označeno z M:N).

Ena proti ena. Pomeni, da v takem razmerju entiteta z eno vlogo vedno ustreza največ eni entiteti z drugo vlogo. Ker je stopnja povezanosti za vsako entiteto 1, sta povezani z eno črto.

Eden proti mnogo. Entiteti z eno vlogo se lahko ujema poljubno število entitet z drugačno vlogo.

Mnogi proti mnogim. V tem primeru je lahko vsaka od povezanih entitet predstavljena s poljubnim številom primerkov.