Лекція 8 Проектування баз даних.
Логічне проектування полягає у визначенні кількості та структури таблиць, формуванні запитів до БД, визначенні типів звітних документів, розробці алгоритмів обробки інформації, створенні форм для вводу та редактування даних в базі та розв ’язанні ряду інших задач.Етапи проектування баз даних.
Правила та рекомендації, яких потрібно дотримуватись.
Дублювання даних. Потрібно розрізняти просте ( ненадлишкове) та надлишкове дублювання даних. Наявність першого з них допускається в БД, а надлишкове дублюванння може призводити до проблем при обробці даних. Приклад ненадлишкового дублювання. С_Т
Для спіробітників, що знаходяться в одному приміщенні номери телефонів співпадають. Номер телефону 4328 зустрічається кілька разів, хоча для кожного співробітника він унікальний. Тому ні один з номерів не є надлишковим, хоча для кожного службовця номер телефону унікальний. Тому ні один з номерів не є надлишковим і при видаленні одного з номерів буде втрачено інформацію по-якому номеру можна додзвонитись до одного із службовців. Приклад надлишкового дублювання. С_Т_Н
Це відношення доповнене атрибутом Н_комн (номір кімнати співробітика). Можна вважати, що всі співробітники з однієї кімнати мають один і той же номер телефону. Вцьому відношенні присутнє надлишкове дублювання даних. В зв ’язку з тим, що Сидоров та Єгоров находяться в цій же кімнаті, що й Петров, їхні номери можна дізнатись із запису з відомостями про Петрова.Можливий спосіб вихода із даної ситуації наведено на мал., де показані 2 відношення, отримані шляхом декомпозиції вихідного. Перше з них містить інформацію про номери кімнат, в якмх розміщені співробітники, а друге – інформацію про номери телефонів в кожній кімнаті. Тепер, якщо Петрова звільнять і видалять інформацію про нього з БД, це не призведе до втрати інформації про телефон в 111 кімнаті.
Процедура декомпозиції відношення на 2 відношення є основною процедурою нормалізації відношень. Надлишкове дублювання створює проблеми при обробці кортежів відношень, так звані “аномалії поновлення відношень”. Аномаліями називають ситуації в таблицях БД, які призводять до протиріч або суттєво ускладнюють обробку даних. Аномалії модифікації проявляються в тому, що зміна значення одного данного може потягнути за собою перегляд всієї таблиці, та зміну деяких іншиз записів таблиці. Так зміна телефону в 111 кімнаті потребуватиме перегляду всієї таблиці С_Т_Н, та зміну поля телефон в трьох записах. Аномалії видалення – при видаленні даних з таблиці може втратитись інформація, не зв ’язана напряму з видаленим даним. Видалення запису про Іванова призводить до втрати телефону в 109 кімнаті (табл. С_Т_Н).Аномалії поповнення виникають у випадках, коли інформацію в таблицю не можна вмістити до тих пір, доки вона неповна, або вставка нового запису потребує додаткового перегляду таблиці. Прикладом може бути операція введення нового співробітника в таблицю С_Т_Н. Безсумнівно буде неприродним зберігання відомостей в цій таблиці тільки про кімнату та номер телефону в ній, доки там не розміщений жодний співробітник. Більш того, якщо поле СПІВРОБІТНИК є ключовим, то зберігання в ній неповних записів з відсутнім прізвищем співробітника неприпустиме, через невизначене значення ключа. Іншим прикладом виникнення аномалії поповнення може бути ситуація включення в таблицю нового співробітника. При введення таких записів для виключення протиріч бажано перевірити номер телефону та відповідний номер кімнати хоча б з одним співробітником, що знаходиться в тій же кімнаті. Якщо виявиться, що номери різні, то невідомо, чи в кімнаті кілька телефонів, чи це помилка.Формування вихідного відношення Проектування БД починається з визначення всіх об ’єктів, відомості про які будуть включені в базу та визначення їх атрибутів. Потім всі атрибути зводяться в одну таблицю – вихідне відношення.Приклад. Формування вихідного відношення. Припустимо, що для учбової частини створюється Бд про викладачів. На першому етапі проектування БД в результаті спілкування із замовником (завідуючим учбовою частиною) повинні бути визначені відомості, що містяться в базі, як використовуватиметься база, та яку інформацію замовник хоче отримувати в процесі її експлуатації. В результаті встановлюються атрибути та зв ’язки між ними:ПІБ – прізвище та ініціали викладача. Посада – посада, яку займає викладач. Оклад – оклад викладача. Стаж –стаж викладача. Д_стаж – надбавка за стаж Предмет Група Вихідне відношення викладач містить надлишкове дублювання, яке є причиною аномалій модифікації. Розрізняють явну та неявну надлишковість. Явна надлишковість заключається в тому, що в відношенні ВИКЛАДАЧ строки з даними про викладачів, що проводять занятття в декількох групах, повторюються відповідне число разів. Неявна надлишковість в відношенні ВИКЛАДАЧ виявляється в однакових окладах у всіх викладачів, та однакових надбавках за однаковий стаж. При цьому, якщо при зміні окладів за посаду з 500 до 510, це значення зміниться в усіх викладачів крім Сидорова, то база стане суперечливою. Нормалізація відношень Засобом виключення надлишковостей є метод нормальних форм. Розглянемо основні види залежностей між атрибутами відношень: функціональні, транзитивні та багатозначні. Атрибут В функціонально залежить від атрибута А, якщо кожному значенню А відповідає тільки одне значення В, позначається Аà B. Це означає, що в усіх кортежах з однаковим значенням атрибута А, атрибут В матиме те ж саме. В нашому випадку ПІБà ПОСАДА; ПІБà ПОСАДА; ПОСАДАà OКЛАД.Функціональна взаємозалежність, якщо між атрибутами А <-->B є взаємнооднозначна відповідність. (ПІБ – ід. Код)С залежить від А транзитивно, якщо Aà B, Bà C, а обернена залежність відсутня (ПІБà Посадаà Оклад).Багатозначна залежність : якщо кожному значенню А, може відповідати більше одного значення В. Виявлення залежностей між атрибутами відношення ВИКЛАДАЧ. ПІБ- унікальне. Існує залежність ПІБ à Стаж, та ПІБ à Д_Стаж, ПІБà Посада, але обернені залежності відсутні. ПІБ à Оклад, Посадаà Оклад, Окладà Посада Відношення знаходится в першій нормальній формі, якщо всі його атрибути прості, мають єдине значення. Вихідне відношення – це відношення в 1НФ. 2НФ , відношення знаходиться в 2НФ, якщо воно знаходиться в 1НФ і кожний неключовий елемент функціонально повно залежить від первинного ключа. R1(ПІБ, Предмет, Група); R2 (ПІБ,ПОСАДА, ОКЛАД, СТАЖ, Д_СТАЖ);Відношення R2 має транзитвні залежності:ПІБà Посадаà Оклад; ПІБà Окладà Посада; ПІБà Стажà Д_Стаж; Ці залежності теж породжують надлишкове дублювання. Приберемо їх. Перетворимо відношення R2, отримавши R3 R4 R5, кожне з яких знаходиться в 3НФ. R3 (ПІБ, Посада, Стаж); R4(Посада,Оклад); R5(Стаж, Д_Стаж);На практиці процес проектування БД на цьому закінчується. Рекомендації відносно розробки структур.
ВИКЛАДАЧ
|