- •Введение
- •1 Анализ предметной области
- •Из истории.
- •Функциональная структура предметной области
- •Диаграмма потоков данных (dfd-диаграмма)
- •Концептуальное проектирование данных
- •Построение логической модели данных
- •3.1 Выделение ключей
- •Проектирование логической структуры
- •3.2 Нормализация отношений
- •3.3 Поддержка целостности данных
- •Выбор субд
- •Проектирование sql – запросов
- •Проектирование sql – запросов
- •1. Общие положения
- •8. 2 Приложение b – заполненные данными реляционные таблицы
- •8. 3 Приложение с – результаты отработки запросов (запрос – таблица ответа)
- •8. 4 Приложение d – код на встроенном языке субд
3.2 Нормализация отношений
Процесс уменьшения избыточности информации в базе данных называется нормализацией.
Каждой нормальной форме соответствует некоторый определенный набор ограничений, и отношение находится в некоторой нормальной форме, если удовлетворяет свойственному ей набору ограничений. Примером набора ограничений является ограничение первой нормальной формы - значения всех атрибутов отношения атомарные. Таблица в первой нормальной форме должна удовлетворять следующим требованиям:
-
Таблица не должна иметь повторяющихся записей.
-
В таблице должны отсутствовать повторяющиеся группы полей.
-
Строки должны быть не упорядочены.
-
Столбцы должны быть не упорядочены.
Правила нормализации
1. Значение атрибута для экземпляра сущности должно быть единственным ( 1-я нормальная форма (НФ) сущности );
2. для сущности, уже находящейся в 1НФ, значение каждого неидентифицирующего атрибута должно полностью зависеть от всего уникального идентификатора сущности ( 2-я нормальная форма (НФ) сущности );
3. для сущности, уже находящейся в 2НФ, значение каждого неидентифицирующего атрибута не должно зависеть от значения другого неидентифицирующего атрибута ( 3-я нормальная форма (НФ) сущности );
Попробуем применить эти правила к сущности Подписка. Для начала - об идентифицирующих атрибутах. Чтобы избежать путаницы, каждый экземпляр сущности должен иметь идентифицирующий атрибут ( составной идентифицирующий атрибут, состоящий из нескольких неидентифицирующих ). На практике это означает, что в таблице должен присутствовать столбец, все значения в ячейках которого уникальны, не равны NULL и не меняются. В нашей таблице нет ни одного столбца, значения которого были бы уникальны. Самый простой выход - добавить столбец Код, в котором перенумеровать строки по порядку. Первому правилу нормализации явно не удовлетворяет атрибут Издание - в одной ячейке - несколько значений.
Вторая нормальная форма.
О таблице говорят, что она находится во второй нормальной форме, если:
-
Она удовлетворяет условиям первой нормальной формы.
-
Любое не ключевое поле однозначно идентифицировать полным набором ключевых полей.
Третья нормальная форма.
О таблице говорят, что она находится в третьей нормальной форме, если:
1. Она удовлетворяет условиям второй нормальной формы.
2. Ни одно из неключевых полей таблицы не идентифицируется с помощью другого неключевого поля.
Сведение таблицы к третьей нормальной форме предполагает разделение таблицы с целью помещения в отдельную таблицу столбцов, которые не зависят от значения составного индекса. В результате такого разбиения каждое из неключевых полей должно оказаться независимым от какого-либо другого неключевого поля.
Рис.6 Логическая модель базы данных «Автошкола»
3.3 Поддержка целостности данных
Эта характеристика подразумевает наличие средств, позволяющих удостовериться, что информация в базе данных всегда остается корректной и полной. Должны быть установлены правила целостности, и они должны храниться вместе с базой данных и соблюдаться на глобальном уровне. Целостность данных должна обеспечиваться независимо от того, каким образом данные заносятся в память (в интерактивном режиме, посредством импорта или с помощью специальной программы).
К средствам обеспечения целостности данных на уровне СУБД относятся:
-
встроенные средства для назначения первичного ключа, в том числе средства для работы с типом полей с автоматическим приращением, когда СУБД самостоятельно присваивает новое уникальное значение;
-
средства поддержания ссылочной целостности, которые обеспечивают запись информации о связях таблиц и автоматически пресекают любую операцию, приводящую к нарушению ссылочной целостности.
Некоторые СУБД имеют хорошо разработанный процессор СУБД для реализации таких возможностей, как уникальность первичных ключей, ограничение (пресечение) операций и даже каскадное обновление и удаление информации. В таких системах проверка корректности, назначаемая полю или таблице, будет проводиться всегда после изменения данных, а не только во время ввода информации с помощью экранной формы. Это свойство можно настраивать для каждого поля и для записи в целом, что позволяет контролировать не только значения отдельных полей, но и взаимосвязи между несколькими полями данной записи.