Mga uri ng entity sa database. Pagdidisenyo ng isang database model sa mga tuntunin ng "entity-relasyon". Mga relasyon sa pagitan ng mga entity

Mga gawaing pantahanan

Ang entity ay isang tunay o abstract na entity na mahalaga sa domain. Ang entidad ay dapat magkaroon ng isang pangalan na ipinahayag ng isang pangngalan sa isahan

Ang isang impormal na paraan upang makilala ang mga entity ay ang paghahanap ng mga abstraction na naglalarawan ng mga bagay, proseso, tungkulin, at iba pang mga konsepto. Ang isang pormal na paraan upang matukoy ang mga entity ay ang pag-analisa ng mga tekstong paglalarawan ng paksa, kunin ang mga pangngalan at piliin ang mga ito bilang mga abstraction.

Ang isang entity instance ay isang partikular na instance ng entity na iyon. Halimbawa, ang empleyadong si Ivanov ay maaaring isang halimbawa ng entity ng Empleyado.

Ang bawat entity ay dapat magkaroon ng mga sumusunod na katangian:

magkaroon ng isang natatanging pangalan;

magkaroon ng isa o higit pang mga katangian na maaaring kabilang sa isang entity o minana sa pamamagitan ng isang relasyon;

magkaroon ng isa o higit pang mga katangian na natatanging tumutukoy sa bawat instance ng entity.

Katangian - isang katangian ng isang entity na makabuluhan para sa paksang tinatalakay at nilayon upang tukuyin, pag-uri-uriin, bilangin o ipahayag ang estado ng entidad.

Mayroong mga sumusunod na uri ng mga katangian:

simple - binubuo ng isang elemento ng data;

composite - binubuo ng ilang elemento ng data;

hindi malabo - naglalaman ng isang halaga para sa isang entity;

multivalued - naglalaman ng ilang mga halaga para sa isang entity;

opsyonal - maaaring may walang laman (hindi natukoy) na halaga;

derived - isang value na nagmula sa value ng isa pang attribute.

Ang isang natatanging identifier ay isang hanay ng mga katangian na ang mga halaga sa pinagsama-samang ay natatangi para sa bawat instance ng entity. Ang pag-alis ng anumang katangian mula sa isang identifier ay sumisira sa pagiging natatangi nito. Ang mga natatanging identifier ay may salungguhit sa diagram.

Ang bawat entity ay maaaring magkaroon ng anumang bilang ng mga ugnayan sa iba pang entity.

Mga relasyon sa pagitan ng mga entity

Ang isang relasyon ay isang pinangalanang kaugnayan sa pagitan ng mga entity na makabuluhan sa domain na pinag-uusapan.

Ang antas ng relasyon ay ang bilang ng mga entity na nakikilahok sa relasyon.

Link power - ang bilang ng mga instance ng entity na lumalahok sa link.

Depende sa halaga ng kapangyarihan, ang koneksyon ay maaaring magkaroon ng isa sa tatlong uri:

isa-sa-isa (tinutukoy 1:1).

isa-sa-marami (tinutukoy 1:N).

many-to-many (tinutukoy ng M:N).

Isa sa isa. Nangangahulugan na sa ganoong relasyon, ang isang entity na may isang tungkulin ay palaging tumutugma sa hindi hihigit sa isang entity na may isa pang tungkulin. Dahil ang antas ng koneksyon para sa bawat entity ay 1, sila ay konektado sa pamamagitan ng isang linya.

Isa-sa-marami. Ang isang entity na may isang tungkulin ay maaaring itugma ng anumang bilang ng mga entity na may ibang tungkulin.

Marami-sa-marami. Sa kasong ito, ang bawat isa sa mga nauugnay na entity ay maaaring katawanin ng anumang bilang ng mga pagkakataon.

3 . Mga Bahagi ng Modelo ng Data

Entity, kahulugan ng entity, mga mapagkukunan ng impormasyon tungkol sa mga entity

Ang modelo ng data - isang konseptong paglalarawan ng lugar ng paksa - ay ang pinaka-abstract na antas ng disenyo ng database. Ang modelo ng data ay binubuo ng mga entity, attribute, domain, at relasyon. Karagdagang - tungkol sa bawat isa sa mga elemento nang detalyado.

3.1 Mga entidad

Ang isang entity ay isang bagay tungkol sa kung aling impormasyon ang kailangang maimbak sa isang database.

Kapag nagdidisenyo ng mga database, sapat na upang ilarawan ang kasalukuyang sitwasyon - at karamihan sa mga pangngalan at ilang mga pandiwa ay magiging mga kandidato para sa mga entidad. Halimbawa: "Ang mga customer ay bumibili ng mga kalakal. Ang mga empleyado ay nagbebenta ng mga kalakal sa mga customer. Ang mga supplier ay nagsusuplay ng mga kalakal" - mga customer, mga kalakal, mga empleyado at mga supplier ay mga entidad. Ang mga pandiwang "buy" at "ibenta" ay mga entity din (bagaman maaari silang maging parehong entity, naiiba sa pananaw ng mamimili at nagbebenta).

Kapag nagdidisenyo ng isang database, ang pangunahing mapagkukunan ng impormasyon tungkol sa mga entidad ay isang pakikipag-usap sa customer upang maunawaan ang kanyang mga proseso sa negosyo. Bilang karagdagan, ang mga karaniwang dokumento na ginagamit sa mga proseso ng negosyo ay sinusuri: mga form, ulat, tagubilin, atbp. Matapos matanggap ang naturang listahan, kinakailangang suriin ito para sa pagkakumpleto at pagkakaugnay-ugnay, pati na rin upang matukoy ang mga duplicate - magkaparehong entity na tinatawag ng iba't ibang salita, at mga entity na aktwal na naiiba, ngunit inilalarawan ng parehong termino.

Ang mga entity ay maaaring magmodelo ng mga partikular na konsepto (mga customer, mga kalakal, mga tawag) at mga abstract (ang ahente ay responsable para sa kliyente, ang mag-aaral ay nakatala sa kurso).

Katangian.

Lugar ng paksa.

Database. Kahulugan.

DBMS. Kahulugan.

Database. Kahulugan.

Pangatlong normal na anyo. Kahulugan. Halimbawa.

Ang isang ugnayang variable R ay nasa ikatlong normal na anyo kung at kung ang mga sumusunod na kundisyon ay totoo:

Ang R ay nasa pangalawang normal na anyo.

· walang non-key na attribute na R ang nasa isang transitive functional dependence (ibig sabihin, ang dependence ay hindi ipinahayag sa pamamagitan ng isa pang attribute) mula sa potensyal na key R.

Ang isang hindi pangunahing katangian ng isang kaugnayang R ay isang katangian na hindi kabilang sa alinman sa mga susi ng kandidato ng R.

Database- ito ay isa o higit pang mga file ng data na idinisenyo upang mag-imbak, magbago at magproseso ng malalaking halaga ng magkakaugnay na impormasyon, na sistematiko sa paraan na ang mga materyales na ito ay maaaring matagpuan at maproseso gamit ang isang elektronikong computer (computer)

Sistema ng pamamahala ng database (DBMS) ay software na nagbibigay-daan sa mga user na tukuyin, lumikha, at mapanatili ang isang database, at pinangangasiwaan ang mga tawag sa database mula sa mga application ng end-user.

Database- awtomatikong sistema ng impormasyon ng sentralisadong imbakan at kolektibong paggamit ng data. Kasama sa data bank ang isa o higit pang mga database, isang database directory, isang DBMS, pati na rin ang mga library ng mga query at application program.

Lugar ng paksa ay isang bahagi ng totoong mundo na pag-aaralan upang makalikha ng isang database upang i-automate ang proseso ng pamamahala.

Katangian ay ang pinakamaliit na yunit ng istraktura ng data. Ang bawat elemento ay bibigyan ng natatanging pangalan kapag nilikha ang database. Ito ay tinutukoy ng pangalang ito sa panahon ng pagproseso.

Kakanyahan- anumang kongkreto o abstract na bagay sa paksang lugar na isinasaalang-alang. Ang mga entity ay ang mga pangunahing uri ng impormasyon na nakaimbak sa database (sa isang relational database, ang bawat entity ay bibigyan ng isang talahanayan).

Ilista ang mga function ng isang DBMS

Ang mga pangunahing pag-andar ng DBMS:

1) Pagpapasiya ng istraktura ng nilikha na database, ang pagsisimula nito at paunang paglo-load.

2) Pagbibigay sa mga user ng kakayahang manipulahin ang data (pagpili ng kinakailangang data, pagsasagawa ng mga kalkulasyon, pagbuo ng input / output interface, visualization).

3) Tinitiyak ang lohikal at pisikal na kalayaan ng data.

4) Proteksyon ng lohikal na integridad ng database - ang pagiging maaasahan ng data ay maaaring lumabag kapag sila ay ipinasok sa database o kapag ang mga iligal na aksyon ng mga pamamaraan sa pagproseso ng data na tumatanggap at nagpasok ng maling data sa database. Upang madagdagan ang pagiging maaasahan ng data sa system, ang tinatawag na mga hadlang sa integridad ay ipinahayag.



5) Proteksyon ng pisikal na integridad - mga tool sa pagbawi ng database (mga transaksyon).

6) Pamamahala ng mga pahintulot ng user na ma-access ang database.

7) Pag-synchronize ng trabaho ng ilang user.

8) Pamamahala ng mapagkukunan sa kapaligiran ng imbakan - ang DBMS ay naglalaan ng mga mapagkukunan ng memorya para sa bagong data, muling namamahagi ng napalaya na memorya, nag-aayos ng pagpila ng mga kahilingan sa panlabas na memorya, at iba pa.

9) Suporta para sa mga aktibidad ng mga tauhan ng system

Ang terminong "relasyon" ay nangangahulugang "nakabatay sa relasyon". Ang isang relational database ay binubuo ng mga entity (table) na may ilang relasyon sa isa't isa. Ang pangalan ay nagmula sa salitang Ingles na relasyon.
Ang disenyo ng database ay binubuo ng dalawang pangunahing yugto: lohikal at pisikal na pagmomodelo.
Sa panahon ng lohikal na pagmomodelo, nangongolekta ka ng mga kinakailangan at bumuo ng isang modelo ng database na independiyente sa isang partikular na DBMS (relational database management system). Ito ay tulad ng paggawa ng mga blueprint para sa iyong bahay. Maaari mong isipin at iguhit ang lahat: kung saan ang kusina, silid-tulugan, sala. Ngunit lahat ito ay nasa papel at sa mga layout.
Sa panahon ng pisikal na pagmomodelo, lumikha ka ng isang modelo na na-optimize para sa isang partikular na application at DBMS. Ito ang modelong ito na ipinatupad sa pagsasanay. Kung babalik tayo sa bahay mula sa nakaraang talata, sa yugtong ito kakailanganin mong magtayo ng bahay sa isang lugar - magdala ng mga troso, mga ladrilyo ...

Ang proseso ng disenyo ng database ay binubuo ng mga sumusunod na hakbang:

  • koleksyon ng impormasyon;
  • kahulugan ng mga entidad;
  • pagtukoy ng mga katangian para sa bawat entity;
  • pagtukoy ng mga ugnayan sa pagitan ng mga entity;
  • normalisasyon;
  • pagbabago sa isang pisikal na modelo;
  • paglikha ng database.

Ang unang 5 yugto ay bumubuo sa lohikal na yugto ng disenyo at ang natitirang dalawa ay bumubuo sa pisikal na yugto ng pagmomolde.

Yugto ng lohika

Ang lohikal na yugto ay binubuo ng ilang mga yugto. Lahat sila ay tinalakay sa ibaba.

Mga Kinakailangan sa Pagtitipon

Sa yugtong ito, kailangan mong matukoy nang eksakto kung paano gagamitin ang database at kung anong impormasyon ang maiimbak dito. Magtipon ng maraming impormasyon hangga't maaari tungkol sa kung ano ang dapat at hindi dapat gawin ng system.

Kahulugan ng entidad

Sa yugtong ito, kailangan mong tukuyin ang mga entity na bubuuin ng database.

Ang entity ay isang object sa isang database na nag-iimbak ng data. Ang isang entity ay maaaring isang bagay na totoo (isang bahay, isang tao, isang bagay, isang lugar) o isang abstract na bagay (isang transaksyon sa pagbabangko, isang departamento ng isang kumpanya, isang ruta ng bus). Sa pisikal na modelo, ang isang entity ay tinatawag na isang talahanayan.

Binubuo ang mga entity ng mga attribute (mga column sa isang table) at mga record (mga row sa isang table).

Karaniwan, ang mga database ay binubuo ng ilang pangunahing entity na nauugnay sa isang malaking bilang ng mga subordinate na entity. Ang mga pangunahing entity ay tinatawag na independiyente: hindi sila umaasa sa anumang ibang entity. Ang mga subordinate na entity ay tinatawag na umaasa: upang ang isa sa kanila ay umiral, ang pangunahing talahanayan na nauugnay dito ay dapat na umiiral.
Sa mga diagram, ang mga entity ay karaniwang kinakatawan bilang mga parihaba. Ang pangalan ng entity ay ipinahiwatig sa loob ng parihaba:

Anumang talahanayan ay may mga sumusunod na katangian:

  • walang magkaparehong mga linya sa loob nito;
  • lahat ng column (attribute) sa table ay dapat may iba't ibang pangalan;
  • ang mga elemento sa loob ng parehong column ay may parehong uri (string, numero, petsa);
  • ang pagkakasunud-sunod ng mga hilera sa talahanayan ay maaaring maging arbitrary.

Sa yugtong ito, kailangan mong tukuyin ang lahat ng mga kategorya ng impormasyon (mga entidad) na maiimbak sa database.

Kahulugan ng Katangian

Ang isang katangian ay kumakatawan sa isang ari-arian na naglalarawan sa isang entity. Ang mga katangian ay kadalasang isang numero, petsa, o teksto. Ang lahat ng data na nakaimbak sa isang katangian ay dapat na pareho ang uri at may parehong mga katangian.
Sa pisikal na modelo, ang mga katangian ay tinatawag na mga haligi.
Pagkatapos tukuyin ang mga entity, kinakailangang tukuyin ang lahat ng katangian ng mga entity na ito.
Sa mga diagram, karaniwang nakalista ang mga katangian sa loob ng parihaba ng entity. Sa figure makakahanap ka ng isang halimbawa ng database ng "Mga Bahay", ngayon lamang ang ilang mga katangian ay tinukoy para sa mga entity mula sa database na ito.


Tinutukoy ng bawat attribute ang uri ng data, laki, pinapayagang halaga, at anumang iba pang panuntunan. Kabilang dito ang mga panuntunan sa mandatory, nababago, at pagiging natatangi.
Tinutukoy ng mandatoryong panuntunan kung ang isang attribute ay isang kinakailangang bahagi ng isang entity. Kung ang attribute ay isang opsyonal na bahagi ng entity, maaari itong maging NULL, kung hindi, hindi.
Dapat mo ring matukoy kung ang katangian ay nababago. Ang ilang mga halaga ng katangian ay hindi maaaring magbago pagkatapos malikha ang entry.
At sa wakas, kailangan mong matukoy kung ang katangian ay natatangi. Kung gayon, ang mga halaga ng katangian ay hindi maaaring ulitin.

Mga susi

Ang susi ay isang hanay ng mga katangian na natatanging tumutukoy sa isang entry. Ang mga susi ay nahahati sa dalawang klase: simple at tambalan.
Ang isang simpleng susi ay binubuo lamang ng isang katangian. Halimbawa, sa database ng "Mga Pasaporte ng mga mamamayan ng bansa", ang numero ng pasaporte ay magiging isang simpleng susi: pagkatapos ng lahat, walang dalawang pasaporte na may parehong numero.
Ang isang composite key ay binubuo ng ilang mga katangian. Sa parehong database na "Mga pasaporte ng mga mamamayan ng bansa" maaaring mayroong isang pinagsama-samang susi na may mga sumusunod na katangian:
apelyido, pangalan, patronymic, petsa ng kapanganakan. Isa lamang itong halimbawa, dahil ang composite key na ito, sa teorya, ay hindi nagbibigay ng garantisadong pagiging natatangi ng record.
Mayroon ding ilang uri ng mga susi, na inilalarawan sa ibaba.

Posibleng susi

Ang susi ng kandidato ay anumang hanay ng mga katangian na natatanging tumutukoy sa isang entry sa isang talahanayan. Ang susi ng kandidato ay maaaring simple o tambalan.
Ang bawat entity ay dapat magkaroon ng hindi bababa sa isang posibleng key, bagama't maaaring mayroong higit sa isang posibleng key. Wala sa mga pangunahing pangunahing katangian ang maaaring magkaroon ng NULL na halaga.
Ang susi ng kandidato ay tinatawag ding surrogate key.

Pangunahing Susi

Ang pangunahing susi ay isang hanay ng mga katangian na natatanging tumutukoy sa isang tala sa isang talahanayan (entity). Ang isa sa mga posibleng susi ay nagiging pangunahing susi. Sa mga diagram, ang mga pangunahing key ay madalas na ipinapakita sa itaas ng pangunahing listahan ng mga katangian o naka-highlight na may mga espesyal na character. Ang entity sa figure ay may parehong susi at regular na mga katangian.

Mga Alternatibong Susi

Anumang posibleng susi na hindi pangunahing susi ay tinatawag na alternatibong susi. Ang isang entity ay maaaring magkaroon ng maramihang mga kahaliling key.

Mga dayuhang susi

Ang foreign key ay isang koleksyon ng mga attribute na tumutukoy sa pangunahin o kahaliling key ng isa pang entity. Kung ang isang foreign key ay hindi nauugnay sa isang pangunahing entity, maaari lamang itong maglaman ng mga null na halaga. Kung ang susi ay composite din, ang lahat ng mga katangian ng foreign key ay dapat na hindi natukoy.
Sa mga diagram, ang mga katangian na pinagsama sa mga dayuhang key ay tinutukoy ng mga espesyal na simbolo. Ang figure ay nagpapakita ng dalawang kaugnay na entity (Mga Bahay at ang kanilang mga May-ari) at ang mga dayuhang susi na nabuo nila (pagkatapos ng lahat, ang isang tao ay maaaring magkaroon ng higit sa isang bahay).

Ang mga susi ay mga lohikal na konstruksyon, hindi mga pisikal na bagay. Ang mga database ng relasyon ay may mga mekanismo upang mag-imbak ng mga susi.

Pagtukoy sa Mga Relasyon sa Pagitan ng mga Entity

Hinahayaan ka ng mga relational database na pagsamahin ang impormasyong kabilang sa iba't ibang entity.
Ang isang relasyon ay isang sitwasyon kung saan ang isang entity ay tumutukoy sa pangunahing susi ng isang pangalawang entity. Tulad ng, halimbawa, ang mga entidad na House at Master sa nakaraang figure.
Ang mga relasyon ay tinukoy sa panahon ng proseso ng base ng disenyo. Upang gawin ito, dapat mong suriin ang mga entity at tukuyin ang mga lohikal na relasyon na umiiral sa pagitan nila.
Tinutukoy ng uri ng relasyon ang bilang ng mga talaan ng entity na nauugnay sa isa pang talaan ng entity. Ang mga relasyon ay nahahati sa tatlong pangunahing uri, na inilalarawan sa ibaba.

Isa sa isa

Ang bawat entry ng unang entity ay tumutugma lamang sa isang entry mula sa pangalawang entity. At ang bawat tala ng pangalawang entity ay tumutugma lamang sa isang talaan mula sa unang entity. Halimbawa, may dalawang entity: People at Birth Certificates. At ang isang tao ay maaari lamang magkaroon ng isang birth certificate.

Isa-sa-marami

Ang bawat tala ng unang entity ay maaaring tumugma sa ilang talaan mula sa pangalawang entity. Gayunpaman, ang bawat entry ng pangalawang entity ay tumutugma lamang sa isang entry mula sa unang entity. Halimbawa, mayroong dalawang entity: Order at Order Item. At maaaring mayroong maraming mga item sa isang order.

marami-sa-marami

Ang bawat tala ng unang entity ay maaaring tumugma sa ilang talaan mula sa pangalawang entity. Gayunpaman, ang bawat tala ng pangalawang entity ay maaaring tumugma sa ilang talaan mula sa unang entity. Halimbawa, mayroong dalawang entity: May-akda at Aklat. Ang isang may-akda ay maaaring magsulat ng maraming mga libro. Ngunit ang isang libro ay maaaring magkaroon ng maraming may-akda.
Ayon sa criterion ng ipinag-uutos na relasyon ay nahahati sa ipinag-uutos at opsyonal.

  • Nangangahulugan ang isang mandatoryong relasyon na para sa bawat entry mula sa unang entity, dapat mayroong mga nauugnay na entry sa pangalawang entity.
  • Ang isang opsyonal na relasyon ay nangangahulugan na ang isang tala mula sa unang entity ay maaaring walang tala sa pangalawang entity.

Normalisasyon

Ang normalisasyon ay ang proseso ng pag-alis ng kalabisan na data mula sa isang database. Ang bawat elemento ng data ay dapat na naka-imbak sa database sa isa at isang pagkakataon lamang. Mayroong limang karaniwang paraan ng normalisasyon. Bilang isang patakaran, ang database ay nabawasan sa ikatlong normal na anyo.
Sa panahon ng proseso ng normalisasyon, ang ilang mga aksyon ay isinasagawa upang alisin ang kalabisan na data. Pinapabuti ng normalization ang pagganap, pinapabilis ang pag-uuri at pagbuo ng index, binabawasan ang bilang ng mga index bawat entity, at pinapabilis ang mga operasyon ng pagpasok at pag-update.
Ang isang normalized na database ay karaniwang mas nababaluktot. Kapag binabago ang mga query o patuloy na data, ang isang normalized na database ay karaniwang nangangailangan ng mas kaunting mga pagbabago, at ang mga pagbabago ay may mas kaunting mga kahihinatnan.

Unang normal na anyo

Upang i-convert ang isang entity sa unang normal na anyo, dapat mong alisin ang mga duplicate na pangkat ng mga halaga at tiyaking ang bawat katangian ay naglalaman lamang ng isang halaga, ang mga listahan ng mga halaga ay hindi pinapayagan.
Sa madaling salita, ang bawat katangian sa isang entity ay dapat lamang na nakaimbak sa isang pagkakataon.
Halimbawa, sa figure, hindi na-normalize ang entity ng House. Naglalaman ito ng ilang mga katangian para sa pag-iimbak ng data tungkol sa mga may-ari ng bahay (ang entity ng House ay hindi tumutugma sa unang normal na anyo).

Upang dalhin ang entity ng House sa unang normal na anyo, kinakailangang alisin ang mga paulit-ulit na grupo ng mga halaga, iyon ay, alisin ang mga katangian ng May-ari 1-3, ilagay ang mga ito sa isang hiwalay na entity. Resulta (Bahay ng Entity ay binawasan sa unang normal na anyo):

Pangalawang normal na anyo

Ang isang talahanayan sa pangalawang normal na anyo ay naglalaman lamang ng data na nalalapat dito. Ang mga halaga ng mga hindi pangunahing katangian ng entity ay nakasalalay sa pangunahing susi. Mas tiyak, nakadepende ang mga attribute sa primary key, sa buong primary key, at sa primary key lang.
Ang mga entity ay dapat nasa unang normal na anyo upang umayon sa pangalawang normal na anyo.
Halimbawa, ang entity House sa figure ay may katangian Presyo bawat litro ng gasolina, na walang kinalaman sa mga bahay. Inalis ang attribute na ito (o maaari mo itong ilipat sa ibang entity). At din inilipat namin ang katangian ng Mayor sa isang hiwalay na entity - ang katangiang ito ay nakasalalay sa lungsod kung saan matatagpuan ang bahay, at hindi sa bahay.
Ipinapakita ng figure ang essence House sa pangalawang normal na anyo (ang Essence House ay nabawasan sa pangalawang normal na anyo).

ikatlong normal na anyo

Ibinubukod ng ikatlong normal na anyo ang mga attribute na hindi nakadepende sa buong key. Anumang entity na nasa ikatlong normal na anyo ay nasa pangalawang normal na anyo din. Ito ang pinakakaraniwang anyo ng isang database.
Sa ikatlong normal na anyo, ang bawat katangian ay nakasalalay sa susi, sa buong susi, at sa walang anuman kundi ang susi.
Halimbawa, ang entity ng May-ari ng Bahay sa figure ay may katangiang Zodiac sign na nakadepende sa petsa ng kapanganakan ng may-ari ng bahay, hindi sa pangalan ng may-ari (na siyang susi).
Upang i-cast ang entity na May-ari ng bahay, kailangan mong lumikha ng entity Signs of the Zodiac at ilipat ang attribute na Sign of the Zodiac doon (Entity Owner ng bahay, binawasan sa pangatlong normal na anyo):

Mga paghihigpit

Mga hadlang ay ang mga patakaran na ipinapatupad ng database management system. Tinutukoy ng mga hadlang ang hanay ng mga halaga na maaaring ilagay sa isang column o column.
Halimbawa, hindi mo nais na ang halaga ng order sa iyong napaka-cool na tindahan ay mas mababa sa 500 rubles. Magtakda ka lang ng limitasyon sa hanay ng Halaga ng Order.

Mga nakaimbak na pamamaraan

Ang mga nakaimbak na pamamaraan ay mga paunang pinagsama-samang pamamaraan na nakaimbak sa isang database. Maaaring gamitin ang mga nakaimbak na pamamaraan upang tukuyin ang mga panuntunan sa negosyo at maaaring gamitin upang magsagawa ng mas kumplikadong mga kalkulasyon kaysa sa mga hadlang lamang.
Ang mga nakaimbak na pamamaraan ay maaaring maglaman ng logic ng daloy ng programa pati na rin ang mga query sa database. Maaari silang kumuha ng mga parameter at ibalik ang mga resulta bilang mga talahanayan o iisang halaga.
Ang mga naka-imbak na pamamaraan ay tulad ng mga regular na pamamaraan o function sa anumang programa.

TANDAAN
Ang mga nakaimbak na pamamaraan ay nasa database at tumatakbo sa database server. Ang mga ito sa pangkalahatan ay mas mabilis kaysa sa mga SQL statement dahil sila ay naka-imbak sa compiled form.

Integridad ng datos

Sa pamamagitan ng pag-aayos ng data sa mga talahanayan at pagtukoy sa mga ugnayan sa pagitan ng mga ito, maaari nating ipagpalagay na ang isang modelo ay nilikha na wastong sumasalamin sa kapaligiran ng negosyo. Ngayon kailangan nating tiyakin na ang data na ipinasok sa database ay nagbibigay ng tamang ideya ng estado ng bagay. Sa madaling salita, kailangan mong ipatupad ang mga panuntunan sa negosyo at panatilihin ang integridad ng database.
Halimbawa, ang iyong kumpanya ay nakikibahagi sa paghahatid ng mga aklat. Ikaw ay malamang na hindi tumanggap ng isang order mula sa isang hindi kilalang kliyente, dahil pagkatapos ay hindi mo na maihatid ang order. Kaya ang panuntunan ng negosyo: ang mga order ay tinatanggap lamang mula sa mga customer na ang impormasyon ay nasa database.
Ang kawastuhan ng data sa mga relational database ay sinisiguro ng isang hanay ng mga panuntunan. Ang mga panuntunan sa integridad ng data ay nahahati sa apat na kategorya.

  • Integridad ng Entidad- ang bawat talaan ng entity ay dapat may natatanging identifier at naglalaman ng data. Pagkatapos ng lahat, kailangan mong kahit papaano ay makilala sa pagitan ng lahat ng mga rekord na ito sa database.
  • Integridad ng Katangian- ang bawat katangian ay tumatanggap lamang ng mga wastong halaga. Halimbawa, tiyak na hindi bababa sa zero ang halaga ng pagbili.
  • Referential Integridad- isang hanay ng mga panuntunan na nagsisiguro sa lohikal na pagkakapare-pareho ng pangunahin at dayuhang mga susi kapag nagpasok, nag-a-update at nagtatanggal ng mga talaan. Tinitiyak ng integridad ng sanggunian na para sa bawat foreign key ay mayroong kaukulang pangunahing key. Kunin natin ang nakaraang halimbawa sa mga entity na May-ari ng Bahay at Bahay. Sabihin nating ikaw si Vasya Ivanov at nagmamay-ari ng bahay. Pinalitan mo ang iyong apelyido sa Sidorov at ginawa ang mga naaangkop na pagbabago sa entity ng may-ari ng Bahay. Tiyak na nais mong ang iyong bahay ay patuloy na maging sa iyo sa ilalim ng iyong bagong pangalan, at hindi kabilang sa isang tiyak na Vasya Ivanov, na wala na.
  • Mga Pasadyang Panuntunan sa Integridad- anumang mga panuntunan sa integridad na hindi kabilang sa alinman sa mga nakalistang kategorya.

nag-trigger

Trigger ay isang analogue ng isang naka-imbak na pamamaraan, na awtomatikong tinatawag kapag nagbago ang data sa talahanayan.
Ang mga trigger ay isang makapangyarihang mekanismo para sa pagpapanatili ng integridad ng database. Ang mga trigger ay tinatawag bago o pagkatapos ng mga pagbabago ng data sa talahanayan.
Sa tulong ng mga nag-trigger, hindi mo lamang maa-undo ang mga pagbabagong ito, ngunit baguhin din ang data sa anumang iba pang talahanayan.
Halimbawa, sabihin nating lumilikha ka ng isang forum sa Internet at gusto mong tiyakin na ipinapakita ng listahan ng forum ang pinakabagong post sa forum. Siyempre, maaari kang kumuha ng mensahe mula sa entity ng Forum Posts, ngunit madaragdagan nito ang pagiging kumplikado ng iyong kahilingan at ang oras ng pagpapatupad nito. Mas madaling magdagdag ng trigger sa entity ng Forum Posts na nagtatala ng huling post na idinagdag sa entity ng Forums, sa attribute na Huling Post. Ito ay lubos na magpapasimple sa query.

Patakaran sa negosyo

Tinutukoy ng mga panuntunan ng negosyo ang mga paghihigpit na inilalagay sa data ayon sa mga kinakailangan ng negosyo (sa mga kung kanino ka gumagawa ng base). Ang mga panuntunan sa negosyo ay maaaring binubuo ng isang hanay ng mga hakbang na kinakailangan upang makumpleto ang isang partikular na gawain, o maaaring ang mga ito ay mga pagsusuri lamang na nagpapatunay na ang data na ipinasok ay tama. Maaaring kabilang sa mga panuntunan sa negosyo ang mga panuntunan sa integridad ng data. Hindi tulad ng iba pang mga patakaran, ang kanilang pangunahing layunin ay upang matiyak na ang mga transaksyon sa negosyo ay isinasagawa nang tama.
Halimbawa, sa isang kumpanyang Very Tough Guys, maaaring kaugalian na ang puti, asul, at itim na mga kotse lamang ang binibili para sa opisyal na paggamit.
Ang panuntunan sa negosyo para sa katangian ng Kulay ng Sasakyan ng entity ng Mga Sasakyan ng Kumpanya ay ang maaari lamang puti, asul, o itim ang sasakyan.
Karamihan sa mga DBMS ay nagbibigay ng mga paraan upang:

  • upang tukuyin ang mga default na halaga;
  • upang suriin ang data bago ipasok ito sa database;
  • upang mapanatili ang mga relasyon sa pagitan ng mga talahanayan;
  • upang matiyak ang pagiging natatangi ng mga halaga;
  • para sa pag-iimbak ng mga nakaimbak na pamamaraan nang direkta sa database.

Magagamit ang lahat ng feature na ito para ipatupad ang mga panuntunan sa negosyo sa isang database.

Pisikal na modelo

Ang susunod na hakbang, pagkatapos lumikha ng lohikal na modelo, ay ang pagbuo ng pisikal na modelo. Ang pisikal na modelo ay ang praktikal na pagpapatupad ng database. Ang pisikal na modelo ay tumutukoy sa lahat ng mga bagay na kailangan mong ipatupad.
Kapag lumipat mula sa isang lohikal na modelo patungo sa isang pisikal na entity, sila ay na-convert sa mga talahanayan, at mga katangian sa mga column.
Ang mga ugnayan sa pagitan ng mga entity ay maaaring i-convert sa mga talahanayan o iwan bilang mga dayuhang key.
Ang mga pangunahing key ay kino-convert sa mga pangunahing hadlang sa key. Ang mga posibleng susi ay nasa mga limitasyon sa pagiging natatangi.

Denormalisasyon

Denormalisasyon- ito ay isang sadyang pagbabago sa istraktura ng base na lumalabag sa mga patakaran ng mga normal na anyo. Ito ay karaniwang ginagawa upang mapabuti ang pagganap ng database.
Sa teorya, ang isa ay dapat palaging magsikap para sa isang ganap na normalized na base, ngunit sa pagsasanay, ang isang ganap na normalized na base ay halos palaging nangangahulugan ng isang pagbaba ng pagganap. Ang sobrang pag-normalize ng isang database ay maaaring magresulta sa maraming mga talahanayan na naa-access sa tuwing kukunin ang data. Karaniwan, apat na talahanayan o mas kaunti ang dapat lumahok sa isang query.
Ang mga karaniwang diskarte sa denormalization ay: pagsasama-sama ng ilang mga talahanayan sa isa, pag-iimbak ng parehong mga katangian sa ilang mga talahanayan, at pag-iimbak ng buod o kinakalkula na data sa isang talahanayan.

Ilang taon na ang nakalilipas, bukod sa iba ko pang mga aktibidad, mayroong mga online na aralin sa mga pangunahing kaalaman sa pagbuo ng lohikal na istraktura ng database at ang wikang SQL. I am not doing lessons at the moment, but the recordings itself remained, so I decided to post them, bakit kailangang sayangin ang kabutihan? 🙂

Ngayon ay pag-uusapan natin ang tungkol sa modelo ng entity-relationship, o modelo ng entity-relationship.

Teorya

Ang modelo ng Entity-Relationship o modelo ng ER ay isang mataas na antas na modelo ng konseptwal na data na binuo upang pasimplehin ang gawain ng pagdidisenyo ng mga istruktura ng database.

Ang modelong ito ay isang hanay ng mga konsepto na naglalarawan sa istraktura ng database bilang isang hanay ng mga entity, mga katangian at mga relasyon. Ang pangunahing layunin ng pagbuo ng tulad ng isang modelo ng data ay upang lumikha ng isang pananaw ng gumagamit ng data at sumang-ayon sa isang malaking bilang ng mga teknikal na aspeto na may kaugnayan sa disenyo ng database. Dapat pansinin na ang modelo ng data ng konsepto ay hindi nakasalalay sa partikular na DBMS o platform ng hardware na ginagamit upang ipatupad ang database.

Ang layunin ng mga diagram ng "entity-relationship" ay lumikha ng tumpak at kumpletong representasyon ng tunay na lugar ng paksa (SbD), na ginagamit sa ibang pagkakataon bilang isang mapagkukunan ng impormasyon para sa pagbuo ng database ng mga automated information processing system (DB ASOI).

Ang diagram o konseptwal na modelong ito ng ObD ay dapat matugunan ang mga sumusunod na kinakailangan:

  • Tiyakin ang sapat na pagpapakita ng SbA;
  • Ipakita sa isang wika na mauunawaan ng parehong mga gumagamit sa hinaharap ng ASOI at mga developer ng database;
  • Naglalaman ng impormasyon tungkol sa ObD na sapat para sa karagdagang disenyo ng database (pagbuo ng mga lohikal at pisikal na modelo);
  • Ginagarantiyahan ang hindi malabo na interpretasyon o interpretasyon ng modelong ObA.

Ang mga pangunahing konsepto ng modelong ito ay ang mga konsepto entidad, katangian, at relasyon.

ESSENCE ay isang hanay ng mga bagay sa totoong mundo na may parehong mga katangian. Ang isang entity ay nailalarawan sa pamamagitan ng independiyenteng pag-iral at maaaring maging isang bagay na may pisikal (o tunay) na pag-iral o isang bagay na may isang konsepto (o abstract) na pag-iral.

Ang entity ay ang pangunahing nilalaman ng phenomenon o proseso (transaksyon o kahilingan) kung saan kinakailangan upang mangolekta ng impormasyon, at ang nodal point ng pangongolekta ng impormasyon. Ang isang entity ay tumutukoy sa isang hanay ng mga homogenous na bagay o bagay. Ang bawat entity ay nakikilala sa pamamagitan ng isang pangalan at isang listahan ng mga katangian (mga katangian). Ang isang entity ay maaaring isang tao, isang lugar, isang bagay, atbp., impormasyon tungkol sa kung saan dapat na naka-imbak sa database.

Magsanay

HALIMBAWA. Lugar ng paksa" Pag-book ng mga tiket sa sinehan". Ang mga pelikula ay ipinapakita sa sinehan, ang mga tiket ay maaaring mabili sa araw ng palabas o i-book nang maaga. Ang database ay naglalaman ng impormasyon tungkol sa lahat ng pagpapalabas ng pelikula sa isang partikular na sinehan, kabilang ang mga luma. Ang bawat screening ng pelikula ay may sariling gastos, i.е. ang mga tiket para sa parehong pelikula ngunit sa magkaibang oras ay maaaring mag-iba sa presyo. Ang screening ng pelikula ay binubuo ng isang Pelikula, ang impormasyon tungkol sa kung saan ay naka-imbak din sa database.

Para sa Pro" Pag-book ng mga tiket sa sinehan” ang mga entity ay ang mga sumusunod na konsepto:

Pagpapalabas ng pelikula

Mga pelikula

manonood

Ticket

Pagbu-book

Presyo

Sa graphically, ang mga entity sa mga entity-relationship diagram ay kinakatawan bilang mga parihaba:

KATANGIAN ito ang paraan kung saan natutukoy ang mga katangian ng isang entidad o kaugnayan. Ang attribute ay isang pinangalanang katangian ng isang entity. Ang pangalan ng katangian ay dapat na natatangi para sa isang partikular na entity, ngunit maaaring pareho para sa iba't ibang entity.

Ang partikular na hanay ng mga katangian para sa isang entity ay tinutukoy ng mga gawain kung saan ginagamit ang mga ito. Halimbawa, ang mga entity ng ObA na "Pag-order ng mga tiket sa sinehan" ay maaaring ilarawan gamit ang sumusunod na hanay ng mga katangian:

Pagpapalabas ng pelikula(Numero ng Screening ng Pelikula, Numero ng Pelikula, Petsa ng Pagpapalabas, Numero ng Gastos);

Pelikula(Numero ng pelikula, Pamagat, Tagal, Maikling paglalarawan);

manonood(Numero ng manonood, buong pangalan, petsa ng kapanganakan);

Ticket(Numero ng manonood, Numero ng screening ng pelikula, Presyo ng tiket);

Pagbu-book(Numero ng auditor, Numero ng screening, petsa ng booking);

Presyo(Cost number, Screening number, cost).

Sa graphically, ang mga attribute ng isang entity ay kinakatawan bilang mga callout na naglilista ng listahan ng mga pangalan ng attribute. Halimbawa:

Ang mga naka-bold na italics at salungguhit ay tumutukoy sa mga pangunahing key, isang katangian ng isang entity na natatanging katangian nito. Ang salungguhit ay tumutukoy sa mga dayuhang susi - mga katangian na natatanging katangian ng mga entity na kanilang tinutukoy.

KONEKSIYON ay isang relasyon sa pagitan ng mga pagkakataon ng dalawa (o higit pa) magkaibang entity. Ang mekanismo ng relasyon ay ginagamit upang tukuyin ang mga relasyon sa pagitan ng mga entity sa isang ObA. Bilang karagdagan, may mga ugnayan sa pagitan ng mga katangian ng isang hiwalay na entity (isasaalang-alang kapag gumagawa ng mga lohikal na modelo).

Ang bawat link ay binibigyan ng pangalan na dapat ilarawan ang function nito. Ang mga relasyon ay may mga katangian tulad ng pangalan ng koneksyon, ang cardinality index, ang antas ng pakikilahok, ang antas ng koneksyon, ang oras ng pagkakaroon ng koneksyon, at iba pa.

Ang pangalan ng relasyon ay dapat magkaroon ng isang tiyak na kahulugan upang gawing mas madaling maunawaan kung paano nauugnay ang mga entity. Halimbawa, ang ugnayan sa pagitan ng mga entity na Spectator at Ticket ay maaaring tukuyin bilang "Buy".

Ang isang rhombus ay ginagamit upang graphic na kumakatawan sa mga relasyon sa entity-relationship diagram. Sa loob ng rhombus, ang pangalan ng koneksyon ay tinukoy, at ang mga entidad na kalahok sa koneksyon na ito ay konektado gamit ang mga linya.

Ang indicator ng cardinality ng relasyon (katangiang walang malabo) ay nagpapahiwatig ng antas ng ugnayan sa pagitan ng mga entity at inilalarawan ang bilang ng mga posibleng relasyon para sa bawat kalahok na entity:

  • isa-sa-isa (1:1);
  • isa-sa-marami (1:N);
  • marami-sa-marami (N:M).