
- •Вступ до баз даних. Загальна характеристика основних понять
- •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. Сховища даних
- •Основи криптології
Об'єктно-реляційні субд
В наш час реляційні СУБД домінують серед систем управління даними. Переваги об'єктно-орієнтованого підходу для створення складних спеціалізованих додатків з одного боку, і прагнення розробників систем управління базами даних з іншого боку розширити кордони вживання відповідних СУБД зумовили включення об'єктно-орієнтованих компонент (розширювана користувачем система типів, інкапсуляція, спадкоємство (наслідування), поліморфізм і т. п.) в модель даних реляційної СУБД. Відповідні СУБД, названі об'єктно-реляційними, з’єднують у собі кращі якості реляційних і об'єктно-орієнтованих баз даних. Відзначимо, що в різних СУБД реалізований різний набір з перерахованих об'єктно-орієнтованих компонент. Таким чином, не існує загальноприйнятої об'єктно-реляційної моделі, а швидше є декілька таких моделей, що підтримують певний набір об'єктно-орієнтованих компонент. Проте, основою всіх таких моделей є реляційні таблиці, використовується мова запитів, включено поняття об'єкту, а в деяких додатково реалізована можливість збереження методів у базі даних.
Відповідні зміни реляційній моделі зумовили необхідність розширення стандарту мови запитів SQL. Перший варіант такого стандарту отримав назву SQL3. Робота над стандартом продовжується і в наш час.
Як приклад у максимальній мірі об'єктно-орієнтованої СУБД можна вказати дослідницьку СУБД Postgres [4].
Відзначимо, що СУБД Microsoft Server 2008 містить об'єктні розширення.
Призначені для користувача розширення. Користувачі мають можливість втручатися в інструментарій (наданий СУБД), створюючи, зокрема, нові користувальницькі типи даних.
Зберігання великих об'ємів даних. Разом з тими даними, які зберігалися в БД традиційно, Microsoft SQL Server 2008 дозволяє зберігати в стовпцях таблиці дані великих розмірів (підтримуються відповідні типи даних).
Нові, орієнтовані на певні класи об'єктів, типи даних. У системі визначені нові типи даних (geometry, geography), характерні для тих напрямів, в яких об'єктно-орієнтований підхід вельми ефективний і часто використовується (картографія і відповідні додатки, геометричне представлення об'єктів найрізноманітнішої природи).
Процедури, що зберігаються. У певному значенні процедури, що зберігаються, також є об'єктним розширенням, здійснюючи необхідні користувачу впливи на дані (стандартний для ООП процедурний підхід).
14.2. Розподілені бази даних
База даних – інтегрована сукупність даних, з якою працюють багато користувачів. Виклад всіх попередніх розділів передбачав єдину базу даних, що розміщується на одному комп'ютері. Нагадаємо основні принципи, покладені в основу теорії баз даних:
централізоване зберігання даних;
централізоване обслуговування даних (введення, коректування, читання, контроль цілісності).
Відмітимо, що бази даних з'явилися в період панування великих ЕОМ. База даних велася на одній ЕОМ, всі користувачі працювали саме на ЕОМ (можливі режими роботи описані в лекції 3). Інших варіантів використання обчислювальної техніки у той час просто не існувало. Якщо проаналізувати роботу користувачів з даними в компаніях, організаціях, підприємствах в "докомп’ютерний" час, то неважко відмітити, що на окремих ділянках користувачі працювали з "своїми" даними (здійснювали збір певних даних, їх зберігання, обробку, передачу оброблених даних на інші ділянки або рівні управління).
У такої технології були істотні недоліки, які вже відзначалися в попередніх розділах: дублювання деяких даних, відсутність можливості порівняльного аналізу даних всіх ділянок. Проте в цієї технології були і істотні переваги: дані вводилися і зберігалися в місцях їх породження; з цими даними працював користувач, що є фахівцем саме з цих даних, що дозволяло йому вести ефективний контроль правильності даних на всіх стадіях обробки; дані знаходилися безпосередньо у користувача, що давало можливість їх оперативної обробки. Централізація даних на одній ЕОМ, поза сумнівом дає ефективні можливості зберігання і обробки даних, але не дозволяла реалізовувати вищеназвані переваги.
Розвиток обчислювальних комп'ютерних мереж зумовив нові можливості в організації і веденні баз даних, що дозволяють кожному користувачеві мати на своєму комп'ютері свої дані і працювати з ними і що в той же час дозволяють працювати всім користувачам зі всією сукупністю даних як з єдиною централізованою базою даних. Відповідна сукупність даних називається розподіленою базою даних.
Термін "розподілена база даних" досить частий зустрічається в літературі [26], [4], [2], [18], [3]. Проте в різних джерелах під цим терміном розуміються абсолютно різні речі. Частину авторів розуміють під розподіленою базою даних те, що є віддалений сервер, на якому розташовані дані, а також клієнтські комп'ютери, розташовані територіально у іншому місці. Таке трактування нам представляється неправильним. Справжня розподілена база даних розташовується на декількох комп'ютерах. При цьому частина файлів розташована на одному комп'ютері, частина на іншому і так далі. Більше того, можлива і навіть часто зустрічається ситуація, коли інформація на цих комп'ютерах перетинається, дублюється.
Розподілена база даних – сукупність логічно взаємозв'язаних даних (і опис їх структур), що фізично розподілені в комп'ютерній мережі.
Система управління розподіленою базою даних – програмна система, що забезпечує роботу з розподіленою базою даних і дозволяє користувачеві працювати як з його локальними даними, так і зі всією базою даних в цілому.
Система управління розподіленою базою даних (РоСУБД) є розподіленою системою. Кожен фрагмент бази даних працює під управлінням окремою СУБД, яка здійснює доступ до даних цього фрагменту. Користувачі взаємодіють з розподіленою базою даних через локальні і глобальні додатки. Локальні додатки дають користувачеві можливість працювати зі своїми локальними даними і не вимагають доступу до інших фрагментів. Глобальні додатки дають користувачеві можливість працювати з іншими фрагментами бази даних, розташованими на інших комп'ютерах мережі. Загальна схема розподіленої бази даних представлена на мал. 14.4.
Об'єднання даних організовується віртуально. Відповідний підхід, по суті, відображає організаційну структуру підприємства (і навіть суспільства в цілому), що складається з окремих підрозділів. Причому, хоча кожен підрозділ обробляє свій набір даних (ці набори, як правило, перетинаються), існує необхідність доступу до цих даних як до єдиного цілого (зокрема, для управління всім підприємством).
Одним з прикладів реалізації такої моделі може служити мережа Інтернет: дані вводяться і зберігаються на різних комп'ютерах по всьому світу, будь-який користувач може дістати доступ до цих даних, не замислюючись про те, де вони фізично розташовані.
Мал. 14.4. Розподілена база даних
К.Дж. Дейт проголошує наступний фундаментальний принцип розподіленої бази даних [4]. Для користувача розподілена система повинна виглядати точно так, як і нерозподілена. З цього принципу випливає ряд правил:
Локальна автономія.
Незалежність від центрального вузла.
Безперервне функціонування.
Незалежність від розташування.
Незалежність від фрагментації.
Незалежність від реплікації.
Обробка розподілених запитів.
Управління розподіленими транзакціями.
Незалежність від апаратного забезпечення.
Незалежність від операційної системи.
Незалежність від мережі.
Незалежність від СУБД.
Відмітимо, що поняття розподіленої бази даних можна інтерпретувати як наступний крок у розвитку понять про дані (див. лекцію 1), обумовлений розподілом даних в реальних предметних областях, а також новим етапом розвитку засобів обчислювальної техніки – широким використанням обчислювальних мереж.
У цій інтерпретації розподілену базу даних можна розуміти як сукупність логічно взаємозв'язаних розподілених по різних комп'ютерах баз даних.
Перерахуємо основні проблеми створення розподіленої бази даних.
Фрагментація даних і розподіл по комп'ютерах.
Складання глобального каталогу, що містить інформацію про кожен фрагмент БД і його місце розташування в мережі. (Каталог може зберігатися на одному вузлі або бути розподіленим)
Організація обробки запитів (синхронізація декількох запитів до одних і тих же даних, виключення аномалій видалення і оновлення одних і тих же даних, розташованих на різних вузлах, оптимізація послідовності кроків при обробці запиту і т. д.).
Значною перевагою цієї моделі є наближення даних до місця їх породження, що дозволяє істотно підвищити їх достовірність, недоліком – досить висока складність управління даними як єдиним цілим.
На жаль, процес створення і обслуговування розподілених баз даних зв'язаний і з технічними труднощами, серед яких можна виділити жорсткі вимоги до пропускної спроможності каналів зв'язку, а також низьку продуктивність, обумовлену значними затратами комунікаційних і обчислювальних ресурсів при їх синхронізації під час виконання транзакцій (особливо при інтенсивних зверненнях з різних вузлів до одного фрагменту).
Детальне вивчення принципів побудови розподілених баз даних не входить до завдань наших лекцій. Тим хто цікавиться рекомендуємо звернутися до відповідної літератури, наприклад [4], [2], [18], [3]. Тут ми хочемо лише окреслити проблему і зробити деякі висновки по перспективах її рішення. Технологія, зв'язана з використанням розподілених баз даних, найбільшою мірою відповідає організаційній людській діяльності (інформація розподілена по місцю діяльності людей, і вони обмінюються нею в процесі роботи) і дозволяє найуспішніше вирішувати найважливіші проблеми, ведення баз даних:
підвищити достовірність інформації (інформація вводиться в місці її породження особою, яка краще за всіх розуміє її смислове значення);
підвищити оперативність локальної обробки інформації (відповідні питання вирішуються на локальному комп'ютері з фрагментом бази даних).
Тому вочевидь, що завдання проектування, створення і функціонування розподілених баз даних є вельми істотним, активно вивчається в даний час і вирішуватиметься і далі.