
- •Вступ до баз даних. Загальна характеристика основних понять
- •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. Сховища даних
- •Основи криптології
Об'єктно-орієнтовані бази даних
До цього часу термінологія ще не устоялася, існує багато різних визначень і трактувань. Представляється, що об'єктно-орієнтована база даних (ООБД) – база даних, заснована на принципах об'єктно-орієнтованої технології. До основних описових моментів, пов'язаних з ООБД, в літературі [26] відносять:
об'єкти (у ООБД будь-яка сутність – об'єкт і обробляється як об'єкт); відзначимо, що тут використовується поняття "об'єкт" об'єктно-орієнтованого програмування, яке відрізняється від поняття "об'єкт", що розглядався раніше в наших лекціях.
класи (поняття "Тип даних" реляційної моделі замінюється поняттями "клас" і "підклас");
спадкоємство (класи утворюють ієрархію спадкоємства, запозичуючи властивості один у одного);
атрибути (характеристики об'єкту моделюються його атрибутами);
повідомлення і методи (кожен клас має певну сукупність методів, класи взаємодіють один з одним за допомогою механізму повідомлень);
інкапсуляція (внутрішня структура об'єктів прихована);
ідентифікатори об'єктів – дескриптори.
Схема представлення об'єкту наводиться на мал. 14.1
Мал. 14.1. Схема представлення об'єкту
Система управління об'єктно-орієнтованою базою даних називається об'єктно-орієнтованою СУБД (ООСУБД). Мета ООСУБД – забезпечення постійного зберігання об'єктів, причому на відміну від традиційної СУБД ООСУБД повинна зберігати у складі об'єкту дані і програми.
Оскільки кожен об'єкт даного класу має один і той же набір методів, методи зберігаються лише один раз – як методи класу (дані кожного екземпляра об'єкту зберігаються окремо).
Схема представлення класу об'єктів наводиться на мал. 14.2
Мал. 14.2. Схема представлення класу об'єктів
Використовуючи спадкоємство, всім об'єктам ПІДРОЗДІЛ можна приписати властивість об'єкту-батька (ФАКУЛЬТЕТ) – назва факультету, номер факультету. Схема представлення об'єктів ФАКУЛЬТЕТ і ПІДРОЗДІЛ наводиться на мал. 14.3.
Мал. 14.3. Фрагменти представлення конкретних об'єктів
Порівнюючи об'єктно-орієнтований і реляційний підходи до БД, можна відзначити наступні особливості. У реляційних БД (РБД) реальні об'єкти представляються як структури, що складаються з набору елементарних типів даних. Таке представлення має зрозумілу інтерпретацію – рядок в плоскій таблиці. У тому випадку, коли специфіка предметної області дозволяє працювати з такого роду наближенням реальних об'єктів, РБД відмінно справляються зі своїм завданням. Досить часто реляційна модель і її спосіб опису предметної області у вигляді набору плоских таблиць не відображають внутрішньої структури для багатьох предметних областей, є штучними і стають абсолютно незрозумілими при збільшенні кількості таблиць. Основна причина неспроможності реляційного підходу полягає в дуже сильній абстракції реального об'єкту, що веде до втрати семантики.
На відміну від реляційних баз даних об'єктно-орієнтовані бази даних володіють простим і природним зв'язком з предметною областю, представляючи її структуру і склад, що полегшує проектування і позитивно позначається на розумінні принципів функціонування програм. Так, у складних неоднорідних предметних областях використання ООБД (зокрема, там, де різні об'єкти мають різні методи) повинне дійсно спростити процес проектування і розробки.
На жаль, в ООБД існують свої проблеми. В ООБД відсутня універсальна модель даних, і відповідно, відсутня потужна математична база, як, наприклад, у реляційній моделі. У зв'язку з цим в ООБД немає мови запитів високого рівня, аналогічного SQL, і при доступі до даних використовується мало ефективний навігаційний підхід. ООСУБД відрізняються від реляційних СУБД тим, що програмний інтерфейс створення додатків або дуже слабкий, або взагалі відсутній. Це означає, для написання додатку, що працює з ООБД не існує майстрів і конструкторів (не рахуючи, наприклад, конструктора створення списку полів в об'єкті, який поставляється разом з ООСУБД ObjectStore). Тому розробник створює додаток на одній з алгоритмічних мов.
На нашу думку, істотним обмеженням розвитку об'єктно-орієнтованого підходу до створення баз даних є те, що методи об'єкту містяться усередині об'єкту і нерозривно пов'язані з ним. Це робить, по суті, неможливим створення для об'єктно-орієнтованої бази даних відповідної системи управління базою даних в традиційному розумінні СУБД, функціями якої, зокрема, є реалізація операцій обробки даних. Тому ООСУБД часто є не системою управління базами даних, а бібліотекою програм, за допомогою якої можна побудувати об'єктно-орієнтовану базу даних. Прикладом такої бібліотеки є ООСУБД ObjectStore. У зв'язку з цим, виникає проблема реалізації непередбачених запитів.
Для переходу до об'єктно-орієнтованих БД стандарт об'єктного програмування був доповнений стандартизованими засобами доступу до баз даних (стандарт ODMG 93; Object Database Management Group – група управління об'єктно-орієнтованими базами даних). До теперішнього часу цей стандарт не реалізований. Стан проблеми детально описаний також в роботах [26], [4], [2], [18], [3] і ін. Відзначимо лише, що ООБД використовуються, але доки не стали реальною альтернативою реляційним базам даних.
Об'єктно-орієнтовані можливості з'являються у провідних сучасних СУБД, таких, як, наприклад, Oracle. Робляться спроби внесення змін у стандарти мови SQL з метою його часткової адаптації до ООБД. Так, новий стандарт SQL-3 включає великий розділ, присвячений цьому питанню.