ВІДНОСИНИ І ЗМІННІ ВІДНОСИНИ

Якщо припустити, що реляційна база даних – це по суті просто база даних, в якій дані представлені у вигляді таблиць (а це так і є), то виникає резонне запитання: чому ж ми називаємо таку базу даних саме реляційної, а не, скажімо, табличній Відповідь проста (фактично він був даний ще в розділі 1): термін relation (Відношення) – Це формальна назва таблиці (точніше, певного виду таблиць подробиці будуть приведені в главі 6) Наприклад, можна сказати, що база даних відділів і службовців, представлена ​​на рис 31, містить два відносини

В даний час у неформальному контексті терміни ставлення ітаблиця прийнято вважати синонімами На практиці в подібному контексті термін таблиця використовується набагато частіше, ніж термін ставлення На обговоренні цього питання варто зупинитися, щоб зясувати, чому все-таки термін ставлення поставлений на перше місце Коротенько це пояснюється наступним

■ Як вже зазначалося, реляційні системи засновані на реляційній моделі Ре ляційними модель, в свою чергу, – це абстрактна теорія даних, заснована на деяких галузях математики (В основному на теорії множин і логіці пре дікатов)

■ Принципи реляційної моделі були сформульовані в 1969 і 1970 роках ЕФ Коддом (EF Codd), який на той час працював у корпорації IBM Наприкінці 1968 Кодд, математик за освітою, вперше прийшов до висновку, що для впровадження в сферу управління базами даних строгих і точних принципів можна використовувати математичні дисципліни У той час даної області недостава ло саме цих якостей Ідеї ​​Кодда вперше докладно були викладені у статті A Relational Model of Data for Large Shared Data Banks, що стала класичною (див [61] в главі 6)

■ З того часу ці ідеї стали загальноприйнятими і надали дуже істотний вплив на всі аспекти технології баз даних, а також на інші області, такі як штучний інтелект, обробка природних мов і проектування апаратних засобів

У теорії реляційної моделі, з того часу, як вона була спочатку сформульована Коддом, навмисне застосовувалися лише певні, ретельно підібрані терміни Наприклад, спочатку сам термін ставлення у сфері інформаційних технологій практично не використовувався, хоча таке поняття іноді вживалося в інших областях Суть полягала в тому, що багато поширених тоді терміни були дуже нечіткими – Їм не вистачало точності, необхідної для такої формальної теорії, яку запропонував Кодд Наприклад, розглянемо термін запис У різний час і в різних контекстах він міг означати примірник запису або тип записи, логічну запис або фізичну запис, збережену запис або віртуальну запис, а можливо, і ще що-небудь Тому у формальній реляційної моделі термін запис не використовується взагалі – замість нього застосовується термін кортеж (Tuple), точне визначення якого дав сам Кодд, коли ввів його вперше Ми не станемо наводити тут це визначення (воно дано в главі 6), а лише зазначимо, що термін кортеж приблизно відповідає поняттю рядка (Так само, як термін ставлення приблизно відповідає поняттю таблиці) Аналогічним чином, в реляційної моделі не використовується

термін полі замість нього використовується термін атрибут, який в розглянутому контексті приблизно відповідає поняттю шпальти таблиці

При подальшому вивченні теоретичних аспектів реляційних систем у частині II ми

будемо використовувати більш формальну термінологію, проте в даній чолі ми не станемо дотримуватися строго заданих термінів, а скористаємося більш звичними,

такими як рядок і стовпець Проте один формальний термін – ставлення – Ми всетаки будемо використовувати досить часто

Знову звернемося до бази даних відділів і співробітників, представленої на рис 31 Зауважимо, що таблиці DEPT І ОМР У базі даних фактично є змінними відносини, тобто їх значення – це значення відносини (Тобто відносини приймають різні значення в різний час) Припустимо, наприклад, що таблиця ОМР в даний момент має значення (Значення відносини), яке показано на рис 31, і далі припустимо, що ми видалили рядок про співробітника з прізвищем Saito (його номер – Е4)

DELETE ОМР WHERE ОМР # = ОМР # (Е4)

Результат виконання цієї операції показаний на рис 33

Рис 33 Мінлива відносини ОМР після видалення рядка співробітника з кодом Е4

Концептуально це дію можна описати таким чином: старе значення відносини ОМР було замінено в цілому зовсім іншим, новим значенням відношення Звичайно, старе значення (з чотирма рядками) і нове значення (з трьома рядками) дуже схожі, але насправді вони є різними По суті, дана операція видалення рядка – це просто альтернативний, спрощений спосіб запису для певної операціїреляційного присвоювання,яка могла б виглядати приблизно так

ОМР: = ОМР WHERE NOT (ОМР # = ОМР # (Е4))

Як і при будь-якому присвоюванні, тут з концептуальної точки зору спочатку обчислюється вираз, розташоване праворуч від знака присвоювання, а потім результат присвоюється змінної, яка записана перед знаком привласнення (за визначенням перед знаком привласнення може стояти, природно, тільки змінна) В цілому, як уже зазначалося, завдання полягає в тому, щоб замінити старе значення відношення ОМР новим.

Примітка Як первинний оператор DELETE, так і рівносильний йому оператор

присвоювання записані на мові Tutorial D, який широко використовується в даній книзі

Природно, що операції INSERT і UPDATE також по суті є просто скороченою формою запису відповідних реляційних операцій привласнення (додаткові відомості наведені в главі 6)

Але от що засмучує: у багатьох публікаціях використовується термін ставлення, коли насправді мається на увазі змінна відносини (А також тоді, коли мається на увазі саме ставлення, тобто значення відносини) А це, як показує практика,

призводить до плутанини Тому надалі ми будемо чітко розрізняти змінні відносини і самі відносини Наслідуючи приклад публікації [33], для змінної відносини (relation variable) будемо використовувати термін змінна відносини (Скорочений англійський варіант – relvar), і тільки цей термін, у всіх випадках, коли мова буде йти не про ставлення, а про змінну отношенія3 Зверніть увагу на те, що з цього моменту неуточнений термін ставлення буде застосовуватися саме для опису значення відносини (за таким же принципом, як, наприклад, неуточнений термін ціле число застосовується виключно для опису целочисленного значення), хоча час від часу ми будемо також використовувати уточнений термін значення відношення, щоб

підкреслити його відмінність від змінної відносини

Перш ніж перейти до подальшого викладу, слід попередити читача, що термін змінна відносини (Relvar) не є загальноприйнятим, хоча повинен бути таким Ми дійсно вважаємо, що дуже важливо розрізняти самі відносини (тобто значення відносин) і змінні відносини як такі (Автор має визнати, що така вимога не враховувалося в попередніх виданнях цієї книги, як і в іншій літературі по базах даних Мало того, до цих пір більшість фахівців у цій

області ігнорують істотні відмінності між відносинами і змінними відносини) Особливу увагу слід звернути на те, що обмеження цілісності та операції оновлення, які розглядаються в главах 6 і 9, відповідно до їх визначенням, повинні, безумовно, застосовуватися до змінних відносини, а не до відносин

Джерело: Дейт К Дж, Введення в системи баз даних, 8-е видання: Пер з англ – М: Видавничий дім «Вільямс», 2005 – 1328 с: Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*