русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Организация связи сущностей


Дата добавления: 2013-12-23; просмотров: 2009; Нарушение авторских прав


Какими должны быть таблицы сущностей

Третья нормальная форма

Вторая нормальная форма

Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме, и каждый неключевой атрибут функционально полно зависит от первичного ключа (атрибут называется неключевым, если он не является составной частью первичного ключа). Основное действие: удаление частичной зависимости.

Отношение Преподаватель уже находится во второй нормальной форме, поскольку первичный ключ состоит из одного атрибута.

Рассмотрим подробнее отношение ПреподавательЭкзаменГруппа. Можно заметить, что атрибуты, связанные группой, зависят только от части первичного ключа. Также Наименование экзамена зависит только от части первичного ключа.

 

Исходя из этого наблюдения рекомендуется разбить отношение на три, удалив атрибут Группа, так как он зависит от Код группы. И удалив атрибут Наименование экзамена, так как он зависит от Код экзамена. В результате получены четыре отношения, находящиеся во второй нормальной форме:

 

 

 

Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.

Основное действие: удаление транзитивной зависимости.

Отношение Группа уже находится в третьей нормальной форме, поскольку все атрибуты зависят непосредственно от первичного ключа. Отношения Экзамен и Дата экзамена также находятся в третьей нормальной форме. Рассмотрим подробнее отношение Преподаватель: можно заметить, что атрибут Кафедра зависит от Код преподавателя через Код кафедры. Основываясь на данном наблюдении разобьем отношение на следующие два:

 

В результате получены пять отношений: Преподаватель, Кафедра, Экзамен, Группа, Дата экзамена, каждое из которых находится в третей нормальной форме. Нормализация завершена.



В качестве обобщения материала предыдущего подраздела приведем наиболее важные рекомендации, неучет которых может привести к аномалиям при обра­ботке данных в базах. Остановимся на двух вопросах: исходя из каких соображе­ний нужно создавать отношения (таблицы) и каким образом следует их связывать.

Основное правило при создании таблиц сущностей - это «каждой сущнос­ти - отдельную таблицу» (как в популярном лозунге: «каждой семье - от­дельную квартиру»),

Поля таблиц сущностей могут быть двух видов: ключевые и неключевые. Введение ключей в таблице практически во всех реляционных СУБД позво­ляет обеспечить уникальность значений в записях таблицы по ключу, уско­рить обработку записей таблицы, а также выполнить автоматическую сорти­ровку записей по значениям в ключевых полях.

Обычно достаточно определения простого ключа, реже - вводят составной ключ. Таблицей с составным ключом может быть, например, таблица хранения списка сотрудников (фамилия, имя и отчество), в котором встречаются однофа­мильцы. В некоторых СУБД пользователям предлагается определить автомати­чески создаваемое ключевое поле нумерации (в Access - это поле типа «счет­чик»), которое упрощает решение проблемы уникальности записей таблицы.

Иногда в таблицах сущностей имеются поля описания свойств или характерис­тик объектов. Если в таблице есть значительное число повторений по этим полям и эта информация имеет существенный объем, то лучше их выделить в отдельную таблицу (придерживаясь правила: «каждой сущности - отдельную таблицу»). Тем более, следует образовать дополнительную таблицу, если свойства взаимосвязаны.

В более общем виде последние рекомендации можно сформулировать так: информациюо сущностях следует представить таким образом, чтобы неклю­чевые поля в таблицах были взаимно независимыми и полностью зависели от ключа (см. определение третьей нормальной фирмы).

В процессе обработки таблиц сущностей надо иметь в виду следующее. Новую сущность легко добавить и изменить, но при удалении следует уничтожить все ссылки на нее из таблиц связей, иначе таблицы связей будут некорректными. Мно­гие современные СУБД блокируют некорректные действия в подобных операциях.

Записи таблицы связей предназначены для отображения связей между сущностями, информация о которых находится в соответствующих табли­цах сущностей.

Обычно одна таблица связей описывает взаимосвязь двух сущностей. По­скольку таблицы сущностей в простейшем случае имеют по одному ключе­вому полю, то таблица связей двух таблиц для обеспечения уникальности должна иметь два ключа. Можно создать таблицу связей, как и таблицу объектов, и без ключей, но тогда функции контроля за уникальностью записей ложатся на пользователей.

Более сложные связи (не бинарные) следует сводить к бинарным. Для описания взаимосвязей N объектов требуется N-1 таблиц связей. Транзитивных связей не должно быть. Избыток связей приводит к противоречиям.

Не следует включать в таблицы связей характеристики сущностей, иначе неизбежны аномалии. Их лучше хранить в отдельных таблицах сущностей.

С помощью таблиц связей можно описывать и несколько специфичный вид связи - линейную связь, или слабую связь. Примером линейной связи можно считать отношение принадлежности сущностей некоторой другой сущ­ности более высокого порядка (системы, состоящие изузлов; лекарства, состоящие из компонентов; сплавы металлов и т. д.). В этом случае для описа­ния связей достаточно одной таблицы связей.

При работе с таблицами связей следует иметь в виду, что любая запись из таблицы связей легко может быть удалена, поскольку сущности некоторое вре­мя могут обойтись и без связей. При добавлении или изменении содержимого записей таблицы надо контролировать правильность ссылок на существующие объекты, так как связь без объектов существовать не может. Большинство современных СУБД контролируют правильность ссылок па объекты.

 



<== предыдущая лекция | следующая лекция ==>
Первая нормальная форма | Проблемы создания и ведения реляционных баз данных


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.002 сек.