русс | укр

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

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

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

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


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

Типы связей и ключей в РБД


Дата добавления: 2015-07-09; просмотров: 2956; Нарушение авторских прав


Как уже отмечалось, в БД все таблицы должны быть так или иначе связаны между собой, чтобы обеспечить целостность данных, создающих информационную модель некой предметной области. Если оказалось, что одна из таблиц в создаваемой БД не имеет связей ни с одной другой таблицей, то в этом случае необходимо создавать новую БД либо рассматривать более широкую предметную область, для которой создается БД.

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

Каждому внешнему ключу должна соответствовать строка какого-либо объект­ного отношения. Невыполнение этого ограничения может привести к нарушению ссы­лочной целостности данных. Ключ должен ссылаться на объект, который существует.

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

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

2. Все строки таблицы должны иметь одну и ту же структуру, т.е. одно и то же количество атрибутов.

3. Имена столбцов таблицы должны быть различны, а значения столбцов долж­ны быть однотипными.

4. Значения атрибутов должны быть простыми, следовательно, отношения не могут иметь в качестве компонент другие отношения.

5. Должна соблюдаться ссылочная целостность для внешних ключей.

6. Порядок следования строк в таблице несущественен - он лишь влияет на ско­рость доступа к строке.



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

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

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

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

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

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

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

Как уже отмечалось выше, основным достоинством любой БД явля­ется способность быстро находить и объединять информацию, хранящую­ся в разных таблицах. Для решения первой задачи каждая таблица в БД должна содержать поле или набор полей, значение которого или совокуп­ность значений которых однозначно определяет каждую запись этой таб­лицы. На языке БД такое поле или совокупность полей называется ключом таблицы, а точнее, первичным ключом таблицы. При этом кандидатами на роль ключа таблицы могут быть любые поля, которые содержат уникаль­ные (неповторяющиеся) значения для каждой записи, т.н. потенци­альные ключи таблицы. Если в роли ключа выступают сразу несколько по­лей, когда в таблице просто нет одного поля с неповторяющимися значе­ниями, то приходится подбирать такую комбинацию полей, значение ко­торой будет уникальным. Такой ключ называется составным клю­чом.

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

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

 
 

 

 


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

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

Контрольные вопросы

1. Объектная модель БД.

2. Основные понятия и термины БД.

3. Типы БД и особенности их функционирования.

4. Исходные компоненты РБД.

5. Особенности и преимущества РБД.

6. Этапы проектирования РБД.

7. Правила нормализации РБД.

8. 1-я нормальная форма.

9. 2-я нормальная форма.

10. 3-я нормальная форма.

11. Объектные и межтабличные связи в РБД.

12. Понятие отношения в РБД.

13. Типы отношений в РБД.

14. Типы ключей в РБД.

15. Использование составного первичного ключа.

16. Назначение внешних ключей.

17. Условия и ограничения, накладываемые на отношения в РБД.

18. Типы связей в РБД.

19. Использование связей один-к-одному.

20. Назначение индексных таблиц.

 



<== предыдущая лекция | следующая лекция ==>
Нормализация отношений в РБД | Создание БД в СУБД Access


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


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

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

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


 


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

 
 

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

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