Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тема 3.1. Реляційна структура даних.
У науковій літературі, присвяченій реляційним базам даних, на означення того, що було названо вище реляцією або таблицею, часто застосовується термін відношення. Кожен із цих термінів має свої переваги й недоліки. Терміном «відношення» у математичній теорії відношень позначається дещо інше поняття і тому тлумачення цього терміну в контексті теорії баз даних є неоднозначним. Недолік терміну «реляція» полягає в його недавньому іншомовному походженні. Слово «таблиця» часто вживається в різних значеннях і має більш прикладний наголос. Тому для теоретичних розглядів будемо вживати термін «реляційне відношення», а в прикладах — «відношення» або «таблиця». Розглянемо приклад. Таблиця розкладу руху потягів чи літаків, умовно кажучи, складається з двох частин: наповнення та опису структури таблиці. Наповнення — це ті номери рейсів потягів чи літаків та час їхнього відправлення, що занесені у відповідні клітинки таблиці й періодично змінюються, а структура таблиці описується заголовками стовпців. Згідно з термінологією баз даних і реляційного підходу, наповнення таблиць називають даними. Інколи буває так, що таблиця розкладу містить лише порожні стовпці. Такий об'єкт фахівець з баз даних міг би назвати схемою. Реляційне відношення у реляційній моделі даних зображується через схему й екземпляр відношення. Схема записується у вигляді або просто якщо зв'язок атрибутів з доменами відомий апріорі. Сукупність схем реляційних відношень називають схемою бази даних, або реляційною схемою. Схема реляційного відношення має такі властивості: ♦ реляційне відношення має ім'я; ♦ імена атрибутів у межах схеми одного реляційного відношення мають бути унікальними; ♦ порядок атрибутів у схемі реляційного відношення не є суттєвим, оскільки звернення до атрибута здійснюється за його іменем, а не за номером. Приклад схеми реляційного відношення: ВИКЛАДАЧ(#Ід, ПІБ. Адреса). Тут ВИКЛАДАЧ - це ім'я реляційного відношення, а #Ід, ПІБ, Адреса - імена його атрибутів. Екземпляр реляційного відношення — це його наповнення. Точніше, екземпляр є множиною кортежів, а кортеж — це множина значень Екземпляр відношення має такі властивості: ♦ порядок кортежів довільний;
♦ кортежі, як елементи множини, мають бути унікальними в межах реляційного відношення. Реляційне відношення може бути зображене у вигляді таблиці. Таблиця — це пойменоване двовимірне зображення відношення; вона складається з одного чи більше пойменованих стовпців і нуля або більше рядків. Назва таблиці відповідає імені реляційного відношення, імена стовпців — іменам атрибутів, а рядки — кортежам. Відповідність термінів, що вживаються під час розгляду реляційних відношень та їхніх табличних зображень, вказана в табл. 3.1.
Поняття ключа У будь-якому реляційному відношенні можна виділити таку множину атрибутів, що набори відповідних їм значень однозначно ідентифікуватимуть кортежі відношення. Це випливає з того, що відношення є різновидом множини, а отже, не може містити кортежів, які повторюються, відтак — уся множина атрибутів реляційного відношення унікально ідентифікує кортежі. Множина атрибутів, що однозначно ідентифікують кортежі реляційного відношення, називається ключем. Принцип роботи зв’язків полягає в зіставленні даних у полях ключів — часто такі поля мають однакові імена в обох таблицях. У більшості випадків поля, що збігаються — це первинний ключ однієї таблиці, який створює унікальний ідентифікатор для кожного запису, і зовнішній ключ іншої таблиці. Ключ називається простим, якщо складається з одного атрибута (#Ід), і складеним — якщо з кількох атрибутів, наприклад (ПІБ, Адреса). Ключ називають надлишковим, якщо певна його підмножина також є ключем. Наприклад, ключ (#Ід, ПІБ, Адреса) є надлишковим тому, що містить атрибут #Ід, який також є ключем. Ключ, що не є надлишковим, називають мінімальним. Іноді надлишковий ключ називають суперключем, а мінімальний — можливим ключем. Реляційне відношення може мати багато можливих ключів, але тільки один із них є первинним.
Первинний ключ має такі властивості: ♦ кожне реляційне відношення має один і лише один первинний ключ; ♦ значення всіх атрибутів первинного ключа не можуть бути невизначеними, оскільки він має унікально ідентифікувати всі кортежі будь-якого екземпляра реляційного відношення; ♦ значення первинного ключа не можуть повторюватися, але допускаються повторення значень частини складеного первинного ключа; ♦ апріорі значення первинного ключа не впливають на порядок кортежів у табличному зображенні реляційного відношення, хоча інколи таблиці впорядковують за ключем; ♦ первинний ключ не впливає на доступ до кортежів, який може бути здійснено за значенням будь-якого атрибута чи набору атрибутів незалежно від того, чи є він первинним ключем. Якщо розглядається певне реляційне відношення, то сукупність атрибутів, що є первинним ключем іншого реляційного відношення, називається зовнішнім (стороннім) ключем. За допомогою зовнішніх ключів у реляційній моделі встановлюються зв'язки між реляційними відношеннями (точніше, між їхніми кортежами). Зовнішні ключі мають такі властивості: ♦ значення зовнішнього ключа завжди посилається на певне значення відповідного первинного ключа, тобто будь-яке значення зовнішнього ключа має бути значенням первинного ключа іншого відношення; ♦ значення зовнішнього ключа, на відміну від значень первинного ключа, можуть бути невизначеними й повторюватися в межах реляційного відношення. Саме завдяки рівності значень, що відповідають цим двом атрибутам, встановлюється зв'язок між кортежами різних реляційних відношень. Типи зв’язків між таблицями Існує три типи зв’язків між таблицями. · Зв’язок «один-до-багатьох» Розглянемо базу даних відстеження замовлень, яка включає таблицю «Клієнти» й таблицю «Замовлення». Клієнт може розмістити будь-яку кількість замовлень. Таким чином, для будь-якого клієнта, представленого в таблиці «Клієнти», в таблиці «Замовлення» може міститися багато замовлень. Отже, взаємозв’язок між таблицями «Клієнти» та «Замовлення» є зв’язком «один-до-багатьох». Щоб представити зв’язок «один-до-багатьох» у структурі власної бази даних, візьміть первинний ключ на стороні зв’язку «один» і вставте його як додаткове поле або поля в таблицю на стороні зв’язку «багато». У цьому разі, наприклад, нове поле — поле ідентифікатора з таблиці «Клієнти» — потрібно додати до таблиці «Замовлення» та назвати його «Ідентифікатор клієнта». Потім Access зможе використати номер із поля «Ідентифікатор клієнта» в таблиці «Замовлення» для пошуку користувачів, які відповідають певним замовленням. · Зв’язок «багато-до-багатьох» Розглянемо зв’язок між таблицями «Товари» та «Замовлення». В одному замовленні може бути вказано кілька товарів. З іншого боку, один товар може зустрічатися в багатьох замовленнях. Таким чином, кожному запису в таблиці «Замовлення» може відповідати багато записів у таблиці «Товари». Крім того, кожному запису в таблиці «Товари» також може відповідати багато записів у таблиці «Замовлення». Такий тип зв’язку називається зв’язком «багато-до-багатьох», оскільки будь-якому товару може відповідати багато замовлень, а будь-якому замовленню може відповідати багато товарів. Зауважте, що для виявлення наявних зв’язків «багато-до-багатьох» між таблицями важливо розглянути обидва кінці зв’язку.
Для представлення зв’язку «багато-до-багатьох» потрібно створити третю таблицю, яку часто називають розподільною, щоб розділити зв’язок «багато-до-багатьох» на два зв’язки «один-до-багатьох». Первинний ключ із кожної з двох таблиць потрібно вставити в третю таблицю. У результаті в третій таблиці буде записано усі випадки, або екземпляри, зв’язків. Наприклад, таблиці «Замовлення» та «Товари» пов’язані зв’язком «багато-до-багатьох», який визначатиметься через створення двох зв’язків «один-до-багатьох» із таблицею «Відомості про замовлення». В одному замовленні може зустрічатися багато товарів, і кожний товар може зустрічатися в багатьох замовленнях. · Зв’язок «один-до-одного» У зв’язку «один-до-одного» кожному запису в першій таблиці може відповідати лише один запис у другій таблиці, а кожному запису в другій таблиці може відповідати лише один запис у першій таблиці. Цей тип зв’язку не дуже поширений, оскільки зазвичай відомості, пов’язані між собою в такий спосіб, зберігаються в одній таблиці. Зв’язок «один-до-одного» можна використовувати для розділення таблиці з великою кількістю полів, для відокремлення частини таблиці з міркувань безпеки або для зберігання даних, які застосовуються лише до підмножини головної таблиці. У разі визначення такого зв’язку обидві таблиці повинні мати спільні поля. Тема 3.2. Реляційна алгебра До складу реляційної моделі даних, крім структури даних, мають входити операції маніпулювання даними. З усіх таких операцій складається мова запитів. Найбільш відомими мовами запитів у реляційній моделі є реляційна алгебра та реляційне числення. У класичному розумінні алгебра визначається як пара, що складається з основної множини і множини операцій (сигнатури), при цьому аргументи й результат кожної операції належать основній множині. Реляційна алгебра є алгеброю в строгому класичному розумінні її визначення. Елементами основної множини є реляційні відношення. У зв'язку з цим операції алгебри можуть вкладатися одна в одну, тобто аргументом певної операції може бути результат виконання іншої операції. Це дає можливість записувати запити довільного рівня складності у вигляді виразів, що містять вкладені одна в одну операції.
Операції реляційної алгебри Сигнатура реляційної алгебри Кодда складається з восьми операцій. Перш ніж детально розглянути ці операції, введемо поняття сумісності реляційних відношень. Це поняття є необхідним, оскільки деякі операції (а саме: теоретико-множинні операції об'єднання, перетину та різниці) визначені лише для сумісних реляційних відношень. Реляційні відношення. називаються сумісними, якщо: 1) у них однакова кількість атрибутів, тобто k = п; 2) можна встановити взаємно однозначну відповідність між доменами атрибутів першої та другої реляцій, тобто існує таке об’єктивне відображення що тобто домени зіставлених атрибутів однакові. Для зручності вважатимемо, що зіставлені атрибути сумісних відношень повинні мати однакові імена. Дамо також означення кількох властивостей бінарних операцій: ♦ операція ф є комутативною, якщо і ♦ операція ф є асоціативною, якщо ♦ операція ф є дистрибутивною з операцією 0, якщо Даючи означення бінарним операціям реляційної алгебри, ми будемо вказувати, які з цих властивостей вони мають. Оскільки різні відношення можуть містити атрибути з однаковими іменами, то під час виконання бінарних операцій у кінцевому відношенні можуть повторюватися імена атрибутів. Для забезпечення унікальності імен атрибутів вони уточнюються іменами відповідних відношень згідно з таким синтаксисом: <ім'я відношенням<ім'я атрибутам Під час розгляду операцій реляційної алгебри атрибути позначатимемо великими літерами з початку латинського алфавіту: А, В,..., а множини атрибутів — великими літерами з середини латинського алфавіту: L, М,.... Отже, розглянемо операції реляційної алгебри. Об'єднання Нехай L — певна множина атрибутів. Об'єднанням сумісних реляційних відношень R1 і R2 зі схемами R1(L) і R2(L) (позначається як R1 ﮞ R2) називається таке реляційне відношення R зі схемою R(L), що містить кортежі обох поєднуваних відношень, але без повторень: Операція комутативна, асоціативна й дистрибутивна щодо перетину. Приклад __________________________________________________ Перетин Припустимо, що L — певна множина атрибутів. Перетином сумісних реляційних відношень R1 і R2 зі схемами R1(L) і R2(L) (позначається як R1∩ R2) називається таке реляційне відношення R зі схемою R(L), яке містить кортежі, що входять до складу обох операндів: Операція комутативна, асоціативна й дистрибутивна щодо об'єднання. Приклад __________________________________________________ Різниця Нехай L — певна множина атрибутів. Різницею сумісних реляційних відношень R1(L) і R2(L) зі схемами R1(L) і R2(L) (позначається як R1 - R2) називається реляційне відношення R зі схемою R(L), що містить ті кортежі з першого операнда R1 яких немає у другому операнді R2: Операція не комутативна, не асоціативна й не дистрибутивна з іншими операціями.
Приклад _________________________________________________ Зауважимо, що Зазначимо деякі особливості теоретико-множинних операцій. ♦ У реляційній алгебрі, на відміну від алгебри множин, не використовується операція доповнення, оскільки певні домени можуть бути нескінченними або містити дуже багато значень і в результаті операції доповнення можна отримати або нескінченне відношення, або відношення з дуже великою кількістю кортежів. ♦ Вимога сумісності операндів зумовлена тим, що без цього обмеження результатом теоретико-множинних операцій могли б бути різноструктурні кортежі, а не реляційні відношення. Розглянемо операції, які визначені лише в реляційній алгебрі. Проекція Проекцією реляційного відношення R зі схемою R(A{,..., А^) за атрибутами Ац,..., що позначається Р.[Ац,..., Аіп], називається таке відношення S зі схемою S(Aib..., Аіп), кортежі якого отримані з кортежів відношення R шляхом видалення значень, що не належать атрибутам, за якими виконується проекція. При цьому в кінцевому відношенні повторні екземпляри кортежів видаляються. Якщо S кортежем відношення R, то записом r[L], де L — підмножина атрибутів відношення R, позначимо множину тих елементів кортежу г, що відповідають значенням атрибутів з L. Тоді наведене вище визначення проекції може бути записане у такий спосіб: З теоретичної точки зору операція проекції не є «чистою», оскільки список атрибутів не належить основній множині (тобто не є реляційним відношенням), а тому не може бути операндом. За «чистого» теоретичного підходу операцію проекції слід вважати бінарною, а на практиці вона розглядається як унарна з параметрами. Такі ж самі проблеми мають місце в усіх операціях, де операндами є списки атрибутів. Приклад _________________________________________________ Обмеження (селекція) Спочатку дамо означення 9-порівнянності атрибутів. Нехай 0 є одним з операторів порівняння: =, Ф, <, <, >, > (набір операторів можна розширити). Атрибути А і В одного й того самого чи різних відношень називаються 0 -порівнянними, якщо для будь-яких значень а є Aib є В результат операції а 0 Ь є визначеним (істинним або хибним). Інакше кажучи, ця операція визначена на відповідних атрибутах. Набори атрибутів L = (Ah..., А^) та М= (В\,..., Вп) називаються 0-порівнянни-ми, якщо k - п і Aj 0-порівняннез Bj (і = 1, 2,..., k). Тепер дамо означення операції обмеження. Нехай L і М — набори 0-порівнянних атрибутів схеми відношення R. Тоді обмеженням реляційного відношення R за умовою L 9 М, що позначається R[L 8 М], називається реляційне відношення, кортежі якого відповідають умові L 0 М: Множина М може складатися як з атрибутів, так і з констант. Приклад __________________________________________________ Декартів добуток Декартовом добутком реляційних відношень R і S зі схемами R(Ah Л2,..., Ап) та S(Bb 52,..., Вт) відповідно, що позначається R x S, називається відношення Q зі схемою Q(Ab А2,..., Ап, В\, В2,..., Вт), яке містить усі можливі з'єднання кортежів відношення R з кортежами відношення S: Операція комутативна й асоціативна. Приклад __________________________________________________ З'єднання Припустимо, що відношення R має схему R(L, М), а відношення S - схему S(N, P). Нехай множини атрибутів М і N — 9-порівнянні. Тоді з'єднанням, або 0-з'єд- нанням, відношень R і S за умовою М 0 iV, що позначається як Д[М 0 N]S, називається відношення Q зі схемою Q(L, М, N, Р), кортежі якого можна отримати з'єднанням тих кортежів відношень R і S, на яких виконується умова М 0 N: Під час з'єднання атрибути, за якими виконується така операція, повторюються в кінцевому реляційному відношеній. Операція комутативна й асоціативна. Іноді операція з'єднання позначається як R й S, де F — умова з'єднання. З'єднання за умовою рівності називається еквіз'єднанням. З'єднання за умовою рівності, коли один з порівнюваних атрибутів (чи група порівнюваних атрибутів) видаляється з кінцевого відношення, називається природним з'єднанням; на його позначення використовується символ «*». Наприклад, якщо задані відношення R(A, В, С, D) і S(C, D, Е), то в результаті виконання операції Q=R* S отримаємо реляційне відношення Q(A, В, С, D, Е), Серед операцій 0-з'єднання виділяють операцію напівз'єднання, за якої з результату видаляються всі атрибути одного з відношень, що з'єднуються. Вона записується як R[M 0 N)S і формально визначається так: Операція напівз'єднання не розширює можливостей реляційної алгебри, оскільки вона виражається через з'єднання і проекцію в такий спосіб: Приклад Ділення Нехай задано відношення зі схемою R(M, N). Образом реляційного відношення R за кортежем t\ є R[M] називається така множина кортежів t2 є R[N], для яких зчеплення (t\, t-i) належить відношенню R. Образ R за кортежем t\ позначається /д(£і) і формально визначається у такий спосіб: Приклад __________________________________________________ Нехай задано відношення R і S зі схемами R(M, N) та S(K, І), для яких проекції R[N] та S[K] є сумісними. Діленням відношення R на відношення S за наборами атрибутів N і К (позначається R[N+K\S) називається операція, результатом якої є відношення Q зі схемою Q(M), що складається з таких кортежів t є R[M], образи IR(t) яких містять усі кортежі проекції S[K], тобто: Можна показати, що операція ділення виражається через інші операції алгебри в такий спосіб: Операція не комутативнай не асоціативна.
|
|||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 588; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.202.167 (0.059 с.) |