пʼятницю, 19 лютого 2016 р.

Задача "Ліга Європи УЄФА"

Ліга Європи УЄФА (англ. UEFA Europa League) — щорічний європейський футбольний кубковий турнір, що проводиться під егідою УЄФА, другий за престижністю європейський клубний турнір. Заснований в 1971 році, реорганізований в 2009 році. В сезоні 2014/15 українська команда «Дніпро» (Дніпропетровськ) виборола право змагатися у фіналі змагання з іспанською «Севільєю». Фінал відбувся 27 травня на стадіоні «Народовий» у Варшаві. На основі даних, поданих у файлі-додатку, Вам пропонується за допомогою системи управління базами даних виконати наступні завдання:

І. Створіть запит Груповий етап, який на основі поданої у таблиці Команди інформації про футбольні команди-учасниці Ліги Європи генерує усі матчі групового етапу.

В груповому етапі Ліги Європи кожна команда повинна двічі зіграти з кожною іншою командою своєї групи, причому один раз вдома, а один – на виїзді. Кожна група складається з чотирьох команд. Команду, що приймає матч, помістіть в поле з назвою Команда1, команду-гостя – в поле з назвою Команда2.

ІІ. Створіть таблицю Результати результатів групового етапу з полями Команда1 (назва команди, що приймає матч), Команда2 (назва команди-гостя), Забила1 (кількість голів, забитих командою, що приймає матч), Забила2 (кількість голів, забитих командою-гостем). До таблиці заносяться дані про завершені матчі групового етапу. Для зручності можете заповнити її, використовуючи дані, отримані в результаті виконання запиту Груповий етап. Заповнення таблиці не оцінюється, система власноруч очищуватиме та заповнюватиме таблицю.

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

ІІІ. На основі даних таблиць Команди та Результати створіть запит Таблиця, в якому відобразіть поточну турнірну таблицю змагання з наступними полями:
  • Група – літера групи, до якої належить команда;
  • Назва – назва команди;
  • І – кількість зіграних матчів;
  • В – кількість перемог команди;
  • П – кількість поразок команди;
  • Н – кількість матчів, зіграних командою в нічию;
  • О – кількість очок (за кожен переможний матч дається 3 очка, за кожну нічию – по 1);
  • М – кількість забитих командою м’ячів.
Команди в турнірній таблиці відсортуйте за групою, а в межах групи – за спаданням кількості набраних очок. Якщо дві команди мають однакову кількість очок, вище повинна стояти та команда, яка забила більшу кількість м’ячів. Вважайте, що ситуація, коли рівні і кількість очок, і кількість забитих м’ячів неможлива.

IV. Створіть запит Перший матч, в якому виведіть дві команди, які першими зіграють в 1/16 фіналу: переможця групи A (поле Команда1) та переможця групи B (поле Команда2). Переможець – команда, що стоїть найвище серед команд групи в запиті з пункту ІІІ.


Для початку розберемося з файлом-додатком. Відкривши його в застосунку MS ACCESS 2010 побачимо табличку (мал.1)
" style="color: #177d75; text-decoration: none;">файлі-додатку, Вам пропонується за допомогою системи управління базами даних виконати наступні завдання:

І. Створіть запит Груповий етап, який на основі поданої у таблиці Команди інформації про футбольні команди-учасниці Ліги Європи генерує усі матчі групового етапу.
В груповому етапі Ліги Європи кожна команда повинна двічі зіграти з кожною іншою командою своєї групи, причому один раз вдома, а один – на виїзді. Кожна група складається з чотирьох команд.
Команду, що приймає матч, помістіть в поле з назвою Команда1, команду-гостя – в поле з назвою Команда2.

ІІ. Створіть таблицю Результати результатів групового етапу з полями Команда1 (назва команди, що приймає матч), Команда2 (назва команди-гостя), Забила1 (кількість голів, забитих командою, що приймає матч), Забила2 (кількість голів, забитих командою-гостем). До таблиці заносяться дані про завершені матчі групового етапу. Для зручності можете заповнити її, використовуючи дані, отримані в результаті виконання запиту Груповий етап. Заповнення таблиці не оцінюється, система власноруч очищуватиме та заповнюватиме таблицю.
Створіть необхідні зв’язки та забезпечте перевірку обмежень цілісності для побудованої бази даних. Назву команди в межах бази даних вважайте унікальною.

ІІІ. На основі даних таблиць Команди та Результати створіть запит Таблиця, в якому відобразіть поточну турнірну таблицю змагання з наступними полями:

  • Група – літера групи, до якої належить команда;
  • Назва – назва команди;
  • І – кількість зіграних матчів;
  • В – кількість перемог команди;
  • П – кількість поразок команди;
  • Н – кількість матчів, зіграних командою в нічию;
  • О – кількість очок (за кожен переможний матч дається 3 очка, за кожну нічию – по 1);
  • М – кількість забитих командою м’ячів.

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


IV. Створіть запит Перший матч, в якому виведіть дві команди, які першими зіграють в 1/16 фіналу: переможця групи A (поле Команда1) та переможця групи B (поле Команда2). Переможець – команда, що стоїть найвище серед команд групи в запиті з пункту ІІІ.

Для початку розберемося з файлом-додатком. Відкривши його в застосунку MS ACCESS 2010 побачимо табличку (мал.1)


мал.1

Як видно з навігаційної стрічки знизу, всіх записів у таблиці "Команди" - 48. При цьому у полі "Група" ми бачимо 12 різних букв A, B, C, D, E, F, G, H, I, J, K, L. Це означає, що всі команди за результатами жеребкування розподілилися по 12 групам. Зрозуміло, в кожній групі по 4 команди. 
Тепер перейдемо в режим конструктора (мал.1 вона виділена червоним) і подивимось на структуру таблиці "Команди" (Див мал.2)


мал.2

Як бачимо перше поле "Назва" - має текстовий тип і є ключовим.  
- А так можна!?
- Можна, можна, заспокойтесь! Якщо імена команд не повторюються то навіть це текстове поле може бути унікальним ідентифікатором таблиці (ключовим). А імена команд справді не повторюються. Так наприклад є чотири команди з назвою "Динамо", але за допомогою добавок їх назви роблять унікальними "Динамо", "Динамо Київ", "Динамо Мінськ", "Динамо Москва".

Тепер читаємо першу частину задачі

І. Створіть запит Груповий етап, який на основі поданої у таблиці Команди інформації про футбольні команди-учасниці Ліги Європи генерує усі матчі групового етапу.

В груповому етапі Ліги Європи кожна команда повинна двічі зіграти з кожною іншою командою своєї групи, причому один раз вдома, а один – на виїзді. Кожна група складається з чотирьох команд.

Команду, що приймає матч, помістіть в поле з назвою Команда1, команду-гостя – в поле з назвою Команда2.

Зрозуміло, що матчі на цьому етапі проходять тільки між командами з одної групи. Наприклад в групі А  є 4 команди. 


НазваКраїнаГрупа
АполлонКіпрA
Боруссія МНімеччинаA
ВільярреалІспаніяA
ЦюрихШвейцаріяA

Перечислимо всі можливі матчі в цій групі - їх 12.

  1. Аполлон - Боррусія М
  2. Аполлон - Вільяреал
  3. Аполлон - Цюріх
  4. Боррусія М - Аполлон
  5. Боррусія М - Вільяреал
  6. Боррусія М - Цюріх
  7. Вільяреал - Аполлон
  8. Вільяреал - Цюріх
  9. Вільяреал - Боррусія М
  10. Цюріх - Аполлон
  11. Цюріх - Вільяреал
  12. Цюріх - Боррусія М
Тому очікуємо, що сумарна кількість матчів у отриманій таблиці "Груповий етап" буде 12 х 12 = 144.

Зверніть увагу на фразу "Створіть запит Груповий етап, який на основі поданої у таблиці Команди інформації...". В ній чітко вказано, що таблицю "Груповий етап" ми повинні створити застосуванням запиту, використовуючи в якості джерела даних одну лиш табличку "Команди".



мал.1

Як видно з навігаційної стрічки знизу, всіх записів у таблиці "Команди" - 48. При цьому у полі "Група" ми бачимо 12 різних букв A, B, C, D, E, F, G, H, I, J, K, L. Це означає, що всі команди за результатами жеребкування розподілилися по 12 групам. Зрозуміло, в кожній групі по 4 команди. 
Тепер перейдемо в режим конструктора (мал.1 вона виділена червоним) і подивимось на структуру таблиці "Команди" (Див мал.2)


мал.2

Як бачимо перше поле "Назва" - має текстовий тип і є ключовим.  
- А так можна!?
- Можна, можна, заспокойтесь! Якщо імена команд не повторюються то навіть це текстове поле може бути унікальним ідентифікатором таблиці (ключовим). А імена команд справді не повторюються. Так наприклад є чотири команди з назвою "Динамо", але за допомогою добавок їх назви роблять унікальними "Динамо", "Динамо Київ", "Динамо Мінськ", "Динамо Москва".

Тепер читаємо першу частину задачі

І. Створіть запит Груповий етап, який на основі поданої у таблиці Команди інформації про футбольні команди-учасниці Ліги Європи генерує усі матчі групового етапу.

В груповому етапі Ліги Європи кожна команда повинна двічі зіграти з кожною іншою командою своєї групи, причому один раз вдома, а один – на виїзді. Кожна група складається з чотирьох команд.

Команду, що приймає матч, помістіть в поле з назвою Команда1, команду-гостя – в поле з назвою Команда2.

Зрозуміло, що матчі на цьому етапі проходять тільки між командами з одної групи. Наприклад в групі А  є 4 команди. 



Назва Країна Група
Аполлон Кіпр A
Боруссія М Німеччина A
Вільярреал Іспанія A
Цюрих Швейцарія A

Перечислимо всі можливі матчі в цій групі - їх 12.

  1. Аполлон - Боррусія М
  2. Аполлон - Вільяреал
  3. Аполлон - Цюріх
  4. Боррусія М - Аполлон
  5. Боррусія М - Вільяреал
  6. Боррусія М - Цюріх
  7. Вільяреал - Аполлон
  8. Вільяреал - Цюріх
  9. Вільяреал - Боррусія М
  10. Цюріх - Аполлон
  11. Цюріх - Вільяреал
  12. Цюріх - Боррусія М
Тому очікуємо, що сумарна кількість матчів у отриманій таблиці "Груповий етап" буде 12 х 12 = 144.

Зверніть увагу на фразу "Створіть запит Груповий етап, який на основі поданої у таблиці Команди інформації...". В ній чітко вказано, що таблицю "Груповий етап" ми повинні створити застосуванням запиту, використовуючи в якості джерела даних одну лиш табличку "Команди".

Що ж почнемо!
Ми звикли, говорячи про теорію баз даних, розглядати кілька таблиць які зв'язані між собою. Ну, наприклад, є Таблиця А та Таблиця Б і вони пов'язані між собою зв'язком типу один до багатьох. На малюнку 3 ми зобразимо ці зв'язки стрілочками. (Див. мал 3).

мал.3

Продовження слідує....






Немає коментарів:

Дописати коментар