Структурные элементы реляционной базы данных
На примере реляционной таблицы рассмотрим основные структурные элементы базы данных.
1. В реляционных базах данных любые совокупности данных представляются в виде двумерных таблиц (отношений), подобных описанному выше списку учащихся. При этом каждая таблица состоит из фиксированного числа столбцов и некоторого (переменного) количества строк. Описание столбцов принято называть макетом таблицы.
2. Каждый столбец таблицы представляет поле – элементарную единицу логической организации данных, которая соответствует неделимой единице информации - реквизиту объекта данных (например, фамилия учащегося, адрес).
Для описания поля используются характеристики:
· имя поля (например, № личного дела, Фамилия);
· тип поля (например, символьный, дата);
· дополнительные характеристики (длина поля, формат, точность).
Например, поле Дата рождения может иметь тип «дата» и длину 8 (6 цифр и 2 точки, разделяющих в записи даты день, месяц и год).
3. Каждая строка таблицы называется записью. Запись логически объединяет все поля, описывающие один объект данных, например, все поля в первой строке вышеприведенной таблицы описывают данные об учащемся Петрове Иване Васильевиче 12.03.89 рождения, проживающем по адресу ул. Горького, 12-34, обучающемся в 4А классе, номер личного дела - П-69. Система нумерует записи по порядку: 1,2, ..., n, где n - общее число записей (строк) в таблице на данный момент. В отличие от количества полей (столбцов) в таблице количество записей в процессе эксплуатации БД может как угодно меняться (от нуля до миллионов). Количество полей, их имена и типы тоже можно изменить, но это уже особая операция, которая называется изменением макета таблицы.
3. В структуре записи файла указываются поля, значения которых являются простым ключом, которые идентифицируют экземпляр записи. Примером такого простого ключа в таблице Учащиеся является поле № личного дела, значение которого однозначно определяет один объект таблицы - одного учащегося, так как в таблице нет двух учащихся с одинаковым номером личного дела.
4. Каждое поле может входить в несколько таблиц (например, поле Фамилия может входить в таблицу Список занимающихся в театральном кружке).
Если поле содержит уникальные значения, такие как коды или инвентарные номера, то это полеможно определить как ключевое. Если выбранное поле содержит повторяющиеся или пустые значения, то оно не будет определено как ключевое. Для определения записей, содержащих повторяющиеся данные можно выполнить запрос на поиск повторяющихся записей. Если устранить повторы путем изменения значений невозможно, то следует либо добавить в таблицу поле счетчика и сделать его ключевым, либо определить составной ключ.
Виды межтабличных связей
Существует три типа межтабличных связей.
- Отношение «один-ко-многим»
Рассмотрим базу данных, в которой учитываются заказы, включающую таблицы «Клиенты» и «Заказы». Клиент может разместить любое количество заказов. Следовательно, у любого клиента, представленного в таблице «Клиенты», может быть много заказов, представленных в таблице «Заказы». Поэтому связь между таблицами «Клиенты» и «Заказы» — это отношение «один-ко-многим».
Чтобы создать отношение «один-ко многим» в структуре базы данных, добавьте первичный ключ на стороне «один» в таблицу на стороне «многие» в виде дополнительного поля. В данном примере необходимо добавить новое поле — поле «Код» из таблицы «Клиенты» — в таблицу «Заказы» и назвать его «Код клиента». После этого Access сможет использовать номер «Код клиента» из таблицы «Заказы» для поиска клиента каждого заказа.
- Отношение «многие-ко-многим»
Рассмотрим связь между таблицей «Продукты» и таблицей «Заказы». Один заказ может включать несколько продуктов. С другой стороны, отдельный продукт может содержаться в нескольких заказах. Следовательно, для каждой записи таблицы «Заказы» может существовать несколько записей в таблице «Продукты» и наоборот. Такой тип связи называется отношением «многие-ко-многим», поскольку для каждого продукта может быть много заказов и наоборот. Обратите внимание, что для обнаружения существующего отношения между таблицами важно рассмотреть обе его стороны.
Чтобы представить отношение «многие-ко-многим», нужно создать третью (связующую) таблицу, в которой отношение «многие-ко-многим» разбивается на два отношения «один-ко-многим». Первичные ключи двух таблиц вставляются в третью таблицу. В результате в третьей таблице сохраняются все экземпляры отношения. Например, таблицы «Заказы» и «Продукты» имеют отношение «многие-ко-многим», определяемое созданием двух отношений «один-ко-многим» в таблице «Заказано». В одном заказе может быть много продуктов, и каждый продукт может появляться во многих заказах.
- Отношение «один-к-одному»
При отношении «один-к-одному» каждая запись в первой таблице может иметь не более одной связанной записи во второй таблице и наоборот. Отношения этого типа используются нечасто, поскольку обычно сведения, связанные таким образом, хранятся в одной таблице. Отношение «один-к-одному» используется для разделения таблицы, содержащей много полей, с целью отделения части таблицы по соображениям безопасности, а также с целью сохранения сведений, относящихся к подмножеству записей в главной таблице. После определения такого отношения у обеих таблиц должно быть общее поле.
Варианты графического отображения