Lohikal at pisikal na mga modelo sa erwin data modeler. Pagtatatag ng mga relasyon sa pagitan ng mga entity Ano ang tungkulin ng isang katangian kay erwin

Ang paglikha ng mga modernong sistema ng impormasyon ay isang kumplikadong gawain, ang solusyon na nangangailangan ng paggamit ng mga espesyal na pamamaraan at tool. Hindi kataka-taka na kamakailan sa mga system analyst at developer ay nagkaroon ng malaking pagtaas ng interes sa CASE (Computer-Aided Software/System Engineering) - mga teknolohiya at tool ng CASE na ginagawang posible na mai-systematize at i-automate nang husto ang lahat ng mga yugto ng pagbuo ng software.

Ang aklat na inaalok sa mambabasa ay isang praktikal na gabay sa paglikha ng mga sistema ng impormasyon gamit ang epektibong pagsusuri, disenyo at mga tool sa pagbuo ng code mula sa teknolohiyang PLATINUM - BPwin at ERwin. Naglalaman din ito ng isang paglalarawan ng mga pamamaraan ng pagsusuri sa istruktura at disenyo ng mga modelo ng data sa lawak na kinakailangan para sa praktikal na gawain. Ang aplikasyon ng mga pamamaraan ay inilalarawan sa mga halimbawa.

Ang aklat ay isinulat batay sa personal na karanasan ng may-akda na nakuha habang gumagawa ng mga sistema ng impormasyon, nagbibigay ng mga lektura at pagsasagawa ng mga praktikal na klase sa mga teknolohiya ng CASE at mga tool ng CASE sa Training Center ng kumpanya ng Interface Ltd. Ito ay tinutugunan sa mga espesyalista sa larangan ng teknolohiya ng impormasyon: mga analyst ng system, mga tagapamahala ng proyekto, mga developer - at maaari ding maging kapaki-pakinabang para sa mga undergraduate at graduate na mga mag-aaral na nag-aaral ng mga pangunahing kaalaman sa pagsusuri ng system at disenyo ng mga sistema ng impormasyon.

Aklat:

Ang isang relasyon ay isang lohikal na relasyon sa pagitan ng mga entity. Ang bawat relasyon ay dapat na tinatawag na pandiwa o pariralang pandiwa (Relationship Verb Phrases) (Fig. 2.20). Ang pangalan ng relasyon ay nagpapahayag ng ilang hadlang o panuntunan sa negosyo at ginagawang mas madaling basahin ang diagram, halimbawa:

Bawat CLIENT <размещает> MGA ORDER;

Bawat ORDER <выполняется> EMPLEYADO.

kanin. 2.20. Pangalan ng Relasyon - Mga Parirala ng Pandiwa ng Relasyon

Ipinapakita ng koneksyon kung aling mga order ang inilagay ng customer at kung aling empleyado ang tumutupad sa order. Bilang default, ang pangalan ng koneksyon ay hindi ipinapakita sa diagram. Upang ipakita ang pangalan, sa menu ng konteksto na lilitaw kung mag-left-click ka sa anumang lugar sa diagram na hindi inookupahan ng mga object ng modelo, piliin ang Display Options/Relationship at pagkatapos ay paganahin ang opsyon na Verb Phrase.

Sa lohikal na antas, maaari kang magtatag ng isa-sa-maraming nagpapakilalang relasyon, marami-sa-maraming relasyon, at isa-sa-maraming hindi nagpapakilalang relasyon (ayon sa pagkakabanggit, ito ang mga pindutan mula kaliwa hanggang kanan sa tool palette).

Tinutukoy ng IDEF1X ang pagitan ng dependent at independent entity. Natutukoy ang uri ng isang entity sa pamamagitan ng kaugnayan nito sa iba pang entity. Ang isang nagpapakilalang relasyon ay itinatag sa pagitan ng isang independiyenteng (magulang na dulo ng relasyon) at umaasa (bata na dulo ng relasyon) na entity. Kapag iginuhit ang isang pagkakakilanlan na relasyon, awtomatikong iko-convert ng ERwin ang child entity sa isang umaasang entity. Ang umaasang entity ay kinakatawan ng isang parihaba na may mga bilugan na sulok (entity Umorder sa Fig. 2.21). Ang isang instance ng isang umaasang entity ay tinukoy lamang sa pamamagitan ng kaugnayan nito sa parent entity, iyon ay, sa istraktura sa Fig. 2.21 Ang impormasyon tungkol sa isang order ay hindi maaaring ilagay at walang kabuluhan kung walang impormasyon tungkol sa kliyente na naglagay nito. Kapag naitatag ang isang pagkakakilanlan na relasyon, ang mga katangian ng pangunahing susi ng parent entity ay awtomatikong ililipat sa pangunahing key ng child entity. Ang operasyong ito ng pagdaragdag ng mga attribute sa isang child entity kapag gumagawa ng isang relasyon ay tinatawag na attribute migration. Sa child entity, ang mga bagong attribute ay minarkahan bilang foreign key - (FK).

kanin. 2.21. Isang pagtukoy ng ugnayan sa pagitan ng isang independiyente at umaasa na talahanayan

Sa hinaharap, kapag bumubuo ng isang database schema, ang pangunahing key attribute ay makakatanggap ng NOT NULL attribute, na nangangahulugang imposibleng gumawa ng entry sa talahanayan ng mga order nang walang impormasyon tungkol sa numero ng customer.

Kapag naitatag ang isang hindi nagpapakilalang relasyon (Figure 2.22), nananatiling independyente ang child entity, at ang mga pangunahing pangunahing katangian ng parent na entity ay lumilipat sa mga hindi pangunahing bahagi ng parent na entity. Ang isang hindi nagpapakilalang relasyon ay ginagamit upang iugnay ang mga independiyenteng entity.

kanin. 2.22. Relasyon na hindi nagpapakilala

Instance ng entity Empleyado maaaring umiral nang hiwalay sa anumang pagkakataon ng isang entity Kagawaran, ibig sabihin, ang isang empleyado ay maaaring magtrabaho sa isang organisasyon nang hindi nakarehistro sa anumang departamento.

Ang isang nagpapakilalang koneksyon ay ipinapakita sa diagram bilang isang solidong linya na may makapal na tuldok sa dulo ng bata ng koneksyon (tingnan ang Fig. 2.21), ang isang hindi nagpapakilala ay ipinapakita bilang isang may tuldok na linya (Larawan 2.22).

Para gumawa ng bagong koneksyon:

ilagay ang cursor sa nais na button sa tool palette (pagkilala o hindi pagkilala sa koneksyon) at i-click ang kaliwang pindutan ng mouse (Larawan 2.2);

Mag-click muna sa magulang at pagkatapos ay sa child entity.

Maaaring baguhin ang hugis ng linya ng komunikasyon. Upang gawin ito, kailangan mong kunin ang nais na linya ng koneksyon gamit ang mouse at ilipat ito mula sa isang lugar hanggang sa ang linya ay magsimulang magmukhang mas mahusay.

Button sa tool palette

Naaayon sa link na nagpapakilala, pindutan

Many-to-many na relasyon at button

Tumutugon sa isang relasyong hindi nagpapakilala.

Upang i-edit ang mga katangian ng isang relasyon, mag-right click sa relasyon at piliin ang Relationship Editor mula sa menu ng konteksto.

Sa tab na Pangkalahatan ng dialog na lalabas, maaari mong itakda ang kapangyarihan, pangalan at uri ng koneksyon (Larawan 2.23).

Lakas ng komunikasyon (Cardinality) - nagsisilbing tukuyin ang ratio ng bilang ng mga instance ng parent entity sa bilang ng mga instance ng bata.

Mayroong apat na uri ng kapangyarihan (Larawan 2.24):

ang pangkalahatang kaso kung saan ang isang instance ng parent entity ay tumutugma sa 0, 1, o maraming instance ng child entity ay hindi minarkahan ng anumang simbolo;

minarkahan ng simbolong P ang kaso kapag ang isang instance ng parent entity ay tumutugma sa 1 o maraming instance ng child entity (zero value ay hindi kasama);

ang simbolo Z ay minarkahan ang kaso kapag ang isang instance ng parent entity ay tumutugma sa 0 o 1 instance ng child entity (maraming value ang hindi kasama);

Ang numero ay nagmamarka ng kaso ng isang eksaktong tugma, kapag ang isang instance ng parent na entity ay tumutugma sa isang paunang natukoy na bilang ng mga instance ng child entity.

kanin. 2.23. Dialog ng Relationship Editor

Bilang default, ang simbolo na kumakatawan sa lakas ng link ay hindi ipinapakita sa diagram. Upang ipakita ang pangalan, sa menu ng konteksto na lilitaw kung mag-left-click ka sa anumang lugar sa diagram na hindi inookupahan ng mga object ng modelo, piliin ang Display Options/Relationship at pagkatapos ay paganahin ang Cardinality na opsyon.

Pariralang Pandiwa- isang pariralang nagpapakilala sa ugnayan ng magulang at anak. Para sa isang one-to-many na relasyon, pagkilala o hindi pagkakakilanlan, sapat na upang tukuyin ang isang pangalan na nagpapakilala sa relasyon mula sa magulang sa anak na entity (Magulang-sa-Anak). Para sa isang many-to-many na relasyon, dapat na tukuyin ang mga pangalan ng Parents-to-Child at Child-to-Magulang.

kanin. 2.24. Mga pagtatalaga ng kapangyarihan

Uri ng koneksyon (pagkilala/hindi pagkilala). Para sa isang hindi nagpapakilalang relasyon, maaari mong tukuyin ang Nulls. Sa kaso ng isang ipinag-uutos na relasyon (No Nulls), kapag bumubuo ng isang database schema, ang foreign key attribute ay makakatanggap ng NOT NULL attribute, sa kabila ng katotohanan na ang foreign key ay hindi magiging bahagi ng primary key ng child entity. Sa kaso ng isang opsyonal na relasyon (Nulls Allowed), ang foreign key ay maaaring NULL. Ang isang opsyonal na relasyon na hindi nagpapakilala ay minarkahan ng isang transparent na brilyante sa bahagi ng parent entity (tingnan ang Figure 2.22).

kanin. 2.25. Tab ng Rolename/RI Actions ng dialog ng Relationship Editor

Sa tab na Kahulugan, maaari kang magbigay ng mas kumpletong kahulugan ng relasyon upang ma-refer ito sa hinaharap.

Sa tab na Rolename/RI Actions, maaari mong itakda ang pangalan ng tungkulin at mga panuntunan sa integridad ng referential.

Pangalan ng tungkulin (functional name) - isa itong kasingkahulugan para sa foreign key attribute na nagsasaad kung anong papel ang ginagampanan ng attribute sa isang child entity.

kanin. 2.26. Mga pangalan ng dayuhang pangunahing tungkulin

Sa halimbawang ipinapakita sa Fig. 2.26, talaga Empleyado dayuhang susi Numero ng departamento ay may functional na pangalan na "Where Works" na nagsasaad kung anong papel ang ginagampanan ng attribute na ito sa entity. Bilang default, tanging ang pangalan ng tungkulin ang ipinapakita sa listahan ng katangian. Upang ipakita ang buong pangalan ng katangian (kapwa ang functional na pangalan at ang pangalan ng tungkulin), sa menu ng konteksto na lilitaw kung mag-left-click ka sa anumang lugar sa diagram na hindi inookupahan ng mga modelong object, piliin ang Display Options/Entities at pagkatapos ay paganahin ang Rolename/ opsyon na Attribute (Fig. 2.25). Ang buong pangalan ay ipinapakita bilang ang functional na pangalan at ang batayang pangalan na pinaghihiwalay ng isang tuldok (tingnan ang Larawan 2.26).

Kinakailangang gumamit ng mga pangalan ng tungkulin kapag ang dalawa o higit pang mga katangian ng parehong entity ay tinukoy sa parehong saklaw, iyon ay, mayroon silang parehong saklaw, ngunit magkaibang kahulugan. Sa Fig. 2.27 kakanyahan Nagbebenta ng pera naglalaman ng impormasyon tungkol sa isang currency exchange act kung saan dalawang currency ang sangkot - ibinebenta at binili. Ang impormasyon tungkol sa mga pera ay nakapaloob sa entity Pera. Samakatuwid, ang mga entidad Nagbebenta ng pera At Pera dapat na naka-link nang dalawang beses at ang pangunahing susi ay - Numero ng pera dapat na lumipat sa entity ng dalawang beses Pera bilang isang dayuhang susi. Kinakailangang makilala ang mga katangiang ito, na naglalaman ng impormasyon tungkol sa bilang ng naibenta at binili na pera (mayroon silang magkaibang kahulugan), ngunit tumutukoy sa parehong entity Pera (may karaniwang hanay ng mga halaga). Sa halimbawa sa Fig. 2.27 mga katangian ang nakatanggap ng mga pangalan ng tungkulin Nabenta At Binili.

kanin. 2.27. Ang kaso ng mga mandatoryong pangalan ng tungkulin

Ang isa pang halimbawa ng ipinag-uutos na pagpapangalan sa tungkulin ay recursive na koneksyon(minsan ay tinatawag na "fish hook") kapag ang parehong entity ay parehong magulang at anak sa parehong oras. Kapag tinutukoy ang isang recursive na relasyon, ang attribute ay dapat na lumipat bilang isang foreign key sa mga hindi pangunahing attribute ng parehong entity. Ang isang katangian ay hindi maaaring lumitaw nang dalawang beses sa parehong entity sa ilalim ng parehong pangalan, kaya dapat itong matanggap ang pangalan ng tungkulin. Sa Fig. 2.26 kakanyahan Empleyado naglalaman ng pangunahing katangian ng key Numero ng tauhan. Ang impormasyon tungkol sa manager ng empleyado ay nakapaloob sa parehong entity, dahil nagtatrabaho ang manager sa parehong organisasyon. Upang sumangguni sa manager ng isang empleyado, dapat kang lumikha ng recursive na relasyon (sa Fig. 2.26 ang relasyon ay namumuno/subordinate) at magtalaga ng pangalan ng tungkulin ("Manager"). Tandaan na ang isang recursive na relasyon ay maaari lamang hindi makilala. Kung hindi, ang foreign key ay kailangang maging bahagi ng pangunahing key at makatanggap ng NOT NULL attribute kapag bumubuo ng schema. Ito ay magiging imposible na bumuo ng isang hierarchy - ang puno ng pag-uulat ay dapat may ugat - isang empleyado na hindi nag-uulat sa sinuman sa loob ng ibinigay na organisasyon.

Ang command/follow na relasyon ay ipinapakita sa Fig. 2.26 ay nagbibigay-daan sa iyo upang mag-imbak ng isang puno-tulad ng hierarchy ng subordination ng mga empleyado. Ang ganitong uri ng recursive na komunikasyon ay tinatawag hierarchical recursion at tumutukoy sa isang relasyon kung saan ang isang pinuno (isang instance ng isang parent entity) ay maaaring magkaroon ng maraming subordinates (instances ng isang child entity), ngunit ang isang subordinate ay may isang lider lamang (Figure 2.28).

Hierarchical recursion Recursion ng network


kanin. 2.28. Subordination ng mga instance ng entity sa hierarchical at network recursion

Ang isa pang uri ng recursion ay recursion ng network, kapag ang isang pinuno ay maaaring magkaroon ng maraming mga subordinates at, sa kabaligtaran, ang isang subordinate ay maaaring magkaroon ng maraming mga tagapamahala. Tinutukoy ng network recursion ang isang web ng mga ugnayan sa pagitan ng mga pagkakataon ng isang entity ng magulang at anak. Ito ang kaso kapag ang isang entity ay nasa isang many-to-many na relasyon sa sarili nito. Upang malutas ang isang many-to-many na relasyon, kailangan mong gumawa ng bagong entity (many-to-many na relasyon ay tatalakayin nang detalyado sa ibaba).

kanin. 2.29. Halimbawang pagpapatupad ng network recursion

Sa Fig. Isinasaalang-alang ng 2.29 ang isang halimbawa ng pagpapatupad ng network recursion. Ang istraktura ay nagpapakita ng mga relasyon ng pamilya sa pagitan ng mga miyembro ng pamilya sa anumang kumplikado. Katangian Uri ng relasyon maaaring kumuha ng mga kahulugang "ama-anak", "ina-anak", "lolo-apo", "biyenang-babae", "biyenan", atbp. Mula noong isang pamilya Ang relasyon ay palaging nag-uugnay sa dalawang tao, mula sa kakanyahan Kamag-anak sa. kakanyahan pagkakamag-anak dalawang link sa pagkakakilanlan ang itinatag na may mga pangalan ng tungkulin na "Senior" at "Junior". Ang bawat miyembro ng pamilya ay maaaring nauugnay sa sinumang iba pang miyembro ng pamilya, bukod dito, ang parehong pares ng mga kamag-anak ay maaaring konektado sa pamamagitan ng iba't ibang uri ng mga relasyon sa pamilya.

Kung ang isang attribute ay na-migrate bilang foreign key sa higit sa isang level, ang buong pangalan ng foreign key (role name + base attribute name) ay ipapakita sa unang level, at ang role name lang ang ipinapakita sa pangalawa o higit pa. mga antas. Sa Fig. Ipinapakita ng Figure 2.30 ang isang istraktura ng data na naglalaman ng isang entity pangkat, kakanyahan Manlalaro, na nag-iimbak ng impormasyon tungkol sa mga manlalaro ng bawat koponan, at ang entidad layunin, naglalaman ng impormasyon tungkol sa mga layunin na nai-score ng bawat manlalaro. Banyagang pangunahing katangian Numero ng koponan kakanyahan Manlalaro may pangalan ng papel na "Aling koponan ang kanyang nilalaro".

kanin. 2.30. Lumilipat ng mga pangalan ng tungkulin

Sa susunod na antas, mahalagang layunin, tanging ang pangalan ng tungkulin ng kaukulang foreign key attribute ang ipinapakita (Anong team ang nilalaro niya).

Ang mga panuntunan sa integridad ng referential (RI) ay mga lohikal na konstruksyon na nagpapahayag ng mga panuntunan sa negosyo para sa paggamit ng data at kumakatawan sa mga panuntunan sa pagpapasok, pagpapalit at pagtanggal. Kapag bumubuo ng schema ng database batay sa mga opsyon sa lohikal na modelo na tinukoy sa tab na Rolename/RI Actions, bubuo ng mga panuntunan sa integridad ng deklaratibong referential, na dapat ireseta para sa bawat relasyon, at mga trigger na nagtitiyak ng integridad ng referential. Ang mga nag-trigger ay mga program na pinapagana kapag may ipinapatupad na insert, replace, o delete command (INSERT, UPDATE, o DELETE). Sa Fig. 2.30 mayroong isang pagkakakilanlan na ugnayan sa pagitan ng mga entity Koponan At Manlalaro. Ano ang mangyayari kung tatanggalin mo ang isang utos? Instance ng entity Manlalaro hindi maaaring umiral nang walang utos (pangunahing key attribute Anong team ang nilalaro niya? Numero ng koponan hindi maaaring kunin ang halagang NULL), samakatuwid, kailangan mong ipagbawal ang pagtanggal ng isang koponan hangga't mayroong kahit isang manlalaro sa loob nito (upang tanggalin ang isang koponan, kailangan mo munang tanggalin ang lahat ng mga manlalaro), o agad na tanggalin ang lahat ng mga manlalaro kasama nito. kasama ang pangkat. Ang ganitong mga tuntunin sa pagtanggal ay tinatawag na "paghihigpit" at "kaskad" (Parent RESTRICT at Parent CASCADE, tingnan ang Fig. 2.25). Tandaan na ang mga entity Manlalaro At layunin, sa turn, ay konektado din sa pamamagitan ng isang link sa pagkakakilanlan at kung ang isang koponan ay tinanggal sa isang kaskad, ang lahat ng mga manlalaro sa koponan at ang lahat ng mga layunin na kanilang naitala ay tatanggalin. Ang pagpapatupad ng isang utos na magtanggal ng isang hilera ay maaaring aktwal na humantong sa pagtanggal ng libu-libong mga hilera sa database, kaya dapat mong gamitin ang cascade delete na panuntunan nang may pag-iingat. Kung nakatakda ang isang panuntunan sa paghihigpit sa pagtanggal, kung susubukan mong tanggalin ang isang koponan na mayroong kahit isang manlalaro, magbabalik ng error ang relational na DBMS server.

Sa Fig. 2.26 isang opsyonal na relasyong hindi nagpapakilala sa pagitan ng mga entity Kagawaran At Empleyado. Instance ng entity Empleyado maaaring umiral nang walang sanggunian ng departamento (foreign key attribute Saan siya nagtatrabaho? Numero ng departamento maaaring NULL). Sa kasong ito, posibleng magtakda ng panuntunan para sa pagtatakda nito sa zero - SET NULL. Kapag nagde-delete ng departamento, ang foreign key attribute ng entity Empleyado - Saan siya nagtatrabaho? Numero ng departamento magiging NULL. Nangangahulugan ito na kapag ang isang departamento ay tinanggal, ang empleyado ay nananatiling nagtatrabaho sa organisasyon nang hindi itinalaga sa anumang departamento at ang impormasyon tungkol sa kanya ay nai-save.

Posibleng magtakda ng dalawa pang panuntunan sa pagtanggal (kung sinusuportahan ng DBMS):

SET DEFAULT - kapag nagtatanggal, ang foreign key attribute ay itinalaga ng default na halaga. Halimbawa, kapag ang isang koponan ay tinanggal, ang mga manlalaro ay maaaring ilipat sa ibang koponan.

WALA - kapag tinanggal, hindi nagbabago ang halaga ng foreign key attribute. Ang rekord tungkol sa manlalaro ay "nakabitin sa hangin," ibig sabihin, ito ay tumutukoy sa isang koponan na wala na. Ang sitwasyong ito ay tipikal para sa "flat" na mga talahanayan. Halimbawa, kung ang impormasyon ng manlalaro at koponan ay naka-imbak sa mga dbf file, maaari mong tanggalin ang entry ng koponan nang hindi nalalaman ng file ng mga manlalaro ang anumang bagay tungkol sa katotohanang wala ang katumbas na koponan. Samakatuwid, sa mga desktop o file server system, ang functionality na nagpapatupad ng referential integrity rules ay ipinapatupad sa client application.

Kinokontrol ng mga panuntunan sa pagtanggal kung ano ang mangyayari sa database kapag ang isang row ay tinanggal. Katulad nito, kontrolin ang mga panuntunan sa pagpasok at pag-update kung ano ang mangyayari sa database kung ang mga row ay binago o idinagdag. Halimbawa, maaari kang magtakda ng panuntunan na nagbibigay-daan sa iyong magdagdag ng bagong koponan kung naka-enroll lang ang kahit isang manlalaro dito. Ang nais na pag-uugali ay maaaring makamit sa pamamagitan ng mga sumusunod na aksyon:

Itakda ang lakas ng koneksyon sa pagitan ng mga entity Koponan At Manlalaro, katumbas ng "Isa o higit pa" - 1 o higit pa (uri P). Ipinapalagay na ang isang pagkakakilanlan na relasyon ay naitatag.

Italaga ang RI trigger action na "Parent Insert-CASCADE" para kapag may nalikhang bagong row sa table Koponan kahit isang row ay awtomatikong ginawa sa child table Manlalaro.

Italaga ang pagkilos ng trigger ng RI na "Parent Delete-CASCADE" sa koneksyon upang kapag ang isang row ay tinanggal mula sa talahanayan Koponan ang kaukulang row o row mula sa table Manlalaro ay tinanggal din.

Awtomatikong nagtatalaga ang ERwin ng default na halaga ng integridad ng referential sa bawat relasyon bago ito idagdag sa diagram. Ang mga RI mode na itinalaga ng ERwin bilang default (ipinapakita sa Talahanayan 2.4) ay maaaring baguhin sa Referential Integrity Default na editor, na tinatawag sa pamamagitan ng pag-click sa RI Defaults button sa Target Server dialog (Server/Target Server menu).

Talahanayan 2.4. Ang mga halaga ng RI ay itinalaga bilang default sa ERwin, pati na rin ang mga posibleng mode para sa bawat uri ng komunikasyon

Link ng pagkakakilanlan Nulls Allowed Non-identifying relationship (No Nulls) Pangkategoryang koneksyon
Bata Tanggalin ang Mga posibleng mode RESTRICT, CASCADE, WALA RESTRICT, CASCADE, WALA, SET NULL, SET DEFAULT RESTRICT, CASCADE,
WALA
Bata Tanggalin ang Mga Default na Mode WALA WALA WALA WALA
Child Insert Posibleng mga mode RESTRICT, CASCADE, RESTRICT, CASCADE, WALA, SET DEFAULT RESTRICT, CASCADE,
WALA WALA
Child Insert Default Modes PAGHIHIGPIT SET NULL PAGHIHIGPIT PAGHIHIGPIT
Child Update Posibleng mga mode RESTRICT, CASCADE, WALA RESTRICT, CASCADE, WALA, SET NULL, SET DEFAULT RESTRICT, CASCADE, WALA, SET DEFAULT RESTRICT, CASCADE, WALA
Mga Default na Mode ng Pag-update ng Bata PAGHIHIGPIT SET NULL PAGHIHIGPIT PAGHIHIGPIT
Magulang Tanggalin Posibleng mga mode RESTRICT, CASCADE, WALA RESTRICT, CASCADE, WALA, SET NULL, SET DEFAULT RESTRICT, CASCADE, WALA, SET DEFAULT RESTRICT, CASCADE,
WALA
Magulang Tanggalin ang Mga Default na Mode PAGHIHIGPIT SET NULL PAGHIHIGPIT CASCADE
Parent Insert Posibleng mga mode RESTRICT, CASCADE, WALA RESTRICT, CASCADE, WALA, SET NULL, SET DEFAULT RESTRICT, CASCADE, WALA, SET DEFAULT RESTRICT, CASCADE, WALA
Mga Default na Mode ng Pagpasok ng Magulang WALA WALA WALA WALA
Magulang Update Posibleng mga mode RESTRICT, CASCADE, WALA RESTRICT, CASCADE, WALA, SET NULL, SET DEFAULT RESTRICT, CASCADE, WALA, SET DEFAULT RESTRICT, CASCADE, WALA
Mga Default na Mode ng Pag-update ng Magulang PAGHIHIGPIT SET NULL PAGHIHIGPIT CASCADE

Many-to-many na komunikasyon ay posible lamang sa antas ng lohikal na modelo ng data. Sa Fig. Ang Figure 2.31 sa itaas ay nagpapakita ng isang halimbawa ng isang many-to-many na relasyon. Ang isang doktor ay maaaring makakita ng maraming mga pasyente, ang isang pasyente ay maaaring gamutin ng ilang mga doktor. Ang ganitong koneksyon ay ipinahiwatig ng isang solidong linya na may dalawang tuldok sa mga dulo.

Tingnan natin ang siklo ng pag-unlad gamit ang halimbawang ibinigay sa artikulo ni Codd.
Alalahanin natin sandali ang nilalaman ng problema. Ang mga rekord ng mga empleyado ay pinananatili. Para sa bawat empleyado, ang impormasyon ay nakaimbak tungkol sa mga bata at isang listahan ng mga posisyon na hawak ng empleyadong ito. Para sa mga posisyon, ang impormasyon sa mga itinatag na opisyal na suweldo ay naka-imbak.
Una, gawin natin ang lohikal na antas ng modelo. Para gawin ito, itakda ang entity display mode (Display/Entity Level). Gawin natin ang mga entity na "empleyado", "mga bata", "kasaysayan ng trabaho", "kasaysayan ng suweldo" gamit ang toolbar. Pangalanan namin ang mga entity sa Russian.
Ang pagkakaroon ng napiling bawat entity, magtatakda kami ng isang detalyadong paglalarawan para dito sa Russian sa editor ng "Entity Definition". Lalabas ang paglalarawang ito sa mga ulat ng ERwin at maaaring ipakita sa isang tsart.
Ipahiwatig natin ang mga koneksyon sa pagitan ng mga entity. Halimbawa, ang "empleyado" ay iniuugnay ng pagkakakilanlan na "ay isang magulang" sa entidad na "mga anak". Ang paglalarawan ng relasyon ay inilagay sa editor na "Editor/Relasyon".
Ang resulta ng trabaho ay ipinapakita sa ERwin diagram (Larawan 2).

kanin. 2. Entity level diagram

Ngayon, pumunta tayo sa mode ng setting ng attribute (Display/Atribute Level). Sa editor ng "Entity/Attribute" itatakda namin ang mga pangalan ng key at non-key na attribute sa Russian. Tandaan na para sa child entity na "mga bata" ang pangunahing katangian na "numero ng empleyado" ay hindi tinukoy nang manu-mano. Pinangangasiwaan ng ERwin ang paglipat nito mula sa pangunahing entity. Ganoon din ang nangyayari sa ibang mga entidad ng bata.
Para sa katangiang "pangalan" ng entity na "empleyado", ipinapahiwatig namin na ito ay isang alternatibong susi (ipapalagay namin na ang lahat ng empleyado ay may natatanging pangalan/apelyido). Upang gawin ito, pagkatapos ng pangalan ng katangian ay inilalagay namin ang AK1 pointer sa mga panaklong.
Ang resulta ng trabaho ay ipinapakita sa ERwin diagram (Fig. 3) sa IDEF1X notation.

kanin. 3. Attribute level diagram sa IDEF1X notation

Ang view ng parehong diagram sa IE (Information Engineering) notation ay ipinapakita sa Fig. 4.

kanin. 4. Diagram ng antas ng katangian sa notasyon ng IE

Dahil tinukoy namin ang mga pangalan ng mga katangian at entity sa Russian, upang lumipat sa pisikal na antas ng modelo, dapat naming italaga sa kanila ang mga identifier ng mga talahanayan, column at mga paghihigpit na nakakatugon sa mga panuntunan ng target na DBMS (kadalasan ay nangangahulugan ito ng paggamit ng mga letrang Latin. , mga numero at ilang espesyal na character).
Sa editor ng "Database Schema," tukuyin ang katumbas na pangalan ng talahanayan para sa bawat entity. Pagkatapos ay sa editor ng "Kahulugan ng Katangian" itinakda namin ang mga pangalan ng mga column ng talahanayan na naaayon sa mga katangian ng entity. Nagbibigay din ang ERwin ng paglipat ng mga pangalan ng column sa mga subordinate na talahanayan.
Sa yugtong ito, maaari mo ring gamitin ang editor ng "Mga Pinalawak na Katangian" upang tukuyin ang mga pinahabang katangian ng PowerBuilder (format ng display, mask sa pag-edit, mga panuntunan sa kontrol, pagkakahanay, mga heading at komento).
Tinutukoy ng editor ng Relationship Definitions ang pisikal na pangalan ng relasyon, na tumutugma sa pangalan ng hadlang na ginawa ni ERwin sa database.
Ngayon ang lahat ay handa na upang lumikha ng isang database at kailangan mong piliin ang target na DBMS (kung hindi pa ito nagawa noon). Piliin natin, halimbawa, Sybase System 10.
Sa editor ng SYBASE Database Schema, nagtakda kami ng mga uri ng data para sa mga column ng talahanayan.
Ang dialog kung saan napili ang uri ng data ay ipinapakita sa Fig. 5.

kanin. 5. Kahulugan ng pisikal na modelo

Ngayon ay maaari kang magpatuloy sa paglikha ng database. Upang gawin ito, patakbuhin ang command na "Sybase schema generation". Ang ERwin ay bubuo ng isang pakete ng mga SQL database generation statement. Ipinapakita ng Figure 6 ang dialog para sa pagpili ng mga parameter ng pagbuo ng package para sa pagbuo ng database. Ang figure ay nagpapakita na ang isang filter ay maaaring itakda (hindi lahat ng mga talahanayan ay nabuo), isang pakete ng mga SQL statement ay maaaring tingnan (preview), i-print, i-save sa isang file (ulat), at nabuo (bumuo).

kanin. 6. Pagpili ng mga parameter ng pagbuo ng database

Mga advanced na tampok ng ERwin

Mayroong dalawang posibleng pananaw sa modelo ng impormasyon at, nang naaayon, dalawang antas ng modelo. Ang una - lohikal na antas (point of view ng gumagamit) ay nangangahulugang isang direktang pagpapakita ng mga katotohanan mula sa totoong buhay. Halimbawa, ang mga tao, mesa, departamento, aso at kompyuter ay mga tunay na bagay. Ang mga ito ay pinangalanan sa natural na wika, na may anumang mga salitang naghihiwalay (mga puwang, kuwit, atbp.). Sa pisikal na antas ng modelo, ang paggamit ng isang partikular na DBMS ay isinasaalang-alang, ang mga uri ng data (halimbawa, integer o tunay na numero), at mga index para sa mga talahanayan ay tinutukoy.

Nagbibigay ang ERwin ng kakayahang lumikha at pamahalaan ang dalawang magkaibang antas ng presentasyon ng isang diagram (modelo), pati na rin ang pagkakaroon ng maraming mga opsyon sa pagpapakita sa bawat antas. Ang terminong "lohikal na antas" sa ERwin ay tumutugma sa isang konseptong modelo.

Mga yugto ng pagbuo ng isang modelo ng impormasyon:

· kahulugan ng mga entidad;

· pagpapasiya ng mga dependencies sa pagitan ng mga entity;

· pagtatakda ng pangunahin at alternatibong mga susi;

· kahulugan ng mga katangian ng entity;

· pagdadala ng modelo sa kinakailangang antas ng normal na anyo;

· paglipat sa pisikal na paglalarawan ng modelo: pagtatalaga ng mga sulat na pangalan ng entity - pangalan ng talahanayan, katangian ng entity - katangian ng talahanayan;

· pagtatakda ng mga trigger, pamamaraan at paghihigpit;

· Pagbuo ng database.

Lumilikha si Erwin ng visual na representasyon (modelo ng data) para sa problemang niresolba. Maaaring gamitin ang view na ito para sa detalyadong pagsusuri, pagpipino, at pamamahagi ng dokumentasyong kailangan sa yugto ng pag-unlad. Gayunpaman, ang ERwin ay malayo sa isang tool sa pagguhit. Awtomatikong ginagawa ng ERwin ang database (mga talahanayan, mga index, mga naka-imbak na pamamaraan, mga pag-trigger ng integridad ng referential, at iba pang mga bagay na kailangan upang pamahalaan ang data).

Paglikha ng isang entity.

Upang magdagdag ng entity sa modelo, kailangan mong mag-click sa button ng entity sa toolbar (Erwin Toolbox), pagkatapos ay mag-click sa lugar sa diagram kung saan mo gustong ilagay ang bagong entity. Sa pamamagitan ng pag-right click sa isang entity at pagpili sa Entity Editor mula sa pop-up menu, maaari mong ipakita ang dialog ng Entity Editor, kung saan mo tutukuyin ang pangalan, paglalarawan, at mga komento ng entity.

Ang bawat entity ay dapat na ganap na matukoy gamit ang isang paglalarawan ng teksto sa tab na Kahulugan. Ang mga kahulugang ito ay kapaki-pakinabang kapwa sa lohikal na antas, dahil pinapayagan ka nitong maunawaan kung ano ang entity, at sa pisikal na antas, dahil maaaring i-export ang mga ito bilang bahagi ng schema at magamit sa aktwal na database (GUMAWA NG COMMENT sa entity_name). Ang Note, Note2, Note3, UDP (User Defined Properties) na mga bookmark ay ginagamit upang magdagdag ng mga karagdagang komento at kahulugan sa entity.

Sa tab na Icon, ang bawat entity ay maaaring magtalaga ng isang imahe na ipapakita sa mode ng pagtingin sa modelo sa antas ng icon at isang imahe na ipapakita sa lahat ng iba pang mga antas.

Ang tab na UDP ng dialog ng Entity Editor ay ginagamit upang tukuyin ang mga katangian na tinukoy ng user (User - Mga Tinukoy na Properties). Kapag nag-click ka sa button para sa tab na ito, tatawagin ang dialog ng User - Defined Property Editor (tinatawag din mula sa Edit/UDPs menu). Kinakailangang ipahiwatig ang uri ng bagay kung saan ginagawa ang UDP (diagram sa kabuuan, entity, katangian, atbp.) at ang uri ng data. Upang magdagdag ng bagong property, i-click ang button sa talahanayan at ilagay ang pangalan, uri ng data, default na halaga, at kahulugan.

Paglikha ng mga Katangian

Upang ilarawan ang mga katangian, mag-right-click sa entity at piliin ang Attribute Editor mula sa lalabas na menu. Lumilitaw ang dialog ng Attribute Editor.

Kung nag-click ka sa button na Bagong, sa dialog ng Bagong Katangian na lilitaw, maaari mong tukuyin ang pangalan ng katangian, ang pangalan ng column na naaayon dito sa pisikal na modelo, at ang domain. Gagamitin ang domain ng katangian kapag tinutukoy ang uri ng column sa antas ng pisikal na modelo.

Para sa mga pangunahing katangian ng pangunahing key, sa tab na Pangkalahatan ng dialog ng Attribute Editor, dapat kang gumawa ng marka sa window ng pagpili ng Pangunahing Key.

Ang mga tab na Definition, Note at UDP ay gumaganap ng parehong mga function tulad ng kapag tumutukoy sa isang entity, ngunit sa antas ng katangian.

Upang gawing mas visual ang diagram, maaaring iugnay ang bawat katangian sa isang icon. Magagawa ito gamit ang listahan ng pagpili ng Icon sa tab na Pangkalahatan.

Napakahalaga na bigyan ang katangian ng tamang pangalan. Ang mga katangian ay dapat na pinangalanan sa isahan at may malinaw na kahulugan ng semantiko.

Ayon sa syntax ng IDEF1X, ang pangalan ng katangian ay dapat na natatangi sa loob ng modelo (hindi lamang sa loob ng entity!). Bilang default, kapag sinubukan mong magdagdag ng kasalukuyang pangalan ng katangian, pinapalitan ito ng pangalan ni ERwin. Halimbawa, kung ang katangian ng Komento ay mayroon na sa modelo, ang isa pang katangian (sa ibang entity) ay tatawaging Komento/2, pagkatapos ay Komento/3, atbp.

Kapag naglilipat ng mga katangian sa loob at pagitan ng mga entity, maaari mong gamitin ang drag&drop technique sa pamamagitan ng pagpili sa button sa tool palette.

Paglikha ng koneksyon.

Upang lumikha ng bagong relasyon, pumili ng isang nagpapakilala o hindi nagpapakilalang relasyon sa tool palette (ERwin Toolbox), i-click muna ang magulang at pagkatapos ay ang child entity.

Sa tool palette, ang isang button ay tumutugma sa isang nagpapakilalang relasyon, isang many-to-many na button ng relasyon, at isang button na nauugnay sa isang hindi nagpapakilalang relasyon. Upang i-edit ang mga katangian ng isang relasyon, mag-right click sa relasyon at piliin ang Relationship Editor mula sa menu ng konteksto.

Sa tab na Pangkalahatan ng dialog na lalabas, maaari mong itakda ang kapangyarihan, pangalan at uri ng koneksyon.

Lakas ng komunikasyon (Cardinality)- nagsisilbing tukuyin ang ratio ng bilang ng mga instance ng parent entity sa bilang ng mga instance ng bata.

Mayroong apat na uri ng kapangyarihan:

ang pangkalahatang kaso kung saan ang isang instance ng parent entity ay tumutugma sa 0, 1, o maraming instance ng child entity ay hindi minarkahan ng anumang simbolo;

minarkahan ng simbolong P ang kaso kapag ang isang instance ng parent na entity ay tumutugma sa 1 o maraming instance ng child entity (null value na hindi kasama);

ang simbolo Z ay minarkahan ang kaso kapag ang isang instance ng parent entity ay tumutugma sa 0 o 1 instance ng child entity (maraming value ang hindi kasama);

Ang numero ay nagmamarka ng kaso kapag ang isang instance ng parent na entity ay tumutugma sa isang paunang natukoy na bilang ng mga instance ng child entity.

Bilang default, ang simbolo na kumakatawan sa lakas ng link ay hindi ipinapakita sa diagram. Upang ipakita ang pangalan, sa menu ng konteksto na lilitaw kung nag-right-click ka sa anumang lugar sa diagram na hindi inookupahan ng mga object ng modelo, piliin ang Display Options/Relationship at pagkatapos ay paganahin ang Cardinality na opsyon.

Uri ng koneksyon (pagkilala/hindi pagkilala).

Tinutukoy ng IDEF1X ang pagitan ng dependent at independent entity. Natutukoy ang uri ng isang entity sa pamamagitan ng kaugnayan nito sa iba pang entity. Ang isang nagpapakilalang relasyon ay itinatag sa pagitan ng isang independiyenteng (magulang na dulo ng relasyon) at umaasa (bata na dulo ng relasyon) na entity. Kapag ang isang pagkakakilanlan na relasyon ay iginuhit, ERwin awtomatikong i-convert ang relasyon ng bata sa isang umaasa na relasyon. Ang umaasang entity ay kinakatawan ng isang parihaba na may mga bilugan na sulok.

Ang isang instance ng isang umaasang entity ay tinukoy lamang sa pamamagitan ng isang relasyon sa isang parent na entity. Kapag naitatag ang isang pagkakakilanlan na relasyon, ang mga katangian ng pangunahing susi ng parent entity ay awtomatikong ililipat sa pangunahing key ng child entity. Ang operasyong ito ng pagdaragdag ng mga attribute sa isang child entity kapag gumagawa ng isang relasyon ay tinatawag na attribute migration. Sa child entity, ang mga bagong attribute ay minarkahan bilang mga foreign key - (FK).

Kapag naitatag ang isang hindi nagpapakilalang relasyon, nananatiling independyente ang child entity, at ang mga pangunahing pangunahing katangian ng parent na entity ay lumilipat sa mga hindi pangunahing bahagi ng child entity. Ang isang hindi nagpapakilalang relasyon ay ginagamit upang ikonekta ang mga independiyenteng entity.

Ang isang nagpapakilalang koneksyon ay ipinapakita sa diagram bilang isang solidong linya na may makapal na tuldok sa bata na dulo ng koneksyon, at isang hindi nagpapakilalang koneksyon ay ipinapakita bilang isang tuldok na linya.

Para sa isang hindi nagpapakilalang relasyon, maaari mong tukuyin ang mandatory (Mga Nulls sa General tab ng dialog ng Relationship Editor). Sa kaso ng isang ipinag-uutos na relasyon (No Nulls), kapag bumubuo ng isang database schema, ang foreign key attribute ay makakatanggap ng NOT NULL attribute, sa kabila ng katotohanan na ang foreign key ay hindi magiging bahagi ng primary key ng child entity. Sa kaso ng isang opsyonal na relasyon (Nulls Allowed), ang foreign key ay maaaring NULL. Ang isang opsyonal na relasyon na hindi nagpapakilala ay minarkahan ng isang transparent na brilyante sa bahagi ng parent entity

Pariralang Pandiwa- isang pariralang nagpapakilala sa ugnayan ng magulang at anak. Para sa isang one-to-many na relasyon, pagkilala o hindi pagkakakilanlan, sapat na upang tukuyin ang isang pangalan na nagpapakilala sa relasyon mula sa magulang sa anak na entity (Magulang-sa-Anak). Para sa isang many-to-many na relasyon, dapat na tukuyin ang mga pangalan ng Parents-to-Child at Child-to-Magulang. Upang ipakita ang pangalan, sa menu ng konteksto na lilitaw kung nag-right-click ka sa anumang lugar sa diagram na hindi inookupahan ng mga object ng modelo, piliin ang Display Options/Relationship at pagkatapos ay paganahin ang Verb Phrase na opsyon.

Pangalan ng tungkulin o pangalan ng pagganap (Rolename) ay isang kasingkahulugan para sa foreign key attribute na nagsasaad kung anong papel ang ginagampanan ng attribute sa isang child entity. Maaari mong itakda ang pangalan ng tungkulin sa tab na Rolename/RI Actions ng dialog ng Relationship Editor.

Fig.1. Mga pangalan ng dayuhang pangunahing tungkulin

Sa halimbawang ipinapakita sa Fig. 1, sa Employee foreign key Department Number entity ay may pangalan ng tungkulin na "Where Works" na nagsasaad kung anong papel ang ginagampanan ng attribute na ito sa entity. Bilang default, tanging ang pangalan ng tungkulin ang ipinapakita sa listahan ng katangian. Upang ipakita ang buong pangalan ng katangian (kapwa ang functional na pangalan at ang pangalan ng tungkulin), sa menu ng konteksto na lilitaw kung nag-right click ka saanman sa diagram na hindi inookupahan ng mga object ng modelo, piliin ang Display Options/Entities at pagkatapos ay paganahin ang Rolename / opsyon na Katangian. Ang buong pangalan ay ipinapakita bilang ang functional na pangalan at base na pangalan na pinaghihiwalay ng isang tuldok (Figure 1).

Kinakailangang gumamit ng mga pangalan ng tungkulin kapag ang dalawa o higit pang mga katangian ng parehong entity ay tinukoy sa parehong saklaw, i.e. mayroon silang parehong hanay ng mga kahulugan, ngunit magkaibang kahulugan.

Fig.2. Ang kaso ng mga mandatoryong pangalan ng tungkulin

Sa Fig. 2, naglalaman ang entity ng Currency Sale ng impormasyon tungkol sa isang currency exchange act kung saan dalawang currency ang kasangkot - ibinebenta at binili. Ang impormasyon tungkol sa mga currency ay nakapaloob sa Currency entity. Samakatuwid, ang mga entity ng Currency Sale at Currency ay dapat na naka-link nang dalawang beses, at ang pangunahing key - Currency Number ay dapat i-migrate nang dalawang beses sa Currency entity bilang isang foreign key. Kinakailangang makilala ang mga katangiang ito, na naglalaman ng impormasyon tungkol sa bilang ng naibenta at biniling pera (mayroon silang magkaibang kahulugan), ngunit sumangguni sa parehong entity ng Currency (mayroon silang karaniwang hanay ng mga halaga). Sa halimbawa sa Fig. 2, ang mga katangian ay nakatanggap ng mga pangalan ng tungkulin na Nabenta at Nabili.

Ang isa pang halimbawa ng ipinag-uutos na paggamit ng mga pangalan ng tungkulin ay ang mga recursive na relasyon, kapag ang parehong entity ay parehong magulang at anak.

Mga Panuntunan sa Referential Integrity (RI).- mga lohikal na konstruksyon na nagpapahayag ng mga panuntunan sa negosyo para sa paggamit ng data at kumakatawan sa mga panuntunan ng pagpasok, pagpapalit at pagtanggal. Maaari kang magtakda ng mga panuntunan sa integridad ng referential sa tab na Rolename/RI Actions ng dialog ng Relationship Editor.

Kapag bumubuo ng schema ng database batay sa mga opsyon sa lohikal na modelo, bubuo ng mga panuntunan sa integridad ng deklaratibong referential, na dapat italaga para sa bawat relasyon, at mga trigger na nagtitiyak ng integridad ng referential.

Fig.3. Lumilipat ng mga pangalan ng tungkulin

Sa Fig. 3 mayroong isang pagkakakilanlan na relasyon sa pagitan ng mga entidad ng Koponan at Manlalaro. Ano ang mangyayari kung tatanggalin mo ang isang utos? Entity instance Player ay hindi maaaring umiral nang walang command (primary key attribute Anong team ang nilalaro niya? Numero ng koponan hindi maaaring kunin ang halaga na NULL), samakatuwid kailangan mong ipagbawal ang pagtanggal ng isang koponan hangga't mayroong kahit isang manlalaro sa loob nito, o tanggalin ang lahat ng mga manlalaro nito kasama ang koponan. Ang ganitong mga panuntunan sa pag-alis (Parent Delete) ay tinatawag na Parent Restrict (restriction) at Parent Cascade (cascade). Ang mga entity na Manlalaro at Layunin, sa turn, ay konektado din sa pamamagitan ng isang nagpapakilalang koneksyon at, kung ang panuntunan para sa cascading na pagtanggal ng lahat ng mga talaan ng kanyang mga layunin ay inilapat sa pagtanggal ng isang manlalaro, pagkatapos ay kapag nagtanggal ng isang koponan, lahat ng mga manlalaro ng koponan at lahat Ang mga layuning nai-iskor ng mga manlalarong ito ay tatanggalin.

Ang komunikasyong many-to-many ay posible lamang sa antas ng modelo ng lohikal na data. Ang ganitong koneksyon ay ipinahiwatig ng isang solidong linya na may dalawang tuldok sa mga dulo. Upang magdagdag ng isang relasyon, kailangan mo munang mag-click sa pindutan sa palette ng tool (ERwin Toolbox), at pagkatapos ay mag-click sa parehong mga kaugnay na entity sa turn.

Ang isang many-to-many na relasyon ay dapat na pinangalanan (Verb Phrase) ng dalawang parirala - sa parehong direksyon. Ginagawa nitong mas madaling basahin ang diagram.

Paglikha ng mga susi.

Ang bawat instance ng isang entity ay dapat na natatangi at naiiba sa iba pang mga katangian.

Pangunahing susi ay isang katangian o pangkat ng mga katangian na natatanging tumutukoy sa isang instance ng isang entity. Ang mga pangunahing pangunahing katangian sa diagram ay hindi nangangailangan ng espesyal na pagtatalaga - sila ang mga katangiang nasa listahan ng mga katangian sa itaas ng pahalang na linya. Kapag nagdaragdag ng bagong attribute sa dialog ng Attribute Editor, upang gawin itong pangunahing katangian ng key, kailangan mong paganahin ang checkbox ng Pangunahing Key sa ibaba ng tab na Pangkalahatan. Sa diagram, maaaring magdagdag ng key attribute sa primary key gamit ang attribute transfer mode (ang button sa tool palette).

Ang isang entity ay maaaring maglaman ng ilang mga katangian o hanay ng mga katangian na nagsasabing sila ang pangunahing susi. Ang mga naturang aplikante ay tinatawag mga potensyal na key (candidate key).

Maaaring kumplikado ang mga susi, ibig sabihin. naglalaman ng ilang mga katangian. Ang mga kumplikadong pangunahing key ay hindi nangangailangan ng espesyal na notasyon - ang mga ito ay isang listahan ng mga katangian sa itaas ng isang pahalang na linya. Kapag pumipili ng pangunahing susi, ang kagustuhan ay dapat ibigay sa mas simpleng mga susi, i.e. mga key na naglalaman ng mas kaunting mga katangian.

Maraming entity ang mayroon lamang isang susi ng kandidato. Ito ang nagiging pangunahing susi. Ang ilang entity ay maaaring magkaroon ng higit sa isang posibleng key. Pagkatapos ang isa sa kanila ay magiging pangunahing susi, at ang natitira ay magiging mga alternatibong susi.

Alternatibong Susi ay isang susi ng kandidato na hindi naging pangunahing susi.

Ang bawat susi ay may kaukulang index, ang pangalan nito ay awtomatikong itinalaga. Ang mga pangalan ng susi at index ay maaaring baguhin nang manu-mano kung ninanais.

Sa diagram, ang mga katangian ng mga alternatibong susi ay tinutukoy bilang (Akn.m.), kung saan ang n ay ang serial number ng susi, ang m ay ang serial number ng katangian sa susi. Kapag ang isang kahaliling key ay naglalaman ng maraming katangian, (Akn.m.) ay inilalagay pagkatapos ng bawat isa.

Fig.4. Entity na "Empleyado" na may mga key na ipinapakita


Mga Banyagang Susi ay awtomatikong nalilikha kapag ang isang relasyon ay nag-uugnay sa mga entity: ang mga relasyon ay bumubuo ng isang reference sa mga pangunahing pangunahing katangian sa child entity, at ang mga katangiang ito ay bumubuo ng isang dayuhang susi sa child entity (key migration). Ang mga foreign key attribute ay ipinahiwatig ng isang simbolo (FK) pagkatapos ng kanilang pangalan (Fig. 4). Mga foreign key attribute Where Works.Ang numero ng departamento (“Where Works” ay ang pangalan ng tungkulin) ng Employee entity ay isang primary key (PK) attribute sa entity ng Department.

Ang isang umaasang entity ay maaaring magkaroon ng parehong susi mula sa maraming parent na entity. Ang isang entity ay maaari ding makatanggap ng parehong foreign key nang maraming beses mula sa parehong magulang sa pamamagitan ng maraming magkakaibang relasyon. Kapag nakita ng ERwin ang isa sa mga kaganapang ito, kinikilala nito na ang dalawang katangian ay pareho at inilalagay ang mga dayuhang pangunahing katangian sa umaasang entity nang isang beses lang. Ang kumbinasyon o pag-iisa ng magkatulad na katangian ay tinatawag na unification.

May mga pagkakataon na hindi kanais-nais ang pag-iisa. Halimbawa, kapag ang dalawang katangian ay may parehong mga pangalan, ngunit sa katunayan sila ay naiiba sa kahulugan, at ito ay kinakailangan na ang pagkakaiba na ito ay makikita sa diagram. Sa kasong ito, kinakailangan na gumamit ng mga dayuhang pangunahing pangalan ng papel (Larawan 2).

Mga domain.

Ang isang domain ay maaaring tukuyin bilang isang koleksyon ng mga halaga kung saan nagmula ang mga halaga ng katangian. Ang bawat katangian ay maaaring tukuyin sa isang domain lamang, ngunit maraming katangian ang maaaring tukuyin sa bawat domain. Kasama sa konsepto ng isang domain hindi lamang ang uri ng data, kundi pati na rin ang hanay ng mga halaga ng data. Halimbawa, maaari mong tukuyin ang domain ng Edad bilang positibong integer at tukuyin ang attribute na Edad ng Empleyado bilang kabilang sa domain na iyon.

Sa ERwin, ang isang domain ay maaari lamang tukuyin nang isang beses at maaaring magamit sa parehong lohikal at pisikal na mga modelo.

Sa lohikal na antas, maaaring ilarawan ang mga domain nang walang partikular na pisikal na katangian. Sa pisikal na antas, nakakatanggap sila ng mga partikular na katangian na maaaring manu-manong baguhin. Kaya, ang domain na "Edad" ay maaaring magkaroon ng uri ng Numero sa lohikal na antas sa pisikal na antas, ang domain ay itatalaga sa uri ng INTEGER.

Upang gumawa ng domain sa lohikal na modelo, gamitin ang dialog ng Editor ng Diksyunaryo ng Domain. Maaari itong tawagan mula sa menu ng Edit/Domain Dictionary gamit ang button na matatagpuan sa kaliwang itaas na bahagi ng General tab ng dialog ng Attribute Editor. Upang lumikha ng bagong domain sa dialog ng Editor ng Diksyunaryo ng Domain:

· Mag-click sa Bagong button. Lumilitaw ang dialog ng Bagong Domain;

· piliin ang pangunahing domain mula sa listahan ng Magulang ng Domain. Ang isang bagong domain ay maaaring gawin batay sa isang domain na ginawa na ng user, o batay sa isang dati nang umiiral. Bilang default, may apat na paunang natukoy na domain si Erwin (String, Number, Blob, Datetime). Namana ng bagong domain ang lahat ng property ng parent domain. Ang mga katangiang ito ay maaaring muling tukuyin sa ibang pagkakataon;

· ilagay ang domain name sa Logical Name na field. Maaari mo ring tukuyin ang pisikal na domain name sa field na Physical Name. Kung ang isang pisikal na pangalan ay hindi tinukoy, ito ay magiging default sa lohikal na pangalan;

· mag-click sa pindutan ng OK;

Sa dialog ng Domain Dictionary Editor, maaari mong iugnay ang isang domain sa isang icon kung saan ito ipapakita sa listahan ng mga domain (Domain Icon), isang icon kung saan ang isang attribute na tinukoy sa domain ay ipapakita sa modelo (Icon Inherited). sa pamamagitan ng Katangian).

Maaaring ilarawan ang bawat domain sa tab na Kahulugan, na binibigyan ng komento sa tab na Tandaan, o isang property na tinukoy ng user sa tab na UDP.

Ang ERwin ay may espesyal na tool na nagpapadali sa paggawa ng mga bagong katangian sa isang modelo gamit ang mga paglalarawan ng domain - ang Independent Attribute Browser. Ang dialog na ito ay tinatawag (at nakatago) gamit ang hotkey CTRL+B. Sa tulong nito, maaari kang pumili ng domain sa listahan at gamitin ang paraan ng drag&drop upang ilipat ito sa isang entity. Gagawa ito ng bagong attribute na may pangalan na dapat itakda sa Name Inherited by Attribute window ng dialog ng Domain Dictionary Editor. Kung hindi tinukoy ang halaga ng field, ang default ay ang domain name.

Sa pisikal na antas, binibigyang-daan ka ng dialog ng Editor ng Diksyunaryo ng Domain na i-edit ang mga pisikal na katangian ng isang domain. Ang pangalan ng tab na ito ay depende sa napiling database server. Dito maaari kang magtakda ng isang tiyak na uri ng data na naaayon sa domain, mga panuntunan para sa pagtatalaga ng mga NULL na halaga, mga panuntunan sa pagpapatunay (mga panuntunan para sa pagsuri ng mga wastong halaga) at pagtatakda ng isang default na halaga. Ang mga panuntunan sa pagpapatunay at mga default na halaga ay dapat na naunang inilarawan at pinangalanan. Upang tumawag sa mga dialog para sa pag-edit ng mga panuntunan sa pagpapatunay at mga default na halaga, gamitin ang mga button sa kanan ng kaukulang listahan ng pagpili (Valid at Default).

Mga function ng iba pang mga tab ng dialog ng Editor ng Diksyunaryo ng Domain:

Heneral. Pagtukoy sa Magulang ng Domain at pangalang itinalaga sa column kapag ginawa ito gamit ang Independent Column Browser. Gamit ang opsyong Pisikal Lamang, ang domain ay maaari lamang tukuyin sa antas ng pisikal na modelo.

Magkomento. Pagdaragdag ng komento sa katangian.

UDP. Mga katangiang tinukoy ng user.

Visual Basic- PowerBuilder. Pagtatakda ng mga espesyal na katangian ng domain para sa pagbuo ng code ng application ng kliyente.

Gawain na dapat tapusin.

Batay sa naunang ginawang functional na modelo at paglalarawan ng subject area, lumikha ng lohikal na modelo gamit ang ERwin package.

Laboratory work No. 7.
Erwin Basics. Paghahanda ng modelo ng pisikal na data para sa pagbuo ng database

1. Layunin ng gawain: mastering ang mga prinsipyo ng paghahanda ng isang pisikal na modelo ng data para sa pagbuo ng isang database system catalog.

Laboratory work No. 3. Pagmomodelo ng database gamit si Erwin

Layunin ng gawain– ang mga mag-aaral ay nakakakuha ng mga praktikal na kasanayan sa paglikha ng lohikal at pisikal na mga modelo ng data gamit ang CASE – mga tool sa pagbuo ng mga sistema ng impormasyon.

Mga pangunahing kaalaman

Sinusuportahan ng ERwin ang forward at reverse database modelling. Sa pasulong na pagmomodelo, ang database schema ay direktang inilarawan gamit ang isang entity-relationship diagram. Ang mga entity sa diagram ay kinakatawan ng mga parihaba. Ang bawat parihaba ay maaaring magkaroon ng iba't ibang visual na katangian. Ang bawat entity ay dapat bigyan ng natatanging pangalan. Dapat ay nasa isahan ang mga pangalan ng entity. Ito ay natutukoy sa pamamagitan ng katotohanan na ang system ay palaging gumagana sa magkahiwalay na mga pagkakataon ng entity. Sa kasong ito, ang mga indibidwal na pagkakataon ng isang entity ay itinuturing bilang mga bagay, at ang mga entity ay itinuturing bilang isang klase ng mga bagay. Kung ang mga entity ay inilarawan sa panahon ng pagmomodelo sa BPwin, maaari silang mai-import lamang sa ERwin. Ang isang halimbawa ng isang diagram na may mga nilikha na entity ay ipinapakita sa figure.

Figure 4 - Halimbawa ng diagram na may mga nilikhang entity

Pagbuo ng mga modelo sa ERwin

Mayroong dalawang posibleng pananaw sa modelo ng impormasyon at, nang naaayon, dalawang antas ng modelo. Ang una - lohikal na antas (point of view ng gumagamit) ay nangangahulugang isang direktang pagpapakita ng mga katotohanan mula sa totoong buhay. Halimbawa, ang mga tao, mesa, departamento, aso at kompyuter ay mga tunay na bagay. Ang mga ito ay pinangalanan sa natural na wika, na may anumang mga salitang naghihiwalay (mga puwang, kuwit, atbp.). Sa pisikal na antas ng modelo, ang paggamit ng isang partikular na DBMS ay isinasaalang-alang, ang mga uri ng data (halimbawa, integer o tunay na numero), at mga index para sa mga talahanayan ay tinutukoy.

Nagbibigay ang ERwin ng kakayahang lumikha at pamahalaan ang dalawang magkaibang antas ng presentasyon ng isang diagram (modelo), pati na rin ang pagkakaroon ng maraming mga opsyon sa pagpapakita sa bawat antas. Ang terminong "lohikal na antas" sa ERwin ay tumutugma sa isang konseptong modelo.

Mga yugto ng pagbuo ng isang modelo ng impormasyon.

  • kahulugan ng entidad;
  • pagtukoy ng mga dependencies sa pagitan ng mga entity;
  • pagtatakda ng pangunahin at alternatibong mga susi;
  • pagtukoy ng mga katangian ng entity;
  • pagdadala ng modelo sa kinakailangang antas ng normal na anyo;
  • paglipat sa pisikal na paglalarawan ng modelo: pagtatalaga ng mga sulat na pangalan ng entity - pangalan ng talahanayan, katangian ng entity - katangian ng talahanayan;
  • pagtatakda ng mga trigger, pamamaraan at paghihigpit;
  • pagbuo ng database.

Lumilikha si Erwin ng visual na representasyon (modelo ng data) para sa problemang niresolba. Maaaring gamitin ang view na ito para sa detalyadong pagsusuri, pagpipino, at pamamahagi ng dokumentasyong kailangan sa yugto ng pag-unlad. Gayunpaman, ang ERwin ay malayo sa isang tool sa pagguhit. Awtomatikong ginagawa ng ERwin ang database (mga talahanayan, mga index, mga naka-imbak na pamamaraan, mga pag-trigger ng integridad ng referential, at iba pang mga bagay na kailangan upang pamahalaan ang data).

Paglikha ng isang entity.

Upang magdagdag ng entity sa modelo, kailangan mong mag-click sa button ng entity sa toolbar (Erwin Toolbox), pagkatapos ay mag-click sa lugar sa diagram kung saan mo gustong ilagay ang bagong entity. Sa pamamagitan ng pag-right click sa isang entity at pagpili sa Entity Editor mula sa pop-up menu, maaari mong ipakita ang dialog ng Entity Editor, kung saan mo tutukuyin ang pangalan, paglalarawan, at mga komento ng entity.

Ang bawat entity ay dapat na ganap na matukoy gamit ang isang paglalarawan ng teksto sa tab na Kahulugan. Ang mga kahulugan na ito ay kapaki-pakinabang kapwa sa lohikal na antas, dahil pinapayagan ka nitong maunawaan kung ano ang isang bagay, at sa pisikal na antas, dahil maaari silang i-export bilang bahagi ng isang schema at magamit sa isang tunay na database ( GUMAWA NG COMMENT sa entity_name). Ang Note, Note2, Note3, UDP (User Defined Properties) na mga bookmark ay ginagamit upang magdagdag ng mga karagdagang komento at kahulugan sa entity.

Sa tab na Icon, ang bawat entity ay maaaring magtalaga ng isang imahe na ipapakita sa mode ng pagtingin sa modelo sa antas ng icon at isang imahe na ipapakita sa lahat ng iba pang mga antas.

Ang tab na UDP ng dialog ng Entity Editor ay ginagamit upang tukuyin ang mga katangian na tinukoy ng user (User - Mga Tinukoy na Properties). Kapag nag-click ka sa button para sa tab na ito, tatawagin ang dialog ng User - Defined Property Editor (tinatawag din mula sa Edit/UDPs menu). Kinakailangang ipahiwatig ang uri ng bagay kung saan ginagawa ang UDP (diagram sa kabuuan, entity, katangian, atbp.) at ang uri ng data. Upang magdagdag ng bagong property, i-click ang button sa talahanayan at ilagay ang pangalan, uri ng data, default na halaga, at kahulugan.

Paglikha ng mga katangian.

Ang susunod na hakbang sa paggawa ng modelo ay ang magtakda ng mga katangian para sa bawat entity. Kapag tumutukoy ng uri ng katangian, posibleng gumamit ng mga domain. Ang isang domain ay isang abstract na uri na tinukoy ng user na itinalaga sa anumang uri ng pisikal na data. Bukod dito, ang bawat domain ay maaaring magkaroon ng sarili nitong mga default na halaga at panuntunan para sa pagpapatunay ng data ng input. Nagbibigay ang ERwin ng kakayahang idokumento ang lahat ng mga hakbang na kasangkot sa paggawa ng sarili mong mga uri ng data. Sa pamamagitan ng paggamit ng konsepto ng domain, natitiyak ang portability ng database sa iba't ibang hardware platform.

Figure 5 - Paglikha ng bagong domain Figure 6 - Pagtukoy sa mga katangian ng bagong domain

Figure 7 - Default na halaga para sa isang bagong domain

Figure 8 - Paggamit ng isang domain upang tukuyin ang uri ng data ng isang katangian.

Upang ilarawan ang mga katangian, mag-right-click sa entity at piliin ang Attribute Editor mula sa lalabas na menu. Lumilitaw ang dialog ng Attribute Editor.

Kung nag-click ka sa button na Bagong, sa dialog ng Bagong Katangian na lilitaw, maaari mong tukuyin ang pangalan ng katangian, ang pangalan ng column na naaayon dito sa pisikal na modelo, at ang domain. Gagamitin ang domain ng katangian kapag tinutukoy ang uri ng column sa antas ng pisikal na modelo.

Para sa mga pangunahing katangian ng pangunahing key, sa tab na Pangkalahatan ng dialog ng Attribute Editor, dapat kang gumawa ng marka sa window ng pagpili ng Pangunahing Key.
Ang mga tab na Definition, Note, at UDP ay gumaganap ng parehong mga function tulad ng kapag tumutukoy sa isang entity, ngunit sa antas ng katangian.

Upang gawing mas visual ang diagram, maaaring iugnay ang bawat katangian sa isang icon. Magagawa ito gamit ang listahan ng pagpili ng Icon sa tab na Pangkalahatan.

Napakahalaga na bigyan ang katangian ng tamang pangalan. Ang mga katangian ay dapat na pinangalanan sa isahan at may malinaw na kahulugan ng semantiko.

Ayon sa syntax ng IDEF1X, ang pangalan ng katangian ay dapat na natatangi sa loob ng modelo (hindi lamang sa loob ng entity!). Bilang default, kapag sinubukan mong magdagdag ng kasalukuyang pangalan ng katangian, pinapalitan ito ng pangalan ni ERwin. Halimbawa, kung ang katangian ng Komento ay mayroon na sa modelo, ang isa pang katangian (sa ibang entity) ay tatawaging Komento/2, pagkatapos ay Komento/3, atbp.
Kapag naglilipat ng mga katangian sa loob at pagitan ng mga entity, maaari mong gamitin ang drag&drop technique sa pamamagitan ng pagpili sa button sa tool palette.

Upang lumikha ng bagong relasyon, pumili ng isang nagpapakilala o hindi nagpapakilalang relasyon sa tool palette (ERwin Toolbox), i-click muna ang magulang at pagkatapos ay ang child entity.
Sa tool palette, ang isang button ay tumutugma sa isang nagpapakilalang relasyon, isang many-to-many na button ng relasyon, at isang button na tumutugma sa isang hindi nagpapakilalang relasyon. Upang i-edit ang mga katangian ng isang relasyon, mag-right click sa relasyon at piliin ang Relationship Editor mula sa menu ng konteksto.

Sa tab na Pangkalahatan ng dialog na lalabas, maaari mong itakda ang kapangyarihan, pangalan at uri ng koneksyon.

Lakas ng komunikasyon (Cardinality)- nagsisilbing tukuyin ang ratio ng bilang ng mga instance ng parent entity sa bilang ng mga instance ng bata.
Mayroong apat na uri ng kapangyarihan:

· ang pangkalahatang kaso kapag ang isang instance ng parent entity ay tumutugma sa 0, 1 o maraming instance ng child entity ay hindi minarkahan ng anumang simbolo;

· ang simbolong P ay minarkahan ang kaso kapag ang isang instance ng parent entity ay tumutugma sa 1 o maraming instance ng child entity (zero value ay hindi kasama);

· minarkahan ng simbolong Z ang kaso kapag ang isang instance ng parent entity ay tumutugma sa 0 o 1 instance ng child entity (maraming value ang hindi kasama);

· isang numero ang nagmamarka ng kaso kapag ang isang instance ng parent entity ay tumutugma sa isang paunang natukoy na bilang ng mga instance ng child entity.

Bilang default, ang simbolo na kumakatawan sa lakas ng link ay hindi ipinapakita sa diagram. Upang ipakita ang pangalan, sa menu ng konteksto na lilitaw kung nag-right-click ka sa anumang lugar sa diagram na hindi inookupahan ng mga object ng modelo, piliin ang Display Options/Relationship at pagkatapos ay paganahin ang Cardinality na opsyon.

Uri ng koneksyon (pagkilala/hindi pagkilala).

Tinutukoy ng IDEF1X ang pagitan ng dependent at independent entity. Natutukoy ang uri ng isang entity sa pamamagitan ng kaugnayan nito sa iba pang entity. Ang isang nagpapakilalang relasyon ay itinatag sa pagitan ng isang independiyenteng (magulang na dulo ng relasyon) at umaasa (bata na dulo ng relasyon) na entity. Kapag ang isang pagkakakilanlan na relasyon ay iginuhit, ERwin awtomatikong i-convert ang relasyon ng bata sa isang umaasa na relasyon. Ang umaasang entity ay kinakatawan ng isang parihaba na may mga bilugan na sulok.

Ang isang instance ng isang umaasang entity ay tinukoy lamang sa pamamagitan ng isang relasyon sa isang parent na entity. Kapag naitatag ang isang pagkakakilanlan na relasyon, ang mga katangian ng pangunahing susi ng parent entity ay awtomatikong ililipat sa pangunahing key ng child entity. Ang operasyong ito ng pagdaragdag ng mga attribute sa isang child entity kapag gumagawa ng isang relasyon ay tinatawag na attribute migration. Sa child entity, ang mga bagong attribute ay minarkahan bilang mga foreign key - (FK).

Kapag naitatag ang isang hindi nagpapakilalang relasyon, nananatiling independyente ang child entity, at ang mga pangunahing pangunahing katangian ng parent na entity ay lumilipat sa mga hindi pangunahing bahagi ng child entity. Ang isang hindi nagpapakilalang relasyon ay ginagamit upang ikonekta ang mga independiyenteng entity.

Ang isang nagpapakilalang koneksyon ay ipinapakita sa diagram bilang isang solidong linya na may makapal na tuldok sa bata na dulo ng koneksyon, at isang hindi nagpapakilalang koneksyon ay ipinapakita bilang isang tuldok na linya.

Para sa isang hindi nagpapakilalang relasyon, maaari mong tukuyin ang mandatory (Mga Nulls sa General tab ng dialog ng Relationship Editor). Sa kaso ng isang ipinag-uutos na relasyon (No Nulls), kapag bumubuo ng isang database schema, ang foreign key attribute ay makakatanggap ng NOT NULL attribute, sa kabila ng katotohanan na ang foreign key ay hindi magiging bahagi ng primary key ng child entity. Sa kaso ng isang opsyonal na relasyon (Nulls Allowed), ang foreign key ay maaaring NULL. Ang isang opsyonal na relasyon na hindi nagpapakilala ay minarkahan ng isang transparent na brilyante sa bahagi ng parent entity

Pariralang Pandiwa- isang pariralang nagpapakilala sa ugnayan ng magulang at anak. Para sa isang one-to-many na relasyon, pagkilala o hindi pagkakakilanlan, sapat na upang tukuyin ang isang pangalan na nagpapakilala sa relasyon mula sa magulang sa anak na entity (Magulang-sa-Anak). Para sa isang many-to-many na relasyon, dapat na tukuyin ang mga pangalan ng Parents-to-Child at Child-to-Magulang. Upang ipakita ang pangalan, sa menu ng konteksto na lilitaw kung nag-right-click ka sa anumang lugar sa diagram na hindi inookupahan ng mga object ng modelo, piliin ang Display Options/Relationship at pagkatapos ay paganahin ang Verb Phrase na opsyon.

Pangalan ng tungkulin o pangalan ng pagganap (Rolename) ay isang kasingkahulugan para sa foreign key attribute na nagsasaad kung anong papel ang ginagampanan ng attribute sa isang child entity. Maaari mong itakda ang pangalan ng tungkulin sa tab na Rolename/RI Actions ng dialog ng Relationship Editor.

Paglikha ng mga susi.

Ang bawat instance ng isang entity ay dapat na natatangi at naiiba sa iba pang mga katangian.

Pangunahing susi ay isang katangian o pangkat ng mga katangian na natatanging tumutukoy sa isang instance ng isang entity. Ang mga pangunahing pangunahing katangian sa diagram ay hindi nangangailangan ng espesyal na pagtatalaga - sila ang mga katangiang nasa listahan ng mga katangian sa itaas ng pahalang na linya. Kapag nagdaragdag ng bagong attribute sa dialog ng Attribute Editor, upang gawin itong pangunahing katangian ng key, kailangan mong paganahin ang checkbox ng Pangunahing Key sa ibaba ng tab na Pangkalahatan. Sa diagram, maaaring magdagdag ng key attribute sa primary key gamit ang attribute transfer mode (ang button sa tool palette).

Ang isang entity ay maaaring maglaman ng ilang mga katangian o hanay ng mga katangian na nagsasabing sila ang pangunahing susi. Ang mga naturang aplikante ay tinatawag mga potensyal na key (candidate key).

Maaaring kumplikado ang mga susi, ibig sabihin. naglalaman ng ilang mga katangian. Ang mga kumplikadong pangunahing key ay hindi nangangailangan ng espesyal na notasyon - ang mga ito ay isang listahan ng mga katangian sa itaas ng isang pahalang na linya. Kapag pumipili ng pangunahing susi, ang kagustuhan ay dapat ibigay sa mas simpleng mga susi, i.e. mga key na naglalaman ng mas kaunting mga katangian.

Maraming entity ang mayroon lamang isang susi ng kandidato. Ito ang nagiging pangunahing susi. Ang ilang entity ay maaaring magkaroon ng higit sa isang posibleng key. Pagkatapos ang isa sa kanila ay magiging pangunahing susi, at ang natitira ay magiging mga alternatibong susi.

Alternatibong Susi ay isang susi ng kandidato na hindi naging pangunahing susi.

Ang bawat susi ay may kaukulang index, ang pangalan nito ay awtomatikong itinalaga. Ang mga pangalan ng susi at index ay maaaring baguhin nang manu-mano kung ninanais.

Sa diagram, ang mga katangian ng mga alternatibong susi ay tinutukoy bilang (Akn.m.), kung saan ang n ay ang serial number ng susi, ang m ay ang serial number ng katangian sa susi. Kapag ang isang kahaliling key ay naglalaman ng maraming katangian, (Akn.m.) ay inilalagay pagkatapos ng bawat isa.

Mga Banyagang Susi ay awtomatikong nalilikha kapag ang isang relasyon ay nag-uugnay sa mga entity: ang mga relasyon ay bumubuo ng isang reference sa mga pangunahing pangunahing katangian sa child entity, at ang mga katangiang ito ay bumubuo ng isang dayuhang susi sa child entity (key migration). Ang mga foreign key attribute ay ipinapahiwatig ng isang simbolo (FK) pagkatapos ng kanilang pangalan.

Ang isang umaasang entity ay maaaring magkaroon ng parehong susi mula sa maraming parent na entity. Ang isang entity ay maaari ding makatanggap ng parehong foreign key nang maraming beses mula sa parehong magulang sa pamamagitan ng maraming magkakaibang relasyon. Kapag nakita ng ERwin ang isa sa mga kaganapang ito, kinikilala nito na ang dalawang katangian ay pareho at inilalagay ang mga dayuhang pangunahing katangian sa umaasang entity nang isang beses lang. Ang kumbinasyon o pag-iisa ng magkatulad na katangian ay tinatawag na unification.

May mga pagkakataon na hindi kanais-nais ang pag-iisa. Halimbawa, kapag ang dalawang katangian ay may parehong mga pangalan, ngunit sa katunayan sila ay naiiba sa kahulugan, at ito ay kinakailangan na ang pagkakaiba na ito ay makikita sa diagram. Sa kasong ito, dapat kang gumamit ng mga dayuhang pangunahing pangalan ng tungkulin.

Ang mga ugnayan sa isang diagram ay kinakatawan ng mga linyang papunta sa isang entity (talahanayan) patungo sa isa pa. Ang bawat link ay itinalaga ng isang natatanging pangalan. Ang mga kaugnay na talahanayan ay nahahati sa mga talahanayan ng magulang at anak. Ang mga parent table ay ipinapakita bilang mga parihaba na may mga kanang sulok, mga child table - na may mga bilugan na sulok.

Matapos tukuyin ang lahat ng mga katangian ng format ng data, kinakailangan na i-convert ang nilikha na lohikal na modelo sa isang pisikal. Para dito kinakailangan na Mga kasangkapan pumili Kumuha ng Bagong Modelo, kung saan pipiliin ang Mga Target na Database ODBC/Generic(para sa paggamit sa MySQL DBMS) tingnan ang Figure 9. Ang aming modelo (tingnan ang Figure 4) ay mako-convert sa form tingnan ang Figure 11.

Figure 9 - Pag-convert ng lohikal na modelo sa isang pisikal

Figure 10 - Pisikal na modelo na nagpapahiwatig ng format ng data.

Figure 11 - Pagbuo ng SQL Code

Mag-ehersisyo

1. Bumuo ng isang diagram na may mga ibinigay na entity (direktang pagmomodelo) para sa isang partikular na lugar ng paksa.

2. Magtakda ng mga katangian para sa bawat tinukoy na entity. Kapag nagtatakda ng mga katangian, gumamit ng mga domain.

3. Magpasok ng mga relasyon sa pagitan ng mga entity. Bigyan ang iyong mga koneksyon ng mga natatanging pangalan.

4. Gamit ang MYSQL DBMS, magpasya sa direktang pagbuo ng isang database para sa proyekto ng impormasyon na idinisenyo.

5. Ang ulat ay dapat maglaman ng isang konseptwal na modelo at isang pisikal na database sa MYSQL DBMS.

Mga tanong sa seguridad

1. Ano ang pagkakaiba sa pagitan ng lohikal at pisikal na antas ng kumakatawan sa mga modelo ng data gamit ang ERwin?

2. Ano ang pagkakaiba sa pagitan ng mga modelo ng data na kinakatawan sa anyo ng isang entity-relationship diagram, isang key-based na modelo, at isang buong modelo ng katangian?

3. Ano ang mga pangunahing bahagi ng mga modelo ng data na ipinakita ayon sa pamamaraan ng IDEF1X?


Ang listahan ng mga uri ng data na sinusuportahan ng DBMS ay dapat suriin sa tagagawa

Ang isang koneksyon ay isang functional dependence sa pagitan ng dalawang entity (sa partikular, ang isang entity ay maaaring kumonekta sa sarili nito). Halimbawa, mahalagang malaman ang apelyido ng empleyado, at mahalagang malaman kung saang departamento siya nagtatrabaho. Kaya, sa pagitan ng mga entidad na "kagawaran" at "empleyado" mayroong isang relasyon na "binubuo ng" (ang departamento ay binubuo ng mga empleyado). Ang isang relasyon ay isang lohikal na antas ng konsepto kung saan ang isang dayuhang susi ay tumutugma sa pisikal na antas. Sa ERwin, ang mga relasyon ay kinakatawan ng limang pangunahing piraso ng impormasyon:

· uri ng koneksyon (pagkilala, hindi pagkilala, kumpleto/hindi kumpletong kategorya, hindi partikular na koneksyon);

· magulang na entidad;

· child (dependent) entity;

· kapangyarihan ng komunikasyon (cardinality);

· Pagtanggap ng mga walang laman (null) na halaga.

Ang isang relasyon ay sinasabing nakikilala kung ang isang instance ng isang child entity ay natukoy sa pamamagitan ng kaugnayan nito sa isang parent na entity. Ang mga attribute na bumubuo sa pangunahing key ng parent na entity ay kasama rin sa primary key ng child entity. Ang isang child entity sa isang nagpapakilalang relasyon ay palaging nakadepende.
Ang isang relasyon ay sinasabing hindi nagpapakilala kung ang isang instance ng isang child entity ay natukoy maliban sa pamamagitan ng kaugnayan sa parent na entity. Ang mga attribute na bumubuo sa pangunahing key ng parent na entity ay kasama rin sa mga hindi pangunahing attribute ng child entity.
Upang tukuyin ang mga relasyon sa ERwin, pipiliin mo ang uri ng relasyon, pagkatapos ay gamitin ang mouse upang piliin ang mga entity ng magulang at anak. Ang link na nagpapakilala ay inilalarawan bilang isang solidong linya; hindi nagpapakilala - may tuldok na linya. Nagtatapos ang mga linya sa isang tuldok sa gilid ng child entity.
Kapag tinutukoy ang isang relasyon, ang mga pangunahing pangunahing katangian ng parent na entity ay inililipat sa kaukulang saklaw ng katangian ng child entity. Samakatuwid, ang mga naturang katangian ay hindi ipinasok nang manu-mano.
Ang mga pangunahing pangunahing katangian ng isang parent na entity ay lumilipat gamit ang kanilang sariling mga pangalan bilang default. Pinapayagan ka ng ERwin na magpasok ng mga tungkulin para sa kanila, i.e. mga bagong pangalan kung saan kakatawanin ang mga migrating na attribute sa child entity. Kung maraming beses na na-migrate ang isang attribute, kailangan ang naturang pagpapalit ng pangalan. Halimbawa, ang entity na "intermediary transaction" ay may attribute na "seller enterprise code" at "buyer enterprise code." Sa kasong ito, ang pangunahing susi ng entity na "enterprise" ("enterprise code") ay may dalawang tungkulin sa child entity.
Sa pisikal na antas, ang pangalan ng tungkulin ay ang pangalan ng foreign key column sa child table.
Ang lakas ng isang relasyon ay ang ratio ng bilang ng mga instance ng isang parent na entity sa katumbas na bilang ng mga instance ng isang child entity. Para sa anumang relasyon maliban sa isang di-tiyak, ang relasyon na ito ay nakasulat bilang 1:n.
Ang ERwin, alinsunod sa pamamaraan ng IDEF1X, ay nagbibigay ng 4 na opsyon para sa n, na kinakatawan ng karagdagang simbolo sa child entity: zero, isa o higit pa (default); zero o isa; eksaktong N, kung saan ang N ay isang tiyak na numero.
Inilalarawan ng ERwin ang pagiging katanggap-tanggap ng mga walang laman (NULL) na halaga sa mga hindi nagpapakilalang relasyon bilang isang walang laman na brilyante sa bahagi ng parent entity ng arko ng relasyon.
Ang mga pagtatalaga ng kapangyarihan, ayon sa pagkakabanggit, zero, isa o higit pa, isa o higit pa, zero o isa sa notasyon ng IE ay ipinapakita sa Fig. 1.

Fig.1. Notasyon ng kapangyarihan ng komunikasyon sa notasyon ng IE

Ang pangalan ng isang relasyon sa lohikal na antas ay isang "pandiwa" na nag-uugnay sa mga entity. Ang pisikal na pangalan ng isang link (na maaaring iba sa lohikal na pangalan) para sa ERwin ay ang pangalan ng isang hadlang o index.