- відношення» представлена ??в Додатку А.
2. Проектування структури БД
Розробити структуру БД - це означає визначити, з яких таблиць повинна складатися БД, які атрибути повинні входити в кожну таблицю, як вони повинні бути пов'язані між собою.
Для того щоб розробити БД необхідно провести аналіз предметної області. У даній роботі розглядається предметна область - Автомайстерня.
Розробили структуру БД на основі діаграми «об'єкт-відношення».
1 Виділяються правильні об'єкти. Кожному правильному об'єкту ставиться у відповідність базове ставлення. Для кожного базового ставлення визначається первинний ключ.
Машина - Машина (Рег номер #)
Ремонт - Ремонт (Код послуги #)
Запчастина - Запчастина (Артикул #)
Техобслуговування - Техобслуговування (№ техобс #)
2 Виділяються смислові відношення багато - до - багатьох, кожному такому смисловому відношенню ставиться у відповідність базове ставлення.
Для кожного базового відносини спочатку визначаються зовнішні ключі, в якості зовнішніх використовуються первинні ключі посилальних відносин.
Для кожного зовнішнього ключа визначаються правила зовнішніх ключів, потім формується первинний ключ. Як правило, він є складовим і складається з комбінації зовнішніх ключів, за умови, що не заперечує кінцевий користувач і дана комбінація має властивість унікальності. Якщо хоча б одна з цих умов не виконується, як правило, переходять до використання простого ключа, в якості нього використовується який-небудь додатковий атрибут, який грає роль простого первинного ключа.
Використовуються - Використовуються (Артикул #, Код послуги #) KEY (Артикул #, Код послуги #) KEY (Артикул #) REFERENCES ЗапчастьDELETE NO ACTIONUPDATE CASCADEKEY (Код послуги #) REFERENCES РемонтDELETE NO ACTIONUPDATE CASCADE.
___________________________________________________
Надходить - Надходить (Рег номер #, Код послуги #) KEY (Рег номер #, Код послуги #) KEY (Рег номер #) REFERENCES МашінаDELETE NO ACTIONUPDATE CASCADEKEY (Код послуги #) REFERENCES РемонтDELETE NO ACTIONUPDATE CASCADE
3 Виділяються відносини типу багато - до - одному, в яких беруть участь тільки правильні об'єкти. Нові базові відносини не створюються, робота здійснюється з таблицею, що відповідає за сторону багато хто, в неї додається зовнішній ключ для зв'язку з таблицею, що відповідає за сторону один.
В якості зовнішнього ключа використовується первинний ключ з боку один, визначаються правила зовнішнього ключа.
Проходить - Техосблужіваніе (№ техобс #, Рег номер #) KEY (№ техобс #) KEY (Рег номер #) REFERENCES МашінаDELETE NO ACTIONUPDATE CASCADE
4 Виділяються відносини типу багато - до - одному, в яких беруть участь слабкі об'єкти. Створюється базове ставлення для слабкого об'єкта і визначається для нього первинний ключ.
На бік багато для слабкого об'єкта додається зовнішній ключ для зв'язку зі стороною один.
В якості зовнішнього ключа використовується первинний ключ з боку один, в правилах зовнішніх ключів дозволяється видаляти значення первинного ключа навіть за наявності на нього посилань з зовнішнього ключа разом з цими значеннями зовнішнього ключа.DELETE CASCADEUPDATE CASCADE
У даній роботі слабких об'єктів немає.
Для кожного не ключової властивості на діаграмі «об'єкт-відношення» ставлять не ключові атрибути базового ставлення.
Машина (Рег номер #, Власник, Марка, Колір)
Ремонт (Код послуги #, Вид роботи, Вартість)
Запчастина (Артикул #, Найменування, Ціна)
Техобслуговування (№ техобс #, Рег номер #, Дата, Вид роботи)
Використовуються (Код послуги #, Артикул #, Дата, Кількість)
Надходить (Код послуги #, Рег номер #, Дата)
3. Функціональні залежності і нормалізація відносин
Функціональні залежності (ФЗ) відіграють роль приватних обмежень цілісності. Але серйозно ускладнюють роботу кінцевого користувача ФЗ між неключових атрибутами, тому вони збільшують кількість правил, які повинен виконувати кінцевий користувач при введенні даних в таблицю. ФЗ від первинного ключа об'єктивно необхідні, тому що вони забезпечують можливість пошуку інформації в таблицях.
Якщо одному значенню атрибута X відповідає одне і тільки одне значення атрибута Y, причому обидва атрибути X і Y належать відношенню R ({X, Y}? ...