
- •Вступ до баз даних. Загальна характеристика основних понять
- •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. Сховища даних
- •Основи криптології
6.2.4. Багатовимірна модель даних
Повернемося до поняття "сутність" концептуальної моделі.
Сутність – це те, про що накопичується інформація в інформаційній системі. Часто виявляється, що інформація про певну сутність залежить ще від ряду параметрів. Розглянемо, наприклад, сутність УСПІШНІСТЬ СТУДЕНТІВ з наступними атрибутами: кількість двійок, кількість трійок, кількість четвірок, кількість п'ятірок.
Значення атрибутів залежить від параметрів "курс", "навчальний рік". Якщо використовувати для опису відповідної концептуальної схеми реляційну модель, то необхідно вводити множину таблиць УСПІШНІСТЬ СТУДЕНТІВ по кожному року для кожного курсу. Так, при 5 курсах і необхідності аналізувати дані за 10 років кількість таблиць буде рівною п'ятдесят. Дублюються аналогічні структури всіх таблиць, досить складна обробка даних, пов'язана з аналізом однотипних даних при зміні значення одного з параметрів і т. д.
Найбільш підходящою моделлю даних для цього випадку є так звана багатовимірна модель, використовувана в технології OLAP (OnLine Analytical Processing – оперативна аналітична обробка). Відзначимо, що багатовимірність моделі даних означає тут багатовимірне логічне представлення структури інформації і, взагалі кажучи, не пов'язана з багатовимірністю візуалізації.
Багатовимірні структури представляються як гіперкуби даних. Кожна грань куба є розмірністю. Основними поняттями, використовуваними в багатовимірних моделях даних, є "вимір" (dimension) і "комірка" (cell).
Вимір – впорядкований набір значень, що приймаються конкретним параметром, відповідний одній з граней гіперкуба. Для нашого прикладу можна вказати як виміри: навчальний рік – 2006-2007, 2007-2008, 2008-2009; курси – 1,2,3 і так далі
Комірка або показник – це поле, відповідне атрибуту сутності, значення якого однозначно визначається фіксованим набором значень параметрів (значеннями "вимірами", наприклад, 2008-2009 навчальний рік, перший курс).
У багатовимірній моделі даних визначається ряд додаткових операцій, серед яких можна виділити операції "формування зрізу" і "агрегація".
При формуванні зрізу користувачеві по його запиту надається деяка підмножина гіперкуба, отримана в результаті фіксацій користувачем одного або декількох значень параметрів. Операція "агрегація" забезпечує перехід до більш загального представлення інформації з гіперкуба користувачеві, наприклад підсумовуючи значення показників по всіх значеннях одного з параметрів, припустимо, по всіх курсах.
Така модель дозволяє легко порівнювати дані при різних значеннях параметрів, будувати графіки залежності значень конкретних атрибутів від значень певних параметрів (наприклад, зміна атрибуту по роках) і т. п. Тому основне призначення технології OLAP – обробка інформації для проведення аналізу і ухвалення рішення.
Масове використання СУБД, що підтримують багатовимірну модель даних, лише починається. В ролі найбільш відомих СУБД такого типу можна вказати Oracle Express Server.
6.3. Засоби автоматизованого проектування концептуальної моделі
Засоби автоматизованого проектування концептуальної моделі привертають до себе в даний час великий інтерес і використовуються в процесі створення структури бази даних і інтерфейсу користувача для доступу до даних.
Причина застосування цих засобів полягає у використанні в переважній більшості реальних розробок баз даних спіральної моделі життєвого циклу програмного забезпечення, що передбачає послідовне створення декількох версій програмного забезпечення. Кожна наступна версія включає попередню (можливо, не повністю) і є відповіддю на зауваження користувача, отримані в результаті тестування попередньої версії. При створенні баз даних перша модель програмного забезпечення, на жаль, дуже рідко є вдалою. Найчастіше замовник відкидає першу версію, оскільки вона недостатньо повно відповідає його вимогам. Причина такої ситуації полягає в тому, що замовник не може відразу, до створення початкової версії програми, чітко і повно сформулювати свої вимоги. Зазвичай після отримання першого варіанту програмного забезпечення замовник висуває додаткові вимоги, які не можна реалізувати в рамках створеної бази даних. Це змушує розробників вносити зміни в структуру бази даних, а також, відповідно, в інтерфейс користувача для доступу до бази даних. Таких ітерацій може бути декілька до моменту отримання рішення, адекватного запитам замовника. Але навіть після отримання задовільного рішення процес розробки бази даних не завершується. Життя не стоїть на місці, і запити замовника міняються з часом. Частину цих змін можна реалізувати без зміни структури бази даних, змінюючи лише інтерфейс користувача, інші ж вимагають зміни і інтерфейсу, і структури бази даних. Варто відмітити, що подібні зміни є дуже хворобливими – робота по їх внесенню може виявитися трудомісткою і, що найнеприємніше, зажадати заміни великої кількості відлагодженого програмного коду. Іншими словами, замінений код був написаний даремно, насправді його не потрібно було писати.
Таким чином, створення працездатної бази даних можна умовно розділити на три етапи:
проектування бази даних, в процесі якого створюються робочі прототипи;
кодування – створення структур баз даних і закінченого інтерфейсу користувача і
супровід готової бази даних.
Основна ідея застосування засобів автоматизованого проектування баз даних полягає в тому, що процес ручного кодування починається лише після закінчення процесу проектування. На стадії проектування схема бази даних і інтерфейс користувача для доступу до бази даних створюються автоматично, виходячи з опису концептуальної моделі, за допомогою так званих CASE-засобів (Computer Aided Software/System Engineering). Звичайно, створений таким чином інтерфейс не є закінченим програмним продуктом, проте він дозволяє замовникові оцінити можливості кінцевого продукту і внести свої корективи. Лише після схвалення замовником робочого прототипу розробники приступають до ручного кодування – створення закінченого додатку.
При супроводі все повторюється, за тим винятком, що генерується не весь додаток цілком, а лише частина, яку треба змінити.
На практиці частіше за все CASE-засоби використовуються для створення схеми бази даних у вигляді ER-діаграм і генерації структур баз даних для конкретної СУБД. Після отримання від замовника змін розробники вносять відповідні виправлення до діаграми "сутність – зв'язок" і заново генерують структури баз даних. Засоби автоматичної генерації інтерфейсів використовуються рідше.
В наш час практично кожен виробник СУБД пропонує власний програмний продукт автоматизованого проектування. Це Oracle Designer (Oracle), Power Desinger (Sybase) та інші. Демонстраційні версії даних програмних продуктів можна завантажити з відповідних сайтів (www.oracle.com, www.sybase.com).
Крім того, на ринку представлені рішення третіх фірм, що не виробляють СУБД. Одними з найпоширеніших є програмні продукти фірми AllFusion – AllFusion ERwin Data Modeler і AllFusion Process Modeler (раніше – BPwin) та інші. На російському ринку дані програми пропонує фірма Interface Ltd. (www.interface.ru). Створення діаграми "сутність – зв'язок" здійснюється за допомогою AllFusion ERwin Data Modeler, подальше моделювання, включаючи генерацію програмного коду створення бази даних виробляється за допомогою програми AllFusion Process Modeler.
Створивши наглядну модель бази даних можна оптимізувати структуру БД і добитися повної відповідності БД вимогам і завданням організації. Візуальне моделювання підвищує якість створюваної бази даних, продуктивність і швидкість її розробки.
На сайті Interface Ltd. доступна для завантаження демонстраційна версія AllFusion ERwin Data Modeler, яка є повнофункціональною версією, обмеженою за часом.
Короткі підсумки. У лекції розглянуті питання, що відносяться до другої стадії концептуального проектування, – представленню концептуальної моделі в термінах моделі даних певної СУБД. Описали загальне уявлення про модель даних (основні використовувані поняття – елемент, запис, файл; основні складові описи). Розглянуті моделі даних СУБД як інструмент представлення концептуальної моделі (мережева модель даних, ієрархічна модель даних, реляційна модель даних, багатовимірна модель даних і OLAP-технологія). Наведені приклади запису концептуальної моделі в термінах конкретної моделі даних СУБД. Наводяться відомості про засоби автоматизованого проектування концептуальної моделі.
Питання даної лекції розглядаються в [1]÷[19].