Система управління базою даних (підсистема "Бібліотека") в середовищі Access
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
е обов.; обов.
4 Проектування нормалізованих відношень
4.1 Одержання початкових відношень по методу “суть звязок”
Загальний підхід до проектування баз данних на основі ER-методу що включає в себе наступні кроки:
- побудова діаграми ER - типу , що включає в свій склад всі суті і звязки данної предметної області;
- побудова набору попередніх відношень за вказівкою передбачуваного початкового ключа для кожного відношення ;
- підготовка списку всіх цікавлячих атрибутів (котрі не були перераховані в якості ключів сутей) і назначення кожного з цих атрибутів одному з попередніх відношень так, щоб ці попередні відношення знаходились в нормальних форм. Для виконання цієї задачі необхідно визначити всі міжатрибутні функціональні залежності. У випадку, якщо не вдається привести відношення до нормальних форм або деяким атрибутам не вдасться знайти логічно обгрунтованих місць, слід переглянути ER - діаграми на предмет видалення колізій що виникли.
Попередні відношення формально генеруються з діаграм ER-типу на основі аналізу класу належності і степені відношень сутей, на основі існуючих семи правил.
Ми маємо універсальне відношення:
R (№, категорія_літератури, назва_книги, дата_отримання, П_І_Б_читача, рік_народження, адреса, номер_телефонна, код_книги, автор, рік_друку, язик_книги, кількість_сторінок, видавник, зображення).
Для розглянутого прикладу універсальне відношення необхідно розбити на три відношення:
R1(№, категорія_літератури);
R2(назва_книги, дата_отримання, П_І_Б_читача, рік_народження, адреса, номер_телефонна);
R3(код_книги, автор, рік_друку, язик_книги, кількість_сторінок, видавник, зображення).
Правило 1: якщо степінь бінарних звязків 1:1 і клас належності обовязковий для обох сутей, гарантується однократне появлення кожного значення сутей в будь-якому екземплярі відношень. Тобто у відношенні ніколи не буде ні порожньої інформації, ні груп надлишкових даних що повторються. Проте, якщо клас належності однієї з сутей стане необовязковим, то одного відношеня буде недостаньо, оскільки у всіх кортежах що містять інформацію про екземпляри однієї суті, що не мають звязків з екземплярами другоі суті, зявляються пробіли [9].
Правило 2: якщо степінь бінарного звязку 1:1 і клас належності однієї суті являється обовязковим, а інший необовязковим , то необхідна побудова двох відношень. При цьому ключ суті повинен служити первинним ключем для відповідного відношення. Крім того, ключ суті, для котрого клас належності являється обовязковим, добавляється у якості атрибута у відношення, що видалений для суті з обовязковим класом належності.
Формування двох відношень, кортежі кожного з яких включають лише опис атрибутів відповідної суті, приводить до виключення пробілів у відношеннях [10]. При цьому звязок між сутями буде притримуватися завдяки включенню в одне з відношень ключевих атрибутів іншої суті.
Правило 3: якщо степінь бінарного звязку 1:1 клас належності обох сутей не являється обовязковим, то необхідно використовувати три відношення: по одному для кожноі суті, ключі котрих служать у якості первинних ключів відповідних відношень, і один для звязку. Первинним ключем цього відношення може бути будь-яка з двох сутей. Серед своїх атрибутів відношення, що виділється для звязку, повинно мати по одному ключеві суті кожноі суті.
Правило 4: якщо степінь бінарного звязку 1:N, і клас належності n звязаної суті є обовязковим, то досить використати по одному відношенню на кожну суть, при умові, що ключ кожної суті служить у якості первинного ключа для відповідного відношення. Додатково, ключ 1 звзаної суті повинен бути добавлений, як атрибут у відношенні, що відводиться n звязаній суті.
Правило 5: якщо ступінь бінарного звязку 1:N, і клас належності n звязаної суті являється необовязковим, то необхідно формування трьох відношень: по одному для кожноі суті, причому ключ кожноі суті служить в якості первинного ключа для відповідного відношення, і одного відношення для звязку. Звязок повинен мати серед своїх атрибутів ключ суті кожної із звязуваних сутей.
При степені бінарного звязку M:N без залежності від класу належності сутей завжди необхідно використовувати три відношення [4].
Правило 6: якщо степінь бінарного звязку M:N, то для зберігання даних потрібні три відношення: по одному для кожної суті, при чому ключ кожної суті служить у якості первинного ключа для відповідного відношення, та одного відношення для звязку. Звязок повинен мати серед своїх атрибутів і ключ суті кожної із звязуваних сутей. Виявлення у предметній області трьохсторонніх звязків приводить до необхідності використання чотирьох відношень.
Правило 7: у випадку наявності трьохстороннього звязку завжди використовуються чотири відношення: по одному для кожноі суті, причому ключ кожної суті служить в якості первинного ключа для відповідного відношення, і одного відношення для звязку. Звязок повинен мати серед своїх атрибутів ключі суті кожної із звязуваних сутей.
Очевидно, що використання двох відношень в цьому випадку дозволяє встановити дублювання інформації (багатократній опис атрибута 1 звязаної суті, звязаного з n атрибутами n звязаної суті) [2].
4.2 Нормалізація відношень
При розробці реляційної бази даних виникає необхідність проектування її оптимальної схеми, яка б включала певну кількість та тип атрибутів однієї або кількох таблиць, при цьому сукупність атрибутів має бути такою