- •Поняття інформаційної системи. Поняття інформаційних технологій. Міжнародні інформаційні системи та технології
- •Життєвий цикл інформаційних систем
- •Поняття бази даних (бд). Місце бд в інформаційних системах
- •Розвиток основних понять представлення даних. Приклад щодо нарахування заробітної плати
- •Розвиток основних понять представлення даних. Приклад щодо обліку кадрового складу
- •Системи управління базами даних (субд). Головні поняття. Основні функції субд
- •Різні архітектурні рішення, які використовуються при реалізації багато користувальницьких субд. Централізована архітектура
- •Різні архітектурні рішення, які використовуються при реалізації багато користувальницьких субд. Технологія з мережею та файловим сервером
- •Різні архітектурні рішення, які використовуються при реалізації багато користувальницьких субд. Технологія «клієнт-сервер»
- •Різні архітектурні рішення, які використовуються при реалізації багато користувальницьких субд. Триланкова архітектура «клієнт-сервер»
- •Огляд субд. Настільні субд. Серверні субд. Ms sql Server. Oracle. Серверні бази даних компанії івм
- •Різні уявлення про дані в базах даних
- •Основні етапи проектування бази даних
- •Перша стадія концептуального проектування бази даних. Опис інформаційного представлення предметної області. Er-діаграма
- •Перша стадія концептуального проектування бази даних. Атрибут. Зв’язки. Максимальні кардинальні числа
- •Побудова концептуальної моделі у вигляді er-діаграми. Головні етапи побудови Побудова концептуальної моделі у вигляді er-діаграми Перший етап
- •Другий етап
- •Третій етап
- •Побудова концептуальної моделі у вигляді er-діаграми. Моделювання локальних представлень
- •Побудова концептуальної моделі у вигляді er-діаграми. Об’єднання локальних представлень
- •Побудова концептуальної моделі у вигляді er-діаграми. Обмеження цілісності
- •Друга стадія концептуального проектування бд. Представлення концептуальної моделі засобами моделі даних субд
- •Друга стадія концептуального проектування бд. Типові моделі даних субд і представлення концептуальної моделі. Мережева модель даних
- •Друга стадія концептуального проектування бд. Типові моделі даних субд і представлення концептуальної моделі. Ієрархічна модель даних
- •Друга стадія концептуального проектування бд. Типові моделі даних субд і представлення концептуальної моделі. Реляційна модель даних
- •Друга стадія концептуального проектування бд. Типові моделі даних субд і представлення концептуальної моделі. Багатовимірна модель даних
- •Засоби автоматизованого проектування концептуальної моделі
- •Використання формального апарату для оптимізації схем відношень. Проблема вибору раціональних схем відношень
- •Використання формального апарату для оптимізації схем відношень
- •Функціональні залежності між атрибутами відношень
- •Використання формального апарату для оптимізації схем відношень. Декомпозиція схеми відношення
- •Вибір раціонального набору схеми відношень шляхом нормалізації. Нормальні форми
- •Приклади нормалізації до 3нф
- •Фізичні моделі даних (внутрішній рівень). Структура пам’яті комп’ютера
- •Представлення екземпляра логічного запису
- •Організація обміну між оперативною і зовнішньою пам’яттю
- •Структура зберігання даних у зовнішній пам’яті комп’ютера. Послідовне розміщення фізичних записів
- •Пошук запису із заданим значенням ключа
- •Структура зберігання даних у зовнішній пам’яті комп’ютера. Розміщення фізичних записів у вигляді спискової структури
- •Пошук запису із заданим значенням ключа
- •Структура зберігання даних у зовнішній пам’яті комп’ютера. Використання індексів. В-дерева
- •Пошук і читання запису із заданим значенням ключа
- •Модифікація (коректування) запису
- •Видалення запису
- •Додавання запису
- •Структура зберігання даних у зовнішній пам’яті комп’ютера. Розміщення записів з використанням хешування
- •Пошук запису із заданим значенням ключа і читання
- •Модифікації запису
- •Видалення запису
- •Додавання запису
- •Загальна структура сучасної субд (на прикладі ms sql Server)
- •Архітектура бд. Логічний рівень
- •Тип даних hierarchyid
- •Просторові типи даних
- •Індекси
- •Представлення
- •Складки
- •Обмеження
- •Правила
- •Значення за замовчуванням
- •Архітектура бд. Фізичний рівень
- •Файли і файлові групи
- •Сторінки і екстенти
- •Сторінки файлів даних
- •Організація таблиць та індексів
- •Управління роботою з екстентами і вільним місцем
- •Відстежування вільного місця
- •Програмне забезпечення роботи з сучасними бд. Основні завдання пз бд
- •Програмне забезпечення роботи з сучасними бд. Проблеми створення і ведення реляційних бд
- •Поняття мови sql і його основні частини. Історія виникнення і стандарти мови sql
- •Поняття мови sql і його основні частини. Переваги мови sql. Загальна характеристика sql
- •Напрями розвитку бд. Об’єкто-орієнтований підхід до організації бд
- •Об'єктно-орієнтоване програмування
- •Об'єктно-орієнтовані бази даних
- •Напрями розвитку бд. Об’єктно-реляційні субд
- •Напрями розвитку бд.. Розподілені бд. Сховища даних
- •Сховища даних
Об'єктно-орієнтовані бази даних
До цього часу термінологія ще не устоялася, існує багато різних визначень і трактувань. Представляється, що об'єктно-орієнтована база даних (ООБД) – база даних, заснована на принципах об'єктно-орієнтованої технології. До основних описових моментів, пов'язаних з ООБД, в літературі [26] відносять:
об'єкти (у ООБД будь-яка сутність – об'єкт і обробляється як об'єкт); відзначимо, що тут використовується поняття "об'єкт" об'єктно-орієнтованого програмування, яке відрізняється від поняття "об'єкт", що розглядався раніше в наших лекціях.
класи (поняття "Тип даних" реляційної моделі замінюється поняттями "клас" і "підклас");
спадкоємство (класи утворюють ієрархію спадкоємства, запозичуючи властивості один у одного);
атрибути (характеристики об'єкту моделюються його атрибутами);
повідомлення і методи (кожен клас має певну сукупність методів, класи взаємодіють один з одним за допомогою механізму повідомлень);
інкапсуляція (внутрішня структура об'єктів прихована);
ідентифікатори об'єктів – дескриптори.
Система управління об'єктно-орієнтованою базою даних називається об'єктно-орієнтованою СУБД (ООСУБД). Мета ООСУБД – забезпечення постійного зберігання об'єктів, причому на відміну від традиційної СУБД ООСУБД повинна зберігати у складі об'єкту дані і програми.
Оскільки кожен об'єкт даного класу має один і той же набір методів, методи зберігаються лише один раз – як методи класу (дані кожного екземпляра об'єкту зберігаються окремо).
Використовуючи спадкоємство, всім об'єктам ПІДРОЗДІЛ можна приписати властивість об'єкту-батька (ФАКУЛЬТЕТ) – назва факультету, номер факультету. Схема представлення об'єктів ФАКУЛЬТЕТ і ПІДРОЗДІЛ наводиться на мал. 14.3.
Порівнюючи об'єктно-орієнтований і реляційний підходи до БД, можна відзначити наступні особливості. У реляційних БД (РБД) реальні об'єкти представляються як структури, що складаються з набору елементарних типів даних. Таке представлення має зрозумілу інтерпретацію – рядок в плоскій таблиці. У тому випадку, коли специфіка предметної області дозволяє працювати з такого роду наближенням реальних об'єктів, РБД відмінно справляються зі своїм завданням. Досить часто реляційна модель і її спосіб опису предметної області у вигляді набору плоских таблиць не відображають внутрішньої структури для багатьох предметних областей, є штучними і стають абсолютно незрозумілими при збільшенні кількості таблиць. Основна причина неспроможності реляційного підходу полягає в дуже сильній абстракції реального об'єкту, що веде до втрати семантики.
На відміну від реляційних баз даних об'єктно-орієнтовані бази даних володіють простим і природним зв'язком з предметною областю, представляючи її структуру і склад, що полегшує проектування і позитивно позначається на розумінні принципів функціонування програм. Так, у складних неоднорідних предметних областях використання ООБД (зокрема, там, де різні об'єкти мають різні методи) повинне дійсно спростити процес проектування і розробки.
На жаль, в ООБД існують свої проблеми. В ООБД відсутня універсальна модель даних, і відповідно, відсутня потужна математична база, як, наприклад, у реляційній моделі. У зв'язку з цим в ООБД немає мови запитів високого рівня, аналогічного SQL, і при доступі до даних використовується мало ефективний навігаційний підхід. ООСУБД відрізняються від реляційних СУБД тим, що програмний інтерфейс створення додатків або дуже слабкий, або взагалі відсутній. Це означає, для написання додатку, що працює з ООБД не існує майстрів і конструкторів (не рахуючи, наприклад, конструктора створення списку полів в об'єкті, який поставляється разом з ООСУБД ObjectStore). Тому розробник створює додаток на одній з алгоритмічних мов.
На нашу думку, істотним обмеженням розвитку об'єктно-орієнтованого підходу до створення баз даних є те, що методи об'єкту містяться усередині об'єкту і нерозривно пов'язані з ним. Це робить, по суті, неможливим створення для об'єктно-орієнтованої бази даних відповідної системи управління базою даних в традиційному розумінні СУБД, функціями якої, зокрема, є реалізація операцій обробки даних. Тому ООСУБД часто є не системою управління базами даних, а бібліотекою програм, за допомогою якої можна побудувати об'єктно-орієнтовану базу даних. Прикладом такої бібліотеки є ООСУБД ObjectStore. У зв'язку з цим, виникає проблема реалізації непередбачених запитів.
Для переходу до об'єктно-орієнтованих БД стандарт об'єктного програмування був доповнений стандартизованими засобами доступу до баз даних (стандарт ODMG 93; Object Database Management Group – група управління об'єктно-орієнтованими базами даних). До теперішнього часу цей стандарт не реалізований. Стан проблеми детально описаний також в роботах [26], [4], [2], [18], [3] і ін. Відзначимо лише, що ООБД використовуються, але доки не стали реальною альтернативою реляційним базам даних.
Об'єктно-орієнтовані можливості з'являються у провідних сучасних СУБД, таких, як, наприклад, Oracle. Робляться спроби внесення змін у стандарти мови SQL з метою його часткової адаптації до ООБД. Так, новий стандарт SQL-3 включає великий розділ, присвячений цьому питанню.
