Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 1 - Проектирование БД.doc
Скачиваний:
57
Добавлен:
12.04.2015
Размер:
448.51 Кб
Скачать

Реляционная модель данных

ER-модель не пригодна для машинного хранения данных. Она используется как промежуточная стадия при проектировании. Большинство современных СУБД использует для внутреннего представления данныхреляционную модель. В реляционной модели вся информация хранится в форме таблиц. Столбцы таблицы описывают определенные характеристики (атрибуты) объекта, строка содержит описание экземпляра объекта.

Реляционная таблица называетсяотношением(relation). От всех прочих таблиц отношение отличается тем, что: 1) ячейки содержат простые, неделимые (атомарные) значения, 2) порядок следования строк не важен, 3) не должно быть двух одинаковых строк. Первое положение показывает, что в отношении не допускаются объединения ячеек, и не допускается разбиения одной ячейки на несколько. Второе и третье положение говорят, что строки таблицы рассматриваются как множество (set). Из математического понятия множества следует, что элементы множества (в данном случае строки) не могут повторяться и не имеют порядковых номеров.

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

Пример 2

Найти ключи отношения. Отношение хранит информацию о работниках предприятия.

Работники

Табель-ный номер

Фамилия

Имя

Отчество

Дата рождения

Серия паспорта

Номер паспорта

Номер

отдела

Должность

406

Поляков

Иван

Иванович

01.02.1964

38 00

0157998

5

наладчик

409

Котова

Нина

Петровна

24.12.1952

36 02

0020773

2

бухгалтер

519

Жилин

Егор

Ильич

18.06.1974

38 00

0267005

5

сборщик

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

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

Итак, в таблице Работникиесть два нетривиальных ключа:Табельный номери составной ключ (Серия паспорта, Номер паспорта).

Как показал пример, в отношении может быть несколько ключей. Все эти ключи называютсяпотенциальными, иливозможными, ключами. Один из них выбирают в качествепервичногоключа (primary key, PK). Он будет использоваться для идентификации строк и для организации связей между таблицами. Остальные потенциальные ключи с этих пор именуютальтернативнымиключами.

Поясним организацию связи между таблицами на примере.

Пример 3

Для хранения информации об отпусках работников используется таблица Отпуск.

Отпуск

Табельный номер

Начало

Окончание

406

1 июня 2003

3 июля 2003

409

11 мая 2004

20 мая 2004

409

9 августа 2004

31 августа 2004

406

2 сентября 2004

2 октября 2004

Таблица Отпусксвязана с таблицейРаботникипо столбцу "Табельный номер". Чтобы узнать, когда брал отпуск Поляков И.И., достаточно найти в таблицеОтпускстроки, соответствующие его табельному номеру 406.

Обратная задача: вывести Ф.И.О. работников, у которых отпуск приходится на летний период. Решение: по таблице Отпускопределяются табельные номера работников, затем по этим табельным номерам находятся фамилии в таблицеРаботники.

Ссылочные столбцы, подобные столбцу Табельный номертаблицыОтпуск, называютсявнешним ключом(foreign key, FK). Внешний ключ в точности повторяет формат того ключа, на который он ссылается (обычно на первичный ключ, реже на альтернативный).

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

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

Бывает, что все потенциальные ключи таблицы имеют довольно большой размер. Чтобы не создавать такие же "тяжелые" внешние ключи, прибегают к использованию суррогатного ключа.Суррогатный ключ(ersatz key) – это новый столбец, добавляемый в целевую таблицу в качестве первичного ключа. Обычно это числовой, автоинкрементный4столбец, который используется для нумерации трок. Никакой смысловой нагрузки он не несет.