АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. V. Література періоду громадянських воєн.
  2. VI. Література періоду принципату
  3. Болгарська література
  4. Використана література
  5. Використана література
  6. Джерела та література
  7. Додаткова література
  8. Додаткова література
  9. Додаткова література
  10. Додаткова література
  11. Додаткова література
  12. Додаткова література

[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


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 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.019 сек.)