Disenyo ng database: mga hakbang at pangunahing kaalaman

Talaan ng mga Nilalaman:

Disenyo ng database: mga hakbang at pangunahing kaalaman
Disenyo ng database: mga hakbang at pangunahing kaalaman
Anonim

Ang disenyo ng database ay isang sunud-sunod na proseso ng pag-aangkop ng magagamit na kaalaman at mga tool upang kumatawan at magproseso ng impormasyon.

Ang tunay na saklaw, ang partikular na gawain, ang paglalarawan ng papasok na daloy ng impormasyon at mga pangkalahatang ideya tungkol sa proseso ng pagpoproseso ng impormasyon ay unti-unting idinaragdag sa isang tiyak na konseptong ideya kung ano ang database sa isang partikular na kaso at kung paano upang gawin ito.

Modernong database

Ang mga relasyon sa relasyon ay nasa puso ng anumang modelo ng impormasyon. Ang mga solusyon mula sa Oracle ay katumbas ng MySQL sa kakanyahan, ngunit ang mga ito sa panimula ay naiiba sa maraming aspeto. Ang disenyo ng database ay usapin din ng seguridad, dami ng impormasyon, at pananagutan para sa integridad ng data, ngunit ang mga ito ay pangalawa sa isyu ng pagdidisenyo ng isang mahusay, maaasahan, at user-friendly na database.

mga hakbang sa disenyo ng database
mga hakbang sa disenyo ng database

Ang mga talahanayan ng Excel ay hindi naiiba sa Oracle at MySQL sa konteksto ng mga hugis-parihaba (relational) na istruktura: mga column at row=isang cell sa intersection ng pangalan ng column (field) at selection index (row). Kung hindi mo isasaalang-alang ang sukat at dami ng manu-manong paggawa, kung gayon, salamat sa binuong paraan ng pagsasama-sama ng mga cell nang patayo at pahalang, nauuna ang Excel kahit sa Oracle!

Excel, ayon sa pangunahing ideya nito, ay hindi kailanman "nagniningning" sa dynamics, ang functionality ng Oracle, at hindi nito maililipat ang isang bagay mula sa isang sheet patungo sa isa pa "ayon sa mga labi." Dito ay mas promising ang Oracle, ngunit ang mga pagsasaalang-alang nito sa mga isyu ng paglipat ng malaking halaga ng impormasyon at pagsasama-sama ng mga pormal na posisyon mula sa iba't ibang mga mapagkukunan ay nag-iiwan ng maraming nais. Narito ang MySQL ay mas promising: hindi nito itinatakda ang sarili nitong mga pandaigdigang gawain, ngunit ginagawa nito nang perpekto ang trabaho nito.

Ang mga relasyon sa relasyon ay maginhawa, praktikal at mahusay na itinatag na mga tool, mula sa mga pribadong solusyon sa antas ng Excel hanggang sa mga pandaigdigang volume ng Oracle, ay ginagamit saanman, in demand at mayroon silang garantisadong hinaharap na bigay ng trabaho.

Ang modernong database ay mga talahanayan, hilera, column at index na napapalibutan ng ganap na functionality, binuo ng mga karagdagang tool na isinasaalang-alang ang maraming operasyon, mabibigat na load at malalaking volume.

Isinasaalang-alang ng kaalaman at karanasan ng mga modernong database management system (DBMS) hindi lamang ang mga isyu ng pagiging maaasahan, pagiging maaasahan ng data, regulasyon sa pag-access at mga isyu sa seguridad, ngunit ginagawang posible ring subaybayan ang mga negatibong panlabas na impluwensya, pag-aralan ang mga posibleng pag-atakeat sinusubukang sinadyang saktan.

Ang modernong database ay isang maaasahang pundasyon para sa anumang mapagkukunan sa web at lokal na aplikasyon, ang kakayahang mag-migrate ng impormasyon, mag-transform at maglipat ng data, mag-intersect at pagsamahin ang iba't ibang view.

Ang tanging mahalagang kondisyon: highly qualified developer. Upang maisagawa ang epektibong disenyo ng mga relational database ay available sa isang espesyalista, at mas madalas sa isang pangkat ng mga espesyalista at eksperto sa larangan ng aplikasyon ng problemang niresolba.

Saklaw, posibleng solusyon at mga hadlang

Kumakalat ang impormasyon sa lahat ng dako. Maraming proyekto ang direktang konektado sa Internet, ngunit ang kadahilanan ng pagkakaroon ng pormal na representasyon ng data dito ay hindi mas mahusay kaysa sa kawalan ng katiyakan kapag gumagawa ng web resource para sa isang planta ng bakal.

Ang pag-unlad at napakalaking interes sa mga online na tindahan ay hindi nagbibigay ng mga batayan at pagkakataon upang ilipat ang karanasan ng paglikha ng isang tindahan sa paglikha ng isa pa. Ang trade secret factor ay lumilikha ng maraming mga hadlang sa paglilipat ng kaalaman, bagama't, sa katunayan, dapat mong paghiwalayin ang aktwal na tindahan mula sa mga software tool na ginawa para sa tindahang ito.

disenyo ng relational database
disenyo ng relational database

Siyempre, nagbayad ang customer at pag-aari niya ang code ng site. Isang katangian ng modernidad: ang paglipat ng kaalaman at pag-unlad sa pagitan ng mga gawain ng parehong uri at mga kaugnay na larangan ng aplikasyon ay imposible at ito ay isang problema.

Ang

Parsing ay isang malawak na hanay ng mga application para sa mga database management system. Una sa lahat, ito ay pag-scan ng impormasyon mula sa Internet. Parehong mahalaga na ihambing ang impormasyong naipon sadatabase, at mga kahilingan ng bisita sa web.

Kasali rin sa pagsusuri ng keyword ang pangangailangang bumuo ng pinakamainam na solusyon, ngunit ang disenyo ng database sa Access ay maaaring mas promising kaysa sa MS SQL Server o Oracle.

Ang listahan ng mga mapagkukunan ng impormasyon ay maaaring maging dynamic. Ang dinamika ay maaaring likas sa mga talahanayan ng database ng pinagmulan, mga pangalan ng field ng talahanayan, at mga panuntunan ng tawag (query). Ang pagdidisenyo ng mga relational na database mula sa maraming mapagkukunan ay malinaw na pinipilit kang magdisenyo mula sa pinagmulang data, at hindi mula sa pinakamainam na organisasyon ng impormasyong nakolekta.

Mayroong dalawang bagay na likas sa anumang database:

  • orientation sa content, priority ang dynamic na database generation algorithm;
  • orientation na gagamitin, ang istruktura ng database ay mas mahalaga at ang algorithm para sa paggamit ng impormasyon ay nakabatay dito.

Sa anumang larangan ng aplikasyon mayroong isang pormal na modelo ng papasok na daloy ng impormasyon, isang modelo ng imbakan ng impormasyon - ang aktwal na disenyo ng database at isang modelo (algorithm) para sa paggamit ng data.

Iba't ibang pamamaraan at hakbang sa disenyo

Ang mga pangunahing kaalaman sa disenyo ng database ay karaniwang nahahati sa tatlong yugto. Ang iba't ibang mga espesyalista ay tumutukoy sa mga yugto ng trabaho sa iba't ibang paraan, ngunit, sa katunayan, mayroong tatlong posisyon:

  • conceptual planning;
  • lohikal na disenyo;
  • teknikal na pagpapatupad.

Ang pagsasanay ay nakakatulong sa mga naitatag na tradisyon. Gaano man kakomplikado ang saklaw at problemang nilulutas. Laging kailangan ang pagpili ng tamamga kasangkapan. Halimbawa, kailangan mong mangolekta ng impormasyon mula sa mga bisita sa isang mapagkukunan ng web, ngunit kailangan mong ihambing ito sa data mula sa MS SQL Server. Ang web resource ay naka-host sa FreeBSD (Internet, Apache server), at ang MS SQL Server sa ibang lungsod ay available sa pamamagitan ng distributed network ng kumpanya.

mga pangunahing kaalaman sa disenyo ng database
mga pangunahing kaalaman sa disenyo ng database

Sa solusyon na ito, kailangan mo munang lutasin ang isang partikular na problema: upang magtatag ng pagpapalitan ng data sa panloob na server.

Ang teknikal na pagpapatupad ng isang karaniwang gawain ay tiyak na magkakaroon ng epekto sa paunang yugto: bihira na ang disenyo ng database ay maaaring gawin mula sa simula. Kahit na may napatunayang teknolohiya sa paglutas ng problema, nagbabago ang saklaw, palaging kinakailangan na gumawa ng isang bagay na naiiba kaysa sa orihinal na nilayon nito.

Kamakailan, maraming theorist at practitioner ang nagpapatakbo sa mga entity bilang espesyal na data. Ito ay mga abstraction na nagbibigay-daan sa iyong ilarawan ang modelo ng impormasyon sa input, sa panahon ng pagproseso at sa huling resulta - ang database.

Mga view ng data at entity

Disenyo ng DB sa pamamagitan ng mga abstraction at entity: ang kakayahang lumikha ng larawan ng impormasyon, tukuyin ang mga uri ng data at mga ugnayan sa pagitan ng mga ito.

Karaniwan ang ganitong disenyo ng modelo ng database ay nagtatapos sa isang graphical na modelo, gamit ang MS Visio o mga visual na tool ng piniling DBMS. Ang pag-access ay may sariling paraan ng pagbuo ng isang larawan ng impormasyon, ang MySQL ay may sarili nito, at ang ilang mga sistema ng pamamahala ng nilalaman ay itinago ang database nang buo, na nagpapataw ng isang modelo ng data sa developer sa pamamagitan ng kanilang sariling mga entidad -mga bagay ng gawaing nilulutas.

Isang katangian ng maraming content management system (CMS) ay ang paggawa nila ng "application" para sa isang antas ng mas malawak na abstraction kapag inilalarawan ang lugar ng impormasyon ng problemang niresolba. Ang totoong database ay nakatago, ang CMS ay nag-aalok sa developer ng kanyang sariling ideya ng larawan ng impormasyon ng mundo.

Bilang resulta, ang mga yugto ng disenyo ng database ay nababawasan sa pagsunod sa mga pangunahing kinakailangan at ang pagpapatupad ng mga hakbang na iminungkahi ng mga tagalikha ng isang partikular na CMS. Walang nakakahiya sa paggamit ng mga ideya ng mga database at ang kanilang disenyo mula sa Symfony o Bitrix, Zend o Yii, ngunit para sa developer ito ay isang "pasanin".

Sa isip, ang mga tool sa disenyo ng database ay dapat piliin at ilapat nang isa-isa, nang walang opinyon sa labas, ngunit sa paggamit ng karanasan at kaalaman.

disenyo ng database ng impormasyon
disenyo ng database ng impormasyon

Ideal para sa isang developer na ma-certify ng Oracle, ngunit lubos na katanggap-tanggap para sa mga kwalipikasyon ng isang developer na magsama ng mga insight sa mga ideya sa impormasyon ng Oracle at isang gumaganang kaalaman sa MySQL application.

Sa mga kumplikadong proyekto at ibinahagi na pagproseso ng impormasyon, hindi lamang ang database ang mahalaga, kundi pati na rin ang mga mapagkukunan ng impormasyon, mga ideya tungkol sa mga pangangailangan ng mga mamimili.

Mga yugto o pangkat: balanse ng mga priyoridad

Ang kinakailangan ng pagkakapare-pareho ay ang pinakamahalagang kahalagahan. Kasama rin sa mga pangunahing kaalaman sa disenyo ng database ang pag-phase ng trabaho, pagsubaybay sa mga intermediate na resulta, muling pag-iisip ng bawat nakumpletong yugto batay sa pagsasagawa ng sumusunod na uri ng trabaho:

  • systematic;
  • phasing;
  • feedback mula sa anumang punto ng oras, hanggang sa pinakasimulang posisyon.

Ang mga probisyong ito ay abstract, ngunit naroroon sa anumang teoretikal at praktikal na teknolohiya para sa paglikha ng isang epektibong database.

Walang teknolohiyang bubuo nang mag-isa, ito ay hinimok ng mga tao. Ang mga kwalipikasyon ng development team ay mahalaga. Ang modelo ng impormasyon sa database ay hindi lamang isang balangkas, kundi pati na rin ang mga daloy ng impormasyon.

Ano ang mas mahalaga: magagandang graphics sa representasyon ng istraktura ng database o isang tumpak na paglalarawan ng mga daloy ng impormasyon sa dynamics - isang bagay hindi lamang sa gawain at saklaw, kundi pati na rin ang opinyon ng development team sa dynamics.

disenyo ng istraktura ng database
disenyo ng istraktura ng database

Ang mga tauhan ay lahat, ngunit sa konteksto: ang konseptong disenyo ng isang database ay ang lahat ng kwalipikasyon. Lahat ng tao ay natatangi, at sa larangan ng mga sistema ng impormasyon, ang mga representasyon ng mga partikular na tao ay umiiral at umuunlad.

Mahalagang bumuo ng isang team ng mga developer, hindi ilang gawa-gawang hakbang sa disenyo ng database na iminungkahi ng isang makapangyarihang eksperto. Ang awtoridad ng espesyalista na ito ay nabuo batay sa mga tiyak na gawa, sa isang tiyak na oras. Kailangang gawin ngayon ang trabaho, bagong gawain, modernong kagamitan, sariwang teknolohiya, …

Posibleng baliktarin. Mayroong Excel at Access at "masaganang" data sa mga format na ito mula noong sinaunang panahon, noong ang Windows for Workgoups ay buhay pa at maayos. Bahagyang nanatiling data ng dBase at Quattro. Ngayon ang mga salitang ito ay nakalimutan na, ngunit ang impormasyonnanatili, ito ay in demand at kailangang kunin at bumuo ng mga bagong ideya.

Luma at bago: balanse ng kaalaman

Ang

Cloud technology ay hindi katulad ng mga database na ginawa ni Ashton-Tate. Ang minsang binili ng Oracle ay hindi maihahambing sa ginagawa nito ngayon. Ngunit ang mga variable, algorithm, function, loop at kundisyon ay nanatili sa programming mula noong unang bahagi ng 80s. Maliban na lang kung ang konsepto ng pamamaraan ay nalubog na sa limot, at ang lahat ay nananatiling gaya noong sinaunang panahon.

Maging ang mga modernong ideya ng object-oriented na programming ay binihisan ng klasikong syntactic at semantic na "mga tanikala" noong nakaraang siglo.

Ano ang gagawin - ang programming ay inertial, at ang pormalisasyon ng impormasyon at ang disenyo ng mga database ng impormasyon ay higit na isang proseso kaysa sa isang resulta. Ang yugto ng trabaho ay isang kinakailangan para sa pagkamit ng mga resulta. Ngunit sino ang nagbilang ng bilang ng mga pag-ulit mula sa mga intermediate na yugto halos sa pagsisimula ng trabaho?

Ang impormasyon ay palaging dynamic, walang nakatayo: lalo na ang paksa ng gawain at mga kinakailangan ng user. Ang bawat nakumpletong yugto ng trabaho ay nagbibigay-daan sa iyong suriin sa isang bagong antas kung ano ang nagawa na at kung ano ang natitira pang dapat gawin.

lohikal na disenyo ng database
lohikal na disenyo ng database

Upang isaalang-alang ang pagdidisenyo ng istraktura ng database bilang isang gawain at makuha ang huling resulta ay walang saysay. Sa sandaling maisagawa ang database, tiyak na lilitaw ang isang bagong ideya, kahit na ang tool para sa paglikha ng database ay "simple" na Excel, at hindi isang napakalakas at maraming nalalaman na produkto mula sa Oracle,pagmamanipula sa milyun-milyong transaksyon, daan-daang libong magkakasabay na user at terabyte ng impormasyon.

Ang priyoridad ay hindi ang istraktura ng database, ngunit ang pagbuo ng isang kwalipikadong pangkat ng mga espesyalista, kasama ang ipinag-uutos na kinakailangan para sa higit na dinamismo ng resulta, upang sa pagtatapos ng trabaho ay hindi na kailangang makipag-ugnayan ang mga developer, kahit ilang buwan lang.

Sequential development at/o high jumps

Ang Windows ay hindi isang database, ngunit mayroon itong relic - ang registry. Ang file ng host ay simpleng pagkakakilanlan ng mga IP address at simbolikong pangalan ng lokal na makina. Ngunit sa pamamagitan ng file na ito, ang impormasyon ay dumadaloy mula sa iba't ibang domain o sa iba't ibang DBMS ay nabuo.

Posibleng maunawaan ang maraming panig na Windows bilang isang gumaganang computer o server, ngunit hindi ito gagana sa anumang paraan upang bigyang-katwiran ang lohika ng mga bersyon ng produktong ito. Ang PHP ay hindi rin isang database, ngunit ang mga argumento ng mga developer kung bakit ang bersyon 5 ay agad na sumusunod sa bersyon 7 ay hindi pare-pareho. Ang PHP ay isang MySQL access tool, ang syntax nito ay tumutukoy kung paano bumuo ng mga query at makakuha ng mga tugon mula sa database gamit ang SQL dialect.

Ang mga halimbawa ng hindi pagkakatugma sa pagitan ng mga modernong tool sa programming at suporta sa database ay naging karaniwan sa mga nakalipas na taon, ngunit hindi ito ang pinakaorihinal. Ano ang nasa likod ng bersyon ng Windows 10? Ano ang mga prospect para sa Oracle Database 12c?

Impormasyon ng developer-author: Ang Oracle Database 11g Express Edition (Oracle Database XE) ay isang entry-level na DBMS batay sa Oracle Database 11g Release 2 DBMS code. Ang DBMS na ito ay libre para sa pagbuo,deployment at pagbebenta, mabilis na pag-download at madaling pangasiwaan.”

Perspektibo ng developer ng user: “Noong 2013, inilabas ng Oracle ang Oracle Database 12c (bersyon 12.1.0.1) na may mga pangunahing benepisyo ng mas mababang gastos sa storage, mataas na availability ng data, madaling pagsasama-sama ng database, at proteksyon sa pag-access ng data "".

Tunay na Pagsasanay: Ang isang layunin, mahusay at epektibong disenyo ng lohikal na database ay magagamit lamang sa isang pangkat ng mga kwalipikadong developer. Ang pagkuha ng isang gumaganang resulta ay hindi mahirap, mahirap gawing pormal ang mga papasok na daloy ng impormasyon at matukoy ang pinakamainam na pundasyon.

Sa mundo ng makinis na mga hugis mula sa tumpak na mga parihaba

Sa pagdating ng object-oriented programming, nagkaroon ng bagong buhay ang serialization ng data. Sa katunayan, ang lahat sa paligid ay mga linya lamang, mas mabuti na walang tiyak na haba. Ang mga numero at petsa ay mga string ng character din.

Hindi maikakaila ang kapangyarihan at objectivity ng relational na relasyon, ngunit ang dynamics ba ng mga column at row ay nakakasira sa kanilang reputasyon? Ang talahanayan ay simpleng data na maaaring may header (listahan ng mga column) o walang mga row. Hayaang ang talahanayan ay isang koleksyon lamang ng data, hindi kinakailangang pinangalanan.

Ang set ng data ay maaaring magkaiba at makakahanap ka ng data ng iba't ibang istraktura dito. Sa panimula, ang homogeneity ng data ay nagpapahiwatig ng pagbuo ng saklaw. Ang pamamahagi ng data ayon sa mga uri at species ay isang tanda ng isang sistematiko at layunin na diskarte, ngunit ipinapayong aminin pa rin ang posibilidad ng dynamics ng istraktura.

Kung outputpagdidisenyo at paglikha ng isang database na lampas sa matibay na istruktura at sa pag-aakalang ang isang talahanayan ay isang koleksyon ng mga row na hindi kinakailangang magkapareho ang uri at magkapareho sa semantika sa isa't isa, kung gayon ang disenyo ng database ay magbabago nang malaki.

Ang paksa ng gawain ay hindi isang paglalarawan ng istraktura ng database, ngunit ang dynamics ng paggalaw ng impormasyon. Ang mga yugto ng trabaho ay mahahati sa tatlong sentro ng grabidad:

  • daloy ng impormasyon ng input;
  • pagbabago at paggalaw ng impormasyon sa loob ng database;
  • pumili ng data na gagamitin.

Walang konsepto ng istraktura ng talahanayan. Walang mga row o column. Mayroong isang abstraction - isang ibinigay, ng isang tiyak na istraktura, na nakakatugon sa isang tiyak na punto sa algorithm. Higit na partikular, ang function ng pagpoproseso ng impormasyon ay nangangailangan ng ilang impormasyon sa isang partikular na halaga.

Ang obligadong pangangailangan ng recursiveness ng lahat ng mga function sa pagpoproseso ng impormasyon at tumuon sa mga function, hindi sa data, ay nagbibigay-daan sa iyong magdisenyo ng database sa dynamics ng naipon na impormasyon at papasok na daloy ng data, na ginagamit sa inisyatiba ng user, proseso o iba pang function.

Sa katunayan: dumating ang isang signal ng paggamit, natanggap ang isang kahilingan sa pagkuha, isang trigger sa application ang pinagana, at ang papasok na impormasyon, sa pamamagitan ng kung ano ang mayroon na, ay nagbigay ng gustong solusyon.

Mga pangunahing kaalaman at matibay na konstruksyon

Ang kaalaman ay prerogative ng tao, ang mga programa ay pasanin ng mga computer. Malaya ang developer na mag-aplay ng kaalaman ayon sa nakikita niyang angkop sa isang partikular na sitwasyon. Ang isang ordinaryong tao ay gumagamit ng maraming database, nang hindi binibigyang importansya ito. paanoang mga database ay nakaayos sa ulo ng isang ordinaryong tao, walang nakakaalam, ngunit alam ng lahat kung paano niya isinasagawa ang kanyang negosyo, kung saan isinulat niya ang kanyang nahanap, at kung kailan niya kailangan itong gamitin.

Ang resulta ng trabaho ng programmer - sa antas ng isang program sa "Basic", na kumukuha ng data mula sa website ng isang online na tindahan sa pamamagitan ng ODBC, ay katumbas ng isang may pamagat na Oracle developer na humihiling na kumuha ng data mula sa MAKS Aviation at Space Salon. Ang parehong mga resulta ay "nag-freeze" sa static mula sa sandaling ang trabaho ay nakumpleto. Ito ay hindi aktibong kaalaman na ginagamit ng isang tao, ito ang sikreto ng paglikha ng isang database design system.

Hindi maaayos ang algorithm. Ang lahat ay dapat tukuyin nang pabago-bago. Ang mga merito ng mga kwalipikadong developer ay hindi maikakaila, ngunit hindi sila nagsisinungaling sa lahat ng mga eleganteng anyo ng mga solusyon mula sa Oracle, MySQL, o Access, na limitado sa mga kakayahan nito. Ang isa pang Excel spreadsheet ay maaaring magbigay ng dynamic na nilalaman at hindi nangangailangan ng pakikilahok ng isang programmer para sa higit pa o mas kaunting disenteng oras pagkatapos makumpleto ang trabaho.

Ang tanong ay kung gaano kahusay ang dynamics ng application area ay napormal, hindi ang structure ng database.

Live Solutions

Imposibleng magplano ng trabaho sa paraang maiugnay ang isang pangkat ng mga propesyonal na developer sa isang gawain. Hindi sa nasaktan ang koponan, ngunit hindi ito ang tamang diskarte.

Mga Live na Solusyon
Mga Live na Solusyon

Ang gawain ng pagdidisenyo ng isang database ay dapat na mabalangkas sa paraang ang binuo na pag-andar ay mapapabuti ang sarili nito, makaipon ng kaalaman at, sa pagganap ng mga "tungkulin" nito, hindi magsisimula sa code,nilikha ng mga eksperto, ngunit mula sa kaalamang nakuha sa pamamagitan ng code na ito.

Inirerekumendang: