
- •1. Мета роботи
- •2. Короткі теоретичнi вiдомостi
- •Створення і перевірка локальної логічної моделі даних для окремих призначених для користувача представлень
- •1.1 Виключення особливостей, несумісних з реляційною моделлю (необов'язковий етап)
- •Видалення двосторонніх зв'язків "багато до багатьох" (*:*)
- •Видалення рекурсивних зв'язків "багато до багатьох" (*:*)
- •Видалення складних зв'язків
- •4. Видалення багатозначних атрибутів
- •1.2. Визначення набору відношень виходячи із структури локальної логічної моделі даних
- •1. Сильні типи сутності.
- •2. Слабкі типи сутностей.
- •3. Двосторонні зв'язки типа "один до багатьох" (1 :*)
- •4. Двосторонні зв'язки типу "один до одного" (1:1)
- •5. Обов'язкова участь однієї сторони в зв'язку типу 1:1
- •6. Рекурсивні зв'язки "один до одного" (1:1)
- •7. Зв'язки типу суперклас/підклас
- •8. Двосторонні зв'язки "багато до багатьох" (*:*)
- •9. Багатозначні атрибути
- •1.3. Перевірка відношень за допомогою правил нормалізації
- •1.4 Перевірка відповідності стосунків вимогам призначених для користувача транзакцій
- •Контрольні запитання
- •4. Практичне завдання
- •6. Список літератури
4. Видалення багатозначних атрибутів
Багатозначний атрибут зберігає декілька значень, відповідних одній сутності (див. розділ 11.3.2). Якщо в концептуальній моделі даних присутній багатозначний атрибут, може бути виконана декомпозиція цього атрибута для виявлення деякої сутності. Наприклад, в представленні Branch для відображення тієї ситуації, що одне відділення може мати до трьох номерів телефонів, атрибут t elNo сутності Вranch визначений як багатозначний
б)
Рис. 15.4. Приклад перетворення зв'язку: а) складний зв'язок Registers; б) декомпозиція складного зв'язку на три двосторонні зв'язки (''registers, Processes і Agrees) і нову (слабку) сутність Registration (рис. 15.5, а). Цей багатозначний атрибут може бути видалений і замінений новою сутністю Telephone з атрибутом telno, який тепер є однозначним, простим атрибутом (первинного ключа), а також новим зв'язком Provides (надає) типа 1:3, як показано на рис. 15.5, б.
1.2. Визначення набору відношень виходячи із структури локальної логічної моделі даних
Визначення набору відношень на основі локальної логічної моделі даних відповідно до виявлених сутностей, зв'язків і атрибутів. На даному етапі нам належить на основі створених локальних логічних моделей даних визначити набори відношень, необхідні для представлення сутностей, зв'язків і атрибутів, що вводять в уявлення окремих користувачів про предметну область додатка. Для опису структури створюваних відносин ми скористаємося мовою DBDL (Database Definition Language — мова визначення бази даних), широко використовуваною в реляційних СУБД. Опис відношення на мові DBDL починається з привласнення йому імені, за яким слідує поміщений в круглі дужки список імен його простих атрибутів. Потім вказується первинний ключ відношення і всі його альтернативні і зовнішні ключі. Поряд з кожним зовнішнім ключем має бути вказаний первинний ключ, на який він посилається. Всі похідні атрибути перераховуються разом з тими атрибутами, за допомогою яких обчислюються їх значення.
Зв'язок між двома сутностями відображується з використанням механізму "первинний ключ/зовнішній ключ". При визначенні того, в якому відношенні повинен знаходитися атрибут (атрибути) зовнішнього ключа, необхідно спочатку з'ясувати, яка з сутності, що бере участь в зв'язку, є батьківською, а яка дочерною. Батьківською називається сутність, яка передає копію свого первинного ключа у відношення, що представляє дочірню сутність, для використання як зовнішній ключ.
Нижче описані способи створення відношень на основі структур, представленних в моделі даних.
Рис. 15.5. Приклад перетворення сутності: а) сутність Branch з багатозначним атрибутом telno; (б) декомпозиція атрибуту telno і здобуття нової сутності Telephone з простим атрибутом (первинного ключа) telno і зв'язком Prcvides типа 1:3
1. Сильні типи сутності.
Для кожної сильної сутності в моделі даних створюється відношення, включаючи всіх простих атрибутів цієї суті. В разі складених атрибутів (наприклад, name) у відношення включаються ті, що лише становлять їх прості атрибути (такі як fname і lname). Нижче приведений приклад структури відношення Staff, показаної на рис. 15.1.
Staff (staffno, fname, Iname, position, sex, DOB) Первинний ключ staffno