Порядок виконання роботи
Cтворити базу даних.
Реалізувати таблиці БД з визначеними типами полів.
Заповнити таблиці даним.
Всі вище перераховані операції повинні бути відображені у звіті.
Оформлення звіту:
Титульний лист.
Мета роботи.
Порядок виконання.
Таблиці та малюнки (screen-shot), що відображають процес створення бази даних.
Висновки.
Контрольні питання
Оператори CREATE DATABASE та CONNECT DATABASE.
Оператори створення та модифікації таблиць.
Оператор заповнення таблиць даними
Особливості використання СКБД FireBird.
Список рекомендованої літератури
В.В. Пасічник, В.А. Резніченко. Організація баз даних та знань. – К:. Видавнича група BHV, 2006. – 384 с.
К.Дж. Дейт. Введение в системы баз данных. Киев, «Вильямс», 2001;
Д. Ульман, Д. Уиндом. Введение в системы баз данных. Москва, Лори, 2000;
ЛАБОРАТОРНА РОБОТА № 4
РЕАЛІЗАЦІЯ ОПЕРАЦІЙ ВИБІРКИ ДАНИХ ЗАСОБАМИ МОВИ SQL
Мета роботи: ознайомитись з операціями пошуку даних та їх вибірки і застосувати навики на практиці.
Короткі теоретичні відомості
Основна конструкція, призначена у мові SQL для вибирання даних, складається з фраз SELECT і FROM. Фраза FROM вказує, з якої таблиці потрібно вибрати дані, а фраза SELECT — які саме атрибути (стовпці) з цієї таблиці мають бути вибрані. Запит
SELECT Назва FROM ФАКУЛЬТЕТ
здійснює виведення назв факультетів. Ці дві фрази обов'язково мають бути в будь-якому запиті.
Виведення окремих стовпців
У фразі SELECT можна зазначати список імен стовпців. Передбачається, що результат виведення буде впорядкований за стовпцями відповідно до того, як розташовані імена у фразі:
SELECT Номер, Курс, Кількість FROM ГРУПА
Виведення всіх стовпців
Якщо необхідно вивести всі стовпці таблиці, то у фразі SELECT використовується символ *:
SELECT * FROM КАФЕДРА
Неповторювані рядки
Хоча в реляційних відношеннях не має бути повторюваних рядків (дублікатів), у SQL за замовчуванням встановлено, що всі дублікати рядків у таблиці-резуль-таті виводяться. Щоб унаслідок виконання запиту одержати унікальні (неповторювані) значення, потрібно використовувати модифікатор DISTINCT (за замовчуванням застосовується модифікатор ALL). Наприклад, щоб отримати список усіх типів лекцій, які читаються у вузі, і щоб кожен тип виводився лише один раз, потрібно записати:
SELECT DISTINCT Тип FROM ЛЕКЦІЯ
Без модифікатора DISTINCT ми одержали б список із кількох сотень рядків (його довжина дорівнювала б кількості всіх лекцій у вузі).
Зазначимо, що весь запит можна розмістити в одному рядку.
Перевизначення імен стовпців
Фраза SELECT надає можливість перевизначити імена стовпців кінцевої таблиці. Для цього після імені стовпця вихідної таблиці необхідно зазначити ім'я стовпця кінцевої таблиці (з використанням необов'язкової фрази AS). Наприклад, у наведеному нижче запиті перевизначаються імена обох стовпців:
SELECT Назва AS Назва_факультету. Декан AS Декан_факультету FROM ФАКУЛЬТЕТ
Умова вибирання
Для запису умови вибирання використовується фраза WHERE. У ній зазначено, якій умові мають відповідати вихідні дані. Алгоритм обробки запиту з фразою WHERE є таким:
- вибрати рядок із таблиці;
- перевірити його відповідність вказаній умові;
- якщо рядок відповідає умові, то вивести значення стовпців, вказаних у фразі
SELECT.
Цей запит виводить список усіх професорів вузу:
SELECT Прізвище FROM ВИКЛАДАЧ WHERE Посада = "професор"
У фразі SELECT можна сформувати новий стовпець. У ньому записуватимуться результати обчислення виразу, в якому використовуються значення з інших стовпців таблиць, що з'єднуються. Наведений нижче запит видає дані про всі кафедри факультету інформатики разом з їхніми фондами та інформацією про те, яку частку становить фонд кафедри від загального фонду факультету.
SELECT d.Назва. сІ.Фонд. (сІ.Фонд / т".Фонд) * 100
FROM ФАКУЛЬТЕТ f. КАФЕДРА d WHERE f.#F = d.#F AND F.Назва = "інформатики"
Еквіз'єднання
Якщо таблиці з'єднуються за рівністю значень в одній чи кількох парах стовпців, до того ж із кожної таблиці вибираються всі стовпці, то таке з'єднання відповідає операції еквіз'єднання реляційної алгебри. Наприклад:
SELECT f.*, d.*
FROM ФАКУЛЬТЕТ f, КАФЕДРА d
WHERE f.#F =d.#F
Природне з'єднання
Операція природного з'єднання здійснюється з'єднанням двох чи кількох таблиць за рівністю значень в одній чи кількох парах стовпців із наступним видаленням повторюваних стовпців (необхідні стовпці вказуються у фразі SELECT).
Хоча стовпці Назва, Корпус, Фонд є в обох таблицях, однак вони не розглядаються як повторювані, оскільки мають різне семантичне навантаження. Стовпцем, який повторюється, є той єдиний, за яким виконується з'єднання, — стовпець #F, що виконує роль зовнішнього ключа в таблиці КАФЕДРА.
З'єднання таблиці зі своєю копією
Інколи необхідно з'єднати таблицю із самою собою. Для цього у фразі FROM потрібно двічі зазначити назву таблиці з різними псевдонімами, щоб можна булона кожен її екземпляр посилатися окремо. Розглянемо такий приклад. Необхідно перевірити, чи є в таблиці ФАКУЛЬТЕТ пари рядків, де назви факультетів збігаються, а ключі #F різні.
SELECT fl.Назва, fl.#F, f2.#F
FROM ФАКУЛЬТЕТ fl, ФАКУЛЬТЕТ f2
WHERE fl.Назва = f2.Назва AND fl.#F != f2.#F
З'єднання можна виконувати безпосередньо у фразі FROM, скориставшись одним із різновидів оператора JOIN (наприклад, Fl INNER JOIN F2 ON F1.F# = F2.F#). Слід пам'ятати, що за певних обставин потрібно саме виконувати JOIN-з'єднання, а не обчислювати декартів добуток таблиць. Наприклад, декартів добуток двох таблиць з десятками тисяч рядків у кожній обчислюватиметься протягом кількох годин, а обсяг кінцевої таблиці буде вимірюватися сотнями гігабайтів!