КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Типы связей и ключей в РБД
Как уже отмечалось, в БД все таблицы должны быть так или иначе связаны между собой, чтобы обеспечить целостность данных, создающих информационную модель некой предметной области. Если оказалось, что одна из таблиц в создаваемой БД не имеет связей ни с одной другой таблицей, то в этом случае необходимо создавать новую БД либо рассматривать более широкую предметную область, для которой создается БД. Связи между таблицами организуются с помощью различных ключей. Связное отношение хранит ключи двух или более объектных отношений, по этим ключам устанавливаются связи между объектами. Связное отношение кроме связываемых ключей может иметь и другие атрибуты, которые будут функционально зависеть от этой связи. Ключи в связных отношениях называются внешними ключами, поскольку они являются первичными ключами других отношений. Каждому внешнему ключу должна соответствовать строка какого-либо объектного отношения. Невыполнение этого ограничения может привести к нарушению ссылочной целостности данных. Ключ должен ссылаться на объект, который существует. Перечислим условия и ограничения, накладываемые на отношения реляционной моделью данных, которые позволяют таблицы считать отношениями: 1. Не может быть одинаковых значений для первичных ключей, т.е. все строки таблицы должны быть в целом уникальны и определяться значением первичного ключа однозначно. 2. Все строки таблицы должны иметь одну и ту же структуру, т.е. одно и то же количество атрибутов. 3. Имена столбцов таблицы должны быть различны, а значения столбцов должны быть однотипными. 4. Значения атрибутов должны быть простыми, следовательно, отношения не могут иметь в качестве компонент другие отношения. 5. Должна соблюдаться ссылочная целостность для внешних ключей. 6. Порядок следования строк в таблице несущественен - он лишь влияет на скорость доступа к строке. Хорошо организованная база данных обеспечивает удобный доступ к хранящейся в ней информации. При правильном проектировании базы данных будет меньше затрачиваться времени и усилий на ввод данных в базу, внесение изменений и извлечение данных из базы. Этап установки связей между таблицами нужен для того, чтобы указать, какие действия надо предпринимать для объединения содержимого таблиц, составляющих РБД. После того как пользователь установит связи между таблицами, СУБД сможет использовать эти связи для поиска связанной информации в разных таблицах базы данных. В теории РБД существует три типа межтабличных отношений или связей: один-ко-многим, многие-ко-многим и один-к-одному (четвертый возможный тип отношений - многие-к-одному фактически сводится к первому типу, так как является его «зеркальным отражением» и в СУБД Access просто совпадает со связью один-ко-многим). Связь один-ко-многим является наиболее распространенной в реляционных базах данных. При таком типе отношений одной записи в первой таблице могут соответствовать несколько записей во второй таблице, однако каждой записи во второй таблице соответствует не более одной записи в первой таблице, что отражает в полной мере функциональную зависимость второй таблицы от первой. Связь многие-ко-многим означает, что каждой записи в первой таблице могут соответствовать несколько записей во второй таблице, а каждой записи во второй таблице -- несколько записей в первой таблице. В СУБД Access такой тип отношений напрямую не допускается, и во избежание такой ситуации создается еще одна вспомогательная таблица, которая связывается с обеими исходными таблицами связью типа один-ко-многим. При связи один-к-одному каждой записи в первой таблице может соответствовать не более одной записи во второй таблице, а каждой записи во второй таблице -- не более одной записи в первой таблице. Такой тип межтабличных отношений используется тогда, когда для удобства в работе очень широкую таблицу разбивают на две с повторением одного поля в каждой либо когда из таблицы необходимо выделить часть, к которой нужно обеспечить особый режим допуска (например, конфиденциальные сведения о сотрудниках, содержащиеся в одном или нескольких полях таблицы, к которым должны иметь доступ только определенные лица). В любом случае наличие связей (отношений) между таблицами второго и третьего типов означает, что база данных спроектирована не совсем оптимально или же просто содержит ошибки. Хорошо спроектированная база данных обычно не содержит отношений между таблицами двух последних типов. Как уже отмечалось выше, основным достоинством любой БД является способность быстро находить и объединять информацию, хранящуюся в разных таблицах. Для решения первой задачи каждая таблица в БД должна содержать поле или набор полей, значение которого или совокупность значений которых однозначно определяет каждую запись этой таблицы. На языке БД такое поле или совокупность полей называется ключом таблицы, а точнее, первичным ключом таблицы. При этом кандидатами на роль ключа таблицы могут быть любые поля, которые содержат уникальные (неповторяющиеся) значения для каждой записи, т.н. потенциальные ключи таблицы. Если в роли ключа выступают сразу несколько полей, когда в таблице просто нет одного поля с неповторяющимися значениями, то приходится подбирать такую комбинацию полей, значение которой будет уникальным. Такой ключ называется составным ключом. Для решения второй из названных задач -- объединения информации и организации связей между таблицами -- используются поля таблиц, имеющие совпадающие значения. При этом связь один-ко-многим образуется между первичным ключом одной таблицы, которая называется главной, и т.н. внешним, или вторичным, ключом другой таблицы, которая называется подчиненной. Значения внешнего ключа в таблице могут повторяться (отсюда термин ко-многим в названии связи), а сам внешний ключ, например поле «Поставщик» в таблице «Товары» или поле «Индекс» в таблице «Поставщики», получил такое название потому, что при проектировании (разложении) таблицы на составляющие такое поле специально вводится в вычленяемую таблицу именно для организации связей между таблицами и обеспечения целостности данных в БД. Таким образом, в нашей БД «Поставки товаров», состоящей из таблиц «Товары», «Поставщики» и «Адреса», необходимо организовать следующие межтабличные связи (ниже мы используем схематичное изображение межтабличных связей, совпадающее с представлением схемы связей в СУБД Access, работа в которой будет рассматриваться в последующих разделах пособия, здесь символ ¥ соответствует термину ко-многим):
Заметим в заключение, что в БД для оптимизации связей между рассмотренными выше т.н. базовыми таблицами, каждая из которых обладает первичным ключом, могут создаваться и связующие таблицы. Такие таблицы содержат только ключевые поля, представляющие собой внешние ключи, связанные с первичным ключом главной таблицы, а сами не имеют первичного ключа. Это т.н. индексные таблицы, преобразующие межтабличные связи типа многие-ко-многим в связи типа один-ко-многим. После создания совокупности таблиц, удовлетворяющих правилам нормализации, и организации межтабличных связей процесс проектирования БД, проводимый «вручную», без компьютера, заканчивается. В дальнейшем создание БД проводится с использованием средств соответствующей СУБД. Контрольные вопросы Объектная модель БД. Основные понятия и термины БД. Типы БД и особенности их функционирования. Исходные компоненты РБД. Особенности и преимущества РБД. Этапы проектирования РБД. Правила нормализации РБД. 1-я нормальная форма. 2-я нормальная форма. 3-я нормальная форма. Объектные и межтабличные связи в РБД. Понятие отношения в РБД. Типы отношений в РБД. Типы ключей в РБД. Использование составного первичного ключа. Назначение внешних ключей. Условия и ограничения, накладываемые на отношения в РБД. Типы связей в РБД. Использование связей один-к-одному. Назначение индексных таблиц.
Дата добавления: 2015-05-09; Просмотров: 1211; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |