|
Программирование >> Программирование баз данных
Основные типы связей Прежде чем переходить к изучению более сложных понятий, связанных с созданием ER-диаграмм, необходимо ознакомиться с тем, какие типы связей применяются в этих диаграммах. В настоящей главе рассматриваются два типа связей - идентифицирующие и неидентифицирующие. Идентифицирующие связи Определение понятия связей, применяемое в области обработки данньгх, является более простым и более формальным по сравнению с тем, как определяются связи между объектами реального мира. Связи, реализуемые в базе данных, речь о которых идет в данной главе, определяются внешними ключами. Идентифицирующей связью называется такая связь, в которой один или несколько столбцов ключа (напомним, что ключ может состоять из нескольких столбцов), указанные в ссылке (т.е. находящиеся в родительской таблице), используются в качестве всего первичного ключа или части первичного ключа ссьыающейся (т.е. дочерней) таблицы. Таким образом, первичный ключ служит для идентификации строк дочерней таблицы, а весь первичный ключ или часть первичного ключа дочерней таблицы зависит от родительской таблицы, поэтому можно утверждать, что дочерняя таблица (по крайней мере частично) идентифицируется родительской таблицей. Неидентифицирующие связи Неидентифицирующими связями называются связи, создаваемые при определении внешнего ключа, который не входит в состав первичного ключа ссылающейся (дочерней) таблицы. Неидентифицирующие связи очень часто применяются в таких ситуациях, когда ссылка указывает на справочную таблицу, ведь единственным назначением таблицы, указанной в ссылке, является регламентация значений данных в ссылающемся столбце на основе заданного списка возможных вариантов. Определение сущности Одно из многих важных различий, обнаруживаемых при сравнении инструментальных средств формирования ER-диаграмм типа IE и ШЕЕ IX с собственными средствами подготовки ER-диаграмм, применяемыми в СУБД SQL Server, заключается втом, что в этих программах применяются разные определения сущности. Определение сущности примерно соответствует таблице (насколько оправданным является это утверждение, зависит также от того, идет ли речь о логической или физической модели). Определение сущности должно соответствовать такому требованию, чтобы с его помощью можно было легко определить имя сущности, первичный ключ и все атрибуты (по существу эквивалентные столбцам), которые имеет сущность. Кроме того, на самой ER-диаграмме может быть представлена другая информация, такая как тип данных атрибута или указание на то, определен ли для сущности внешний ключ. В качестве примера рассмотрим определение сущности, показанное на рис. 7.1. Имя сущности должно находиться над прямоугольником.
в котором представлено определение сущности. Кроме того. Рис. 7.1. Пример опре-в верхней части общего прямоугольника, но в отдельной рамке деления сущности указан первичный ключ (ниже приведен также пример, в котором первичный ключ состоит из нескольких столбцов), а в нижней части перечислены атрибуты сущности. Теперь рассмотрим немного другое определение сущности (рис. 7.2). Это определение характеризуется наличием некото-рьгх особенностей, перечисленных ниже. OrderDetails Lineltem ТЕХТ(50) OrderlD INT (FK) PartNo TEXT(5) Qty INT UnitPrice CURRENCY Указаны типы данных (поскольку перед формированием ER-диаграммы разрешена соответст- Рис. 7.2. Еще один пример вующая опция). опредепения сущности Заданы внешние ключи (внешние ключи отображаются, если они определены, но и в этом случае должна быть разрешена относящаяся к этому опция). В данном случае первичный ключ состоит из нескольких столбцов (к первичному ключу относится все, что находится над чертой в прямоугольнике определения сущности). Но в этом примере определение сущности задано в прямоугольнике со скругленными углами. Такое обозначение указывает на то, что данная таблица идентифицирована (напомним, что описание идентифицирующих связей приведено выше) по крайней мере одной отличной от нее таблицей. Некоторые инструментальные средства создания ER-диаграмм позволяют задавать определения типов данных непосредственно в составе ER-диаграммы. Связи между сущностями на ER-диаграмме обозначаются линиями связи (пример применения обозначений связей приведен ниже). При этом предусмотрена возможность показывать с помощью линий связи внешние ключи. Большинство применяемых инструментальных средств создания ER-диаграмм позволяет даже автоматически определять указанный в ссылке столбец (столбцы) в связи с внешним ключом как являющийся частью первичного ключа (или, возможно, составляющий весь первичный ключ) в ссылающейся таблице. Линии связи Линии связи, применяемые в ER-диаграммах, подразделяются на два типа и полностью соответствуют описанным выше типам связей. Сплошной линией обозначается идентифицирующая связь (рис. 7.3). Рис. 7.3. Идентифицирующая связь Штриховой или пунктирной линией обозначается неидентифицирующая связь (рис. 7.4). Рис. 7.4. Неидентифицирующая связь Напомним, что идентифицирующей связью называется такая связь, в которой столбец, ссылающийся на другую таблицу, служит в качестве части первичного ключа (или всего первичного ключа) ссылающейся таблицы. А в случае неидентифицирую-щей связи столбец внешнего ключа никоим образом не связан с первичным ключом ссылающейся таблицы. Признаки конца ER-диаграмма становится окончательно оформленной только после проведения на ней линий связи. Сами линии связи в местах соединения с обозначениями сущностей имеют признаки конца, которые также подразделяются на несколько типов. Признаки конца, которыми обозначаются линии связи, позволяют существенно дополнить информацию о характере рассматриваемой базы данньгх, представленьгтю в определениях сущностей. В частности, признаки конца линий связи позволяют многое узнать о сущности связи, в частности, получить сведения о кардинальности связи. Наиболее фундаментальным определением кардинальности связи является то, что она показывает количество строк с обеих сторон связи. Кардинальность может быть указана в самом обозначении связи. Например, связь один ко многим устанавливает соответствие между одной и несколькими строками. Тем не менее принятый способ определения кардинальности позволяет указывать на ER-диаграмме сведения о количестве строк со значительно большей точностью, чем при использовании соглашений об именовании, предусматривающих использование в обозначениях связей лишь таких терминов, как нуль , один или многие . При использовании обозначений кардинальности появляется возможность приводить на ER-диаграммах точные данные о количестве связей, в частности, определяя нижний и верхний пределы значений с помощью двух чисел, разделенных двоеточием, как в следующих примерах. 1:М. 1:6 (эта связь соответствует определению один ко многим , но регламентирована гораздо более определенно, в частности, содержит указание на то, что количество строк на стороне многие не может превышать шести). Ниже описано, из каких частей состоит признак конца, и показано, что они означают. Еще раз отметим, что рассматриваемые далее признаки конца применяются в методологии формирования ER-диаграмм IE. Как уже было сказано в этой главе, имеется еще один стандарт формирования ER-диаграмм, получивший широкое распространение, который называется IDEF1X (хотя самому автору довелось с ним сталкиваться реже, чем со стандартом IE). Определения сущностей, применяемые в стандарте IDEF1X, весьма напоминают принятые в стандарте IE, но признаки конца на линиях связей в этих стандартах полностью различны. Верхняя половина обозначения признака конца, показанного на рис. 7.5, соответ ствует начальному пределу диапазона изменения 1сардинальности связи. В данном случае минимальное значение кардинальности связи равно нулю. Нижняя половина обозначения признака конца на рис. 7.5 позволяет узнать, каковым является конечный предел диапазона изменения кардинальности связи; в данном случае применяется условное обозначение многие . Итак, на рис.7.5 приведено обозначение стороны связи нуль, один или многие .
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |