Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


ТИПЫ ТАБЛИЦ И КЛЮЧЕЙ В РЕЛЯЦИОННЫХ БАЗАХ ДАННЫХ



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

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

Определение первичного ключа

Каждая таблица в реляционной базе данных должна иметь уникальный (первичный) ключ, который может быть простым или составным, включающим несколько полей (до 10). Для определения ключа выделяются поля, составляющие ключ, и на панели инструментов Конструктор таблиц (Table Design) нажимается кнопка Ключевое поле (Рrimary Кеу) или выполняется команда меню Правка| Ключевое поле (Edit| Primary Кеу).

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

Составные ключи. Если для выполнения условий, накладываемых на значения первичного ключа, заданный ключ включает несколько полей таблицы, то тогда он называется составным. Внешние ключи. Внешний ключ — это столбец, значения которого соответствуют значениям первичного ключа другой связанной таблицы.

Индексы

В большинстве реляционных баз данных реализация ключей требует создания специальных объектов базы данных, именуемых индексами. Индекс (index) представляет собой список позиций записей, который показывает порядок их следования. Записи в реляционной таблице могут быть неупорядоченными. Тем не менее, любая запись имеет физическую позицию (положение) в файле базы данных. Эта позиция может меняться СУБД в процессе обработки данных, однако, в каждый конкретный момент времени она уникальна для каждой записи. Физическое положение (позиция) записи может измениться в процессе вставки, обновления или удаления данных, а также при выполнении некоторых манипуляций, осуществляемых сервером базы данных (таких, как компрессия файлов базы данных). Однако большинство современных настольных СУБД и все СУБД типа клиент/сервер поддерживают сопровождаемые индексы (maintained indexes), т. е. индексы меняются при изменении положения записей и значений полей. В этом случае любая вставка, обновление или удаление записей приводит к тому, что производится запись самой таблицы и всех индексов, связанных с этой таблицей. Из-за этого увеличивается время, необходимое для модификации данных.

Необходимо отметить, что некоторые типы полей, например memo-и BLOB-ПОЛЯ, не могут быть проиндексированы.

Для ключевого поля автоматически строится индекс. В этом можно убедиться, просмотрев информацию об индексах таблицы. Окно Индексы (Indexes) вызывается щелчком на кнопке просмотра и редактирования индексов Индексы (Indexes) на панели инструментов или выполнением команды меню Вид| Индексы (View| Indexes).

В этом окне индексу первичного ключа присвоено имя РrimaryКеу, в столбце Поле (FieldName) перечисляются имена полей, составляющие индекс. Индекс ключевого поля всегда уникален и не допускает пустых полей в записях. Если первичный ключ не установлен пользователем до сохранения вновь созданной таблицы, Access спросит о необходимости создания первичного ключа. При ответе " Да" Access создаст первичный ключ с типом данных Счетчик (AuttoNumber).

 

ВЗАИМОСВЯЗИ ТАБЛИЦ

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

Создание схемы данных

Создание схемы данных начинается в окне Базы данных (Database) с выполнения команды Сервис|Схема данных (Tools|Relationships) или нажатия кнопки Схема данных (Relationships) на панели инструментов базы данных.

Одно-многозначные (1: М) или одно-однозначные (1: 1) связи. Схема данных прежде всего ориентирована на работу с таблицами, отвечающими требованиям нормализации, между которыми могут быть установлены одно-многозначные (1: М) или одно-однозначные (1: 1) связи, для которых может автоматически поддерживаться связная целостность. Поэтому схему данных целесообразно строить в соответствии с информационно-логической моделью.

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

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

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

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

Связи-объединения.

Между двумя таблицами может быть установлена связь-объединение по некоторому полю связи. Для связи-объединения может быть выбран один из трех способов объединения записей:

Способ 1 - объединение только тех записей, в которых связанные поля обеих таблиц совпадают (производится по умолчанию);

Способ 2 - объединение тех записей, в которых связанные поля обеих таблиц совпадают, а также объединение всех записей из первой таблицы, для которых нет связанных во второй, с пустой записью второй таблицы;

Способ 3 - объединение тех записей, в которых связанные поля обеих таблиц совпадают, а также объединение всех записей из второй таблицы, для которых нет связанных в первой, с пустой записью первой таблицы.

Такой тип связи может быть определен, если связь характеризуется отношением 1: 1 или 1: М, а также если тип отношения не может быть определен системой, то есть если не выполняются условия для этих отношений. Например, при выборе в главной таблице в качестве поля связи неключевого поля или поля, входящего в составной ключ, Access сообщает, что тип отношения не может быть определен. В этом случае между таблицами возможно установление только связи- объединения.

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

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

Создание связей между таблицами.

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

 

Устанавливая в окне схемы данных связи типа 1: М между парой таблиц, надо выделить в главной таблице уникальное ключевое поле, по которому устанавливается связь. Далее, при нажатой кнопке мыши, протащить курсор в соответствующее поле подчиненной таблицы.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-06-04; Просмотров: 875; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь