2.1. Konseptwal na disenyo
Ang disenyo ng database ay isinasagawa sa tatlong yugto:
- konseptong disenyo;
- lohikal na disenyo;
- pisikal na disenyo.
Ang layunin ng bahagi ng konseptwal na disenyo ay lumikha ng isang konseptwal na modelo ng data batay sa mga ideya ng mga user tungkol sa lugar ng paksa. Upang makamit ito, isang serye ng mga sunud-sunod na pamamaraan ang isinasagawa. Isang halimbawa ng isang entity (conceptual) na schema:
![](https://cdn.codegym.cc/images/article/f8e01a34-8cc9-49cd-a834-2941721c4c08/800.jpeg)
1. Kahulugan ng mga entidad at ang kanilang dokumentasyon. Upang matukoy ang mga entity, tinukoy ang mga bagay na umiiral nang hiwalay sa iba. Ang mga naturang bagay ay mga entity. Ang bawat entity ay binibigyan ng makabuluhang pangalan na mauunawaan ng mga user. Ang mga pangalan at paglalarawan ng mga entity ay ipinasok sa diksyunaryo ng data. Kung maaari, ang inaasahang bilang ng mga pagkakataon ng bawat entity ay nakatakda.
2. Pagpapasiya ng mga ugnayan sa pagitan ng mga entity at kanilang dokumentasyon. Tanging ang mga relasyon sa pagitan ng mga entity ang tinukoy na kinakailangan upang matugunan ang mga kinakailangan sa disenyo ng database. Nakatakda ang uri ng bawat isa. Ang klase ng membership ng mga entity ay inihayag. Ang mga link ay itinalaga ng mga makabuluhang pangalan na ipinahayag ng mga pandiwa. Ang isang detalyadong paglalarawan ng bawat koneksyon, na nagpapahiwatig ng uri nito at ang klase ng pag-aari ng mga entity na kalahok sa koneksyon, ay ipinasok sa diksyunaryo ng data.
3. Paglikha ng isang ER-modelo ng lugar ng paksa. Ang mga diagram ng ER ay ginagamit upang kumatawan sa mga entity at relasyon sa pagitan nila. Batay sa kanila, ang isang solong visual na imahe ng na-modelo na lugar ng paksa ay nilikha - ang ER-modelo ng lugar ng paksa.
4. Kahulugan ng mga katangian at ang kanilang dokumentasyon. Ang lahat ng mga katangian na naglalarawan sa mga entity ng ginawang modelo ng ER ay ipinahayag. Ang bawat katangian ay binibigyan ng makabuluhang pangalan na mauunawaan ng mga user. Ang sumusunod na impormasyon ay nakaimbak sa diksyunaryo ng data para sa bawat katangian:
- pangalan ng katangian at paglalarawan;
- uri at sukat ng mga halaga;
- ang default na halaga para sa katangian (kung mayroon man);
- kung ang katangian ay maaaring magkaroon ng NULL na mga halaga;
- kung ang katangian ay pinagsama-sama, at kung gayon, anong mga simpleng katangian ang binubuo nito. Halimbawa, ang katangiang "Buong pangalan ng kliyente" ay maaaring binubuo ng mga simpleng katangian na "Apelyido", "Unang pangalan", "Patronymic", o maaari itong maging simple, na naglalaman ng mga solong halaga, tulad ng "Sidorsky Evgeniy Mikhailovich". Kung ang user ay hindi nangangailangan ng access sa mga indibidwal na elemento ng "Pangalan", kung gayon ang katangian ay ipinakita bilang simple;
- kung kinakalkula ang katangian, at kung gayon, kung paano kinakalkula ang mga halaga nito.
5. Kahulugan ng mga halaga ng katangian at ang kanilang dokumentasyon. Para sa bawat katangian ng isang entity na nakikilahok sa modelo ng ER, ang isang hanay ng mga wastong halaga ay tinutukoy at ang isang pangalan ay itinalaga dito. Halimbawa, ang attribute na "Account type" ay maaari lamang magkaroon ng mga value na "deposit", "current", "on demand", "card account". Ang mga entry sa diksyunaryo ng data na nauugnay sa mga katangian ay ina-update gamit ang mga pangalan ng mga hanay ng halaga ng katangian.
6. Kahulugan ng mga pangunahing susi para sa mga entidad at ang kanilang dokumentasyon. Ang hakbang na ito ay ginagabayan ng kahulugan ng isang pangunahing key - bilang isang katangian o hanay ng mga katangian ng isang entity na nagbibigay-daan sa natatanging pagkakakilanlan ng mga pagkakataon nito. Ang pangunahing pangunahing impormasyon ay inilalagay sa diksyunaryo ng data.
7. Pagtalakay sa modelo ng konseptwal na data sa mga end user. Ang modelo ng konseptwal na data ay kinakatawan ng isang modelo ng ER na may kasamang dokumentasyon na naglalaman ng paglalarawan ng binuo na modelo ng data. Kung may makikitang mga hindi pagkakapare-pareho ng domain, gagawin ang mga pagbabago sa modelo hanggang sa makumpirma ng mga user na ang modelong iminungkahi nila ay sapat na nagpapakita ng kanilang mga personal na pananaw.
2.2 Disenyo ng lohika
Ang layunin ng yugto ng lohikal na disenyo ay upang baguhin ang konseptong modelo batay sa napiling modelo ng data sa isang lohikal na modelo na independiyente sa mga tampok ng DBMS na ginamit sa ibang pagkakataon para sa pisikal na pagpapatupad ng database. Upang makamit ito, isinasagawa ang mga sumusunod na pamamaraan.
Isang halimbawa ng lohikal na database schema.
![](https://cdn.codegym.cc/images/article/1909a097-a8bd-47be-b164-6fb55d1af2b0/1024.jpeg)
1. Pagpili ng modelo ng data. Kadalasan, ang isang modelo ng relational data ay pinili dahil sa kalinawan ng pagtatanghal ng tabular ng data at ang kaginhawaan ng pakikipagtulungan sa kanila.
2. Pagtukoy sa isang set ng mga talahanayan batay sa modelo ng ER at pagdodokumento sa mga ito. Ang isang talahanayan ay nilikha para sa bawat entity ng ER model. Ang pangalan ng entity ay ang pangalan ng talahanayan. Ang mga ugnayan sa pagitan ng mga talahanayan ay itinatag sa pamamagitan ng mekanismo ng pangunahin at dayuhang mga susi. Ang mga istruktura ng mga talahanayan at ang itinatag na mga relasyon sa pagitan ng mga ito ay dokumentado.
3. Normalisasyon ng mga talahanayan. Upang maayos na maisagawa ang normalisasyon, dapat na malalim na maunawaan ng taga-disenyo ang mga semantika at mga pattern ng paggamit ng data. Sa hakbang na ito, sinusuri niya ang kawastuhan ng istraktura ng mga talahanayan na nilikha sa nakaraang hakbang sa pamamagitan ng paglalapat ng pamamaraan ng normalisasyon sa kanila. Binubuo ito sa pagdadala ng bawat isa sa mga talahanayan sa hindi bababa sa 3rd NF. Bilang resulta ng normalisasyon, ang isang napaka-flexible na disenyo ng database ay nakuha, na ginagawang madali upang gawin ang mga kinakailangang extension dito.
4. Sinusuri ang lohikal na modelo ng data para sa posibilidad na maisagawa ang lahat ng transaksyong ibinigay ng mga user. Ang isang transaksyon ay isang hanay ng mga aksyon na isinagawa ng isang indibidwal na user o application program upang baguhin ang mga nilalaman ng isang database. Kaya, ang isang halimbawa ng isang transaksyon sa proyekto ng BANK ay maaaring ang paglipat ng karapatang pamahalaan ang mga account ng isang partikular na kliyente sa isa pang kliyente. Sa kasong ito, maraming pagbabago ang kailangang gawin sa database nang sabay-sabay. Kung ang isang computer ay nag-crash sa panahon ng isang transaksyon, ang database ay nasa isang hindi pare-parehong estado dahil ang ilang mga pagbabago ay nagawa na at ang iba ay hindi pa. Samakatuwid, ang lahat ng bahagyang pagbabago ay dapat na bawiin upang maibalik ang database sa dati nitong pare-parehong estado.
Ang listahan ng mga transaksyon ay tinutukoy ng mga aksyon ng mga user sa lugar ng paksa. Gamit ang modelong ER, ang diksyunaryo ng data, at itinatag na mga ugnayan sa pagitan ng pangunahin at dayuhang key, isang pagtatangka na gawin ang lahat ng kinakailangang operasyon ng pag-access ng data nang manu-mano. Kung nabigo ang anumang manu-manong operasyon, hindi sapat ang pinagsama-samang modelo ng lohikal na data at naglalaman ng mga error na dapat alisin. Marahil ay nauugnay ang mga ito sa isang gap sa modelo ng isang entity, relasyon, o katangian.
5. Pagpapasiya ng mga kinakailangan sa suporta sa integridad ng data at ang kanilang dokumentasyon. Ang mga kinakailangang ito ay mga paghihigpit na inilalagay upang maiwasan ang magkasalungat na data na maipasok sa database. Sa hakbang na ito, sinasaklaw ang mga isyu sa integridad ng data nang hindi isinasaalang-alang ang mga partikular na aspeto ng pagpapatupad nito. Ang mga sumusunod na uri ng mga paghihigpit ay dapat isaalang-alang:
- kinakailangang data. Pag-alam kung may mga katangian na hindi maaaring magkaroon ng mga NULL na halaga;
- mga paghihigpit sa mga halaga ng katangian. Ang mga wastong halaga para sa mga katangian ay tinukoy;
- integridad ng entidad. Ito ay makakamit kung ang pangunahing susi ng entity ay hindi naglalaman ng mga NULL na halaga;
- integridad ng referential. Nauunawaan na ang foreign key value ay dapat na nasa pangunahing key ng isa sa mga row ng talahanayan para sa parent na entity;
- mga paghihigpit na ipinataw ng mga patakaran ng negosyo. Halimbawa, sa kaso ng proyekto ng BANK, maaaring magpatibay ng isang panuntunan na nagbabawal sa kliyente sa pamamahala, halimbawa, higit sa tatlong account.
Ang impormasyon tungkol sa lahat ng itinatag na mga hadlang sa integridad ng data ay inilalagay sa diksyunaryo ng data.
6. Paglikha ng huling bersyon ng modelo ng lohikal na data at talakayan sa mga user. Inihahanda ng hakbang na ito ang huling bersyon ng modelong ER, na kumakatawan sa modelo ng lohikal na data. Ang mismong modelo at ang na-update na dokumentasyon, kabilang ang diksyunaryo ng data at schema ng link ng relational table, ay iniharap para sa pagsusuri at pagsusuri ng mga user, na dapat tiyakin na ito ay tumpak na kumakatawan sa lugar ng paksa.
2.3. Pisikal na disenyo
Ang layunin ng yugto ng pisikal na disenyo ay upang ilarawan ang isang tiyak na pagpapatupad ng isang database na matatagpuan sa panlabas na memorya ng isang computer. Ito ay isang paglalarawan ng istraktura ng pag-iimbak ng data at mahusay na mga pamamaraan ng pag-access ng data ng database. Sa lohikal na disenyo, sinasagot nila ang tanong - kung ano ang kailangang gawin, at sa pisikal na disenyo - isang paraan ang pinili kung paano ito gagawin. Ang mga pamamaraan ng pisikal na disenyo ay ang mga sumusunod.
1. Pagdidisenyo ng mga talahanayan ng database gamit ang napiling DBMS. Ang isang relational na DBMS ay pinili upang magamit upang lumikha ng isang database na naka-host sa machine media. Ang pag-andar nito para sa pagdidisenyo ng mga talahanayan ay malalim na pinag-aralan. Pagkatapos ay isinasagawa ang disenyo ng mga talahanayan at ang scheme ng kanilang koneksyon sa kapaligiran ng DBMS. Ang inihandang proyekto ng database ay inilarawan sa kasamang dokumentasyon.
2. Pagpapatupad ng mga panuntunan sa negosyo sa kapaligiran ng napiling DBMS. Maaaring limitahan ng mga panuntunan sa negosyo ang pag-update ng impormasyon sa mga talahanayan. Ang paraan ng pagpapatupad ng mga ito ay nakasalalay sa napiling DBMS. Ang ilang mga sistema para sa pagpapatupad ng mga kinakailangan ng lugar ng paksa ay nag-aalok ng higit pang mga tampok, ang iba ay mas mababa. Sa ilang system, walang suporta para sa pagpapatupad ng mga panuntunan sa negosyo. Sa kasong ito, ang mga application ay binuo upang ipatupad ang kanilang mga limitasyon.
Ang lahat ng desisyong ginawa kaugnay ng pagpapatupad ng mga panuntunan sa negosyo ng domain ay inilarawan nang detalyado sa kasamang dokumentasyon.
3. Pagdidisenyo ng pisikal na organisasyon ng database. Pinipili ng hakbang na ito ang pinakamahusay na organisasyon ng file para sa mga talahanayan. Ang mga transaksyon na isasagawa sa database na idinisenyo ay natukoy, at ang pinakamahalaga sa mga ito ay naka-highlight. Sinusuri ang throughput ng transaksyon - ang bilang ng mga transaksyon na maaaring iproseso sa isang partikular na agwat ng oras, at oras ng pagtugon - ang tagal ng oras na kinakailangan upang makumpleto ang isang transaksyon. Nagsusumikap silang pataasin ang throughput ng transaksyon at bawasan ang oras ng pagtugon.
Batay sa mga tagapagpahiwatig na ito, ang mga desisyon ay ginawa upang i-optimize ang pagganap ng database sa pamamagitan ng pagtukoy ng mga index sa mga talahanayan na nagpapabilis sa pagpili ng data mula sa database, o sa pamamagitan ng pagbabawas ng mga kinakailangan para sa antas ng normalisasyon ng talahanayan. Tinatantya ang puwang sa disk na kailangan para ma-accommodate ang nilikhang database. Sikaping bawasan ito.
Nakadokumento ang mga desisyong ginawa sa mga isyu sa itaas.
4. Pagbuo ng isang diskarte sa proteksyon ng database. Ang database ay isang mahalagang mapagkukunan ng kumpanya, at maraming pansin ang binabayaran sa proteksyon nito. Upang magawa ito, ang mga taga-disenyo ay dapat magkaroon ng kumpleto at malinaw na pag-unawa sa lahat ng mga proteksyong ibinigay ng napiling DBMS.
5. Organisasyon ng pagsubaybay sa paggana ng database at pagsasaayos nito. Matapos ang paglikha ng pisikal na proyekto ng database, ang patuloy na pagsubaybay sa paggana nito ay isinaayos. Ang resultang impormasyon tungkol sa antas ng pagganap ng database ay ginagamit upang ibagay ito. Para dito, kasangkot din ang mga paraan ng napiling DBMS.
Ang mga desisyon na gumawa ng anumang mga pagbabago sa isang gumaganang database ay dapat isaalang-alang at matimbang nang lubusan.