Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





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

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

Различают две разновидности связи «один-ко-многим». В первом случае для каждой записи главной таблицы должны существовать записи в подчиненной. Во втором — наличие записей в подчиненной таблице необязательно. В примере, приведенном на рис. 1.6, одному студенту в главной таблице Ссылочная целостность соответствует несколько различных предметов. Связь осуществляется по полю «Номер».

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

Ссылочная целостность


На рис. 1.8 представлена таблица, находящаяся в отношении «один-ко-многим». Связь производиться по полю «Номер».

Потеря связей между записями может произойти в нескольких случаях:
- Если будет изменено значение поля связи в родительской таблице без изменения значений в полях дочерней таблицы.
- Если будет изменено значение поля (полей) связи в дочерней таблице без изменения соответствующего значения в родительской таблице. Рассмотрим простой случай.
Неожиданно у одного из клиентов картинной галереи сменился личный номер. Таким образом, в таблице «Покупатель» у Иванова оказался номер 11.
Так как у Иванова А. Г. номер 11, а заказанные им товары находятся под номером 1, то налицо нарушение целостности и достоверности данных. В новом, измененном варианте, Иванов ничего не заказал, а в таблице «Проданные картины» появились «бесхозные данные».



   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru