Программирование в Microsoft SQL Server 2000

         

Понятие об отношениях


Большинство баз данных предназначены для моделирования некой части реального мира, которую называют пространством состояний (problem space). На логическом уровне объекты в пространстве состояний являются сущностями (entities) и связаны между собой через отношения (relationships). На физическом уровне Microsoft SQL Server представляет сущности в виде таблиц, а отношения – в виде ограничений внешнего ключа, которые определяют внешние ключи.

Реляционная модель

Многие думают, что реляционные базы данных называются "реляционными" ("relational"), поскольку между таблицами устанавливаются отношения (relationships). На самом деле это название произошло от английского термина "relation", означающего "отношение", который был введен доктором Э.Ф.Коддом для описания объекта, который в SQL Server реализован в виде таблицы.

Существует три типа отношений: один-к-одному, при котором каждая строка таблицы связана с нулем или одной строкой другой таблицы; один-ко-многим, при котором каждая строка таблицы связана с нулем, одной или несколькими строками другой таблицы; и много-ко-многим, при котором каждая строка первой таблицы связана с нулем, одной или несколькими строками второй таблицы, а каждая строка второй таблицы может быть связана с нулем, одной или несколькими строками первой таблицы.

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

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

Отношения много-ко-многим также встречаются довольно часто. В нашем примере отношение много-ко-многим существует между таблицей Properties и таблицей Oils – любой вид масла может иметь несколько свойств, а любое свойство может относиться к нескольким видам масла.

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




Содержание раздела