База даних постачальників, деталей і проектів (значення для прикладу) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

База даних постачальників, деталей і проектів (значення для прикладу)



S   (S#|, SNAME|, STATUS|, CITY|)

PRIMARY| KEY| (S#|)

P    (P#|, PNAME|, COLOR|, WEIGHT|, CITY|)

PRIMARY| KEY| (P#|)

J    (J#|, JNAME|, CITY|)

PRIMARY| KEY| (J#|)

SPJ | (S#|, P#|, J#|, OTY|)

PRIMARY| KEY| (S#|, P#|, J#|)

FOREIGN| KEY| (S#|) REFERENCES| S

FOREIGN| KEY| (P#|) REFERENCES| P

FOREIGN| KEY| (J#|) REFERENCES| J

S (Suppliers – Постачальники)

S# SNAME STATUS CITY
S1 Сміт 20 Лондон
S2 Джонсонс 10 Париж
S3 Браун 30 Париж
S4 Кларк 20 Лондон
S5 Адамс 30 Афіни

P (Parts – Деталі)

P# PNAME COLOR WEIGHT CITY
PI гайка червоний 12 Лондон
P2 болт зелений 17 Париж
P3 гвинт синій 17 Рим
P4 гвинт червоний 14 Лондон
P5 кліщі синій 12 Париж
P6 ключі червоний 19 Лондон

J (Projects –Проект и)

J# JNAME CITY
Jl Sorter Париж
J2 Display Рим
J3 OCR Афіни s
J4 Console Афіни
J5 PAID Лондон
J6 EDS Осло
J7 Таре Лондон

SPJ (Suppliers/Parts/Projects Постачання деталей до проектів)

S# P# J# QTY
SI P1 Jl 200
S1 P1 J4 700
S2 P3 Jl 400
S2 P3 J2 200
S2 P3 J3 200
S2 P3 J4 500
S2 P3 J5 600
S2 P3 J6 400
S2 РЗ Л 800
S2 P5 J2 100
S3 P3 Jl 200
S3 P4 J2 500
S4 P6 J3 300
S4 P6 J7 300
S5 P2 J2 200
S5 P2 J4 100
S5 P5 J5 500
S5 P5 J7 100
S5 P6 J2 200
S5 PI J4 100
S5 РЗ J4 200
S5 P4 J4 800
S5 P5 J4 400
S5 P6 J4 500

Частина III. Управління реляційною базою даних

Тема 5. Реляційна алгебра і реляційне числення.

З  ці єї тем и передбачається проведення трьох практичних занять.

На цих заняттях основну увагу приділимо третій частині моделі даних – що управляє, тобто вона визначає типи допустимих операцій з даними. Для цього використовують різні мови: процедурні і непроцедурні. Основна увага приділяється реляційній алгебрі і реляційному численню, які запропоновані Коддом (1971). Це формальні, а не дружні користувачеві мови. Вони використовуються як основа для мов управління більш високого рівня.

Після цих занять, студенти повинні в міти:

□ Застосовувати операції реляційної алгебри для створення нових реляційних таблиць з вже існуючих.

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

□ Формулювати конкретні типи запитів на обох мовах.

План

І. Основні теоретичні питання

1. Реляційна алгебра:

a. Множинні операції: об'єднання, перетин, різниця, добуток.

b. Спеціальні операції: вибірка, проекція, з'єднання, ділення.

2. Реляційне числення:

a. Цільовий список, визначальний вираз.

b. Квантор існування

c. Квантор загальності

ІІ. Практична частина.

2.1. Питання на повторення.

2.2. Вправи і.задачі

ІІІ. Словник термінів до теми.

І V. Додаток

Література

[5] гл. 7

[6] гл.3,

[10] гл.6

1.Питання на повторення

1. 1. Поясн і т ь своїми словами значення термінів:

a. Реляційна алгебра

b. Непроцедурний

c. Реляційно повний

d. Сумісні по типу

e. Перетин

f. Віднімання

g. Проектування

h. Природне з'єднання

i. Тетаз'єднання

j. Визначальний вираз

k. Ділення

l. Квантор загальності

1. 2. Опишіть, в яких випадках ви могли б скористатися кожн ою з наступних операцій реляційної алгебри:

a. Вибірка

b. Створення проекції

c. З'єднання

d. Привласнення

e. Віднімання

f. Перетин

g. Ділення

1. 3. Поясн і т ь функції кожного з наступних елементів формулювання запиту в реляційному численні:

а.   Цільовий список

b.   Визначальний вираз

с.    Булеві операції (і, або, не)

d.   Квантор існування

е.    Квантор загальності

1.4. Чому в реляційному численні не потрібний аналог операції привласнення реляційної алгебри?

1.5. На підставі вашого досвіду обговоріть твердження: «Недосвідченим користувачам простіше працювати з непроцедурною мовою, ніж з процедурною».

1.6. Обговоріть значення твердження про те, що реляційна алгебра і числення реляційно повні, а також що це означає для основаних на них комерційних СУБД.

1.7. Дайте визначення двох основних правил цілісності реляційної моделі та поясніть, чому необхідно їх використовувати.

 

2. Вправи і задачі

2. 1. Встанов і т ь відповідність між термінами і поясненнями до них:

1. різниця а. Дає ім'я таблиці
2. об'єднання b. Тетаз'єднання, засноване на рівності певних стовпців
3. процедурна мова  с. Список, який  задає атрибути таблиці рішення
4. квантор існування d. Мова, що забезпечує покрокове вирішення завдань
5. вибір e. Операція, що зв'язує таблиці
6. з'єднання f. Реляційна таблиця, отримана в результаті операції проектування
7. добуток g. Розширення природного з'єднання, що містить всі рядки обох таблиць
8. еквіз'єднання h. Створює декартовий добуток двох таблиць
9. зовнішнє з'єднання i. Створює теоретикомножинну різницю двох сумісних по типу таблиць
10. реляційне числення  j.Означає існування хоч би одного рядка, для якого виконана умова
11. привласнення k. Створює теоретикомножинне об'єднання двох  сумісних по типу таблиць
12. проекція l. Операція реляційної алгебри, що відбирає рядки таблиці на підставі деякої умови
13.цільовий список m. Непроцедурна мова виконання запитів

 

2.2. Перераховані нижче таблиці утворюють частину бази даних реляційної СУБД [6]:

Hotel (Hotel_No, Name, Address)

Room(Room_No, Hotel_No, Type, Price)

Booking|(Hotel_No, Guest_No, Date_From, Date_To|, Room_No)

Guest|(Guest_No,Name,Address)

Тут таблиця Hotel містить відомості про готель, причому атрибут Hotel_No є її первинним ключем.

Таблиця Room містить дані про номери всіх готелів, а комбінація атрибутів (Hotel_No, Room_No) утворює її первинний ключ.

Таблиця Booking містить інформацію про бронювання готельних номерів; її первинним ключем є комбінація атрибутів (Hotel_No, Guest_No, Date_From).

Нарешті, таблиця Guest| містить інформацію про постояльців готелів, і її первинним ключем є атрибут Guest_No.

Напишіть вирази реляційної алгебри, що дозволяють виконати наступні запити:

а) перерахувати всі готелі;

б) перерахувати всі однокімнатні готельні номери вартістю менше 100 гривень за добу;

в) перерахуєте імена і адреси всіх постояльців;

г) складіть список вартості і типів всіх готельних номерів в готелі "Європа";

д) перерахуєте всіх постояльців готелю " Європа ";

е) приведіть інформацію про всі номери готелю " Європа ", включаючи імена постояльців, що знімають той або інший номер;

ж) приведіть інформацію (атрибути Guest_No, Name і Address) про всіх постояльців готелю " Європа ".

2.2.1. Для перерахованих вище запитів створіть еквівалентні команди в реля­ційному численні кортежів.

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

2.3. Користуючись даною реляційною схемою, визначіть, яка операція може бути використана для відповіді на дане питання [10]:

2.3.1. CUSTOMER(клієнти) { CUST ID, CUST_NAME, ANNUAL_REVENUE (щорічний річний дохід) }

SHIPMENT(вантаж) { SHIPMENT #, CUST_ID, WEIGHT(вага), TRUCK_# (перевізник), DESTINATION (місце призначення) }

Зовнішній ключ: CUST_ID REFERENCES CUSTOMER |

а. Які клієнти мають річний дохід понад 5 мільйонів доларів?

b. Як називається клієнт 433?

с. Який пункт призначення перевезення №3244?

d. Які вантажівки перевозили вантажі понад 40 кг. вагою?

e. Як називаються клієнти, що відправляли вантажі в Тулу, Росія?

f. У які пункти призначення компанії з річним доходом більше 1 мільйона доларів відправляли вантажі?

2.3.2. Для наступного набору запитів користуйтеся цією реляційною схемою:

 

CUSTOMER { CUST_ID, CUST_NAME, ANNUAL_REVENUE}

SHIPMENT { SHIPMENT #, CUST_ID, WEIGHT, TRUCK_#(номер вантажівки), DESTINATION(місце призначення)}

Зовнішній ключ: DESTINATION REFERENCES CITY (CITY_NAME)

 

TRUCK { TRUCK_#, DRIVER_NAME(водій) }

 

CITY { CITY NAME, POPULATION(населення) }

 

 За змістовним запитом скласти відповідні алгебраїчні вирази, необхідні для  виконання цього запиту:

a. Список всіх номерів вантажів понад 8 кг.

b. Назви клієнтів з річним доходом більше 10 мільйонів доларів.

c. Водій вантажівки №45.

d. Назви міст, що отримували вантажі понад 40кг вагою.

e. Назви і річні доходи клієнтів, які відправляли вантажі вагою понад 40кг.

f. Номери вантажівок, що перевозили вантажі вагою понад 40 кг.

g. Імена водіїв, що доставляли вантажі вагою понад.40 кг.

h. Міста, в які доставлялися вантажі для клієнтів з річним доходом понад 15 мільйонів гривень.

i. Клієнти з річним доходом більше 5 мільйонів гривень, які відправляли вантажі вагою менше 1 кілограма.

j. Клієнти з річним доходом більше 5 мільйонів гривень, які відправляли вантажі вагою менше 1 кілограма або відправляли вантажі в Ужгород.

k. до. Клієнти, чиї вантажі доставлялися водієм Клімовим.

l. Водії, які доставляли вантажі для клієнтів зрічним доходом більше 20 мільйонів доларів в міста з населенням більше 1 мільйона.

m. Клієнти, чиї вантажі перевозилися кожним водієм.

n. Міста, в які доставлялися вантажі кожного клієнта.

o. о. Водії, які доставляли вантажі в кожне місто.

p. р. Клієнти, які відправляли вантажі в кожне місто з населенням більше 500 000 (вказівка: спочатку створіть множину міст з населенням більше 500 000).

q. Дайте список клієнтів, чий річний дохід максимальний серед клиентів в базі даних, і їх річних доходів.

r. Дайте список клієнтів, всі вантажі яких важили більше 10 кг (вказівка: спочатку знайдіть клієнтів, у яких хоч би один вантаж важив менше 25 кг).

s. Дайте список клієнтів, що відправляли всі свої вантажі в одне місто (зауваження: це місто може бути одним і тим же для різних клієнтів, а може і не бути). (Вказівка: спочатку знайдіть клієнтів, які відправляли вантажі більш, ніж в одне місто.)

2.4. Сформулюйте запити задачі 2.3.2. в термінах реляційного числення.

2.5.. Задані відношення, що відображають предметну область, яка відноситься до діяльності спортивного клубу [8]:

СЕКЦІЯ { Код секції, Назва секції, Вартість занять в місяць, Прізвище тренера}

УЧАСНИКИ { Код учасника, ПІБ, Адреса, Учбовий заклад, Спортивний розряд}

ОПЛАТА {Номер квитанції, Дата оплати, Код секції, Код учасника}

Зовнішній ключ: Код секції REFERENCES СЕКЦІЯ

Зовнішній ключ: Код учасника REFERENCES УЧАСНИКИ

 

За допомогою мови реляційної алгебри виконайте наступні запити:

• отримати список секцій і відповідних прізвищ тренера;

• отримати список всіх учасників, які відвідують заняття в спортивному клубі з виведенням наступних полів: ФІО, Назва секції;

• отримати список всіх учасників, які відвідують заняття в групах по шейпінгу і плаванню;

• отримати список всіх учасників, які відвідують заняття у певного тренера;

• отримати список всіх учасників, які відвідують заняття у певного тренера і навчаються в деякому учбовому закладі;

• отримати список всіх учасників, які провели оплату протягом останнього тижня.

2.6 Задані відношення, що відображають наочну область, яка відноситься до діяльності квіткового магазина [8].

 

РОСЛИНА { Код рослини, Назва рослини, Країна зростання, Ціна}

ПРОДАЖ{Дата продажу, Код рослини, Кількість, Код організації, Оплата (так, немає)}

Зовнішній ключ: Код рослини REFERENCES РОСЛИНА

Зовнішній ключ: Код організації REFERENCES ПОКУПЕЦЬ

ПОКУПЕЦЬ { Код організації, Організація (включаючи приватну особу), банківські реквізити, Розрахунок (наявний, безготівковий)}

 

За допомогою мови реляційної алгебри виконати наступні запити:

a. визначити рослини з будьякої однієї країни;

b. визначити ціну рослин для даної країни зростання;

c. визначити загальну вартість рослин на конкретну дату продажу;

d. отримати список приватних осіб, які провели покупки рослин певних найменувань;

e. визначити організації, їх банківські реквізити, які не провели оплату.

 

2.7. Дайте рішення нижче наведених вправ для бази даних «База даних постачальників, деталей і проектів» (див. Додаток до теми 3):

а. в термінах реляційної алгебри;

b. в термінах реляційного числення.

 

2.7.1.Отримати повну інформацію про всі проекти.

2.7.2Отримати повну інформацію про всі проекти в Лондоні.

2.6.3. Отримати номери постачальників, які забезпечують проект J1.

2.7.4. Отримати всі відправки, де кількість знаходиться в діапазоні від 300 до 750 включно.

2.7.5. Отримати всі поєднання "кольору деталейміста деталей".

Зауваження. Тут і в подальших вправах термін "все" використовується в значенні "Все, що представлено зараз в базі даних", а не "всі можливі".

2.7.6. Отримати всі такі трійки "номера постачальниківномера деталейномера проектів", для яких постачальник, деталь і проект розміщені в одному місті.

2.7.7. Отримати всі такі трійки "номери постачальниківномери деталейномери про­ектів", для яких постачальник, деталь і проект не розміщені в одному місті.

2.6.8. Отримати всі такі трійки "номери постачальниківномери деталейномери проек­тів", для яких ніякі з двох, постачальників, деталей і проектів, що виводяться, не розміщені в одному місті.

2.7.9. Отримати номери деталей, що поястачаються постачальником в Лондоні.

.10.Отримати номери деталей, що поястачаються постачальником в Лондоні для проекту в Лондоні.

2.7.11. Отримати всі пари назв міст, для яких постачальник з першого міста забезпечує проект в другому місті.

2.7.12. Отримати номери деталей, що поястачаються для всіх проектів, що забезпечуються постачальником з того ж міста, де розміщений проект.

2.7.13. Отримати номери проектів, що забезпечуються принаймні одним постачальником не з того ж міста.

2.7.14. Отримати всі такі пари номерів деталей, які обидві поястачаються одночасно одним постачальником.

2.7.15. Отримати загальне число проектів, що забезпечуються постачальником S1.

2.7.16. Отримати загальну|спільну| кількість деталей Р1, що поястачаються постачальником S1.

2.7.17. Для кожної деталі, що поставляється для проекту, отримати номер деталі, номер проекту і відповідну загальну кількість.

2.7.18. Отримати номери деталей, що поястачаються для деякого проекту з середньою кількістю більше 320.

2.7.19. Отримати імена проектів, що забезпечуються постачальником S|.

2.7.20. Отримати кольори деталей, що поястачаються постачальником S1.

2.7.21. Отримати номери деталей, що поястачаються для якогонебудь проекту в Лондоні.

2.7.22.Отримати номери проектів, що використовують принаймні одну деталь, що є у постачальника S1.

2.7.23. Отримати номери постачальників, що постачають принаймні одну деталь, що постачається принаймні одним постачальником, який постачає принаймні одну червону деталь.

2.7.24. Отримати номери постачальників із статусом, меншим чим у постачальника S1.

2.7.25. Отримати номери проектів, місто яких стоїть першим в алфавітному списку міст.

2.7.26. Отримати номери проектів, для яких середня кількість де­талей Р1, що поястачаються, більше, ніж найбільша кількість будьяких деталей, що поястачаються для проекту J1.

2.7.28. Отримати номери постачальників, що постачають деталь Р1 для деякого про­екту в кількості, більшій середньої кількості деталей Р1 в постачаннях для цього проекту.

2.7.29. Отримати номери проектів, для яких не поястачаються червоні деталі постачальниками з Лондона.

2.7.30.Отримати номери проектів, що повністю|цілком| забезпечуються постачальником S1.

2.7.31. Отримати номери деталей, що поястачаються для лондонських проектів.

2.7.32. Отримати номери постачальників, що постачають одну і ту ж деталь для всіх проектів.

2.7.33. Отримати номери проектів, що забезпечуються принаймні всіма деталями постачальника S1.

2.7.34. Отримати всі міста, в яких розташований|схильний| принаймні один постачальник, одна деталь або один проект.

2.7.35. Отримати номери деталей, що поястачаються або лондонським постачальником, або для лондонського проекту.

2.7.36. Отримати пари "номер постачальниканомер деталі" такі, що даний постачальник не постачає дану деталь.

 

3. Проекти і професійні питання.

3.1. Порівняєте ваші рішення завдань 2.3 і 4, 2.7 a і 2.7 b попереднього розділу. Які запити простіше формулювати в реляційній алгебрі, а які — в ре­ляційному численні? У кожному випадку поясніть, чому ви визнали, що завдання простіше вирішується в тій або іншій мові. Яка з двох мов є кращою? Чому?

3.2. Прочитайте статті Кодда про реляційну алгебру і реляційне чис­лення| (Соdd, 1970, 1971а, 1971b). Напишіть роботу, що порівнює ці дві мови  і обговоріть, як Кодд довів їх логічну еквіва­лентність.

3.3. Напишіть програми на мові типу Паскаль або C++ для вирішення декількох завдань з пунктів З.1., 3.2., 7 на вибір. Порівняєте складність цих програм ізіз складністю рішень в реляційній алгебрі і реляційному численні.


Словник термінів до теми 5

Зовнішнє з'єднання Розширення природного з'єднання, що містить всі рядки обох таблиць

Вибір Операція реляційної алгебри, що відбирає рядки таблиці на підставі деякої умови

Визначальний вираз. Умова, яка може бути істинною або хибною, вживана до цільового списку; повинна бути виконаною для елементів множини рішення.

Ділення. Операція реляційної алгебри, що створює нову реляційну таблицю шляхом вибору рядка однієї таблиці, пов'язаної з кожним рядком іншої таблиці.

Природне з'єднання. Операція з'єднання, що зв'язує таблиці, коли загальні стовпці мають рівні значення.

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

Квантор існування Означає існування хоч би одного рядка, для якого виконана умова

Непроцедурна мова. Мова, що забезпечує засоби визначення того що потрібний, а не того, як це отримати.

Об'єднання Створює теоретикомножинне об'єднання двох сумісних по типу таблиць

Сумісні по типу (об'єднувальна сумісність). Дві або більш реляційні таблиці володіють еквівалентними (щодо їх кількості і областей). стовпцями.

Визначальний вираз. Умова в команді реляційного числення, що обмежує входження елементів у таблицю рішення.

Перетин. Операція реляційної алгебри, що створює теоретикомножинний перетин двох сумісних по типу реляційних таблиць.

Привласнення Дає ім'я таблиці

Проектування. Операція реляційної алгебри, що створює реляційну таблицю шляхом видалення стовпців з існуючої таблиці.

Проекція Реляційна таблиця, отримана в результаті операції проектування

Добуток Створює декартовий добуток двох таблиць

Процедурна мова    Мова, що забезпечує покрокове вирішення завдань

Різниця   Створює теоретикомножинну різницю двох сумісних по типу таблиць

Реляційна повнота. Логічні можливості, рівні можливостям реляційної алгебри або реляційного числення.

Реляційна алгебра. Процедурна мова маніпуляції реляційними таблицями.

Реляційне числення Непроцедурна мова виконання запитів

З'єднання Операція, що зв'язує таблиці

Тетаз'єднання. Операція з'єднання, що зв'язує таблиці, коли значення заданих стовпців знаходяться в певному відношенні.

 Третя нормальна форма (ЗНФ). Кожен детермінант є ключем.

Цільовий список Список, який задає атрибути таблиці рішення

Екві з'єднання Тетаз'єднання, засноване на рівності


Тема 6. М ова SQL

З цієї теми передбачається проведення двох практичних занять.

 

Існують дві форми мови SQL.

Інтерактивний SQL використовується для створення запитів і отримання результатів в інтерактивному режимі.

Вбудований   SQL – включає команди SQL, які вбудовані всередину програм, написаних на іншій мові програмування. Це дозволяє найефективніше розробляти додатки, які використовують дані, що зберігаються в базі.

На цих заняттях ми розглянемо можливості інтерактивної мови SQL в реляційних системах управління базами даних, включаючи деякі аспекти стандарту ANSI SQL92. Вона дозволяє визначати дані для збереження в базі даних, маніпулювати ними, виконувати запити до бази даних відповідно до деяких критеріїв відбору, управляти правами доступу до даних у розрахованому на багатокористувцькі середовища.

Тому, в мову SQL як складові частини входять:

· мова обробки даних (Data Manipulation Language DML)

· мова визначення даних (Data Definition Language, DDL)

· мова управління даними (Data Control Language, DCL).

 

 Після цього заняття ви зможете:

□ Пояснити основні факти історичного розвитку реляційних систем управління базами даних.

□ Визначити реляційну схему бази даних за допомогою SQL.

□ Сформулювати SQLзапити різної складності.

□ Ввести, відновити і видалити дані реляційної бази даних командами SQL.

□ Обговорити деякі аспекти вбудови команд SQL в традиційні мови програмування.

□ Визначити представлення даних і створити запити до них за допомогою SQL.

□ Пояснити деякі основні елементи в структурі інформаційної схеми SQL.

План.

І. Основні теоретичні питання

1. Визначення реляційної схеми і таблиць бази даних за допомогою SQL.

2. Маніпуляція даними: прості запити, вбудовані функції, групові запити.

3. Маніпуляція даними: багатотабличні запити.

4. Маніпуляція даними: підзапити.

5. Маніпуляція даними: операції реляційної алгебри.

6. Маніпуляція даними: операції зміни бази даних.

7. Визначення представлень даних.

ІІ. Практична частина

1. Питання на повторення.

2. Вправи і завдання.

Словник термінів до теми 6

Література

 [ 5 ] гл. 8

[ 6 ] гл. 1 3, 14

[ 10 ] гл.7

Питання на повторення

1. 1. Поясн і т ь своїми словами значення термінів:

a. Каталог

b. Власник схеми

c. Визначення області.

d. Символьні константи

e. Оператори порівняння

f. Булеві операції

g. Зовнішній запит

h. Корельований запит

i. Вбудована функція

j. DISTINCT

k. Фраза GROUP BY

l. INSERT.

m. DELETE.

n. Вбудований SQL

o. Базова мова.

p. Представлення даних

q. Специфікація запиту

r.  Інформаційна схема

s. Значення за умовчанням

t. Рекурсивний зовнішній ключ

u. Об'єднувальна сумісність

v. UNION

w. EXCEPT

x. NATURAL JOIN

1.2. Коротко розкажіть про ранні етапи розвитку SQL. Яка фірма першою запропонувала комерційну реалізацію SQL? Опишіть різні системи, в яких сьогодні доступний SQL. Які переваги і недоліки мови SQL?

1.3. Питання:

а.   Що є трьома головними компонентами мови SQL і які функції вони виконують?

b.  .Які команди SQL92 використовуються для визначення інформаційної схеми? Опишіть, як SQL може працювати з інформаційною схемою з метою отримання інформації про базу даних

с.    Як визначити ключ, що складається з одного або декількох стовпців? Як визначаються зовнішні ключі, значення за умовчанням? У чому різниця між обмеженнями на стовпець і обмеженнями на таблицю? Як визначати більш загальні обмеження?

d.   Перерахуєте десять різних типів даних SQL92.

1.4. Опишіть, що може стояти після кожного з наступних ключових слів оператора SELECT в SQL:

а.   SELECT

b.   FROM

с.    WHERE

d.   GROUP BY

e.    HAVING

f.        ORDER BY

1.5. Опишіть дію кожної з операцій в SQL:

a. UNION

b. INTERSECT

c. EXCEPT

d. NATURAL JOIN

e. JOIN USING

f.     JOIN ON

g. DELETE

1.6. Як специфікація запиту використовуються в кожній з операцій зміни даних?

1.7. Що таке представлення бази даних і як ним можна користуватися?

1.8. Які обмеження накладаються на використання узагальнювальних функцій в тілі оператора SELECT? Якими узагальнювальними функціями обробляються значення NULL?

1.9. Поясніть принципи роботи пропозиції GROUP BY. У чому полягає відмінність між пропозиціями WHERE і HAVING?

1.10. Які відмінності між підзапитом і з'єднанням? За яких обставин використання підзапитів стає неможливим?

 

Вправи і завдання

2.1.Встановіть відповідність між термінами і поясненнями до них:

 

 псевдонім а Містить основні або дійсні дані
JOIN ON b.Альтернативное ім'я, дане таблиці
 фраза FROM С. Перелічує  існуючі таблиці, на які посилається запит
 декартовий твір d. Набуває значення «істина», якщо результуюча множина не порожня
некорельований підзапит  e. Задає умову вибору рядків з вказаних таблиць
оператор EXISTS f. Статистична функція, що оперує безліччю рядків
визначення схеми g. Запит, що зачіпає тільки таблиці бази даних
обмежувальна умова  h. Операція, що змінює значення стовпців в рядку
фраза HAVING i. Набуває значення «істина», якщо результуюча множина порожня
join USING  j. Операція, що додає рядки
 простий запит до. Спарює кожен рядок однієї таблиці з кожним рядком іншої таблиці
 оператор NOT EXISTS  l. Його результати не залежать від зовнішнього запиту
 INTERSECT m. Опис бази даних для СУБД
оператор SELECT n. Накладає умови на групи
базова таблиця о.Призначений для вибірки інформації з таблиць бази даних
символи шаблону р. Може мати елементи, що повторюються
фраза WHERE q. Ідентифікує потрібні в запиті стовпці
INSERT r. Інформація, що описує базу даних
 мультимножина s. Запит усередині запиту
вбудована функція t. Правило, що обмежує значення даних в базі даних
метадані  u. Спеціальні символи, що заміщають невизначені рядки символів
UPDATE v. Операція, що зв'язує таблиці, якщо вибрані загальні стовпці мають рівні значення
підзапит w. Операція, що зв'язує таблиці, якщо виконана умова
фраза SELECT x. Операція, створююча теоретико множинний перетин двох таблиць

 

2.2.   Напишіть команди SQL, що визначають наступні області:

а.   Область величин ставок оплати, де елементи мають чотири знаки, два з яких після коми. Значення за умовчанням $6.00; значення не може бути менше $5.00 і більше $30.00.

b. Область дат, що містить дати з 1 січня 1980 до 1 січня 2000.

с. Область значень часу, в якій всі елементи від 8 ранку до 5 вечора.

 

2.3.Представлені нижче таблиці є частиною бази даних Готелі України, створеної в середовищі деякої реляційної СУБД (тема5, вправа 4):

Готель (Готель_ No, Назва, Адреса)

Кімната (Кімната_No, Готель_ No, Тип, Вартість)

Журнал реєстрації (Готель_ No, Клієнт_No, Дата оформлення, Дата_виїзду, Кімната_No)

Клієнт (Клієнт_No, ПІП, Адреса)

Таблиця Готель містить відомості про готелі. Її первинним ключем є стовпець Готель_No.

Таблиця Кімната містить відомості про готельні номери кожного з готелів. Її первинний ключ складається із стовпців Готель_No і Кімната_No.

Таблиця Журнал реєстрації містить зведення про реєстрацію постояльців готелів. Її первинний ключ складається із стовпців Готель_No, Клієнт_No і Дата оформлення.

Таблиця Клієнт містить відомості про постояльців. Її первинним ключем є стовпець Клієнт_No

Створити запити на мові SQL:

Прості запити

a. Виберіть з бази відомості про всі готелі.

b. Виберіть з бази відомості про всі готелі, розташовані в Києві.

c. Складіть перелік імен і адрес всіх постояльців, зареєстрованих в готелях Києва, упорядкувавши інформацію по іменах постояльців в алфавітному порядку.

d. Складіть список всіх двокімнатних або сімейних номерів готелів з ціною менше 400 гривень в добу, упорядкувавши дані в порядку збільшення вартості номерів.

e. Виберіть всі записи реєстрації постояльців, в яких не було заповнено поле Дата_виїзду.

Узагальнюючі функції

a. Скільки готелів належить компанії?

b. Яка середня вартість номера?

c. Чому дорівнює загальний добовий дохід від всіх двокімнатних номерів?

d. Скільки різних постояльців було зареєстровано впродовж серпня місяця?

a. Складіть звіт з вказівкою ціни і типу всіх номерів готелю “Європа_Готель”.

b. Перерахуєте всіх постояльців, що в даний час знімають номери в готелі “Європа_Готель”.

c. Складіть звіт, що містить повні відомості про всі номери готелю “Європа_Готель”, з вказівкою імен постояльців всіх номерів.

d. Чому дорівнює загальний прибуток від постояльців, зареєстрованих в готелі “Європа_Готель”, за сьогоднішній день?

e. Складіть список номерів готелю “Європа_Готель”, які в даний момент вільні.

f. Які загальні втрати від наявності в готелі “Європа_Готель” вільних номерів?

Групування

a. Визначить кількість номерів в кожному з готелів.

b. Визначить кількість номерів в кожному з готелів, розташованих в Києві.

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

d. Який тип номерів найчастіше знімається в кожному з готелів Києва?

e. Яка сума втрат від наявності вільних номерів в кожному з готелів за сьогоднішній день?



Поделиться:


Последнее изменение этой страницы: 2020-12-09; просмотров: 280; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.105.124 (0.21 с.)