
- •Основні поняття
- •Характеристика зв'язків
- •Відділ а Співробітники в
- •Відділ а Дата звільнення в
- •Класифікація сутностей
- •Аналіз предметної області
- •Розробка універсального відношення
- •Розробка er-моделі предметної області
- •Книга має Твір
- •Книга належить Розділ
- •Ієрархічна (деревовидна) структура даних
- •Мережна структура даних
- •Реляційна модель даних
- •Поняття ключа, основні типи ключів
- •Студент-успішність
- •Основні поняття реляційної алгебри. Дії над таблицями.
- •Загальні відомості щодо нормалізації схем бд
- •Перша та друга нормальна форма
- •Третя нормальна форма та нфбк
- •Нормальна форма Бойса-Кодда
- •П'ята нормальна форма та послідовність етапів нормалізації
- •Об'єктно-орієнтовані субд
- •1 Зв'язок об'єктно-орієнтованих субд із загальними поняттями об'єктно-орієнтованого підходу
- •2 Об'єктно-орієнтовані моделі даних (оомд)
- •3 Мови програмування об'єктно-орієнтованих баз даних
- •4 Мови запитів об'єктно-орієнтованих баз даних
- •Мови реляційних баз даних
- •1. Загальна характеристика
- •2. Типова організація сучасної скбд
- •3. Мова foxpro
- •4. Мова sql
- •Загальні підходи
- •Спискові структури
- •Зв'язаний розподіл пам'яті
- •Нелінійні зв'язкові структури
- •Представлення рядкових даних
- •Індексні методи
- •Способи включення записів та організіція індексних файлів
- •Адресні методи
- •Табл 5.1 - Розрахунок адреси
- •Табл 5.2 - Розмiщення даних у пам'ятi
- •Порівняльні параметри
- •Інвертований метод
- •Поняття експертних систем
- •Подання знань в соз
- •Основні моделі знань та їх порівняльні характеристики
- •Представлення знань із використанням логіки предикатів
- •Найпростіші конструкції мови предикатів
- •Предикатні формули
- •Любить (х, у),
- •Визначення правильно побудованої формули
- •Правило резолюції для простих пропозицій
- •S1 (заперечення): ¬ а
- •Чи одержує студент стипендію.
- •S: ¬одержує (студент, стипендію)
- •Порядок розв'язування задачі
- •Семантичні мережі
- •Продукційні моделі
- •Якщо - то (явище - реакція)
- •Подання знань із застосуванням фреймів
- •Стратегії пошуку в соз
- •Нечіткі множини в системах баз знань
- •Визначення I класифiкацiя аіс
- •Автоматизованi БнД
- •Риcунок 1.4 - Схема взаємодiї колективу спецiалiстiв банку
- •Вимоги до БнД
- •Принципи побудови БнД
Мови реляційних баз даних
1. Загальна характеристика
Для роботи з базами даних використовуються спеціальні мови, які загалом називаються мовами баз даних. Перші системи керування базами даних (СКБД) підтримували декілька спеціалізованих за своїми функціями мов. Набули поширення дві мови - мова визначення схеми БД (SDL - Schema Definition Language) та мова маніпулювання даними (DML - Data Manipulation Language ). SDL призначений головним чином для визначення логічної структури БД, тобто тієї структури БД, якою вона представляється користувачам. DML містить набір операторів маніпулювання даними, тобто операторів, що дозволяють вносити дані в БД, видаляти, модифікувати чи вибирати існуючі дані.
В багатьох сучасних СКБД підтримується єдина інтегрована мова, що містить всі необхідні засоби для роботи з БД, починаючи від її створення, та таких, що забезпечують базовий інтерфейс користувача. На сьогодні мовою найбільш поширених реляційних СКБД є мова SQL (Structured Query Language).
Мова SQL дозволяє визначати схему реляційної БД та маніпулювати даними. При цьому іменування об'єктів БД (для реляційної БД - іменування таблиць та їх стовпців) підтримується на мовному рівні в тому сенсі, що компілятор мови SQL проводить перетворення імен об'єктів в їх внутрішні ідентифікатори на основі спеціальних службових таблиць-каталогів, що підтримуються. Внутрішня частина СКБД (ядро) не оперує іменами таблиць та їх стовпців.
Мова SQL має спеціальні засоби для визначення обмежень цілісності БД. Обмеження цілісності зберігаються у спеціальних таблицях-каталогах, і забезпечення контролю цілісності БД проводиться на мовному рівні, тобто при компіляції операторів модифікації БД компілятор SQL на основі існуючих в БД обмежень цілісності генерує відповідний програмний код.
Спеціальні оператори мови SQL дозволяють визначати так звані представлення БД, фактично ті, що зберігаються в БД запити (результатом будь-якого запиту до реляційної БД є таблиця) з іменованими стовпцями. Для користувача представлення є такою ж таблицею, як і будь-яка базова таблиця, що зберігається в БД, але за допомогою представлення можна обмежити або навпаки розширити видимість БД для конкретного користувача.
Контроль доступу до об'єктів БД проводиться за допомогою спеціальних операторів SQL. Для виконання операторів SQL, користувач повинен мати відповідні права доступу. Користувач, який створив БД, має права доступу на рівні власника, під час роботи з об'єктами, що їй належать.
2. Типова організація сучасної скбд
Організація типової СКБД і склад її компонентів відповідає такому набору функцій:
управління даними у зовнішній пам'яті
управління буферами оперативної пам'яті
управління транзакціями
журналізація та відновлення БД після збоїв
підтримка мов БД
В сучасній реляційній СКБД можна виділити:
ядро СКБД
компілятор мови БД
підсистему підтримки часу виконання
набір утиліт
Ядро СКБД відповідає за управління даними у зовнішній пам'яті, управління буферами оперативної пам'яті, управління транзакціями та журналізацію.
Відповідно можна виділити такі компоненти ядра:
менеджер даних
менеджер буферів
менеджер транзакцій
менеджер журналу
Функції цих компонентів взаємопов'язані та для забезпечення коректної роботи СКБД всі компоненти повинні взаємодіяти по ретельно продуманим та провіреним протоколам. Ядро СКБД має власний інтерфейс, що не доступні користувачам напряму.
Основною функцією компілятора мови БД є компіляція операторів мови БД в деяку виконуєму програму. Основною проблемою реляційних СКБД є те, що мови цих систем є не процедурними, тобто в операторі такої мови специфікується деяка дія над БД, але ця специфікація не є процедурою, а лише описує в деякій формі умову здійснення бажаної дії. Результатом компіляції є програма, що виконується та представляється в деяких системах в машинних кодах, але частіше в внутрішньому машинно - незалежному коді.
Нарешті, в окремі утиліти БД зазвичай виділяють такі процедури, які занадто складно виконувати за використанням мови БД, наприклад, "завантаження", збір статистики, глобальна перевірка цілісності БД і т.д. Утиліти програмуються за використанням інтерфейсу ядра БД, а іноді навіть з проникненням всередину ядра.