Реляц?йна модель даних

Матер?ал з В?к?пед?? ? в?льно? енциклопед??.
Перейти до нав?гац?? Перейти до пошуку

Реляц?йна модель даних  ? лог?чна модель даних . Вперше була запропонована британським ученим сп?вроб?тником компан?? IBM Едгаром Франком Коддом (E. F. Codd) в 1970 роц? в статт? ≪A Relational Model of Data for Large Shared Data Banks≫. В даний час ця модель ? фактичним стандартом, на який ор??нтуються практично вс? сучасн? комерц?йн? системи керування базами даних (СКБД) .

У реляц?йн?й модел? досяга?ться б?льш високий р?вень абстракц?? даних, н?ж в ??рарх?чн?й або мережев?й. У згадан?й статт? Е. Ф. Кодда стверджу?ться, що ≪реляц?йна модель нада? засоби опису даних на основ? т?льки ?х природно? структури, тобто без потреби введення яко?сь додатково? структури для ц?лей машинного представлення≫. ?ншими словами, подання даних не залежить в?д способу ?х ф?зично? орган?зац??. Це забезпечу?ться за рахунок використання математичного поняття в?дношення (сама назва ≪реляц?йна≫ походить в?д англ?йського relation ? ≪в?дношення≫).

До складу реляц?йно? модел? даних зазвичай включають теор?ю нормал?зац??. Кр?стофер Дейт визначив три складов? частини реляц?йно? модел? даних:

  • структурна;
  • ман?пуляц?йна;
  • ц?л?сна.

Структурна частина модел? визнача?, що ?диною структурою даних ? нормал?зоване n-арне в?дношення. В?дношення зручно представляти у форм? таблиць, де кожен рядок ? кортеж , а кожен стовпець ? атрибут, визначений на деякому домен?. Даний неформальний п?дх?д до поняття в?дношення да? б?льш звичну для розробник?в ? користувач?в форму представлення, де реляц?йна база даних пода?ться як к?нцевий наб?р таблиць.

Ман?пуляц?йна частина модел? визнача? два фундаментальних механ?зми ман?пулювання даними ? реляц?йну алгебру ? реляц?йне числення. Основною функц??ю ман?пуляц?йно? частини реляц?йно? модел? ? забезпечення заход?в реляц?йност? будь-яко? конкретно? мови реляц?йних БД: мова назива?ться реляц?йною, якщо вона ма? не меншу виразн?сть ? потужн?сть, н?ж реляц?йна алгебра або реляц?йне числення.

Ц?л?сна частина модел? визнача? вимоги ц?л?сност? сутностей ? ц?л?сност? посилань. Перша вимога поляга? в тому, що будь-який кортеж будь-якого в?дношення в?дм?нний в?д будь-якого ?ншого кортежу цього в?дношення, тобто ?ншими словами, будь-яке в?дношення ма? волод?ти первинним ключем. Вимога ц?л?сност? щодо посилань, або вимога зовн?шнього ключа поляга? в тому, що для кожного значення зовн?шнього ключа, що з'явля?ться у в?дношенн?, на яке веде посилання, повинен знайтися кортеж з таким же значенням первинного ключа, або значення зовн?шнього ключа повинно бути невизначеним (тобто н? на що не вказувати).

Можна провести аналог?ю м?ж елементами реляц?йно? модел? даних ? елементами модел? ≪сутн?сть-зв'язок≫. Реляц?йн? в?дносини в?дпов?дають наборам сутностей, а кортеж? ? сутностям. Тому, як ? в модел? ≪сутн?сть-зв'язок≫, стовпц? в таблиц?, що представля? реляц?йне в?дношення, називають атрибутами.

Кожен атрибут визначений на домен?, тому домен можна розглядати як множина допустимих значень даного атрибуту. К?лька атрибут?в одних в?дношень ? нав?ть атрибути р?зних в?дношень можуть бути визначен? на одному ? тому ж домен?.

?менована множина пар ≪?м'я атрибута ? ?м'я домену≫ назива?ться схемою в?дношення. Потужн?сть ц??? множини ? називають ступенем чи ≪арн?стю≫ в?дносини. Наб?р ?менованих схем в?дносин називають схемою бази даних .

Атрибут, значення якого однозначно ?дентиф?ку? кортеж?, назива?ться ключовим (або просто ключем). Якщо кортеж? ?дентиф?куються т?льки зчепленням значень дек?лькох атрибут?в, то говорять, що в?дношення ма? складений ключ. В?дношення може м?стити к?лька ключ?в. Завжди один ?з ключ?в оголошу?ться первинним, його значення не можуть оновлюватися. Вс? ?нш? ключ? в?дношення називають можливими ключами.

На в?дм?ну в?д ??рарх?чно? ? мережево? моделей даних в реляц?йно? в?дсутн? поняття групових в?дношень. Для в?дображення асоц?ац?й м?ж кортежами р?зних в?дносин використову?ться дублювання ?х ключ?в.

Переваги реляц?йно? модел?:

  • простота ? доступн?сть для розум?ння користувачем. ?диною використовуваною ?нформац?йною конструкц??ю ? ≪таблиця≫;
  • сувор? правила проектування, як? базуються на математичному апарат?;
  • повна незалежн?сть даних. Зм?ни в прикладн?й програм? при зм?н? реляц?йно? БД м?н?мальн?;
  • для орган?зац?? запит?в ? написання прикладного ПЗ нема? необх?дност? знати конкретну орган?зац?ю БД у зовн?шн?й пам'ят?.

Недол?ки реляц?йно? модел?:

  • далеко не завжди предметна область може бути представлена у вигляд? ≪таблиць≫;
  • в результат? лог?чного проектування з'явля?ться множина ≪таблиць≫. Це призводить до труднощ?в розум?ння структури даних;
  • БД займа? в?дносно багато зовн?шньо? пам'ят?;
  • в?дносно низька швидк?сть доступу до даних.

Див. також [ ред. | ред. код ]