Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. - Базы данных. Учебник для высших учебных заведений (6-е изд.) - 2009 (960530), страница 35
Текст из файла (страница 35)
Метод ERдиаграмм рассматривается в следующем разделе.На последнем этапе метода ER-диаграмм отношения, полученные в результате проектирования, проверяются на принадлежность их к БКНФ. Этот этапможет выполняться уже с использованием метода нормальных форм. Послезавершения проектирования создается БД с помощью СУБД.5. Проектирование баз данных1715.3.
Рекомендации по разработке структурВ качестве обобщения материала предыдущего подраздела приведем наиболееважные рекомендации, неучет которых может привести к аномалиям при обработке данных в базах. Остановимся на двух вопросах: исходя из каких соображений нужно создавать отношения (таблицы) и каким образом следует их связывать.Какими должныбыть таблицысущностейОсновное правило при создании таблиц сущностей - это «каждой сущности - отдельную таблицу» (как в популярном лозунге: «каждой семье - отдельную квартиру»),Поля таблиц сущностей могут быть двух видов: ключевые и неключевые.Введение ключей в таблице практически во всех реляционных С У Б Д позволяет обеспечить уникальность значений в записях таблицы по ключу, ускорить обработку записей таблицы, а также выполнить автоматическую сортировку записей по значениям в ключевых полях.
.Обычно достаточно определения простого ключа, реже - вводят составнойключ. Таблицей с составным ключом может быть, например, таблица хранениясписка сотрудников (фамилия, имя и отчество), в котором встречаются однофамильцы. В некоторых СУБД пользователям предлагается определить автоматически создаваемое ключевое поле нумерации (в Access - это поле типа «счетчик»), которое упрощает решение проблемы уникальности записей таблицы.Иногда в таблицах сущностей имеются поля описания свойств или характеристик объектов.
Если в таблице есть значительное число повторений по этим полям иэта информация имеет существенный объем, то лучше их выделить в отдельнуютаблицу (придерживаясь правила: «каждой сущности - отдельную таблицу»). Темболее, следует образовать дополнительную таблицу, если свойства взаимосвязаны.В более общем виде последние рекомендации можно сформулировать так:информацию о сущностях следует представить таким образом, чтобы неключевые поля в таблицах были взаимно независимыми и полностью зависелиот ключа (см. определение третьей нормальной формы).В процессе обработки таблиц сущностей надо иметь в виду следующее.
Новуюсущность легко добавить и изменить, но при удалении следует уничтожить всессылки на нее из таблиц связей, иначе таблицы связей будут некорректными. Многие современные СУБД блокируют некорректные действия в подобных операциях.ОрганизациясвязисущностейЗаписи таблицы связей предназначены для отображения связей междусущностями, информация о которых находится в соответствующих таблицах сущностей.Обычно одна таблица связей описывает взаимосвязь двух сущностей. Поскольку таблицы сущностей в простейшем случае имеют по одному ключевому полю, то таблица связей двух таблиц для обеспечения уникальности за-172Часть 2. Проектирование и использование БДписей о связях должна иметь два ключа. Можно создать таблицу связей, каки таблицу объектов, и без ключей, но тогда функции контроля за уникальностью записей ложатся на пользователя.Более сложные связи (не бинарные) следует сводить к бинарным.
Для описания взаимосвязей N объектов требуется N-1 таблиц связей. Транзитивныхсвязей не должно быть. Избыток связей приводит к противоречиям (см. пример отношений С О Т Р У Д Н И К И - О Т Д Е Л Ы , С О Т Р У Д Н И К И - П Р О Е К Т Ы иО Т Д Е Л Ы - П Р О Е К Т Ы предыдущего подраздела).Не следует включать в таблицы связей характеристики сущностей, иначенеизбежны аномалии. Их лучше хранить в отдельных таблицах сущностей.С помощью таблиц связей можно описывать и несколько специфичныйвид связи - линейную связь, или слабую связь. Примером линейной связиможно считать отношение принадлежности сущностей некоторой другой сущности более высокого порядка (системы, состоящие из узлов; лекарства, состоящие из компонентов; сплавы металлов и т.
д.). В этом случае для описания связей достаточно одной таблицы связей.При работе с таблицами связей следует иметь в виду, что любая запись изтаблицы связей легко может быть удалена, поскольку сущности некоторое время могут обойтись и без связей. При добавлении или изменении содержимогозаписей таблицы надо контролировать правильность ссылок на существующиеобъекты, так как связь без объектов существовать не может. Большинство современных СУБД контролируют правильность ссылок на объекты.5 . 4 .
Обеспечение целостностиПод целостностью понимают свойство базы данных, означающее, чтоона содержит полную, непротиворечивую и адекватно отражающую предметную область информацию.Различают физическую алогическую целостность. Физическая целостностьозначает наличие физического доступа к данным и то, что данные не утрачены. Логическая целостность означает отсутствие логических ошибок в базеданных, к которым относятся нарушение структуры БД или ее объектов, удаление или изменение установленных связей между объектами и т.
д. В дальнейшем речь будем вести о логической целостности.Поддержание целостности БД включает проверку (контроль) целостности и ее восстановление в случае обнаружения противоречий в базе. Целостное состояние БД задается с помощью ограничений целостности в виде условий, которым должны удовлетворять хранимые в базе данные.Среди ограничений целостности можно выделить два основных типаограничений: ограничения значений атрибутов отношений и структурныеограничения на кортежи отношений.1735. Проектирование баз данныхПримером ограничений значений атрибутов отношений является требование недопустимости пустых или повторяющихся значений в атрибутах, а также контроль принадлежности значений атрибутов заданному диапазону.
Так, в записях отношений о кадрах значения атрибута Дата_рождения не могут превышать значений атрибута Дата_приема.Наиболее гибким средством реализации контроля значений атрибутов являются хранимые процедуры и триггеры, имеющиеся в некоторых СУБД.Структурные ограничения определяют требования целостности сушгностей и целостности ссылок.
Каждому экземпляру сущности, представленному в отношении, соответствует только один его кортеж. Требование целостности сущностей состоит в том, что любой кортеж отношения долженбыть отличим от любого другого кортежа этого отношения, т. е., иными словами, любое отношение должно обладать первичным ключом.Формулировка требования целостности ссылок тесно связана с понятиемвнешнего ключа. Напомним, что внешние ключи служат для связи отношений(таблиц БД) между собой. При этом атрибут одного отношения (родительского) называется внешним ключом данного отношения, если он является первичным ключом другого отношения (дочернего).
Говорят, что отношение, вкотором определен внешний ключ, ссылается на отношение, в котором этотже атрибут является первичным ключом.Требование целостности ссылок состоит в том, что для каждого значения внешнего ключа родительской таблицы должна найтись строка в дочерней таблице стаким же значением первичного ключа. Например, если в отношении R1(рис. 5.8) содержатся сведения о сотрудниках кафедры, а атрибут этого отношенияДолжн является первичным ключом отношения R2, то в этом отношении для каждой должности из R1 должна быть строка с соответствующим ей окладом.Во многих современных СУБД имеются средства обеспечения контроля целостности БД.Дочерняя таблицаРодительская таблицаR2ФИОДолжнКаф СтажДолжнОкладИванов И.М.преп255преп500Петров М.И.ст.преп257ст. преп800Сидоров Н.Г.
преп2510Егоров В. В.245ПервичныйключпрепВнешнийключРис. 5.8. Связь отношений с помощью внешнего ключаЧасть 2. Проектирование и использование БД174Контрольныевопросыизадания1.2.3.4.5.6.7.Назовите подходы к проектированию структур данных.В чем состоит избыточное и неизбыточное дублирование данных?Назовите и охарактеризуйте основные виды аномалий.Как формируется исходное отношение при проектировании БД?Приведите примеры явной и неявной избыточности.Назовите основные виды зависимостей между атрибутами отношений.Приведите примеры функциональной и частичной функциональной зависимостей.8. Приведите примеры отношений с зависимыми атрибутами.9. Охарактеризуйте нормальные формы.10.
Дайте определение первой нормальной формы.11. Дайте определение второй нормальной формы.12. Дайте определение третьей нормальной формы.13. Дайте определение усиленной третьей нормальной формы.14. Поясните на примере используемых в разделе таблиц требования 4 Н Ф .15. Поясните на примере используемых в разделе таблиц требования 5 Н Ф .16. Сформулируйте основное правило создания таблиц сущностей.17.
Назовите рекомендации по организации связи сущностей.18. Дайте определение физической и логической целостности БД.19. Приведите примеры ограничений значений и структурных ограничений.20. Поясните понятия внешнего и первичного ключей таблиц.21. Разработайте схему БД, позволяющую просматривать и редактироватьинформацию об автомобильном парке организации. БД должна содержать сведения о водителях машин (категория транспортных средств,водительский стаж, закрепленные автомобили и т. д.), а также автомобилях автопарка (марка, год выпуска, техническое состояние и т. д.).Предложите и обоснуйте выбор структур таблиц, их взаимосвязь и укажите вид нормальных форм таблиц.Литература1.