Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_ОБД.doc
Скачиваний:
8
Добавлен:
05.03.2016
Размер:
200.19 Кб
Скачать

Порядок виконання роботи

  1. Cтворити базу даних.

  2. Реалізувати таблиці БД з визначеними типами полів.

  1. Заповнити таблиці даним.

  2. Всі вище перераховані операції повинні бути відображені у звіті.

Оформлення звіту:

  1. Титульний лист.

  2. Мета роботи.

  3. Порядок виконання.

  4. Таблиці та малюнки (screen-shot), що відображають процес створення бази даних.

  5. Висновки.

Контрольні питання

  1. Оператори CREATE DATABASE та CONNECT DATABASE.

  2. Оператори створення та модифікації таблиць.

  3. Оператор заповнення таблиць даними

  4. Особливості використання СКБД FireBird.

Список рекомендованої літератури

  1. В.В. Пасічник, В.А. Резніченко. Організація баз даних та знань. – К:. Видавнича група BHV, 2006. – 384 с.

  2. К.Дж. Дейт. Введение в системы баз данных. Киев, «Вильямс», 2001;

  3. Д. Ульман, Д. Уиндом. Введение в системы баз данных. Москва, Лори, 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-з'єднання, а не обчислювати декартів добуток таблиць. Наприклад, декартів добуток двох таб­лиць з десятками тисяч рядків у кожній обчислюватиметься протягом кількох го­дин, а обсяг кінцевої таблиці буде вимірюватися сотнями гігабайтів!

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]