Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Будь-який фрагмент предметної області може бути представлений як множина сутностей, між якими існує певна множина зв'язків.






ER-діаграма предметної області представляється множиною сутностей, атрибутів та зв’язків. Елементи кожної з цих множин представляються вузлами графа для яких використовуються спеціальні позначення:

- Множина сутностей представляється прямокутниками;

- Атрибути представляються овалами.

- Зв’язки представляються ромбами.

На рис. 2.1 представлена ER-діаграма, яка зображає базу даних про сутності працівників у відділів і на посаді.

 

 

Рисунок 2.1Діаграма “сутність-зв’язок” для бази даних працівників

Структура реляційних даних. У реляційній моделі відношення використовуються для зберігання інформації про об'єкти, представлені в базі даних. Відношення має вид таблиці. Атрибутам сутності відповідають стовпці таблиці, які називають полями, Інформацію про кожний об’єкт сутності записують в окремому рядку таблиці, який в реляційній базі даних називають записами. В окремій клітині таблиці міститься один параметр одного об’єкту. В табл. 2.1 наведено альтернативні варіанти термінів в реляційній моделі

Таблиця 2.1 Альтернативні варіанти термінів в реляційній моделі

Офіційні терміни Варіант 1 Варіант 2
Відношення Таблиця Файл
Кортеж Рядок Запис
Атрибут Стовпець Поле

 

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

Завдяки домену користувач визначає діапазон значень, які можуть отримувати атрибути, що дозволяє уникнути семантично некоректних операцій. Наприклад, некоректно порівнювати назву вулиці з номером телефону, якщо для обох цих атрибутів визначеннями доменів є символьні рядки.

Степінь таблиці визначається кількістю атрибутів, які вона містить. Таблиця з одним атрибутом має степінь 1 і називається унарною. Таблиця з двома атрибутами називається бінарною.

Кількість записів в таблиці називається кардинальністю таблиці. Ця характеристика міняється при кожному додаванні або видаленні записів.

Типи зв’язків. Набір зв'язків (relationship set) - це відношення між n (причому n не менше 2) сутностями.

У випадку n=2, (зв'язок об'єднує дві сутності,) він називається бінарним. Доведено, що n-арний набір зв'язків (n> 2) завжди можна замінити множиною бінарних, проте перші краще відображають семантику предметної області.

Кількість сутностей, які можна асоціювати через набір зв'язків з іншим сутностями, називають ступінню зв'язку. Є три типи зв’язків:

– один до багатьох;

– багато до багатьох;

– один до одного.

Найпоширенішим є зв’язок один до багатьох.

Зв’язок “один до одного” Це означає, що в такому зв'язку запису з однієї таблиці завжди відповідає не більше одного запису з іншої. У прикладі це зв'язок " керує", оскільки у кожній групі може бути лише один староста, а староста може керувати лише однією групою. Це показано на рис. 2.2 Оскільки степінь зв'язку для кожної таблиці дорівнює 1, то вони з'єднуються однією лінією.

 

Рисунок 2.2Графічний зв’язок “один-до-одного”

 

Важливою характеристикою зв'язку є клас належності таблиць, які входять до зв’язку. Оскільки у кожній групі обов'язково повинен бути староста, то кожній таблиці " ГРУПА" відповідає таблиця " СТУДЕНТ". Але, не кожний студент є старостою групи, відповідно у даному зв'язку не кожному запису таблиці " СТУДЕНТ" відповідає таблиця " ГРУПА ".

Тому таблиця " СТУДЕНТ" має обов'язковий клас належності (1, 1). Цей факт вказує кількість можливих входжень записів таблиці " СТУДЕНТ" у зв'язок (рис. 2.3а). Таблиця " ГРУПА" має необов'язковий клас належності (0, 1) (рис. 2.3б). Позначення класу належності бінарних зв'язків степені 1 наступне:

 

 

Рисунок 2.3Приклад позначення бінарних зв’язків степені 1

 

Зв’язок “один до одного” створюють з використанням зовнішнього ключа. Але зовнішній ключ має специфічну властивість. Його значення не повинно повторюватися. Існує два способи гарантувати зазначену властивість зовнішнього ключа:

– Вважати, що первинний ключ є зовнішнім ключем, бо первинний ключ гарантує неповторюваність.

– Створити для зовнішнього ключа додаткове поле і зробити його індексованим без повторень. Індексовані поля – це ті, за значенням яких СУБД шукає записи в таблиці.

Індекс – це відсортована послідовність значень одного або кількох полів.

В зв’язку " один до багатьох ” зовнішні ключі створювалися з боку багато. Для зв’язку “один до одного” це не має значення.

Розглянемо зв’язок " викладач є куратором" і припустимо, що зовнішній ключ міститься в таблиці " ГРУПА". Якщо зовнішній ключ є первинним, то значення з поля Код_Групи має бути в полі Паспорт таблиці Викладачі, що суперечить логіці. Тому зовнішній ключ доцільно розміщувати в додатковому полі.

Відповідно, для зовнішнього ключа, в одній з таблиць треба створити додаткове поле. Нехай це буде таблиця " ГРУПА", а поле називається " куратор". Воно повинно бути індексованим і неповторюваним.

Зв’язок " один до багатьох(1: n). Запису з однієї таблиці може відповідати будь-яка кількість записів з іншої. Таким є зв'язок Група-Студент. У кожній групі може вчитися довільна кількість студентів, але студент може вчитися лише в одній групі. Графічно степінь зв'язку n відображається " деревоподібною” лінією, як це зроблено на рис. 2.4.

 

 

Рисунок 2.4Графічний зв’язок “один-до-багатьох”

 

Даний рисунок ілюструє, що між двома таблицями може бути визначено декілька наборів зв'язків.

Тут також необхідно враховувати клас належності таблиць. Кожний студент повинен вчитися у якійсь групі, але не обов’язково кожна група (наприклад, щойно сформована) повинна включати хоча б одного студента. Тому таблиця " ГРУПА" має обов'язковий клас належності (0, а таблиця " СТУДЕНТ" необов'язковий класи належності. Степінь зв’язку бінарних зв'язків степені n будемо позначати наступним чином (рис. 2.5):

 

 

Рисунок 2.5Приклад позначення бінарних зв’язків степені n (a)-(0, N), б) (1, N))

 

Для зв’язку “Студент вчиться в групі” в таблицю СТУДЕНТИ додано поле Код_групи. Воно створюється в таблиці “СТУДЕНТИ”, бо студент вчиться в одному класі. Воно не створюється в таблиці " ГРУПА", бо в групі вчиться багато студентів і в ній треба було б створювати поля для кожного студента.

Оскільки ключовим полем таблиці " ГРУПА" є Код_групи, то саме його треба вводити для зв’язку в таблицю “СТУДЕНТИ”.

Поля, що містять значення ключів інших таблиць, називаються зовнішніми ключами. Поле Код_групи є зовнішнім ключем таблиці “СТУДЕНТИ”. Зовнішній ключ посилається на таблицю, значення ключа якої він містить. Так зовнішній ключ Код_групи (“СТУДЕНТИ”) посилається на таблицю " ГРУПА".

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

Правило моделювання зв’язку " один до багатьох” у реляційній базі даних: щоб у реляційній базі даних створити зв’язок " один до багатьох” (рис. 2.6), кожному об’єкту А відповідає багато об’єктів В, але кожному об’єкту В – лише один об’єкт А. У таблиці В потрібно створити зовнішній ключ, який посилається на таблицю А.

 

 

Рисунок 2.6 Зв’язок " один до багатьох”

 

Зв’язок багато до багатьох (n: n). У цьому випадку кожна з таблиць може бути представлена будь-якою кількістю екземплярів. Нехай на підприємстві для виконання кожного контракту створюється робоча група, у яку входять співробітники різних відділів. Оскільки кожний співробітник може входити в кілька (у тому числі і в жодну) робочих груп, а кожна група повинна включати не менше одного співробітника, то зв'язок між сутностями СПІВРОБІТНИК і РОБОЧА_ГРУПА має степінь n: n (рис. 2.7).

 

 

Рисунок 2.7Приклад графічної побудови зв’язку ”багато -до-багатьох”

 

Побудова зв’язку " викладач викладає в групі” Тут зовнішній ключ не можна створити ні в одній таблиці. Зв’язок ”багато -до-багатьох” моделюють за допомогою додаткової таблиці, де і створюють зовнішні ключі.

Щоб створити в реляційній базі даних зв’язок ”багато -до-багатьох” між таблицями А і В, потрібно створити таблицю С, а в ній два зовнішні ключі, що посилаються на таблицю А і В (рис. 2.8).

Рисунок 2.8 Зв’язок ”багато -до-багатьох”

Для моделювання зв’язку " викладач викладає в групі” Створено таблицю ВИКЛАДАННЯ, з двома полями Викладач і Група. Поле Викладач є зовнішнім ключем для таблиці ВИКЛАДАЧІ, а поле Група для таблиці ГРУПА.

У таблиці ВИКЛАДАННЯ варто створити первинний ключ. Він повинен мати 2 поля. Це буде гарантією, що не буде 2 однакових записів.

Правило моделювання зв’язку ”багато -до-багатьох” у реляційній базі даних. Щоб у реляційній базі даних створити зв’язок ”багато -до-багатьох” між таблицями А і В, необхідно створити допоміжну таблицю С і приєднати до неї таблиці А і В зв’язками " один до багатьох”.

Реляційні ключі. Атрибут, значення якого не може повторюватися, називається ключовим, або ключем. Оскільки в таблиці не повинно бути однакових записів, то має бути унікальна ідентифікація кожного запису таблиці по значеннях одного або декількох полів Ці поля називаються ключовими.

Ключові поля, які однозначно ідентифікують записи називаються потенційними ключами. Таблиця може мати декілька потенційних ключів.

Потенційний ключ, який вибраний для унікальної ідентифікації записів всередині таблиці називається первинним ключем.

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

Оскільки таблиця не містить записів-дублікатів, завжди можна унікальним чином ідентифікувати кожний її рядок. Це означає, що відношення завжди має первинний ключ.

Якщо ключ складається з декількох полів, то він називається складеним ключем. Наприклад, поле прізвище може визначати відразу декілька осіб і не завжди може бути унікальним ключем. Тому додається поле ім’я і т. д.

В кожній таблиці створюється поле, яке використовується в ролі первинного ключа. Це поле може мати атрибут AUTO_INCREMENT і використовуватися для генерації унікального ідентифікатора для нових рядків.

Первинний ключ – це потенційний ключ, вибраний для ідентифікації записів. Кожна таблиця обов'язково повинна мати первинний ключ. Зовнішній ключ – це поле або множина полів одної таблиці, значення яких повинні належати множині значень первинного ключа деякої іншої таблиці.

Цілісність реляційної бази даних. Блокування введення даних, що не відповідають схемі бази або деяким іншим умовам, називається цілісністю.

Під цілісністю даних розуміють їх відповідність схемі баз даних, а також іншим правилам і умовам, що гарантують несуперечливість даних та їх узгодженість з предметною областю.

Зовнішній ключ зв’язаної таблиці не може містити значень, яких не містить ключ головної таблиці. Обмежуючи діапазон значень полів, гарантується цілісність даних.Порожнє значення вказує, що значення атрибуту є невідоме або не існує для цього запису. Порожнє значення позначається NULL. Це спосіб обробки неповних або незаданих даних. Правила цілісності, які є обмеженнями для всіх допустимих станів бази х.

Обмеження цілісності сутності. Жодний атрибут первинного ключа не може містити NULL, бо первинний ключ – це унікальна ідентифікація запису.

Обмеження цілісності за посиланням. Це обмеження цілісності стосується зовнішніх ключів. Якщо у таблиці існує зовнішній ключ, то значення зовнішнього ключа повинне або відповідати значенню первинного ключа зв’язаної таблиці, або зовнішній ключ повинен складатися із NULL.

Користувачі можуть вказувати додаткові обмеження на дані. В одному відділ може працювати задане число співробітників.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.