ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 01.10.2024
Просмотров: 65
Скачиваний: 0
Запис sql-операторів
Для успішного вивчення язика SQL необхідно привести короткий опис структури SQL-операторів і нотації, які використовуються для визначення формату різних конструкцій язика. Оператор SQL складається із зарезервованих слів, а також із слів, визначуваних користувачем. Зарезервовані слова є постійною частиною язика SQL і мають фіксоване значення. Їх слід записувати в точності так, як це встановлено, не можна розбивати на частини для перенесення з одного рядка на інший. Слова, визначувані користувачем, задаються їм самим (відповідно до синтаксичних правил) і є ідентифікаторами або іменами різних об'єктів бази даних. Слова в операторі розміщуються також відповідно до встановлених синтаксичних правил.
Ідентифікатори язика SQL призначені для позначення об'єктів в базі даних і є іменами таблиць, уявлень, стовпців і інших об'єктів бази даних. Символи, які можуть використовуватися в створюваних користувачем ідентифікаторах язика SQL, повинні бути визначені як набір символів. Стандарт SQL задає набір символів, який використовується за умовчанням, – він включає рядкові і прописні букви латинського алфавіту ( A-Z, а-z ), цифри ( 0-9 ) і символ підкреслення ( _ ). На формат ідентифікатора накладаються наступні обмеження:
ідентифікатор може мати довжину до 128 символів;
ідентифікатор повинен починатися з букви;
ідентифікатор не може містити пропуски.
<ідентифікатор>::=<буква>
{<буква>|<цифра>}[,...n]
Більшість компонентів язика не чутлива до регістра. Оскільки у язика SQL вільний формат, окремі SQL-оператори і їх послідовності матимуть більш читаний вигляд при використовуванні відступів і вирівнювання.
Язик, в термінах якого дається опис язика SQL, називається метамовою. Синтаксичні визначення звичайно задають за допомогою спеціальної металінгвістичної символіки, званої Бекуса-Науера формулами (БНФ). Прописні букви використовуються для запису зарезервованих слів і повинні указуватися в операторах точно так, як це буде показано. Рядкові букви вживаються для запису слів, визначуваних користувачем. Вживані в нотації БНФ символи і їх позначення показані в таблиці.
Таблиця 1.1.
Символ Позначення
::= Рівно за визначенням
| Необхідність вибору одного з декількох приведених значень
<.> Описана за допомогою метамови структура язика
{.} Обов'язковий вибір деякої конструкції із списку
[.] необов'язковий вибір деякої конструкції із списку
[,.n] необов'язкова можливість повторення конструкції від нуля до декількох разів
2 Практична частина
Опис учбової бази даних
В подальшому викладі як приклад використовуватиметься невелика база даних, що відображає процес поставки або продажу деякого товару постійним клієнтам.
Виходячи з аналізу наочної області, можна виділити два типи сутностей – ТОВАР і КЛІЄНТ, які зв'язані між собою відношенням "багато–до–багатьох", оскільки кожний покупець може купити багато найменувань товару, а кожний товар може бути куплений багатьма покупцями. Проте реляційна модель даних вимагає замінити відношення "багато–до-багатьох" на декілька відношень "один–до-багатьох". Додамо ще один тип сутностей, що відображає процес продажу товарів, – ОПЕРАЦІЯ.
Встановимо зв'язки між об'єктами. Один покупець може неодноразово купувати товари, тому між об'єктами КЛІЄНТ і ОПЕРАЦІЯ є зв'язок "один–до–багатьох". Кожне найменування товару може неодноразово брати участь в операціях, в результаті між об'єктами ТОВАР і ОПЕРАЦІЯ є зв'язок "один-до-багатьох".
Визначимо атрибути і пов'яжемо їх з сутностями і зв'язками. До об'єкту ТОВАР відносяться такі характеристики, як назва, тип, ціна, сорт. До об'єкту КЛІЄНТ – ім'я, по батькові, прізвище, фірма, місто, телефон. Тип сутності ОПЕРАЦІЯ може бути охарактеризований такими ознаками, як дата і кількість проданого товару.
Важливим етапом в створенні бази даних є визначення атрибутів, які однозначно визначають кожний екземпляр сутності, тобто виявлення первинних ключів.
Для таблиці ТОВАР назва не може служити первинним ключем, оскільки товари різних типів можуть мати однакові назви, тому введемо первинний ключ КодТовару, під яким можна розуміти, наприклад, артикул товару. Так само ні Ім'я, ні Фірма, ні Місто не можуть служити первинним ключем в таблиці КЛІЄНТ. Введемо первинний ключ КодКлієнта, під яким можна розуміти номер паспорта, ідентифікаційний номер платника податків або будь-який інший атрибут, однозначно визначаючий кожного клієнта. Для таблиці ОПЕРАЦІЯ первинним ключем є поле КодСделки, оскільки воно однозначне визначає дату, покупця і інші елементи даних. Як первинний ключ можна б було вибрати не одне поле, а деяку сукупність полів, але для ілюстрації конструкцій язика обмежимося простими первинними ключами.
Встановимо зв'язки між таблицями. Один покупець може неодноразово купувати товари. Тому між таблицями КЛІЄНТ і ОПЕРАЦІЯ є зв'язок "один–до–багатьох" по полю КодКлієнта.
Кожний покупець може придбати декілька різних товарів. Тому між таблицями ТОВАР і ОПЕРАЦІЯ є зв'язок "один–до–багатьох" по полю КодТовару.
Тепер потрібно створити зв'язки між таблицями бази даних. Для цього помістимо копії первинних ключів з батьківської таблиці (таблиці із сторони "один") в дочірню таблицю (таблицю із сторони "багато"). Для організації зв'язку між таблицями ТОВАР і ОПЕРАЦІЯ помістимо копію поля КодТовару з таблиці ТОВАР в таблицю ОПЕРАЦІЯ. Для організації зв'язку між таблицями КЛІЄНТ і ОПЕРАЦІЯ помістимо копію поля КодКлієнта з таблиці КЛІЄНТ в таблицю ОПЕРАЦІЯ. Для таблиці ОПЕРАЦІЯ поля КодКлієнта і КодТовара є зовнішніми (чужими) ключами. В результаті одержимо наступну структуру бази даних.
Мал. 1.1. Приклад структури бази даних.
Практичне завдання
1. Згідно списка групи обрати варіант завдання та за зразком побудувати повну концептуально-логічну схему. Схема ОБОВЯЗКОВО повинна містити наступне:
-
повний перелік типів сутностей, що мають відношення до даної предметної галузі.
-
перелік тих типів сутностей, що будуть відображені в базі.
-
орієнтовні поля для встановлення звязків.
-
відповіді на питання, щодо створення таблиці:
-
Як називатиметься таблиця?
-
Як називатимуться стовпці (поля) таблиці?
-
Які типи даних будуть закріплені за кожним стовпцем?
-
Який розмір пам'яті повинен бути виділений для зберігання кожного стовпця?
-
Які стовпці таблиці вимагають обов'язкового введення?
-
З яких стовпців полягатиме первинний ключ?
-
повний перелік атрибутів для кожної сутності.
-
перелік тих атрибутів, що мають бути відображені в базі.
-
схематичне зображення сутностей бази зі встановленими звязками.
-
таблиці майбутньої бази даних заповнені ВРУЧНУ В ЗОШИТІ. (допускається варіант використання MS Excel для попереднього заповнення таблиць)
Дати відповіді на контрольні питання в письмовій формі.
Індивідуальне завдання: згідно номеру варіанта виконати аналогічне завдання – з опису предметної галузі обрати необхідні типи сутностей (від 3х до 5ти), визначити спрямованість та кратність зв’язків між ними та побудувати концептуальну схему. Отримані таблиці заповнити необхідною кількістю записів.
Варіант 1 База даних магазину побутової техніки. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 2 База даних ювелірного магазину. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 3 База даних магазину верхнього одягу. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 4 База даних аеропорту. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 5 База даних автовокзалу. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 6 База даних залізничного вокзалу. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 7 База даних бібліотеки. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 8 База даних автосалону. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 9 База даних великого пункту прокату. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 10 База даних продовольчого магазину. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 11 База даних навчального закладу. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 12 База даних районної лікарні. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 13 База даних водійської школи. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 14 База даних пункту відео/аудіо прокату. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 15 База даних магазину посуду. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 16 База даних магазину мобільних телефонів. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 17 База даних кімнатних рослин. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |
Варіант 18 База даних великої аптеки. Визначити всі наявні типи сутностей та зв’язків між ними. Визначити весь перелік атрибутів та побудувати концептуальну схему. |