You are on page 1of 33

ЛАБОРАТОРНА РОБОТА 1

з дисципліни “Організація баз даних”

СТВОРЕННЯ, ВИДАЛЕННЯ СТРУКТУР БАЗ ДАНИХ ТА


НАПОВНЕННЯ ДАНИМИ В INTERBASE

1.1 МЕТА РОБОТИ


1. Вивчення засобів InterBase.
2. Створення бази даних за допомогою IB Expert.
3. Додавання записів. Додавання даних у вказані поля. Додавання повного
рядку даних.
4. Оновлення даних.
5. Видалення даних.

1.2 ТЕОРЕТИЧНІ ВІДОМОСТІ


Теоретичні відомості нижче з урахуванням різниці у діалектах Access і
InterBase.

1.2.1 Створення таблиць


Таблиця на мові SQL (сикуел) створюється за допомогою команди
CREATE TABLE, що має наступний синтаксис:
CREATE TABLE Ім’яТаблиці
[(Ім’яСтовпця ТипДаних [(Довжина)] [,...])];
Після слів CREATE TABLE одним словом вказується ім’я таблиці, потім
слідують список описів її стовпчиків у круглих дужках. Описи стовпчиків
відокремлюються символом кома. Угода синтаксису – у квадратних дужках
показані необов’язкові елементи команди: Довжина (даних першого стовпця) та
“,” з наступним ім’ям Стовпця. У верхньому регистрі набрані службові слова
SQL.
Наприклад, у базі даних CONCORDANCE необхідно побудувати дві
таблиці. Перша таблиця для зберігання відомостей про музикальні альбоми,
MUSIC, буде містити п’ять стовпців, а друга, TRACKS, для інформації про
окремі композиції альбомів - чотири. Для побудови таблиці MUSIC достатньо
виконати скрипт 1.1, таблицю TRACKS можливо створити скриптом 1.2.
Скрипт 1.1
CREATE TABLE MUSIC
(ID Autonumber, ARTIST Text (50), TITLE Text (50), FORMAT Text (50),
PUBLISHER Text (50)) ;
Скрипт 1.2
CREATE TABLE TRACKS
(ID Autonumber, MUSIC_ID Number, TRACK_TITLE Text (50),
TRACK_LENGTH Date/Time);
Більш детальніші відомості про синтаксис команди CREATE TABLE і
приклади її використання можна знайти в оперативній довідковій системі
Access, якщо адресувати Помощнику Office ключову фразу CREATE TABLE.
До побудови таблиць необхідно створити базу даних.

1.2.2 Додавання записів в таблицю


Команда INSERT INTO має декілька варіантів.
Часто команда INSERT INTO передбачає додавання запису в наявну
таблицю з поданням списку полів. Нижче (скрипт 1.3) наведена така
синтаксична форма:
Скрипт 1.3
INSERT INTO Ім’яТаблиці
(Ім’яПоля1 [, Ім’яПоля2, ...]) VALUES (Значення1 [, Значення2, ...]);
Після фрази INSERT INTO іде ім’я таблиці, за яким - список найменувань
полів у круглих дужках. Список може містити тільки ті поля, в які додаються
дані (якщо поле помічено ознакою обов’язкового заповнення, його ім’я
повинне бути у списку).
Наступний приклад (скрипт 1.4) - ілюстрація поповнення реєстру
музикальної колекції даними про нове придбання - компакт-диск Джонні Кеша.
Скрипт 1.4
INSERT INTO Music (Artist, Title, Format, Publisher)
VALUES ('Johnny Cash', 'JOHNNY CASH AT FOLSOM PRISON AND SAN QUENTIN',
'CD', 'Columbia');
Після виконання команди в таблицю MUSIC буде доданий запис з
наступними значеннями полів:
Artist = 'Johnny Cash', TITLE = 'JOHNNY CASH AT FOLSOM PRISON AND SAN
QUENTIN', FORMAT=`CD`, PUBLISHER = 'Columbia' .

Ім’я поля первинного ключа ID і його значення не вказані, тому що це поле


має ознаку автоматичного заповнення, AutoNumber.
Вживається варіант команди INSERT з поданням повного списку значень
полів нового запису (скрипт 1.5). Як символічне позначення величини поля
AutoNumber використовується літерал 0; Access самостійно обчислить і
збереже у полі AutoNumber необхідне значення:
Скрипт 1.5
INSERT INTO Music
VALUES (0, 'Jewel Kilcher', 'PIECES OF YOU`,'CD', 'Atlantic')
Діалект SQL в Access припускає формат команди INSERT з параметрами і
з динамічним інтерактивним уставленням їх значень. Параметри розміщуються
у списку VALUES і позначаються іменами у квадратних дужках. Завдання
параметрів забезпечується в обох розглянутих вище варіантах INSERT - з
списком полів і без нього.
Єдина синтаксична відмінність параметричної версії INSERT - наявність
аргументів у квадратних дужках. Приклади демонструють використання
параметрів у варіантах INSERT – з повним рядком даних (скрипт 1.6) і з
наданням списку імен полів (скрипт 1.7).
Скрипт 1.6
INSERT INTO Music
VALUES 0, [Ім’я_Прізвище], [Назва], [Формат], [Компанія])
Скрипт 1.7
INSERT INTO Music
(Artist, Title, Format, Publisher) VALUES ([Ім’я_Прізвище], [Назва], [Формат],
[Компанія])
Команда INSERT скрипта 1.6 має п’ять параметрів. При її виконанні
система послідовно відкриє п’ять діалогових вікон з запитами на уставлення
відповідних значень. Зверніть увагу - число параметрів з літеральним
значенням 0 для поля ID дорівнює числу стовпчиків в таблиці MUSIC.
У команді INSERT скрипту 1.7 вказані тільки ті поля, які заповнюються
інтерактивно.
У межах однієї команди INSERT можливо задавати літеральні значення і
параметри в будь-яких сполученнях. Наприклад, наперед відомі значення, що
слід зберегти у більшості полів, і можемо вказати параметри тільки для одного
або двох.

1.2.3 Зміни змісту полів


Команда UPDATE дозволяє одночасну зміну (оновлення) змісту полів
однієї або декількох записів. Основний варіант забезпечує це для всіх
стовпчиків таблиці, розширена версія дає можливість вказати набір записів за
допомогою речення WHERE. Наведемо синтаксис команды UPDATE:
UPDATE Ім’яТаблиці
SET Ім’яПоля1 = Значення1 [,Ім’яПоля2 = Значення2,…][WHERE Речення]
Речення SET має хоча б один предикат виду Ім’яПоля = Значення і їх
кількість не обмежена. Речення WHERE необов’язкове. Скрипт 1.8 демонструє
приклад застосування команды UPDATE для зміни тільки тих записів таблиці
MUSIC, в яких у полі Publisher є значення 'Columbia'.
Скрипт 1.8
UPDATE Music SET Publisher = 'Columbia Records'
WHERE Publisher = 'Columbia';
1.2.4 Команда ALTER TABLE
За допомогою команди ALTER TABLE можливо модифікувати таблицю
після її створення командою CREATE TABLE (додавати і видаляти стовпчики,
міняти визначення стовпчиків, додавати і видаляти обмеження). Синтаксис
команди:
ALTER TABLE Ім’яТаблиці {ADD{COLUMN Ім’я Стовпчика Тип даних
[(розмір)][NOT NULL]…[CONSTRAINT індекс]
ALTER COLUMN Тип поля[(розмір)]
CONSTRAINT Составний Індекс}
DROP {COLUMN поле CONSТRAINT Ім’яІндекса}}
Скрипт 1.9
ALTER TABLE Music MODIFY (FORMAT (Text (40)))
У стовпчику FORMAT зменшується довжина рядка з 50 до 40.
1.2.5 Видалення даних
Для видалення записів застосовується DELETE, синтаксис команди такий:
DELETE FROM Ім’яТаблиці [WHERE Речення]
Якщо речення WHERE відсутнє, всі рядки таблиці видаляються - таку
форму оператора застосовують обережно, а тому рідко. Якщо речення WHERE
використовує предикат Речення, рядки, що задовольняють умові цього Речення,
видаляються.
Запису у таблиці MUSIC відповідають декілька рядків таблиці TRACKS.
При видаленні записів однієї таблиці часто слід потурбуватись про виключення
логічно пов’язаних записів з других таблиць. Те ж не обходить операцій зміни
даних. Тому у багатьох системах управління базами даних забезпечуються
процедури каскадного видалення і оновлення інформації.
Видалення таблиць виконує команда DROP TABLE з синтаксисом
DROP TABLE Ім’я_таблиці [RESTRICT  CASCADE].
Якщо на таблицю є посилання уявлення або обмеження, та використана
опція RESTRICT, оператор DROP поверне помилку. Наявність опції CASCADE
дає можливість видалення таблиці і всіх уявлень і обмежень, що посилаються
на таблицю.
Щоб не допустити випадку порушення даних, SQL спочатку вимагає
видалення записів. Синтаксис для видалення порожньої таблиці:
DROP TABLE Ім’я_таблиці;
Первинний ключ (Primary Key) – це один або декілька стовпчиків таблиці,
значення яких однозначно визначають запис таблиці. Первинний ключ
одночасно є і головним індексом таблиць.
Зовнішній ключ (Foreign Key) встановлює правило, у відповідністью з
яким у якості значень одного або декількох полів однієї таблиці
використовуються тільки комбінації величин первинного ключа іншої таблиці.

1.3 ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ


В СУБД InterВase створити таблиці та інші об’єкти БД, вказані у
варіанті завдання:
1. Для цих таблиць визначити всі обмеження цілісності.
2. Перевірити правильність роботи створених обмежень.
3. Заповнити кожну з таблиць 10-20 записами (якщо для генерації
первинного ключа визначена послідовність, то при вставці даних
необхідно її використовувати).
4. Навести приклади вставки, зміни та видалення інформації, що
демонструють роботу заданих обмежень.
Варіанти лабораторної роботи 5
Створити таблиці з сутностями, вказаними у варіантах:
Варіант 1. ДЕТАЛІ, ЗБУТ, БРИГАДИ.
Варіант 2. ВКЛАДНИКИ, РАХУНКИ, ДОВІДНИК.
Варіант 3. МОДЕЛІ, МАТЕРІАЛ, ЗБУТ.
Варіант 4. ЛІТАКИ, ЕКІПАЖИ, ПОГОДА.
Варіант 5. АБОНЕНТИ, ДОВІДНИК, ЗВ’ЯЗКІВЦІ.
Варіант 6. ПЕРЕДПЛАТНИКИ, ВИДАННЯ, ПОШТА.
Варіант 7. СТУДЕНТИ, ЛАБОРАТОРІЇ, РОЗКЛАД.
Варіант 8. ВОДІЇ, ВАНТАЖІ, ЗАМОВЛЕННЯ.
Варіант 9. БУДМАТЕРІАЛИ, ДОСТАВКА, ВИКОРИСТАННЯ МАТЕРІАЛІВ.
Варіант 10. НАДОЇ, ФУРАЖ, РЕЖИМ.
Варіант 11. РОБІТНИКИ, БУХГАЛТЕРІЯ, ТАБЕЛЬНИК.
Варіант 12. ДЕРЖАВИ, ЕКОНОМІЧНИЙ СТАН, РЕСУРСИ.
Варіант 13. АБІТУРІЄНТИ, ФАКУЛЬТЕТИ, ІСПИТИ.
Варіант 14. ШАХИСТИ, ТУРНИРНА ТАБЛИЦЯ, ГОНОРАР.
Варіант 15. ТОВАРИ, ПОКУПЦІ, ПРОДАВЦІ.
Варіант 16. РИБОЛОВНА БРИГАДА, РЕСУРСИ, ЗБУТ.
Варіант 17. СЛУЖБОВЦІ, МОВИ ПРОГРАМУВАННЯ, ВОЛОДІННЯ
МОВАМИ ПРОГРАМУВАННЯ.
Варіант 18. КНИГИ, ЧИТАЧІ, ВИДАНІ КНИГИ.
Варіант 19. ГРУПИ, СТУДЕНТИ, ОЦІНКИ.
Варіант 20. КНИГИ, АВТОРИ, АВТОРИ КНИГИ.
Варіант 21. ПРЕДМЕТИ, ВИКЛАДАЧІ, ВИКЛАДАЧІ, ЩО ВЕДУТЬ
ПРЕДМЕТИ.
Варіант 22. ПРЕДМЕТИ, ГРУПИ, ГРУПИ, ЩО ВИВЧАЮТЬ ПРЕДМЕТ.
Варіант 23. ПОКУПЦІ, ТОВАРИ, ЗАМОВЛЕННЯ.
Варіант 24. КІМНАТИ, СТУДЕНТИ, СТУДЕНТ, ЩО МЕШКАВ.
Варіант 25. КОМП’ЮТЕРИ, СТУДЕНТИ, СТУДЕНТИ, ЩО ПРАЦЮВАЛИ ЗА
КОМП’ЮТЕРОМ.
Варіант 26. ДІАГНОЗ, ХВОРИЙ, ХВОРОМУ НАДАНИЙ ДІАГНОЗ.
Варіант 27. РЕГІСТРАТУРА, ХВОРІ, ЛІКАРІ.
Варіант 28. СПІВРОБІТНИКИ, ВІДДІЛ КАДРІВ, НАВЧАННЯ.

1.4 МЕТОДИКА ВИКОНАННЯ


1.4.1. Створення нової бази
За допомогою інструментального засобу під назвою IB Expert виконується
створення, редагування і робота з базами даних. Загальний інтерфейс IB Expert
побудований так, щоб дозволити звичайному користувачу створювати та
працювати з базами даних.
Для створення нової бази необхідно ознайомитись з основними
можливостями IB Expert.
Головне діалогове вікно IB Expert має такий вигляд:

1 3
2

де 1 – панелі інструментів;
2 – вікно баз даних та їх об’єктів;
3 – робоче поле.
Створення бази даних проходить в декілька етапів.
Перш за все на панелі інструментів обирається опція База даних, в ній –
Создать базу.

В центрі екрану з’явиться вікно “Create Database”, що має наступні поля:

3 4 2 1

де 1 – місцезнаходження файлу бази даних;


2 – діалект (слід обрати перший діалект);
3 – ім’я користувача (слід вказати SYSDBA);
4 – пароль (слід вказати masterkey).

При натисканні відкриється папка IB Expert, в якій перелічені всі


директорії, що в ній знаходяться.
В полі Имя файла потрібно вказати ім’я файлу, що створюється і
натиснути Открыть. В директорії IB Expert створиться файл Вашої бази даних.
Розширення файлу *.gdb присвоюється автоматично.
З’явиться вікно Зарегистрировать базу данных, де знову виведеться
введена Вами інформація про базу даних: шлях до бази даних (поле Database
file), ім’я користувача (поле User Name) і пароль (поле Password).
Далі в цьому ж вікні потрібно вказати назву бази даних в полі Database
Alias. Назву бази даних можна вводити російськими літерами, але доцільно
використати латинський шрифт, оскільки надалі всі об’єкти бази даних
потрібно буде вводити тільки англійською. Тому для збереження коректності
назв та їх сприйняття рекомендується назвати базу англійською.

Вказавши назву бази, натиснути для перевірки. Якщо всі дії


виконані правильно, з’явиться вікно підтвердження.

Тепер потрібно натиснути ОК, а в вікні Зарегистрировать базу данных –

для реєстрації.
У вікні баз даних та їх об’єктів (крайнє ліве вікно) з’явиться назва бази
даних. Натиснути двічі на ній лівою кнопкою миші. З’явиться перелік об’єктів
бази.
1.4.2 Створення об’єктів бази даних
Об’єкти в Interbase - таблиці, генератори, тригери, процедури тощо.
Для створення таблиць потрібно виконати наступні дії.
Обирається об’єкт бази даних Таблицы і, натискнувши праву кнопку
миші, отримується перелік дій. Тут потрібно обрати Новый объект.

На сірому полі з’явиться вікно нової таблиці.


Дане вікно також можна умовно поділити на зони для зручності:
1 2 3 4 5 6

де 1 – панель інструментів;
2 – закладки вікна. Формування таблиці здійснюється в закладці Поля;
3 – поле первинного ключа;
4 – назва стовпчика таблиці;
5 – тип даних, що буде використовуватись при заповненні таблиці;
6 – назва нової таблиці.
В цьому вікні необхідно заповнити наступні поля:
1. В полі назви нової таблиці (New table name) потрібно вказати назву
таблиці латинськими літерами без використання пробілів. Замість пробілів
можна використовувати нижнє підкреслення.

2. Перелік стовпчиків починається з визначення чи є даний стовпчик


первинним ключем таблиці (зазвичай саме перший стовпчик є первинним
ключем). Якщо так, потрібно двічі клацнути лівою кнопкою мишки на полі

первинного ключа. З’явиться зображення ключа.


3. Далі вказується назва стовпчика латинськими літерами, замінюючи
пробіли підкресленнями.
4. Вказується тип даних. Цей тип слід обрати з випадаючого меню.
При необхідності потрібно вказати довжину в наступному за полем Домен
полі Длина.

Деякі типи даних автоматично встановлюють довжину, тому необхідно


уважно за цим слідкувати.
5. Після введення параметрів першого стовпчика на панелі інструментів

натиснути кнопку компіляції . Якщо всі дії були виконані коректно,


з’явиться вікно операцій:
.

Впевнившись у правильності виконання, слід натиснути .


6. Створення наступного стовпчика відбувається таким чином:
На виділеному полі щойно створеного стовпчика правою кнопкою мишки
викликати перелік операцій і обрати Новое поле

.
З’явиться вікно додавання стовпчика

.
В різних полях цього вікна необхідно ввести:
 Назву стовпчика (поле Column)

;
 Тип даних (закладка Raw Data Type)

.
 Параметр обов’язковості атрибуту або первинний ключ
(поле Not Null)

.
.
Якщо введення параметрів нового стовпчика пройшло успішно, з’явиться
вікно підтвердження змін:

.
Далі натиснути і почати введення параметрів нового стовпчика
за знайомою схемою (починаючи з п.6).
Якщо дані введенні невірно, з’явиться вікно помилки, де буде вказана
операція, яка не виконалась через помилку, текст операції мовою SQL, назва
помилки та її знаходження в тексті з точністю до символу.

В такому разі слід натиснути і виправити помилку в вікні


створення нового об’єкту.

.
Після створення всіх стовпчиків та введення їх параметрів потрібно
перейти до заповнення таблиці даними.
Для цього в закладках вікна знаходимо Данные і обираємо цю закладку.
.
Введення даних відбувається послідовно, відповідно до черговості
стовпчиків в одному кортежі. Тільки після заповнення одного рядку можна
переходити до наступного. Щоб заповнити комірку потрібною інформацією
потрібно двічі натиснути на комірці лівою кнопкою миші.

.
Після введення першого кортежу даних перевіряємо правильність запису і

натискаємо кнопку підтвердження транзакції , яка знаходиться на панелі


інструментів:

.
З’явиться вікно запиту щодо підтвердження змін. Слід натиснути Yes.

.
Щоб перейти до заповнення наступного рядка потрібно натиснути на
панелі інструментів кнопку вставки наступного кортежу на панелі
інструментів редагування:
.
З’явиться пустий кортеж для заповнення його інформацією.

Після заповнення цього кортежу і підтвердження змін ( ) новий кортеж


перенесеться в таблиці на те місце, що відповідає порядку створення нової
інформації.

.
В деяких випадках необхідно створити генератор послідовності в
таблиці. Це можна виконати багатьма способами. Найпростіший з них – під час
створення таблиці.
Для цього потрібно відкрити таблицю, в якій створюється генератор, і,
натиснувши праву кнопку миші на об’єкті, де створюється генератор, вибрати
Изменить поле.

З’явиться вікно редагування, в закладках якого потрібно вибрати


Autoincrement, в якому обрати Generator і відмітити Create generator.
.
Новому генератору автоматично присвоїться назва і значення, що було
останнім (в даному випадку – 0).

.
Далі обирається Trigger і відмічається Create trigger:

Підтверджується створення генератора і тригера: . З’являється

вікно підтвердження, де потрібно натиснути вже знайомий .


Генератор і тригер генератору створені.
Якщо внесена до таблиці інформація невірна або просто потребує зміни,
існує можливість редагування таблиці.
Це відбувається за знайомою вже схемою. Якщо тип даних, довжина чи
обов’язковість атрибуту повинні бути змінені в певному стовпчику, то,
обравши необхідну таблицю, в ній закладку Поля, потрібно правою кнопкою
миші викликати перелік операцій і обрати Изменить поле.

.
Якщо невірно був заданий тип даних – це легко виправити. Після
виконання описаних вище дій з’явиться вікно редагування
.

Для зміни типу даних потрібно в цьому вікні натиснути , після


чого з’явиться вікно, де вільно можна змінити тип даних.

.
Для роздрукування даних в IB Expert передбачений спеціальний режим.

.
Коли потрібно роздрукувати інформацію певної таблиці, у вікні
заповнення таблиці інформацією в нижній частині вікна знаходиться перелік

форм представлення даних. Тут потрібно обрати .


Вигляд даних прийме вигляд, який буде зручно роздрукувати.

Для того, щоб роздрукувати метадані (параметри таблиці), на панелі


інструментів потрібно знайти кнопку роздрукування мета даних:
У вікні, що з’явиться обрати .

.
Роздруковані метадані будуть мати вигляд:
1.5 ЗМІСТ ЗВІТУ
Розділ “Результати роботи” повинен містити скрипти і результати запитів.

1.6 КОНТРОЛЬНІ ПИТАННЯ


1. Напишить команду для створення таблиці Собаки з полями Номер,
Прізвісько, Порода, Стать (два значення), Масть, ....
2. Покажіть процес створення таблиці.
3. Покажіть процес створення первинного ключа.
4. Напишіть команду додавання, видалення рядка, поля.
5. Покажіть процес додавання, видалення рядка, поля.
ЛАБОРАТОРНА РОБОТА 6
СТВОРЕННЯ УЯВЛЕНЬ

6.1 МЕТА РОБОТИ


Вивчення засобів захисту даних.

6.2 ТЕОРЕТИЧНІ ВІДОМОСТІ


6.2.1 Створення уявлень
Уявлення (VIEW) – об’єкт даних, який не містить жодних даних його
власника. Це - тип таблиці, чий зміст вобирається з інших таблиць за
допомогою виконання запиту. Оскільки значення в цих таблицях змінюються,
то автоматично, їх значення можуть бути показані уявленнями.
Уявлення працюють у запитах і операторах DML так само як і основні
таблиці, але не містять ніяких власних даних.
Уявлення створюється командою CREATE VIEW з синтаксисом
CREATE VIEW name [(view_col [, view_col ...])]
AS <select> [WITH CHECK OPTION];

Опція view_col гарантує, що уявлення завжди містить ті ж самі стовпчики


і, що стовпчики мають ті ж самі, визначенні уявленнями, ім’я. Ім’я стовпчиків
уявлення відповідають порядку і кількості стовпчиків перерахованих у
<select>. Ім’я стовпчиків повинні бути унікальними серед усіх імен стовпчиків
в уявленні. Якщо уявлення містить стовпчики, які основані на виразах тоді
потрібен view_col. По умовчанню, імена стовпчиків беруться з базової таблиці.

Визначення view_col може містити лише один чи більше стовпчиків, які


засновані на виразі, який комбінує результати двох стовпчиків. Вираз повинен
повертати поодиноке значення і не повинно повертати масив чи масив
елементів. Якщо уявлення включає вираз view_col, опція обов’язкова.

Оператор SELECT не повинен включати речення ORDER BY.


WITH CHECK OPTION запобігає операції INSERT чи UPDATE на
модифікуємому уявленні, якщо INSERT чи UPDATE порушує умови пошуку,
визначені в реченні WHERE в <select>. WITH CHECK OPTION не
використовується в уявленнях, призначених тільки для читання.

Уявлення модифікуємо якщо:


 воно підмножина поодинокої таблиці чи іншого модифікуємого уявлення;
 всі стовпчики базової таблиці, які виключенні із визначення уявлення,
допускають значення NULL;
 інструкція SELECT уявлення не містить підзапити, предикат DISTINCT,
речення HAVING, агрегуючі функції, об’єднання таблиць, визначені
користувачем функції чи збереженої процедури.
Уявлення тільки для читання може бути модифіковане при використанні
визначених користувачем довідкових обмежень, тригерів та унікальних
індексів.
Поля уявлень часто мають імена, які отримані прямо з імен полів основної
таблиці. Це зручно. Однак, іноді потрібно постачати ваші стовпчики новими
іменами:
- коли деякі стовпчики є вивідними, і тому не мають імен;
- коли два чи більше стовпчика під час об’єднання мають ті ж імена,
що і в їх базовій таблиці.
Імена, які можуть стати іменами полів, наводяться у круглих дужках ( ),
після імені таблиць. Вони не будуть запитані, якщо співпадають з іменами
полів запитуванної таблиці. Тип даних та розмір цих полів буде відрізнятися від
запитуваних полів, котрі "передаються" в них. Зазвичай, не вказують нові імена
полів, але якщо це зроблено, необхідно робити це для кожного поля в уявленні.

Наступний скрипт створює модифіковане уявлення:

CREATE VIEW SNOW_LINE (CITY, STATE, SNOW_ALTITUDE)


AS
SELECT CITY, STATE, ALTITUDE
FROM CITIES
WHERE ALTITUDE > 5000;

Наступний скрипт для створення уявлення використовують вкладені


запити:

CREATE VIEW RECENT_CITIES


AS
SELECT STATE, CITY, POPULATION
FROM CITIES
WHERE STATE IN
(SELECT STATE
FROM STATES
WHERE STATEHOOD > "1-JAN-1850");

В модифікованому уявленні WITH CHECK OPTION запобігає будь-яким


вставкам чи модифікацій через уявлення, котрі не задовольняють реченню
WHERE в інструкціїї CREATE VIEW SELECT:

CREATE VIEW HALF_MILE_CITIES


AS
SELECT CITY, STATE, ALTITUDE
FROM CITIES
WHERE ALTITUDE > 2500
WITH CHECK OPTION;

6.2.2 Модифікація уявлень

Речення WITH CHECK OPTION в попередньому уявленні, запобігло б


наступній вставці:
INSERT INTO HALF_MILE_CITIES (CITY, STATE, ALTITUDE)
VALUES ("Chicago", "Illinois", 250);

З іншого боку, наступний UPDATE був би вирішений:

INSERT INTO HALF_MILE_CITIES (CITY, STATE, ALTITUDE)


VALUES ("Truckee", "California", 2736);

Речення WITH CHECK OPTION не допускає модифікацій через уявлення,


котрі змінюють значення рядка, так що уявлення не зможе відшукати його:

UPDATE HALF_MILE_CITIES
SET ALTITUDE = 2000
WHERE STATE = "NY";
Також можна об’єднати уявлення з іншими таблицями, базовими
таблицями чи уявленнями.
Наступна інструкція створює уявлення, котре об’єднує дві таблиці і тому
використовується тільки для читання:
CREATE VIEW PHONE_LIST
AS
SELECT
EMP_NO, FIRST_NAME, LAST_NAME, PHONE_EXT, LOCATION,
PHONE_NO
FROM EMPLOYEE, DEPARTMENT
WHERE EMPLOYEE.DEPT_NO = DEPARTMENT.DEPT_NO;
6.2.3 Видалення уявлень

Інструкція DROP VIEW дозволяє створювачу уявлення редставления


видалити певні уявлення із бази даних, якщо уявлення не використовується в
інших уявленнях, збереженних процедурах чи визначенні CHECK обмеження.
Уявлення може бути видалено його створювачем чи користувачем SYSDBA.
Синтаксис
DROP VIEW name;
де name – ім’я існуючого уявлення.

6.3 ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ


1. Створити уявлення для таблиць, створених у лабораторній роботі №5,
згідно варіанту.
2. Створити уявлення для двох таблиць, створених у лабораторній роботі
№5.
3. Модифікувати уявлення п 1.
4. Перевірити виконання модифікацій п.3.
5. Згрупувати, об’єднати уявлення.
6. Створити уявлення_тільки_для читання, перевірити дію обмеження
“тільки для читання”.
7. Видалити уявлення, за вказівкою викладача.

6.4 МЕТОДИКА ВИКОНАННЯ


Методика виконання данної лабораторної роботи подібна до методики
виконання лабораторної роботи №5.

6.5 ЗМІСТ ЗВІТУ


Розділ “Результати роботи” повинен містити скрипти і результати
створення і модифікації уявлень.
6.6 КОНТРОЛЬНІ ПИТАННЯ:
1. Створіть уявлення, яке показує всіх замовників з самою високою
оцінкою.
2. Створіть уявлення, котре показує номер продавця в кожному місті.
3. Створіть уявлення, котре показує усередненний та загальний порядки для
кожого продавця після його імені. Пропонується, що всі імена - унікальні.
4. Створіть уявлення, котре показує кожного продавця з багаточисельними
замовниками.
5. Чи можна видалити рядок даних із уявлення, створенного на основі
даних декількох таблиць?

You might also like