4_Проектирование баз.ppt
- Количество слайдов: 33
Проектирование баз данных Графеева Н. Г. 2013
Утверждение • • Любые данные можно представить в виде набора отношений (таблиц), каждое из которых будет представлено в виде 5 NF.
Нормальные формы • • первая нормальная форма (1 NF) вторая нормальная форма (2 NF) третья нормальная форма (3 NF) нормальная форма Бойса-Кодда (BCNF) • четвертая нормальная форма (4 NF) • пятая нормальная форма (5 NF)
Основные свойства нормальных форм • каждая следующая нормальная форма в некотором смысле лучше предыдущей; • при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.
Определение 1. Первая нормальная форма • Отношение является отношением в первой нормальной форме (1 NF), если все его атрибуты атомарны. • Пример: • STUDENT(num_st, first_name, middle_name, last_name, address, bdate)
Упражнение 1 • Представьте структуру университета в виде отношений (таблиц) в 1 NF. • • Университет (Название, Ректор (Id), Адрес, ИНН) Факультеты (ID, Название, Декан(Id), Адрес) Кафедры (Название, ID факультета, Зав. каф. (Id)) Сотрудники (ID, Фамилия, Имя, Отчество, ИНН, должность (Id), id факультета, id кафедры) • Должности (ID, название) • Студенты (номер студ. , Фамилия, Имя, Отчество, id группы, id кафедры) • Группы (Id, номер группы, курс, факультет, форма обучения)
Определение 2 Функциональная зависимость • В отношении R атрибут Y функционально зависит от атрибута X (X и Y могут быть составными) в том и только в том случае, если каждому значению X соответствует в точности одно значение Y: • R. X --> R. Y
Пример • STUDENT(num_st, first_name, middle_name, last_name, address, bdate) • • • num_st --> first_name num_st --> middle_name num_st --> last_name num_st --> address num_st --> bdate
Определение 3. Полная функциональная зависимость • Функциональная зависимость • R. X --> R. Y • называется полной, если атрибут Y функционально зависит от всего множества X и не зависит от подмножеств X.
• Пример (полная функциональная зависимость) • MARKS(num_st, course_code, mark) • num_st + course_code --> mark
Определение 4. Ключ отношения • Ключом принято называть атрибут (группу атрибутов), значения которого однозначно определяют строку в отношении (таблице). • Примеры: • STUDENT(num_st, first_name, middle_name, last_name, address, bdate) • MARKS(num_st, course_code, mark)
Определение 5. Вторая нормальная форма • Отношение R находится во второй нормальной форме (2 NF) в том и только в том случае, когда оно находится в 1 NF, и каждый неключевой атрибут полностью функционально зависит от каждого возможного ключа R.
Что делать, если отсутствует полная зависимость от ключа? • Например: • MARKS(num_st, course_code, name_course, mark) • • • num_st, course_code--> name_course num_st, course_code--> mark Проводить декомпозицию отношения…
Пример декомпозиции отношения • MARKS(num_st, course_code, name_course, mark) • ===================== • MARKS(num_st, course_code, mark) • COURSE (course_code, name_course)
Определение 6. Транзитивная функциональная зависимость • Функциональная зависимость • R. X -> R. Y • называется транзитивной, если существует такой атрибут Z, что имеются функциональные зависимости • R. X -> R. Z и R. Z -> R. Y
Определение 7. Третья нормальная форма. • Отношение R находится в третьей нормальной форме (3 NF) в том и только в том случае, если находится во 2 NF, и каждый неключевой атрибут не является транзитивно зависимым от какого-либо ключа R.
Что делать, если транзитивная зависимость присутствует? • СОТРУДНИК (номер_сотрудника, фамилия, имя, отчество, должность, тип оплаты) • номер_сотрудника --> фамилия • номер_сотрудника --> имя • номер_сотрудника --> отчество • номер_сотрудника --> должность • номер_сотрудника --> тип оплаты • должность --> тип оплаты • Проводить декомпозицию отношений…
Пример декомпозиции отношения • СОТРУДНИК (номер_сотрудника, фамилия, имя, отчество, должность, тип оплаты) • ================== • СОТРУДНИК (номер_сотрудника, фамилия, имя, отчество, должность) • ДОЛЖНОСТЬ(должность, тип оплаты)
• Кроме упомянутых форм существуют форма Бойса-Кодда, 4 и 5 нормальные формы. Но о них подробно в курсе Базы Данных….
Упражнение 2 • • Спроектировать БД(таблицы), в которой будут представлены данные о налогах, которые платят владельцы торговых точек (налоги платятся в соответствии с категорией точки и занимаемой площадью). • • • Список торговых точек( ID, категория, площадь, ID владельца ) Категории ( ID, название, коэффициент ) Список владельцев ( ID, Фамилия, Имя, Отчество, ИНН, адрес, телефон, паспортные данные ) Платежи ( ID точки, период, сумма, дата оплаты за период ) Норматив (норматив) • Михайлов Дмитрий 341
Правила целостности • При проектировании базы данных недостаточно спроектировать таблицы, в которых будут храниться данные. Необходимо предусмотреть, так называемые, правила целостности. Почти во всех СУБД предусмотрены следующие типы правил целостности: • • • • NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK - запрет пустых значений - контроль уникальных значений - первичный ключ - внешний ключ (контроль ссылок) - контроль значений
Правило целостности NOT NULL
Правило целостности UNIQUE
Составное правило целостности UNIQUE
Правило целостности PRIMARY KEY • Правило PRIMARY KEY для таблицы может быть только одно. • Правило строится по ключевым полям таблицы. - Правило не позволит добавить в таблицу записи с повторяющимся значением поля (если по нему декларировано правило PRIMARY KEY). • Правило не позволит ввести значение NULL в поле (поля), по которому декларировано правило PRIMARY KEY.
Правило PRIMARY KEY
Правило целостности FOREIGN KEY(Referential)
Правило FOREIGN KEY
Правило FOREIGN KEY(Self. Referential)
Как в базе данных задаются таблицы и правила целостности? • Почти во всех существующих промышленных СУБД сегодня для создания объектов базы используется язык SQL DDL. • Кроме того, существуют разнообразные инструменты, позволяющие задать структуру базы (и автоматически сгенерировать код SQL DDL).
Упражнение 3 • С помощью инструментов ORACLE APEX создать таблицы (см. упражнение 2) и правила целостности к ним.
Домашнее задание 2(10 баллов) • В соответствии с выбранной предметной областью создать таблицы и соответствующие им правила целостности в ORACLE APEX. • Сгенерировать соответствующий скрипт на языке SQL DDL. • Отправить результат по адресу grafeyeva@is 4 b. ru. Тема письма – applcation_2013.
Рекомендованная литература к курсу • 1. Б. А. Новиков, Г. Р. Домбровская, Настройка приложений баз данных, 2006 • 2. John Edward Scott and Scott Spendolini, Pro Oracle Application Express, 2008 • 3. Том Кайт, Oracle для профессионалов
4_Проектирование баз.ppt