Фамилия, Имя, Отчество, Дата_рождения
также может быть потенциальным ключом.
Каждый служащий при приеме на работу обязан предоставлять номер Страхового свидетельства государственного пенсионного страхования, поэтому к отношению Служащий можно добавить атрибут, например, Страх_номер. Это означает, что мы имеем два потенциальных ключа — и Таб_номер, и Страх_номер.Один из этих потенциальных ключей может быть первичным (на усмотрение разработчика баз данных).
В качестве еще одного примера объектного отношения приведем таблицу-справочник складов и магазинов фирмы, где могут находиться товары. Назовем ее Подразделения (ключом этого отношения, конечно же, должен быть атрибут Код_подразделения):
Подразделения
Связное отношение содержит ключи двух или более отношений для связи отношений. Например, используя отношения Товары иПодразделения можно определить связное отношение для хранения данных о количестве товаров в различных подразделениях фирмы (Запасы).
Запасы
Как видно из последнего примера, код одного и того же склада, как и код товара, могут встречаться в отношении Запасынесколько раз. Каждая строка этого отношения отображает наличие определенного товара на некотором складе или в магазине. Например, первая строка отображает тот факт, что в магазине с кодом 0220 [МАГАЗИН №01 — см. отношениеПодразделения] находится товар с кодом 049019114414 [Game Boy 1M — см. отношение Товары] в количестве 2000 единиц, поступивший в магазин 01.01.2000(дата). Вторая строка сообщает о том, что в этом же магазине имеется товар с кодом 079019144420 [SEGA 4M] в количестве 2332 единиц. И так далее.
Как вы уже могли заметить, связное отношение, кроме связываемых ключей, может иметь и другие атрибуты (в примереЗапасы — это Количество, Дата_поступления). Ключи в связных отношениях называются <$I[]внешний ключ> внешними, поскольку являются первичными ключами других отношений.
Самой простой связью между отношениями (таблицами) является связь «один-к-одному», при которой одному кортежу первого отношения соответствует только один кортеж во втором. Такая связь обычно используется при разделении отношений, имеющих большое количество атрибутов.
Наиболее часто в программировании приложений баз данных используется связь «один-ко-многим», которая позволяет поставить в соответствие один кортеж первого отношения нескольким кортежам второго отношения при помощи первичного ключа первого отношения и внешнего ключа второго отношения. Последний пример с использованием отношений Товары, Подразделения и Запасы — это типичный пример связи «один-ко-многим». Здесь отношение Товары связано с отношением Запасы при помощи первичного ключа Код_товара, а отношение Подразделения связано с отношением Запасы при помощи первичного ключа Код_подразделения. При этом в отношении Запасы атрибуты Код_подразделения иКод_товара являются внешними ключами.
Обычно связи, о которых идет речь, схематично обозначаются так, как показано на рис. 14.2 (получена в ERWin) или на рис. 14.3 (получена в Access). Здесь использованы таблицы, похожие на обсуждаемые выше. В них немного изменены наименования полей, хотя они все равно узнаваемы.
Рис. 14.2
Схема связей таблиц базы данных в ERWin
Рис. 14.3
Схема связей таблиц базы данных в Access
В поле таблицы базы данных могут храниться различные типы данных. Обычно в момент создания таблицы для каждого поля указываются наименование, тип хранимых в нем данных, длина данных (число знаков после десятичной точки для действительных чисел), как показано на рис. 14.2. В некоторых системах (к ним относится и Access) указывается дополнительная информация, в том числе и форматирование данных при отображении. Кроме того, реляционные СУБД имеют механизмы (разные у разных СУБД) задания ключевых полей и связей между таблицами (при помощи ключевых полей). Если при этом СУБД позволяет представлять связи между таблицами графически, разработчик базы данных получает дополнительные преимущества.
Дата добавления: 2015-08-14; просмотров: 1058;