- •Вступ до баз даних. Загальна характеристика основних понять
- •1.1. Розвиток основних понять представлення даних
- •Лекція 6
- •Друга стадія концептуального проектування бд. (Моделі даних субд. Представлення концептуальної моделі засобами моделі даних субд)
- •6.1. Представлення концептуальній моделі засобами моделі даних субд
- •6.2 Типові моделі даних субд і представлення концептуальної моделі
- •6.2.1. Мережева модель даних
- •6.2.2. Ієрархічна модель даних
- •6.2.3. Реляційна модель даних
- •6.2.4. Багатовимірна модель даних
- •6.3. Засоби автоматизованого проектування концептуальної моделі
- •Лекція 6
- •Друга стадія концептуального проектування бд. (Моделі даних субд. Представлення концептуальної моделі засобами моделі даних субд)
- •6.1. Представлення концептуальній моделі засобами моделі даних субд
- •6.2 Типові моделі даних субд і представлення концептуальної моделі
- •6.2.1. Мережева модель даних
- •6.2.2. Ієрархічна модель даних
- •6.2.3. Реляційна модель даних
- •6.2.4. Багатовимірна модель даних
- •6.3. Засоби автоматизованого проектування концептуальної моделі
- •Лекція 7
- •Формалізація реляційної моделі
- •7.1. Формалізований опис відношень і схеми відношень
- •7.2. Маніпулювання даними в реляційній моделі
- •7.3. Операції реляційної алгебри
- •Лекція 8
- •Використання формального апарату для оптимізації схем відношень
- •8.1. Проблема вибору раціональних схем відношень
- •8.2. Функціональні залежності (залежності між атрибутами відношення)
- •8.3. Декомпозиція схеми відношення
- •8.4 .Вибір раціонального набору схем відношень шляхом нормалізації
- •8.5. Приклад нормалізації до 3нф
- •8.6. Цілісна частина реляційної моделі. Реалізація умови цілісності даних в сучасних субд
- •Лекція 9
- •Фізичні моделі даних (внутрішній рівень)
- •9.1. Структура пам'яті еом
- •9.2. Представлення екземпляра логічного запису
- •9.3. Організація обміну між оперативною і зовнішньою пам'яттю
- •9.4. Структури зберігання даних у зовнішній пам'яті еом
- •9.4.1. Послідовне розміщення фізичних записів
- •Пошук запису із заданим значенням ключа
- •9.4.2. Розміщення фізичних записів у вигляді спискової структури
- •Пошук запису із заданим значенням ключа
- •9.4.3. Використання індексів (індексування)
- •Пошук і читання запису із заданим значенням ключа
- •Модифікація (коректування) запису
- •Видалення запису
- •Додавання запису
- •9.4.5. Розміщення записів з використанням хешування
- •Пошук запису із заданим значенням ключа і читання
- •Модифікації запису
- •Видалення запису
- •Додавання запису
- •9.4.6. Комбіновані структури зберігання
- •Лекція 10
- •Структура сучасної субд на прикладі Microsoft sql Server 2008
- •10.1 Загальна структура субд
- •10.2. Архітектура бази даних. Логічний рівень
- •Тип даних hierarchyid
- •Просторові типи даних
- •Індекси
- •Представлення
- •Складки
- •Обмеження
- •Правила
- •Значення за замовчуванням
- •10.3. Архітектура бази даних. Фізичний рівень
- •Файли і файлові групи
- •Сторінки і екстенти
- •Сторінки файлів даних
- •Організація таблиць та індексів
- •Управління роботою з екстентами і вільним місцем
- •Відстежування вільного місця
- •Лекція 11
- •Програмне забезпечення роботи з сучасними базами даних
- •11.1. Основні завдання програмного забезпечення баз даних
- •11.2. Проблеми створення і ведення реляційних баз даних
- •11.3. Поняття мови sql і його основні частини
- •11.3.1. Історія виникнення і стандарти мови sql
- •11.3.2. Переваги мови sql
- •11.3.2. Загальна характеристика sql
- •Термінологія
- •Різновиди sql
- •Лекція 12
- •Основні оператори мови sql. Інтерактивний sql
- •12.1. Загальне уявлення про основні оператори мови sql
- •12.2 Інтерактивний режим роботи з sql (інтерактивна sql)
- •12.3. Використання мови sql для вибору інформації з таблиці
- •12.4. Використання sql для вибору інформації з декількох таблиць
- •12.5. Використання sql для вставки, редагування і видалення даних у таблицях
- •Лекція 13
- •Використання мови sql у прикладних програмах
- •13.1. Програмний (вбудований) sql
- •13.2. Статичний sql
- •13.3. Динамічний sql
- •13.4. Інтерфейси програмування додатків (api). Db‑Library, odbc, oci, jdbc
- •Протокол odbc
- •Протокол jdbc
- •Лекція 14
- •Напрями розвитку баз даних
- •Бібліотека db-Library
- •14.1. Об'єктно-орієнтований підхід до організації баз даних
- •Об'єктно-орієнтоване програмування
- •Об'єктно-орієнтовані бази даних
- •Об'єктно-реляційні субд
- •14.2. Розподілені бази даних
- •14.3. Сховища даних
- •Основи криптології
Лекція 7
Формалізація реляційної моделі
У лекції розглядаються питання, пов'язані з формалізацією найпоширенішої в наш час моделі даних СУБД, – реляційної моделі. Тут розглядається формалізований опис відношень і засобів маніпулювання даними в реляційній моделі.
Мета лекції: розглянути формалізований опис реляційної моделі і операцій маніпулювання даними як основи для використання математичних методів проектування баз даних і основи створення мов запитів до бази даних.
7.1. Формалізований опис відношень і схеми відношень
Як вже наголошувалося в п. 6.2.3, реляційна модель описує представлення даних у вигляді двовимірної таблиці, названої відношенням. Найменуваннями стовпців цієї таблиці слугують імена атрибутів. Розглянемо формалізований опис відповідних понять.
Нехай A1, A2 ..., An імена атрибутів. Кожному імені атрибуту Ai відповідає допустима множина значень, які може приймати атрибут Ai. Ця множина значень Di називається доменом атрибуту Ai, i=1,n. За визначенням, домени є непорожньою скінченною або зчисленною множиною. Уточнимо, що в теорії реляційних баз даних домен розглядається як множина значень одного (причому простого) типу даних. Поняттю домену Di відповідає множина значень, що стоять у стовпці Ai даної таблиці.
Схемою відношення R {A1, A2 ..., An} називається скінченна множина імен атрибутів {A1, A2 ..., An}, причому атрибут Ai набуває значення з множини Di (i=1, 2, ..., n), де n – арність відношення.
Поняттю "Схема відношення" відповідає опис структури двовимірної таблиці (імена стовпців і допустима множина значень).
Нехай
Відношенням r зі схемою R називається скінченна множина відображень {t1, t2 ..., tp} із множини R: {A1, A2 ..., An} у множину
таких, що tk(Ai) Di, k=1,p; i=1,n.
Відображення tk називається k-м кортежем, n – розмірність кортежу.
Поняттю k-го кортежу відповідає множина значень, що стоять в k‑му рядку даної таблиці.
Поняттю відношення r відповідає множина значень, що стоять у всіх рядках даної таблиці.
Ключем відношення r зі схемою R називається мінімальна підмножина K = {Ai1, Ai2 ..., Aim} {A1, A2 ..., An}, де {i1, i2 ...,im} {1, 2, ..., n}, таке, що будь-які два різні кортежі t1, t2 r (t1 t2) не збігаються (не співпадають) по значеннях множини K = {Ai1, Ai2 ..., Aim}.
Можливі випадки, коли відношення r має декілька ключів. Такі ключі називаються потенційними (можливими). Вибраний з них ключ для ідентифікації кортежів називається первинним ключем. Таким чином, досить знати значення кортежу на множині K, щоб однозначно його ідентифікувати. Ключ використовується для представлення зв'язків між відношеннями. З цією метою первинний ключ одного відношення включається в структуру (набір атрибутів) пов'язаного з ним відношення. Для другого відношення відповідний ключ називається зовнішнім ключем.
Сукупність схем відношень, використовуваних для представлення концептуальної моделі, називається схемою реляційної бази даних (реляційною моделлю даних). Поточні значення відповідних відношень називаються реляційною базою даних.
Випишемо реляційну модель даних прикладу з попередньої лекції (див. мал. 6.3). Введемо позначення атрибутів усіх відповідних сутностей. Нехай A1 – код студента, A2 – прізвище, A3 – дата народження, A4 – місце народження, A5 – номер факультету, A6 – назва факультету, A7 – номер спеціальності, A8 – назва спеціальності. Позначимо схему відношення СТУДЕНТ як R1, ФАКУЛЬТЕТ як R2, СПЕЦІАЛЬНІСТЬ як R3, СТУДЕНТ ВЧИТЬСЯ НА ФАКУЛЬТЕТІ як R4, СТУДЕНТ ВЧИТЬСЯ ПО СПЕЦІАЛЬНОСТІ як R5, НА ФАКУЛЬТЕТІ Є СПЕЦІАЛЬНОСТІ як R6.
Тоді реляційна модель відповідного прикладу описується наступною сукупністю схем відношень:
R1(A1, A2, A3, A4)
R2(A5, A6)
R3(A7, A8)
R4(A1, A5)
R5(A1, A7)
R6(A5, A7)
Нагадаємо, що поняття "Схема відношення" відповідає опису структури таблиці. Таблиця із заповненими значеннями (заповненими рядками) відповідає поняттю "відношення". Для цього прикладу відношення, що відповідають вищезгаданим схемам відношень, позначатимемо
r1, r2, r3, r4, r5, r6
Відзначимо наступні властивості відношення:
Відношення має ім'я, яке відрізняється від імен всіх інших відношень.
Кожне значення елементів кортежів представляється простим (атомарним) типом даних.
Кожен атрибут має унікальне ім'я.
Значення всіх атрибутів є атомарними (неподільними). Це випливає з визначення домену як множини значень простого типу даних, тобто серед значень домену не можуть міститися множини.
Порядок розгляду атрибутів у (відношенні) схемі відношення немає значення, оскільки для посилання на значення атрибуту в кортежі відношення завжди використовується ім'я атрибуту.
Порядок розгляду кортежів у відношенні не має значення, оскільки відношення є множиною кортежів, а елементи множини, за визначенням теорії множин, неупорядковані.
