
- •Вступ до баз даних. Загальна характеристика основних понять
- •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
- •Бібліотека db-Library
- •Лекція 14
- •Напрями розвитку баз даних
- •14.1. Об'єктно-орієнтований підхід до організації баз даних
- •Об'єктно-орієнтоване програмування
- •Об'єктно-орієнтовані бази даних
- •Об'єктно-реляційні субд
- •14.2. Розподілені бази даних
- •14.3. Сховища даних
- •Основи криптології
14.1. Об'єктно-орієнтований підхід до організації баз даних
На початку 90-х років XX століття почалися активні спроби по впровадженню об'єктно-орієнтованих технологій в галузь проектування і розробки баз даних. Існувала точка зору про те, що відповідні технології швидко витіснять всі інші, так само як і в багатьох інших програмістських галузях, але нічого подібного не сталося.
Об'єктно-орієнтоване програмування
Розглянемо термін "об'єктно-орієнтоване програмування". Відмітимо, що це термін, прийнятий переважно в російській літературі. У західній літературі [26] під цим розуміється відразу три аспекти:
Об'єктно-орієнтований аналіз – OOA, object-oriented analysis. Об'єктно-орієнтований аналіз – це методологія, при якій вимоги до системи сприймаються з точки зору класів і об'єктів, виявлених у предметній області.
Об'єктно-орієнтоване проектування – OOD, object-oriented design. Об'єктно-орієнтоване проектування – це методологія проектування, що поєднує в собі процес об'єктної декомпозиції і прийоми представлення логічної і фізичної, а також статичної і динамічної моделей проектованої системи.
Об'єктно-орієнтоване програмування – OOP, object-oriented programming. Об'єктно-орієнтоване програмування – це методологія програмування, заснована на представленні програми у вигляді сукупності об'єктів, кожен з яких є екземпляром певного класу, а класи утворюють ієрархію спадкоємства.
Тут і далі по тексту умовимося не відступати від традицій і розуміти під об'єктно-орієнтованим програмуванням (ООП) відразу три вказаних вище аспекти.
Основою об'єктно-орієнтованої технології є так звана об'єктна модель, яка виникає як результат об'єктно-орієнтованої декомпозиції. Вона виділяє основні абстракції предметної області, визначає класи абстракцій і з'ясовує, якими даними (атрибутами) описується кожна абстракція, яку функціональність ці абстракції повинні забезпечувати. На відміну від традиційних технологій програмування об'єктно-орієнтована технологія представляє програму як сукупність класів і об'єктів, що взаємодіють один з одним.
Об'єкт – конкретна матеріалізація абстракції; сутність з добре визначеними кордонами, в якому інкапсульовані стан і поведінка.
Об'єкт ООП – інкапсульована структура, що має атрибути і методи.
Термін "інкапсульована структура" означає, що об'єкт є самодостатнім, програми, зовнішні по відношенню до об'єкту, нічого "не знають" про його структуру і таке "знання" їм не потрібне. "Зовнішній" вигляд об'єкту називається його інтерфейсом.
У такому розумінні об'єкт – це чорний ящик, нам невідомо, що у нього усередині, ми лише можемо викликати його методи і лише через них взаємодіяти з ним. Окрім цього, об'єкти можуть належати ієрархії "від загального до часткового", яка реалізується шляхом спадкоємства. Інкапсульовані стани об'єкту можуть бути як простими типами даних, так і іншими об'єктами, або навіть масивами об'єктів. Кожен об'єкт містить певну сукупність методів, класи взаємодіють один з одним за допомогою механізму повідомлень. Об'єкти ідентифікуються за допомогою спеціальних покажчиків – дескрипторів. Методи об'єктів ООП являють собою послідовності інструкцій, що виконуються об'єктом. Наприклад, в об'єкту може бути метод, що відображує даний об'єкт, що створює цей об'єкт і що змінює його.
Предметна область моделюється як безліч класів взаємодіючих об'єктів. Об'єкт характеризується набором властивостей, які є як би його пасивними характеристиками, і набором методів роботи з цим об'єктом. Працювати з об'єктом можна лише з використанням його методів. Атрибути об'єкту можуть приймати безліч допустимих значень, набір конкретних значень атрибутів визначає стан об'єкту. Використовуючи методи роботи з об'єктом можна змінювати значення його атрибутів і тим самим як би змінити стан самого об'єкту. Безліч об'єктів з одним і тим же набором атрибутів і методів утворює клас об'єктів. Клас, об'єкти якого можуть служити значеннями атрибуту об'єктів іншого класу, називається доменом цього атрибуту.
До основних ідей об'єктно-орієнтованої технології, як правило, відносять [25]: абстрагування, інкапсуляцію, модульність, ієрархічність, типізацію, поліморфізм, спадкоємство.
Інкапсуляція обмежує зону видимості імені атрибуту межами того об'єкту, в якому воно визначене. Сенс цього атрибуту визначатиметься тим об'єктом, в якому воно інкапсульоване.
Поліморфізм – здатність однієї і тієї ж програмного коду працювати зі всілякими даними. Іншими словами, він допускає можливість в об'єктах різних типів мати методи (процедури або функції) з однаковими іменами. Під час виконання об'єктної програми одні й ті ж методи оперують з різними об'єктами залежно від типу аргументу.
Спадкоємство. Допускається породження нового класу на основі вже існуючого класу, і цей процес називається спадкоємством. У цьому випадку новий клас, названий підкласом існуючого класу, успадковує всі атрибути і методи класу. У підкласі, крім того, можуть бути визначені додаткові атрибути і методи. Розрізняють випадки простого і множинного спадкоємства. У першому випадку підклас може визначатися лише на основі одного класу, в другому випадку – на основі декількох класів. Набір класів утворює ієрархічну структуру.