- •Вступ до баз даних. Загальна характеристика основних понять
- •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. Поняття мови sql і його основні частини
11.3.1. Історія виникнення і стандарти мови sql
Історія виникнення мови SQL починає з 1970 року [5], коли доктор Е.Ф. Кодд запропонував реляційну модель як нову модель бази даних. Для доказу життєздатності нової моделі даних усередині компанії IBM був створений потужний дослідницький проект, що отримав назву System/R. Проект включав розробку власне реляційної СУБД і спеціальної мови запитів до бази даних. Так на початку 70-х років з'явився перший дослідницький прототип реляційної СУБД. Для цього прототипу розроблялися і випробувалися різні мови запитів, один з яких отримав назву SEQUEL (Structured English Query Language). З моменту створення і до наших днів ця мова зазнала багато змін, але ідеологія залишилася незмінною.
Період з 1979 року (закінчення проекту System/R) до теперішнього часу характеризується розвитком і вдосконаленням мови SQL і його роллю, що постійно збільшується, в індустрії, пов'язаній із створенням і експлуатацією баз даних. Абсолютно вочевидь, що мова ніколи не отримала б світового визнання, якби на нього не було жодних стандартів. Стандартизація – важлива частина технологічних процесів кінця XX століття. Саме наявність розроблених і офіційно визнаних стандартів дозволила затвердитися багатьом сучасним технологіям (не лише в індустрії розробки програмного забезпечення, але і в багатьох інших сферах людської діяльності). Як йде справа із стандартами мови SQL і їх підтримкою в поширених СУБД?
Коли ведуть мову про стандарти в області, пов'язаній з розробкою програмного забезпечення, зазвичай мають на увазі дві організації:
ANSI (American National Standards Institute) – Американський національний інститут стандартів;
ISO (International Standards Organization) – Міжнародну організацію по стандартизації.
Робота над офіційним стандартом мови SQL почалася в 1982 році [8] в рамках комітету ANSI. У 1986 році (зверніть увагу, скільки часу пішло на розробку стандарту і узгодження деталей!) був затверджений перший варіант стандарту ANSI, а в 1987 році цей стандарт був затверджений і ISO. У 1989 році стандарт зазнав незначні зміни, але саме цей варіант отримав назву SQL-1 або SQL‑89. У чому особливість SQL-89? За час розробки стандарту (1982–1989 рр.) були створені, представлені на ринок і активно використовувалися декілька різних СУБД. В цих СУБД в тому або іншому вигляді був реалізований деякий діалект мови SQL. З урахуванням того, що розробкою стандартів займалися ті ж люди, хто впроваджував SQL в СУБД, стандарт SQL-89 був плодом безлічі компромісів. Це призвело до наявності в стандарті великої кількості "білих плям", тобто місць, які не були описані, а віддані на розсуд розробників діалекту. В результаті мало не усі наявні діалекти стали сумісними із стандартом, але особливої користі це не принесло.
Наступна реалізація стандарту була покликана вирішити цю проблему. В результаті тривалих обговорень і узгоджень в 1992 році був прийнятий новий стандарт ANSI SQL-2 або SQL-92. SQL‑92, який заповнив багато "білих плям", вперше додавши в стандарт можливості, ще не реалізовані в існуючих комерційних СУБД.
Робота над стандартизацією продовжується і далі. З'явилися стандарти SQL-1999, SQL-2003. Проте, всі ці стандарти не вирішили всіх проблем, пов'язаних з наявністю декількох діалектів мови. Як правило, розробники як ігнорували, так і ігнорують деякі положення стандарту, з одного боку, відмовляючись реалізовувати деякі його частини і, з іншого боку, реалізовуючи те, що відсутнє в стандарті. Не дивлячись на наявні відмінності, всі комерційні СУБД підтримують деяке ядро мови, описане в стандарті, однаково. Відмінностей не дуже багато, вони не носять принципового характеру. Хоча кожна СУБД як і раніше підтримує свій діалект мови.
У систему управління базами даних Microsoft SQL Server входить мова TRANSACT-SQL, розроблена на основі одного із стандартів SQL.
