КампутарыБазы дадзеных

Сувязь многія-да-шматлікім: прыклад у Access, у SQL. Як зрабіць сувязь многія-да-шматлікім?

Ва ўсіх СКБД (сістэмах кіравання базамі дадзеных) маецца некалькі тыпаў адносін паміж табліцамі. Сярод іх сувязь адзін-да-аднаму, адзін-да-шматлікім, многія-да-аднаму (некаторыя схільныя атаясамліваць гэтыя два тыпу ў адзін) і сувязь многія-да-шматлікім. Прыклад апошняй, яе тлумачэнне і прымяненне ў розных СКБД, такіх як Access або SQL, будзе разгледжана ў гэтым артыкуле.

вызначэнне

Сувязь многія-да-шматлікім вызначаецца як адпаведнасць любому з асобнікаў адной з сутнасцяў ўсіх экзэмпляраў іншы. Іншымі словамі, кожнае поле з першай (другі) табліцы звязана з усімі палямі з другой (першай).

Прадстаўленая схема наглядна адлюстроўвае сутнасць дадзенага адносіны.

Калі можа быць выкарыстана сувязь многія-да-шматлікім?

Прыклад сувязі многія-да-шматлікім - гэта студэнцкая група і група выкладчыкаў. Кожны са студэнтаў вучыцца адразу ў некалькіх прафесараў, якія, у сваю чаргу, чытаюць лекцыі некалькім вучням. На малюнку паказана розніца паміж сувяззю адзін-да-шматлікім і шматлікія-да-шматлікім.

Сувязь многія-да-шматлікім нярэдка неабходная пры складанні маштабных баз дадзеных, дробныя паказальныя прыклады звычайна выкарыстоўваюцца толькі ў навучальных мэтах, у рэальным жа практыцы атрымліваецца так, што, чым больш сутнасцяў ў БД і больш узаемасувязяў паміж імі - тым больш верагоднасць частага звароту да адносінах многія-да-шматлікім.

Як зрабіць сувязь многія-да-шматлікім?

Прыклады разгляданага адносіны яшчэ будуць дадавацца па ходзе артыкула, аднак важна не толькі зразумець, што яно ёсць, але і тое, якім чынам можна яго рэалізаваць. Дэталі дадзенага працэсу напрамую залежаць ад абранай для працы СКБД, у той час як прынцып застаецца адным для ўсіх.

Microsoft Access

Офісны праграмны прадукт ад "Майкрасофт" вядомы на рынку ПА ўжо даволі працяглы час. Ён пастаўляецца разам з тэкставым рэдактарам Worfd, таблічны працэсар Excel і іншымі, якія ўваходзяць у лінейку "офіса". Можна Access (чытаецца як "Аксесе", даслоўны пераклад - "доступ") набыць і асобна ад яго "калегаў". Рэкамендуецца купіць, зразумела, ліцэнзійны софт, але ні для каго не сакрэт, колькі пірацкіх репаков можна знайсці на прасторах Сеткі, у выглядзе звычайных файлаў або раздач торэнтаў. "Майкрасофт Аксесе" даступны нават у партатыўнай зборцы. Яна, якая не патрабуе інсталяцыі і асаблівых навыкаў працы з ПК, лепш за ўсё падыходзіць для выбару, калі ПА не будзе выкарыстоўвацца працягла і часта.

З кантэксту ясна, што "Майкрасофт Аксесе" - гэта сістэма кіравання базамі дадзеных. Прычым адна з найпапулярнейшых. Яна з'яўляецца рэляцыйнай, што значыць, яна заснаваная на лагічнай мадэлі дадзеных, якая ў ходзе сваёй працы звяртаецца да тэорыі мностваў і логіцы першага парадку. Сувязь многія-да-шматлікім у Access (прыклады будуць дадзены ў ходзе тлумачэння) рэалізуецца вельмі і вельмі проста. Разгледзім яе.

Ёсць дзве табліцы ..

Каб не прыдумляць нічога новага, возьмем ўжо зарэгістраваны для таго, каб патлумачыць сувязь многія-да-шматлікім, прыклад пра студэнцтва. Неабходна стварыць табліцу "Студэнты" і табліцу "Выкладчыкі". Як у першай, так і ў другой з іх маюцца першасныя ключы. Для аб'яднання асобнікаў гэтых двух сутнасцяў патрабуецца таксама яшчэ адна табліца, поля якой - ключы першай і другой табліц.

Калі разгледзець іншы прыклад: дапусцім, футбалісты і каманды (з улікам таго, што хоць бы адзін з футбалістаў гуляў за розныя зборныя, і кожная зборная мае ў сваім складзе адзінаццаць гульцоў), сутнасць пабудовы сувязі не зменіцца. Таксама будуць патрэбныя тры табліцы. З іх "Футбалісты" і "Каманды" у якасці асноўных, і адна прамежкавая.

схема дадзеных

Сувязі паміж табліцамі ў СКБД "Майкрасофт Аксесе" рэалізуюцца пры дапамозе ўкладкі "Схема дадзеных". На інфармацыю, якая з'явілася панэль дадаюцца ўсе неабходныя сутнасці (у нашым выпадку ўсё тры табліцы). Стварэнне сувязі многія-да-шматлікім будзе адбывацца пры дапамозе двух адносін адзін-да-многіх паміж галоўнымі ( "Студэнты" і "Выкладчыкі") і прамежкавай табліцы. Для гэтага неабходна злучыць паміж сабой адпаведныя першасныя ключы.

На ілюстрацыі вышэй паказана, як выглядае ўкладка "Схема дадзеных" (Relathionships). Колькасць дадаваных на панэль табліц неабмежавана. Размяшчэнне цалкам рэгулюецца карыстальнікам.

SQL

Праектаванне баз дадзеных на SQL - задача складаней, чым на "Аксесе". Калі Майкрасофтаўскі прадукт цалкам адаптаваны пад офіснае асяроддзе, мае велізарны і, з кожным выпускам і абнаўленнем ўсё пашыраецца, функцыянал, але ў той жа час і зручны для простага карыстальніка інтэрфейс, то SQL - гэта асобны непроцедурный мова праграмавання, пры дапамозе якога на розных платформах можна працаваць з базамі дадзеных. Вядомае ПА для дадзенай задачы: Oracle MySQL і DB2 (папулярнае, але не адзінае ў сваім родзе). Нягледзячы на тое, што ў кожнага з іх ёсць свае тонкасці і нюансы, мова SQL іх "аб'ядноўвае". Навучыўшыся працаваць хаця б з адным з іх, разабрацца з іншым будзе значна прасцей.

Стварэнне, запаўненне і непасрэдна дзеянні над ужо наяўнай БД у SQL трэба праз спецыяльныя коды або скрыпты. Аднак тыя, хто ўжо дабраўся да падзелу "Сувязь многія-да-шматлікім", прыклад якой на дадзеным мове праграмавання будзе прадастаўлены ніжэй, павінны ведаць хоць бы асноўныя каманды і прынцыпы выкарыстання мовы SQL.

Прынцып стварэння сувязі многія-да-шматлікім

Доўгі ўступленне магло некалькі збянтэжыць і "напусціць туману", але на самой справе прынцып рэалізацыі сувязі застаецца ранейшым. Для таго каб тып сувязі многія-да-шматлікім быў увасоблены на практыцы, не толькі ў "Аксесе", але і SQL, патрабуецца першапачаткова стварыць дзве базавыя табліцы і адну - прамежкавую. Аналагічна справа ідзе і з ключамі: асноўныя сутнасці маюць галоўныя поля, кожны з якіх запісваецца ў злучную табліцу. Што значыць, што SQL-сувязь многія-да-шматлікім прынцыпова не адрозніваецца ад "Аксесе".

рэалізацыя сувязі

Для рэалізацыі сувязі многія-да-шматлікім у скрыптах SQL выкарыстоўваюцца знешнія ключы (FOREIGN KEY) аналагічныя зыходным ключах ў асноўных табліцах. Яны запісваюцца разам з усімі палямі каля іх стварэнні і / або рэдагаванні.

Ролю сувязі многія-да-шматлікім

Наогул адносіны паміж сутнасцямі ў базах дадзеных выкарыстоўваюцца для цэласнасці інфармацыі, у іх захоўваецца. Толькі добра спраектаваная БД з усімі неабходнымі сувязямі гарантуе бяспеку захоўвання, зручнасць працы і ўяўляе сабой структуру, устойлівую да вонкавых уздзеянняў і зменаў. Звычайна, калі база змяшчае дадзеныя аб цэлай арганізацыі, кампаніі або фірме, у ёй змяшчаецца мноства сутнасцяў з рознымі асобнікамі.

А гэта значыць, што пры складанні схемы дадзеных (у "Аксесе") або напісанні скрыптоў (у "Оракл" ці "ДиБиТу") будзе прысутнічаць як мінімум адна сувязь многія-да-шматлікім. Прыклад SQl, часта выкарыстоўваецца пры навучанні курса "Арганізацыі баз дадзеных" - БД Кінга.

База дадзеных Кінга

Гэтая навучальная база даных уяўляе сабой звесткі пра карпарацыі Кінга. Сярод табліц:

  • супрацоўнікі фірмы - утрымлівае ў сабе код супрацоўніка, яго прозвішча, імя і сярэдні ініцыял (арыентаванасць на замежныя імёны), таксама код начальніка і займаемай супрацоўнікам пасады, дату яго паступлення ў фірму, які атрымліваецца ім аклад і прадугледжаныя камісійныя, код аддзела;
  • аддзелы карпарацыі - сярод палёў табліцы ёсць код і назва аддзела, а таксама код яго размяшчэння;
  • месца размяшчэння аддзелаў, якая прадугледжвае ўнясенне інфармацыі па кодзе месца размяшчэння і назвы горада;
  • пасады ў фірме - невялікая табліца з двума палямі кода пасады і яе афіцыйнай назвы;
  • фірмы-пакупнікі - палі: код і назва пакупніка, адрас, горад і штат, паштовы код і код рэгіёну, тэлефон, код абслуговага пакупніка мэнэджэра, крэдыт для пакупніка і каментары (заўвагі і нататкі);
  • дагаворы аб продажы, якая змяшчае ў сабе код і дату дагавора, код пакупніка, дату пастаўкі і агульную суму дамовы;
  • акты продажаў - код акту і код дагавора, у які ўваходзіць акт, код прадукту, яго кошт, колькасць набытага і агульны кошт куплі;
  • тавары - код і назва прадукту;
  • кошты - код прадукту, абвешчаная на яго цана, мінімальна магчымая цана, дата ўстанаўлення і дата адмены кошты.

Невялікія табліцы, у наяўнасці у якіх не больш чым два-тры палі, звязаныя максімум з адной табліцай стаўленнем адзін-да-аднаму або адзін-да-шматлікім.

Маштабныя жа табліцы, такія як "супрацоўнікі фірмы", "фірмы-пакупнікі", "дагаворы аб продажы" і "акты продажаў" звязаныя адразу з некалькімі сутнасцямі, прычым з некаторымі - пры дапамозе "пасярэднікаў" стаўленнем многія-да-шматлікім. Табліца "фірмы-пакупнікі" сама з'яўляецца пасрэдніцкай, як такая, бо ў ёй ёсць многія поля, запазычаныя з іншых табліц і якія з'яўляюцца знешнімі ключамі. Акрамя таго, маштабнасць і ўзаемасувязь базы дадзеных "Карпарацыі Кінга" такая, што ўсе адносіны непарыўна карэлююць паміж сабой і ўплываюць адно на другое. Разбурэнне хоць бы аднаго з іх пацягне за сабой дэструкцыю цэласнасці ўсёй БД.

важныя нюансы

Пры рэалізацыі сувязі многія-да-шматлікім, па-за залежнасці ад таго, якая выкарыстоўваецца СКБД, вельмі важна дакладна вызначыць ключы, пры дапамозе якіх будзе складацца стаўленне. Няправільна рэалізаваная сувязь не выканае свайго асноўнага прызначэння, а менавіта - забеспячэнне цэласнасці табліцы, і ў выніку, замест чаканага камфорту, карыстальнік атрымае, насупраць, нязручнасці і дадатковыя праблемы, асабліва праяўляюцца пры запаўненні табліц і рэдактуры ў іх дадзеных.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.unansea.com. Theme powered by WordPress.