Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD-КН1.doc
Скачиваний:
18
Добавлен:
27.04.2019
Размер:
7.07 Mб
Скачать

2. Моделювання даних. Три видатні моделі даних

2.1. Поняття про моделі даних

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

Опис об‘єктів і зв‘язків між ними спирається на модель даних. Перші бази даних базувалися на ієрархічній та мережній моделях . Ієрархічна БД складається з упорядкованого набору дерев, а відношення між даними визначаються як "потомок-предок". Мережна БД є розширенням ієрархічної, коли потомок може мати будь-яку кількість предків. Складність реалізації цих БД полягає в тому, що вони використовують систему внутрішніх фізичних вказівок для зв‘язку записів між собою. При цьому процес вставки, редагування, вилучення записів вимагає оновлення значень вказівок, що потребує глибокого проникнення у структуру БД і програмування на системному рівні . В сучасних інформаційних системах використовувана ,так звана, реляційна модель даних. Реляційна модель базується на теоретико – множинному понятті відношення, яке відображається у вигляді таблиці, елементами якої є дані про характеристики об‘єктів.

Модель даних визначається трьома компонентами:

  • допустимою організацією даних,

  • обмеженням цілісності даних,

  • множиною операцій, допустимих над об’єктами моделі даних.

2.2. Реляційна модель даних

2.2.1 Теоретичні основи реляційної бд.

Концепцію реляційної моделі даних було запропоновано Е.Ф.Коддом у 1970 році. Він запропонував застосовувати до відношень систему операцій, дозволяючу отримувати одні відношення з інших, що дозволило розділити інформацію на інформацію, яка зберігається і яка обчислюється. До числа таких операцій відносять операції над множностями (об’єднання, перетинання, різниця, декартів множник, ділення), реляційні операції проекції, з’єднання, вибору.

Мови для виконання операцій над відношеннями поділяють на мови реляційної алгебри (процедурні мови програмування) і мови реляційних числень (непроцедурні мови програмування).

Відношення реляційної БД у залежності від змісту бувають об’єктні і зв’язні. Об’єктні відношення містять дані про об’єкти (табл. 2.1.). Один із атрибутів об’єктного відношення ідентифікує окремий об’єкт. Він називається ключем відношення ідентифікує окремий об’єкт. У нашому прикладі ключем є атрибут “ Прізвище І.П.” .

Таблиця 2.1. СПІВРОБІТНИК

Прізвище І.П.

Дата

народження

Відділ

Посада

Коба В.І.

12.02.1965

180

економіст

Сверчков І.А.

13.01.1961

210

ведучий інженер

Самойлов С.П.

01.02.1958

305

зав. відділом

Коркін А.Г.

15.12.1960

305

головний спеціаліст

Ключ може включати декілька атрибутів (складний ключ). Основним обмеженням реляційної моделі даних є відсутність рядків в об’єктному відношенні з однаковими ключами.

Зв’язне відношення зберігає ключі декількох об’єктних відношень. Наприклад, зв’язне відношення ВИКОНУЄ (Співробітник, тема) означає, що співробітник виконує визначену тему. Ключі у зв’язних відношеннях є первинними ключами інших відношень. Їх називають зовнішніми. На них накладаються обмеження посилальної цілісності, тобто кожному зовнішньому ключеві повинен відповідати рядок об’єктного відношення. В противному разі зовнішній ключ посилається на об’єкт, про який нічого не відомо. Реляційна модель дозволяє встановлювати однозначні відношення між об‘єктами за допомогою таблиць. У одній таблиці зберігаються дані про об‘єкти одного класу предметної області. Кажуть, що кожна таблиця відповідає сутності з предметної області. Рядок таблиці (запис) відповідає одному об‘єкту, або інакше, екземпляру сутності, стовпчики (поля, атрибути) являються характеристиками об‘єкту .

В наш час СКБД на основі реляційної моделі є промисловим стандартом.

Ми вже говорили, що в основі реляційної моделі лежить математичне поняття теоретико-множинного відношення.

Відношенням називається деяка підмножина декартового добутку одного чи декількох доменів. Домен – множина значень будь-якої характеристики об‘єкту. Декартовий добуток доменів D1,D2,….,Dk позначається як D1xD2x…xDk.

Елементи відношення називають кортежами. Тоді відношенням будемо називати множину всіх кортежів (v1і,v2і,…vkі) довжини k, таких, що

v1і D1 , v2і D2...vkiDk ,

де - і - порядковий номер кортежу, k - кількість компонентів кортежу.

Про кожне відношення, яке є підмножиною декартового добутку D1xD2xD…Dk, можно сказати, що воно має артність k.

Декартів добуток доменів вирішив задачу об‘єднання даних різних типів у одну множину. В реляційній БД відношенню відповідає таблиця, очевидно, що кортежу відповідає рядок таблиці.

Розглянемо на прикладі , що таке домен і що являє собою декартів добуток доменів з множини якого нам пропонують вибирати дані для опису об‘єкту. Візьмемо простий приклад відношення – “Екзаменаційна відомість”. В екземенаційній відомості маємо зберігати дані про студентів, що здавали екзамен з дисципліни “Організація баз даних” та їх оцінки. Домен, що характеризує прізвище студента в загальному випадку може бути будь-яким словом заданої довжини, припустимо, 20 символів, написаним кирилицею. Тобто, очевидно, що домен задається типом даних, кількістю символів та обмеженнями, в даному випадку на алфавіт. Але такий домен буде надто великим. Ми можемо скоротити його до списку прізвищ студентів даної групи. Ще зменшимо його для спрощення приклада - будемо вважати, що основна маса студентів вже здала іспит і залишилося всього 3 студента “Іващенко”, “Петренко” та “Коляда”. Другий домен можна обмежити оцінками від 2 до 5. Тоді декартів добуток визначених доменів

матиме вигляд:

Табл. 2.2. Декартів добуток доменів Студент та Оцінка

Прізвище

Оцінка

Іващенко

2

Петренко

2

Коляда

2

Іващенко

3

Петренко

3

Коляда

3

Іващенко

4

Петренко

4

Коляда

4

Іващенко

5

Петренко

5

Коляда

5

Реальне відношення є всього тільки підмножиною декартового добутку, тобто, Іващенко отримав оцінку “4”, Петренко та Коляда по трійці, загалом маємо відношення:

Прізвище

Оцінка

Іващенко

4

Петренко

3

Коляда

3

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

Перелік назв атрибутів відношення називається схемою відношення.

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

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

  2. Зв’язок між наборами об’єктів Е1,Е2,…Ек представляється відношенням, схема якого складається з ключових атрибутів кожного з цих наборів. Якщо е1,е2,…ек – кортеж, то жоден з його компонентів не повторює інший і кожен з них відповідає ключовому атрибуту з об’єктів Е1,Е2,…Ек.

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

В реальному світі існує багато характеристик об‘єктів, які можна використовувати в якості ключів. Наприклад, ідентифікаційний код громадянина, номер паспорта; у базі даних студентів це може бути номер залікової книжки студента та інше. Ключ використовують для того,щоб вказати на зв‘язок між даними в різних відношеннях. Наприклад, для того, щоб створити відношення “Успішність”, досить, замість прізвища студента та їнших його атрибутів, вказати номер залікової книжки і буде ясно кому присвячений відповідний кортеж (рядок з оцінками). Цей приклад ілюструє відношення першого типу.

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

Приклад: Нехай існує задача створення реляційної бази даних навчальних дисциплін, що викладають на кафедрі інформаційних систем з реєструванням кількості лекційних годин, лабораторних занять та призвищами викладачів, які можуть викладати відповідний матеріал. Відношення: Дисципліна (Атрибути: назва, лекцій, лаб. Занять, курсових, іспитів, заліків, код викладача, курс, код спеціальності); Спеціальність (Атрибути: код спеціальності, назва спеціальності, паспорт спеціальності), Курси (Атрибути: номер курсу, код спеціальності, кількість студентів, форма навчання), Викладачі (Атрибути: код викладача, П.І.П., посада, стаж, освіта). Фрагмент реляційної бази даних кафедри наведений на рисунку 2.1.

Назва

Лекцій

Лаб. Занять

Код викла-дача

Курс

Шифр спеціальності

Код викла-дача

П.І.П.

Посада

Стаж

Наукове звання

МООП

36

36

001

2

6.080400

001

Іванов І.І.

Доц.

3

К.т.н.

Бази даних

36

36

002

2

6.080400

002

Гарбузенко

Проф.

15

Проф.

Д.т.н.

Моделю-вання систем

54

54

002

4

6.080400

Дисципліни Викладачі

Спеціальності Курси

Шифр спеціальності

Назва спеціальності

Паспорт спеціальності

Номер курсу

Шифр спеціальності

Кількість студентів

Форма навчання

6.080400

Інформаційні управляючі системи та технології

1

6.080400

30

Ден.

2

6.080400

29

Ден.

3

6.080400

28

Ден.

4

6.080400

28

Ден.

Рис. 2.1. Приклад реляційної бази даних кафедри

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]