- •Загальні відомості
- •Поняття відношень
- •Реляційна база даних „успішність”
- •Операції реляційної алгебри
- •Теоретико-множинні операції ра
- •Операції, властиві тільки ра
- •Реляційне числення
- •Квантор існування. З'єднання
- •Квантор загальності. Ділення
- •Типи даних
- •Створення простого запиту в sql
- •Групування даних
- •Багатотабличні запити
- •Природне з'єднання
- •Тета-з'єднання
- •Зовнішнє з'єднання
- •Використання оператора join в інструкції from
- •Операції реляційної алгебри в sql-92
- •Підзапити у sql
- •Способи включення підзапиту в запит
- •Особливості синтаксису включення підзапиту
- •Підзапит в цільовому списку
- •Підзапити в інструкції where. Некорельований підзапит
- •Корельовані підзапити
- •Квантор існування в підзапитах
- •Оператори all, any, some
- •Оператори модицікації даних
- •Мова опису даних
- •Представлення
- •Висновок
- •Лабораторний практикум Лабораторна робота № 1
- •Лабораторна робота № 2
- •Контрольні завдання по sql
- •Бібліографічний список
Висновок
Стандарт SQL - це сотні сторінок тексту. Будь-яка комерційна реалізація мови пропонує безліч додаткових можливостей і розширень. Оскільки метою цієї роботи було ознайомлення з основними принципами маніпулювання даними та введення в SQL, то за рамками роботи залишилися багато можливостей мови. Коротко перелічимо зачеплені теми:
• Поняття індексу та робота з індексами в SQL;
• Поняття транзакції і оператори управління транзакціями в SQL;
• Оператори адміністрування в SQL;
• Розмежування прав доступу в SQL;
• Вбудований SQL і поняття курсору;
• Оптимізація запитів.
Лабораторний практикум Лабораторна робота № 1
Тема: Реляційна алгебра і реляційне числення
Дано чотири таблиці. У них зберігається інформація про постачальників (ПОСТАЧАЛЬНИК), деталі(ДЕТАЛЬ), проекти(ПРОЕКТ), а також про кількість деталей, що поставляються конкретним постачальником для деякого проекту (ЗАМОВЛЕННЯ).
ПОСТАЧАЛЬНИК
NP |
NAMEPOST |
STATUS |
GOROD |
Sl |
Smith |
l0 |
London |
S2 |
Jones |
20 |
Paris |
SЗ |
Black |
З0 |
Paris |
S4 |
Clark |
20 |
London |
SЗ |
Adams |
З0 |
Athens |
ДЕТАЛЬ
ND |
NAME DET |
COLOR |
VES |
Pl |
Nut |
Red |
l2 |
P2 |
Bolt |
Green |
l7 |
PЗ |
Screw |
Blue |
l7 |
P4 |
Screw |
Red |
l4 |
PЗ |
Cam |
Blue |
l2 |
P6 |
Cog |
Red |
l9 |
ПРОЕКТ
NPR |
NAME PRO |
GOROD |
Jl |
Sorter |
Paris |
J2 |
Penuche |
Rome |
JЗ |
Reader |
Athens |
J4 |
Console |
Athens |
JЗ |
Collator |
London |
J6 |
Terminal |
Oslo |
J7 |
Tape |
London |
ЗАКАЗ
NP |
ND |
NPR |
NUMBER |
Sl |
Pl |
Jl |
400 |
S2 |
PЗ |
Jl |
60 |
SЗ |
PЗ |
Jl |
400 |
S2 |
PЗ |
J2 |
З00 |
S2 |
PЗ |
J2 |
ЗЗЗ |
SЗ |
P4 |
J2 |
200 |
SЗ |
P2 |
J2 |
400 |
SЗ |
P6 |
J2 |
40 |
S2 |
PЗ |
JЗ |
l00 |
S4 |
P6 |
JЗ |
l200 |
Sl |
Pl |
J4 |
З000 |
S2 |
PЗ |
J4 |
4З0 |
SЗ |
P2 |
J4 |
З00 |
SЗ |
Pl |
J4 |
З0 |
SЗ |
PЗ |
J4 |
70 |
SЗ |
P4 |
J4 |
l400 |
SЗ |
PЗ |
J4 |
400 |
SЗ |
P6 |
J4 |
780 |
S2 |
PЗ |
JЗ |
790 |
SЗ |
PЗ |
JЗ |
l00 |
S2 |
PЗ |
J6 |
l000 |
S2 |
PЗ |
J7 |
8З0 |
S4 |
P6 |
J7 |
800 |
SЗ |
PЗ |
J7 |
20 |
Дайте рішення наступних завдань, створюючи запити на мові реляційної алгебри і реляційного числення.
1. Отримати повні відомості про всі проекти.
2. Отримати повні відомості про всі проекти в Лондоні.
3. Отримати номери деталей, для яких немає іншої деталі, що має менше значення ваги.
4. Отримати значення S # для постачальників, які виконують поставки для проекту J1.
5. Отримати значення S # для постачальників, які постачають для проекту J1 деталь P1.
6. Отримати назви проектів (JNAME), для яких виконує поставки постачальник S1.
7. Отримати значення кольорів (COLOR) для деталей, що поставляються постачальником S1.
8. Отримати номери постачальників (S#), що поставляють деталі як для проекту J1, так і для проекту J2.
9. Отримати значення P# для деталей, що поставляються для будь-якого проекту в Лондоні.
10. Отримати значення S # для постачальників, які постачають для проектів в Парижі чи Лондоні червону (RED) деталь.
11. Отримати значення P # для деталей, що поставляються для будь-якого проекту постачальником, що знаходиться в тому ж місті.
12. Отримати значення J # для проектів, в які не поставляється жодної червоної деталі постачальником з Лондона.
13. Отримати значення S # для постачальників, які постачають одну і ту ж деталь для всіх проектів.
14. Отримати значення J # для проектів, наданих повністю постачальником S2.
15. Отримати значення номерів тих деталей (P #), які поставляються для всіх проектів в Лондоні.
16. Отримати значення J # для проектів, наданих, принаймні, всіма деталями, які поставляються постачальником S2.
17. Отримати значення J # для проектів, які отримують, принаймні, кілька деталей від постачальника S5.
Порівняйте ваші рішення. Які запити простіше сформулювати в реляційній алгебрі, які - в реляційному обчисленні? У кожному разі поясніть, чому ви визнали, що завдання простіше вирішується в тій чи іншій мові. Який з двох мов ви віддаєте перевагу? Чому?