Связь типа «один-ко-многим» (1:М). Ключевые поля — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Связь типа «один-ко-многим» (1:М). Ключевые поля

2018-01-04 509
Связь типа «один-ко-многим» (1:М). Ключевые поля 0.00 из 5.00 0 оценок
Заказать работу

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

Например, нужно иметь информацию о студентах и результатах сдачи ими экзаменов (дата сдачи, предмет, оценка и т.д.). Если все это хранить в одной таблице, то ее объем неоправданно возрастет, т.к. в ней для каждой записи об очередном экзамене должны повторяться все анкетные сведения о студенте. Поскольку Студент и Экзамены - это разные сущности, то и атрибуты их должны храниться в разных таблицах. Но эти сущности связаны между собой, т.к. экзамены сдает определенный студент. Причем один студент может сдавать несколько экзаменов, т.е. налицо тип отношения «один-ко-многим».

Решением этой задачи является создание двух таблиц ( например, Студенты и Экзамены), в каждой из которых хранятся соответствующие атрибуты (рисунок 2). Для связывания этих таблиц нужно использовать какой-либо атрибут студента, сдающего экзамен, который будет повторяться в обеих таблицах. Но этот атрибут должен однозначно идентифицировать каждый экземпляр сущности Студент, т.е. являться уникальным для каждого студента. Таким атрибутом может стать, например, номер зачетки (он уникален для каждого студента). В данном случае атрибут Номер зачетки будет являться ключом для сущности Студент.

Рисунок 2 Пример связи «один-ко-многим»

 

Ключ – это минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Ключ может быть простым (когда он состоит из одного атрибута) и составным (когда он состоит более чем из одного атрибута). Если в таблице нет поля, однозначно определяющего каждую запись, его нужно создать искусственно.

В таблице со стороны «один» (в нашем примере Студенты) поле Номер зачетки будет ключевым.

Связь типа «много-ко-многим» (М:М)

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

Создание многотабличной базы данных в СУБД Access

Определение ключевых полей

При создании многотабличной базы данных важно правильно разбить данные на таблицы, определить связи между ними и определить ключевые поля.

Создавая таблицы с помощью Конструктора, MS Access может автоматически создать первичный ключ, поставив перед первым указанным в структуре полем поле Код и задав для него тип данных Счетчик. Это происходит, если в создаваемой таблице не были определены ключи. В этом случае при сохранении структуры таблицы MS Access напоминает об отсутствии ключевых полей и предлагает их автоматическое создание. Созданные таким образом ключевые поля далеко не всегда удачно вписываются в общую схему базы данных. В большинстве случаев ключи должен определять сам разработчик заранее, до сохранения структуры таблицы. В отношениях «один-ко-многим» таблица со стороны «много» вообще может не иметь ключевых полей. В этом случае от их автоматического создания всегда следует отказываться.

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

1.3.2 Определение связи между таблицами

После определения структуры таблиц многотабличной базы данных нужно указать способ, которым эти таблицы связаны.

Для определения связей нужно перейти в окно базы данных и выполнить команду Сервис/Схема данных или на панели инструментов нажать кнопку Схема данных . После этого откроется окно Схема данных и окно Добавление таблицы. В окне Добавление таблицы нужно выделить имена таблиц, добавляемых в схему данных, и нажать на кнопку Добавить. После этого данное окно можно закрыть.

В окне Схема данных появятся имена всех указанных таблиц вместе со списками полей. Имена общих полей выделены полужирным шрифтом. Нужно выделить ключевое поле в списке полей таблицы со стороны “один”, нажать кнопку мыши, перетащить ее курсор на аналогичное поле в списке полей связываемой таблицы, после чего кнопку мыши отпустить. В результате появится диалоговое окно Связи (рисунок 3).

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

После установления целостности данных Access включает две дополнительные опции: Каскадное обновление связанных полей и Каскадное удаление связанных записей.

Рисунок 3 Диалоговое окно Связи

 

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

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

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


Поделиться с друзьями:

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.