Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
2018-01-04 | 509 |
5.00
из
|
Заказать работу |
|
|
При таком типе связи каждой записи в одной таблице соответствует одна или более записей в связанной таблице. Для реализации такого отношения используются две таблицы. Одна из них представляет сторону «один», другая - сторону «много».
Например, нужно иметь информацию о студентах и результатах сдачи ими экзаменов (дата сдачи, предмет, оценка и т.д.). Если все это хранить в одной таблице, то ее объем неоправданно возрастет, т.к. в ней для каждой записи об очередном экзамене должны повторяться все анкетные сведения о студенте. Поскольку Студент и Экзамены - это разные сущности, то и атрибуты их должны храниться в разных таблицах. Но эти сущности связаны между собой, т.к. экзамены сдает определенный студент. Причем один студент может сдавать несколько экзаменов, т.е. налицо тип отношения «один-ко-многим».
Решением этой задачи является создание двух таблиц ( например, Студенты и Экзамены), в каждой из которых хранятся соответствующие атрибуты (рисунок 2). Для связывания этих таблиц нужно использовать какой-либо атрибут студента, сдающего экзамен, который будет повторяться в обеих таблицах. Но этот атрибут должен однозначно идентифицировать каждый экземпляр сущности Студент, т.е. являться уникальным для каждого студента. Таким атрибутом может стать, например, номер зачетки (он уникален для каждого студента). В данном случае атрибут Номер зачетки будет являться ключом для сущности Студент.
Рисунок 2 Пример связи «один-ко-многим»
Ключ – это минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Ключ может быть простым (когда он состоит из одного атрибута) и составным (когда он состоит более чем из одного атрибута). Если в таблице нет поля, однозначно определяющего каждую запись, его нужно создать искусственно.
|
В таблице со стороны «один» (в нашем примере Студенты) поле Номер зачетки будет ключевым.
Связь типа «много-ко-многим» (М:М)
При этом типе связи множеству записей в одной таблице соответствует множество записей в связанной таблице. Большинство современных СУБД непосредственно не поддерживают такой тип отношений. Для его реализации отношение разбивается на два, имеющих тип «один-ко-многим». Соответственно, для хранения информации потребуется уже как минимум три таблицы: две со стороны «много» и одна со стороны «один». Связь между этими тремя таблицами также осуществляется посредством ключевых полей.
Создание многотабличной базы данных в СУБД Access
Определение ключевых полей
При создании многотабличной базы данных важно правильно разбить данные на таблицы, определить связи между ними и определить ключевые поля.
Создавая таблицы с помощью Конструктора, MS Access может автоматически создать первичный ключ, поставив перед первым указанным в структуре полем поле Код и задав для него тип данных Счетчик. Это происходит, если в создаваемой таблице не были определены ключи. В этом случае при сохранении структуры таблицы MS Access напоминает об отсутствии ключевых полей и предлагает их автоматическое создание. Созданные таким образом ключевые поля далеко не всегда удачно вписываются в общую схему базы данных. В большинстве случаев ключи должен определять сам разработчик заранее, до сохранения структуры таблицы. В отношениях «один-ко-многим» таблица со стороны «много» вообще может не иметь ключевых полей. В этом случае от их автоматического создания всегда следует отказываться.
Для того, чтобы определить какое-либо поле таблицы ключевым, нужно в режиме Конструктора таблиц установить курсор в строке с именем этого поля и нажать на кнопку Определить ключ на панели инструментов или ввести команду Правка/Ключевое поле. После этого в строке рядом с именем этого поля появится изображение ключа.
|
1.3.2 Определение связи между таблицами
После определения структуры таблиц многотабличной базы данных нужно указать способ, которым эти таблицы связаны.
Для определения связей нужно перейти в окно базы данных и выполнить команду Сервис/Схема данных или на панели инструментов нажать кнопку Схема данных . После этого откроется окно Схема данных и окно Добавление таблицы. В окне Добавление таблицы нужно выделить имена таблиц, добавляемых в схему данных, и нажать на кнопку Добавить. После этого данное окно можно закрыть.
В окне Схема данных появятся имена всех указанных таблиц вместе со списками полей. Имена общих полей выделены полужирным шрифтом. Нужно выделить ключевое поле в списке полей таблицы со стороны “один”, нажать кнопку мыши, перетащить ее курсор на аналогичное поле в списке полей связываемой таблицы, после чего кнопку мыши отпустить. В результате появится диалоговое окно Связи (рисунок 3).
В этом окне в первой строке будет выведено имя поля, по которому связывались таблицы. Чтобы в связанных таблицах не нарушалась целостность данных, нужно щелкнуть по флажку Обеспечение целостности данных. После этого станет невозможна запись в неключевую таблицу такого значения общего поля, которого нет в таблице ключевой.
После установления целостности данных Access включает две дополнительные опции: Каскадное обновление связанных полей и Каскадное удаление связанных записей.
Рисунок 3 Диалоговое окно Связи
Если выбрать первую опцию, то при изменении какого-либо значения ключевого поля в ключевой таблице автоматически обновляются значения этого поля для соответствующих записей во всех связанных таблицах. Например, если у одного из студентов изменился номер зачетки в таблице Студенты, то он автоматически должен поменяться и в таблице Экзамены.
Выбор второй опции при удалении одной из записей в ключевой таблице приведет к удалению тех записей в таблице со стороны «много», которые имеют такое же значение ключа. Например, если из таблицы Студенты удалить запись об одном из студентов, то записи о результатах сданных им экзаменов будут удалены автоматически.
Для завершения процесса создания связей, нужно щелкнуть по кнопке Создать. Между таблицами в окне Схема данных будетнарисована линия, указывающая на наличие связи между ними. На конце линии у таблицы со стороны «один» будет цифра 1, а на другом конце, у таблицы со стороны «много» – символ бесконечности . После закрытия этого окна все установленные связи будут сохранены.
|
|
|
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!