МЕТА РОБОТИ Вивчити етапи проектування моделі баз даних
1. ЛІТЕРАТУРА:
1.1 Малихіна М.П. Бази даних: основи, проектування, використання. - СПб.: БХВ-Петербург, 2004. - 512с.
1.1.Голіціна О.Л., Максимов Н.В., Попов І.І. Бази даних: Навчальний посібник. - М.: ФОРУМ: ІФРА-М, 2003. - 352с. (серія «Професійна освіта»)
1.2. Сєнов А. Access 2003. Практична розробка баз даних. Навчальний курс. - СПб.: Пітер, 2005.-256с.
2. ЗАВДАННЯ:
2.1. Вивчіть теоретичні питання щодо проектування бази даних, типи моделей баз даних, види взаємозв'язків у базах даних, принципи нормалізації таблиць баз даних
2.2. За вихідними даними побудувати фізичну модель бази даних, що реалізує принцип роботи предметної області вашого варіанта
Виділіть об'єкти та характеристики проектованої інформаційної бази даних
Визначте основні класи сутностей
Визначте зв'язки між сутностями та їх типи
Вивчити принципи нормалізації таблиць баз даних
Побудуйте концептуальну модель, наведену до 3НФ
- ПОРЯДОК ВИКОНАННЯ РОБОТИ:
3.1. Вивчити за додатком матеріал роботи
3.2. Намалювати малюнки, що відображають різні види зв'язків.
3.3. Намалювати інформаційно-логічну модель реляційної бази даних
3.4. Намалювати фізичну модель бази даних, яка має містити об'єкти предметної галузі
3.5. Відповісти на контрольні питання
- ЗМІСТ ЗВІТУ:
4.1. Найменування та мета роботи
4.2. Типи зв'язків між об'єктами обраної предметної області.
4.3. Фізична модель базиданих
4.4. Відповіді на контрольні питання
5. КОНТРОЛЬНІ ПИТАННЯ:
5.1. Назвіть типи моделей баз даних. Відмінності, переваги, недоліки
5.2. Назвіть типи взаємозв'язків між об'єктами баз даних. Відмінності, переваги, недоліки
5.3. Що таке нормалізація таблиць, на яку мету проводять процедуру нормалізації?
5.4. Перерахуйте етапи проектування
5.5. Дати визначення поняттям сутність, екземпляр сутності, атрибут сутності, ключ сутності, зв'язок. Навести приклади
ДОДАТОК
Організація даних
Слово "реляційна" походить від англійської relation - ставлення. Ставлення - тематичне поняття, але у термінології моделей даних відносини зручно зображати як таблиці. У цьому рядки таблиці відповідають кортежам відносини, а стовпці - атрибутам. Ключем називають будь-яку функцію від атрибутів кортежу, яка може бути використана для ідентифікації кортежу. Така функція може бути значенням одного з атрибутів (простий ключ), задаватися алгебраїчним виразом, що включає значення декількох атрибутів (складовий ключ). Це означає, що дані у рядках кожного зі стовпців складеного ключа можуть повторюватися, але комбінація даних кожного рядка цих стовпців є унікальною. Наприклад, у таблиці Студенти є стовпці Прізвища та Рік народження. У кожному зі стовпців є деякі повторювані дані, тобто. однакові прізвища та однакові роки народження. Але якщо студенти, які мають однакові прізвища, мають різні роки народження, то ці стовпці можна використовувати як складовий ключ. Зазвичай, ключ є унікальним, тобто. Кожен кортеж визначається значенням ключа однозначно, але іноді використовують і неунікальні ключі (ключі з повтореннями). У локалізованій(русифікованою) версією Access вводиться термін ключове поле, яке можна трактувати як первинний ключ.
У Access можна виділити три типи ключових полів: простий ключ, складовий ключ та зовнішній ключ.
Одна з найважливіших переваг реляційних баз даних полягає в тому, що ви можете зберігати логічно згруповані дані в різних таблицях і задавати зв'язки між ними, поєднуючи їх у єдину базу. Для завдання зв'язку таблиці повинні мати поля з однаковими іменами або хоча б однаковими форматами даних. Зв'язок між таблицями встановлює відносини між збігаються значеннями цих полях. Така організація даних дозволяє зменшити надмірність даних, що зберігаються, спрощує їх введення та організацію запитів і звітів. Пояснимо це з прикладу. Припустимо, вам у базі треба зберігати, дані про студентів (прізвище, дисципліна, що вивчається) і викладачів (прізвище, номер кафедри, науковий ступінь, дисципліна, що викладається). Якщо зберігати дані в одній таблиці, то в рядку з прізвищем студента, який вивчає конкретну дисципліну, зберігатимуться всі атрибути викладача, який читає цю дисципліну. Це ж величезна надмірність даних. А якщо зберігати дані про студента в одній таблиці, про викладача - в іншій і встановити зв'язок між полями "Дисципліна, що читається" - "Дисципліна, що вивчається" (фактично це однакові поля), то надмірність збережених даних багаторазово зменшиться без шкоди для логічної організації інформації.
У Access можна встановити три види зв'язків між таблицями; Один-до-багатьом,, Багато-до-багатьом і Один-до-одного.
Зв'язок Один до багатьох - найбільш часто використовуваний тип зв'язку між таблицями. У такому зв'язку кожного запису в таблиці А може відповідати кілька записів у таблиці (поля з цими записами називають зовнішніми ключами), а запис втаблиці не може мати більше однієї відповідної їй записи у таблиці А.
При зв'язку Багато-багато одного запису в таблиці А може відповідати кілька записів у таблиці В, а одного запису в таблиці В - кілька записів у таблиці А. Така схема реалізується тільки за допомогою третьої (сполучної) таблиці, ключ якої складається по крайньої мері з двох полів, одне з яких є загальним із таблицею А, а інше - загальним із таблицею В.
При зв'язку Один-до одного запис у таблиці А може мати не більше одного пов'язаного запису в таблиці В і навпаки. Цей тип зв'язку використовують не дуже часто, оскільки такі дані можуть бути розміщені в одну таблицю. Зв'язок із ставленням Один-до-одному застосовують для поділу дуже широких таблиць, для відділення частини таблиці з метою її захисту, а також для збереження відомостей, що відносяться до підмножини записів у головній таблиці.
Тип створюваного зв'язку залежить від полів, котрим визначається зв'язок:
- зв'язок Один-багатьом створюється у разі, коли лише одне з полів є ключовим чи має унікальний індекс, тобто. значення у ньому не повторюються;
- зв'язок Один-до одного створюється в тому випадку, коли обидва зв'язувані поля є ключовими або мають унікальні індекси;
- Зв'язок Багато-багатьом фактично представляє два зв'язку типу одним-багатьом через третю таблицю, ключ якої складається, принаймні, з двох полів, загальних для двох інших таблиць.
Цілісність даних
Цілісність даних означає систему правил, які використовуються в СУБД Access для підтримки зв'язків між записами у зв'язаних таблицях (таблиць, об'єднаних за допомогою зв'язку), а також забезпечує захист від випадкового видалення або зміни пов'язаних даних. Контролювати цілісність даних можна, якщовиконані такі умови:
- пов'язане поле (поле, з якого здійснюється зв'язок) однієї таблиці є ключовим полем або має унікальний індекс;
- пов'язані поля мають один тип даних. Тут є виняток. Поле лічильника може бути пов'язане з числовим полем, якщо воно має тип Довге ціле,
- обидві таблиці належать до однієї бази даних Access. Якщо таблиці є пов'язаними, вони повинні бути таблицями Access. Для встановлення цілісності даних база даних, в якій знаходяться таблиці, має бути відкритою. Для пов'язаних таблиць баз інших форматів встановити цілісність даних неможливо.
Розглянемо зв'язок між об'єктами Студенти та Дисципліни. Студент вивчає кілька дисциплін, що відповідає багатозначному зв'язку та відображено на рис.1 подвійною стрілкою. Зрозуміло, кожна дисципліна вивчається безліччю студентів. Це теж багатозначний зв'язок, що позначається подвійною стрілкою (зв'язок "один" позначений одинарною стрілкою). Таким чином, зв'язок між об'єктами Студенти та Дисципліни - багато-багатьом (М : N).
Рис.1. Типи зв'язків між об'єктами Студенти, Дисципліни та Викладачі
Множинні зв'язки ускладнюють управління базою даних, наприклад, у СУБД Access при багатьох зв'язках не можна використовувати механізм каскадного оновлення. Тому використовувати такі зв'язки небажано і потрібно будувати реляційну модель, що не містить зв'язків типу Багато-багатьом. У Access дня контролю цілісності даних з можливістю каскадного оновлення та видалення даних необхідно створити допоміжний об'єкт зв'язку, який складається з ключових реквізитів об'єктів, що зв'язуються і який може бути доповнений описовими реквізитами. У нашому випадку таким новим об'єктом для зв'язку є об'єкт Оцінки, реквізитамиякого є код студента, код дисципліни та оцінки. Кожен студент має оцінки з кількох дисциплін, тому зв'язок між об'єктами Студенти та Оцінки буде Один-багатьом (1:М). Кожну дисципліну здає безліч студентів, тому зв'язок між об'єктами Дисципліни та Оцінки також буде Один-багатьом (1:М). В результаті одержуємо інформаційно-логічну модель бази даних, наведену на рис. 2

Мал. 2. Інформаційно-логічна модель реляційної бази даних
2. У реляційній базі даних як об'єкти розглядаються відносини, які можна подати у вигляді таблиць. Таблиці між собою пов'язуються у вигляді загальних полів, тобто. однакових за форматами та, як правило, за назвою, що є в обох таблицях. Розглянемо, які загальні поля треба запровадити у таблиці задля забезпечення зв'язності даних. У таблицях Студенти та Оцінки таким полем буде "Код студента", у таблицях Дисципліни та Оцінки - "Код дисципліни", у таблицях Викладачі та Дисципліни - "Код дисципліни". Вибір цифрових кодів замість прізвищ або назв дисциплін обумовлений меншим обсягом інформації в таких полях: наприклад, число "2". за кількістю символів значно менше слова "математика". Відповідно до цього логічна модель бази даних представлена на рис. 3 де жирними літерами виділені ключові поля.

Мал. 3. Логічна модель бази даних
ВАРІАНТИ ЗАВДАНЬ
Варіант 1
Опис предметної області (Ресторан)
Відвідувачі ресторану обслуговуються за столиками. За одним столом може бути не більше 4 відвідувачів, кожен з яких може зробити замовлення тих чи інших страв. Столики обслуговують офіціанти. В одного офіціанта в обслуговуванні кілька столів.
Чи є вільні столи? Скількивідвідувачів обслужив офіціант за зміну? Скільки страв було реалізовано?
Варіант 2
Опис предметної області (Колледж)
Варіант 3
Опис предметної області (Театральна каса)
Які спектаклі йдуть у певний день? Чи є квитки на конкретну виставу? Скільки коштує конкретний квиток?
Варіант 4
Опис предметної області (Вантажоперевезення)
АТП має вантажні автомобілі з держ. номерами та організує перевезення для своїх замовників. Вартість перевезення залежить від відстані та вантажопідйомності автомобіля, який її виконує. Кожен замовник може зробити замовлення кількох перевезень. Одне перевезення виконує одна вантажівка.
Які вантажівки вільні? Який замовник зробив найдорожче замовлення? Яка вантажівка виконала найбільшу кількість замовлень?
Варіант 5
Інформаційна система туристичного клубу
Туристи, які приходять до туристичного клубу, можуть не тільки ходити в планові походи, а й займатися у різних секціях протягом усього року. Для цього вони записуються до груп, що належать до певних секцій.
1. Для організації роботи клубу необхідно: отримати список і загальну кількість туристів, що займаються в клубі, у зазначеній секції, групі, за статевим ознакою, році народження, віку; отримати список та загальну кількість тренерів зазначеної секції; отримати перелік і загальну кількість маршрутів, по яких ходили туристи із зазначеної секції, в зазначений період часу.
Варіант 6
Інформаційна система зоопарку
У зоопарку мешкають тварини різних кліматичних зон, тому частину тварин на зиму необхідно переводити в опалювальні приміщення. Тварин можна розділити на хижаків і травоїдних.При розселенні тварин по клітинах необхідно враховувати не тільки потреби даного виду, але і їх сумісність з тваринами в сусідніх клітинах (не можна поруч селити, наприклад, вовків та їх видобуток - різних копитних).
Для годування тварин необхідні різні типи кормів: рослинний, живий, м'ясо і різні комбікорми. Рослинний корм це фрукти і овочі, зерно і сіно. Живий корм - миші, птиці, корм для риб. Для кожного виду тварин розраховується свій раціон. Таким чином у кожної тварини в зоопарку є меню на кожен день, в якому вказується кількість і час годування в день, кількість і вид їжі (мавпам необхідні фрукти і овочі, дрібним хижакам - хорькам, ласкам, совам, деяким котячим, зміям - треба мишей).
Ветеринари повинні проводити медогляди, стежити за вагою, ростом, розвитком тварини, ставити своєчасно щеплення і заносити всі ці дані в картку.
Необхідно отримати список та загальну кількість службовців зоопарку; отримати перелік і загальну кількість всіх тварин у зоопарку або тварин зазначеного виду; отримати перелік і загальну кількість тих, хто потребує теплого приміщення на зиму; отримати перелік тварин, яким не зроблено щеплення вчасно; скласти раціон для кожного виду тварин.
Лабораторна робота №2