- •Вступ до баз даних. Загальна характеристика основних понять
- •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
- •Лекція 14
- •Напрями розвитку баз даних
- •Бібліотека db-Library
- •14.1. Об'єктно-орієнтований підхід до організації баз даних
- •Об'єктно-орієнтоване програмування
- •Об'єктно-орієнтовані бази даних
- •Об'єктно-реляційні субд
- •14.2. Розподілені бази даних
- •14.3. Сховища даних
- •Основи криптології
11.3.2. Переваги мови sql
Для ознайомлення з достоїнствами мови звернемося до відповідної літератури [5]. Ось деякі з них:
міжплатформенна переносимість;
наявність стандартів;
схвалення і підтримка компанією IBM (СУБД DB2);
підтримка з боку компанії Microsoft (СУБД SQL Server, протокол ODBC і технологія ADO);
реляційна основа;
високорівнева структура;
можливість виконання спеціальних інтерактивних запитів;
забезпечення програмного доступу до баз даних;
можливість різного представлення даних;
повноцінність як мови, призначеної для роботи з базами даних;
можливість динамічного визначення даних;
підтримка архітектури клієнт/сервер;
підтримка корпоративних застосувань;
розширюваність і підтримка об'єктно-орієнтованих технологій;
можливість доступу до даних в Інтернеті;
інтеграція з мовою Java (протокол JDBC);
промислова інфраструктура.
11.3.2. Загальна характеристика sql
Мова запитів SQL заснована на операціях реляційної алгебри і, таким чином орієнтована на роботу з множинами (відношеннями), а не з окремими записами. Як і в реляційній алгебрі, операндами мови є відношення (таблиці), результатами виконання операції також є відношення (таблиці). Таким чином, мова SQL призначена для виконання операцій над таблицями, причому як над таблицями в цілому (створення, видалення, зміна структури), так і над даними таблиць (вибірка, зміна, додавання і видалення). Відзначимо, що в явному вигляді мова SQL не є універсальною мовою програмування в звичайному розумінні. У ній відсутні оператори умовного переходу, організації циклів, що дозволяють управляти ходом виконання програми. Тому мова SQL відноситься до класу непроцедурних мов програмування. Це саме мова запитів до бази даних, яка служить виключно для організації бази даних і роботи з нею. Як вже наголошувалося вище, для розробки прикладних програм необхідно використовувати інші базові засоби програмування, в яких оператори мови SQL вбудовуватимуться. Мові SQL присвячена велика кількість літератури, у тому числі і підручників. Детальне вивчення мови SQL не входить в завдання нашого курсу, це може займати окремий курс. У зв'язку з цим, тут будуть викладені лише загальні відомості про мову, як фундаментальний інструмент роботи з базами даних.
Термінологія
Під запитом, що реалізовується за допомогою мови SQL-запитів до бази даних, розуміється команда, призначена для виконання (і виконувана) системою управління базами даних і визначає цією командою дії з базою даних.
Запит реалізується за допомогою операторів мови SQL. Оператори складаються з окремих логічних частин, званих реченнями. Стандарти мови SQL регламентують синтаксис операторів. Не дивлячись на те, що мова SQL працює з реляційною базою даних, замість терміну "відношення" тут використовується термін "таблиця", замість термінів "кортеж" і "атрибут" використовуються відповідно терміни "рядок" і "стовпець".
Різновиди sql
Як наголошувалося вище, на відміну від "звичайних" мов програмування в SQL відсутня можливість оголошення змінних, немає інструкції IF, немає циклу FOR і т. д. Власне програмування (розробка прикладних програм) подібною мовою практично неможливе. Тому до цього часу використовуються наступні технології (режими) роботи з базою даних мовою SQL (у деяких джерелах ці технології називають різновидами мови SQL):
формування безпосередньо користувачем запиту мовою SQL в інтерактивному режимі (інтерактивний SQL);
формування запиту мовою SQL у прикладній програмі (програмний або вбудований SQL:
статичне формування запиту (статичний SQL);
динамічне формування запиту (динамічний SQL);
формування запиту за допомогою бібліотек (API – інтерфейси виклику підпрограм).
У інтерактивному режимі роботи з базою даних: користувач працює з базою даних у прямому діалозі – вводить запит мовою SQL – отримує результат, вводить інший запит – отримує інший результат і т. д.
Вбудований SQL представляється операторами мови SQL, вбудовані в прикладні програми, написані іншими мовами програмування (у інших програмних середовищах). Це дає можливість роботи з базою даних за допомогою прикладних програм, написаних іншими алгоритмічними мовами. Але це вимагає включення додаткових засобів, що забезпечують інтерфейс між операторами мови SQL і відповідною мовою програмування.
При статичному використанні мови (статичний SQL) в текст прикладної програми включаються конкретні оператори SQL, і після компіляції вихідної програми у виконуваний модуль жорстко включаються відповідні цим операторам функції SQL. Зміни у функціях, що викликаються, можуть тут визначатися лише змінами параметрів операторів SQL, що ініціюються за допомогою змінних мови програмування.
При динамічному використанні мови (динамічний SQL) формування SQL-запитів, відповідні виклики SQL-функцій для звернення до бази даних здійснюється динамічно в ході виконання програми.
Ще одним способом динамічного формування SQL-запитів у прикладній програмі є звернення до відповідних SQL-функцій за допомогою спеціальних інтерфейсів програмування додатків (бібліотек функцій, розроблених для зв'язку прикладної програми і СУБД за допомогою SQL-запитів).
У наших лекціях для всіх вказаних технологій (різновидів SQL) будуть наведені основні ідеї і розглянуті ключові концепції. Інтерактивний SQL буде розглянутий детальніше, ніж програмний. Детальний розгляд статичного, динамічного SQL і різних API‑інтерфейсів (ODBC, JDBC, DB Library і ін.) виходить за межі нашого курсу.
Короткі підсумки: У лекції розглядаються загальні принципи організації програмного забезпечення роботи з реляційними базами даних, що включають
створення і ведення бази даних;
створення призначених для користувача додатків, що включають розробку користувальницького інтерфейсу по роботі з базою даних.
Розглядаються підходи до організації доступу до даних (навігаційний підхід і підхід, заснований на використанні мов запитів, що інтерпретуються). Дається загальне уявлення про мову SQL (історія виникнення і стандарти мови SQL, достоїнства мови SQL, основна термінологія, технології роботи).
Про мову SQL написано досить багато літератури. Для детальнішого знайомства можна порадити, зокрема [5]-[11].
