ВУЗ: Томский государственный университет систем управления и радиоэлектроники
Категория: Учебное пособие
Дисциплина: Базы данных
Добавлен: 28.11.2018
Просмотров: 7737
Скачиваний: 53
26
2 Реляционная модель данных
Основной моделью данных, используемой в большинстве современных
СУБД, является реляционная модель. Для понимания основ организации дан-
ных в реляционной модели первоначально необходимо рассмотреть основные
понятия и определения.
2.1 Определения модели
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Реляционная модель данных (РМД) – это совокупность вза-
имосвязанных отношений, изменяющихся во времени, хранящая
сведения о некоторой предметной области.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Основным понятием реляционной модели является термин «отношение»,
от которого и получила название данная модель. Дадим два определения дан-
ному термину.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Отношение – двумерная таблица, содержащая некоторые
данные о предметной области.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Таким образом, отношение есть не что иное, как обычная таблица, состо-
ящая из строк и столбцов. В дальнейшем встречаемый в данной главе термин
«отношение» читатель для удобства может мысленно заменять термином «таб-
лица». Однако важно запомнить, что не каждую таблицу, которую вы встречае-
те в литературе или при работе на компьютере, можно назвать отношением.
Если подходить к определению термина математически, то оно будет вы-
глядеть следующим образом.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Отношение
R – это подмножество кортежей
1
2
, , ,
<
>
…
n
d d
d
, где
∈
m
m
d
D
.
m
D
– один из доменов отношения, а
m
d
– значение атрибута отношения, выбранное из домена.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Для однозначной интерпретации термина рассмотрим ещё несколько
важных определений.
27
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Сущность – произвольный объект реального мира, данные о
котором необходимо хранить в базе данных.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Чаще всего сведения о сущности хранятся в отношении, а само отноше-
ние получает название сущности. Например, сведения о сущности «Студент»
хранятся в отношении «Студент».
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Атрибут – одно из свойств, характеризующих объект (сущ-
ность).
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
У каждого объекта (сущности) реального мира есть набор свойств, кото-
рые его характеризуют и позволяют отличать друг от друга. Например, у каж-
дого студента есть фамилия и имя, номер группы, в которой он учится, дата
рождения и т. д. Все эти характеристики и называются атрибутами. В отноше-
нии названия всех необходимых атрибутов объекта являются заголовками
столбцов.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Кортеж – упорядоченный набор значений атрибутов.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
В отношении все данные хранятся в виде набора строк, первая из которых
представляет собой заголовочную часть, т. е. набор названий атрибутов, а все
последующие хранят непосредственно сведения о конкретных экземплярах
сущности. Здесь также необходимо отметить разницу между понятиями «сущ-
ность» и «экземпляр сущности». Сущности – это объекты, состоящие из набора
атрибутов, т. е. «Студент», «Сотрудник», «Предмет» и т. д. А экземпляр сущно-
сти – это один из конкретных представителей данной сущности. Например,
«Иванов Иван из гр. 110» и «Петров Петр из гр. 598» являются двумя экземпля-
рами сущности «Студент». Сведения о каждом экземпляре сущности хранятся в
строке таблицы, в РМД называемой кортежем.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Домен – множество всех возможных значений атрибута
отношения.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Каждый домен образует значения одного типа данных. Например, домен
для атрибута «Номер группы» будет состоять из всех возможных номеров
28
групп данного вуза. Соответственно, тип данных для атрибута «Номер группы»
будет одинаковым для всех возможных значений, например числовым или тек-
стовым.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Схема отношения – список атрибутов сущности.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Схему отношения, по сути, образует первая строка таблицы, т. е. её заго-
ловочная часть.
Для удобства рассмотренные основные определения терминов реляцион-
ной модели приведены в таблице 2.1.
Таблица 2.1 – Основные элементы РМД
Элемент
Представление
1. Сущность
Объект реального мира
2. Отношение
Таблица
3. Атрибут
Заголовок (название) столбца таблицы
4. Схема отношения
Строка заголовков таблицы (первая строка)
5. Кортеж
Строка таблицы (запись таблицы)
6. Домен
Множество возможных значений атрибута
В качестве примера рассмотрим отношение «Студент» из таблицы 2.2,
состоящее из 4 кортежей, хранящее общую информацию о студентах вуза.
Таблица 2.2 – Отношение «Студент»
Номер
ФИО
Дата рождения
Группа
1
Иванов Сергей Петрович
14.05.1988
116
2
Петров Иван Сергеевич
27.01.1989
598
3
Алексеев Семен Олегович
05.10.1993
445
4
Белов Петр Иванович
01.11.1988
116
Отношение «Студент» хранит в себе информацию о сущности (объекте)
«Студент». Сущность «Студент» имеет 4 атрибута: «Номер», «ФИО» (фамилия,
имя, отчество), «Дата рождения» и «Группа». Отношение состоит из 4 корте-
жей и хранит информацию о 4 экземплярах сущности – это студенты Иванов,
Петров, Алексеев и Белов. Заголовочная строка таблицы, как уже упоминалось,
29
называется схемой отношения, в данном примере она выглядит так – Студент
(Номер, ФИО, Дата рождения, Группа). Каждый из кортежей также можно
называть строками или записями таблицы, а значения каждого атрибута в запи-
си – значениями полей записи. Порядок кортежей в отношении в общем случае
не определен, хотя в данном примере для удобства все записи отсортированы
по значению первого атрибута.
Подводя итог данному разделу, сформулируем окончательно правила,
позволяющие считать таблицу отношением:
• все строки таблицы обязательно имеют одинаковую структуру, т. е.
порядок следования значений атрибутов в полях идентичен во всей
таблице;
• в таблице не может быть двух атрибутов с одинаковыми названиями;
• значение любого поля должно быть простым, т. е. недопустима груп-
па значений в одном поле;
• в таблице не должно быть двух и более абсолютно одинаковых строк;
• размещение строк в таблице произвольно.
2.2 Ключевые атрибуты
Одним из важных свойств отношения является возможность различать
экземпляры сущностей, таким образом, важно понимать, что в отношении не
должно быть двух одинаковых кортежей. Допустимо наличие одинаковых
значений отдельных полей, например, несколько студентов обучаются в одной
группе или родились в один и тот же день. Теоретически возможна даже ситуа-
ция, что два студента будут иметь одинаковые фамилию, имя и отчество, а так-
же дату рождения и будут обучаться в одной группе. Такую ситуацию предста-
вить крайне сложно, но такое всё-таки может произойти. Как в такой ситуации
поступит преподаватель, чтобы при обращении к нужному студенту не отвле-
кался второй? Придется искать дополнительные отличительные признаки,
например «светлый»/«темный» или просто «первый»/«второй» и т. д. Таким
образом, потребуется наличие новых дополнительных атрибутов сущности.
Аналогично при проектировании отношения важно предупреждать возможные
ситуации дублирования кортежей и предусмотреть условия исключения таких
ситуаций.
30
Первичный ключ
В реляционной модели для разрешения ситуаций дублирования данных и
идентификации каждой записи используется элемент, называемый первичным
ключом (ПК).
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Первичный ключ (Primary Key, PK) – атрибут или набор ат-
рибутов отношения, однозначно идентифицирующий любой из его
кортежей. Первичный ключ – составной, если он состоит из двух
или более атрибутов.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
В таблице 2.2 в качестве первичного ключа можно выбрать, например,
атрибут «ФИО». Хотя, как уже говорилось, это может быть допустимо только
при работе с небольшим набором записей, когда ситуация дублирования данно-
го поля практически исключена. Для удобства чаще всего в таких ситуациях
вводят так называемый суррогатный, или искусственный, первичный ключ,
например «Номер», «Номер студента», «Код», «Код студента» и т. п. Зачастую
такой ключ является ещё и счетчиком записей, присваивая каждой следующей
добавляемой записи очередной порядковый номер. Данный ключ позволяет
решить проблему дублирования записей, ведь даже при наличии ситуации, ко-
гда все поля двух записей будут совпадать, порядковый номер у таких практи-
чески одинаковых записей будет различным. Однако не стоит для каждого от-
ношения в базе данных обязательно вводить искусственный первичный ключ,
особенно это касается таблиц, которые связаны с другими.
Как уже отмечалось, в отношении не может существовать двух одинако-
вых кортежей. А значит, любой из них можно отличить от другого по одному
или нескольким атрибутам (полям).
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Каждое отношение обязательно имеет комбинацию атри-
бутов, которую можно использовать в качестве первичного ключа.
В крайнем случае ключом отношения будут служить абсолютно
все его атрибуты.
· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·
Во многих случаях в отношении можно определить несколько комбина-
ций атрибутов в качестве возможных ключей, каждую из которых можно вы-
брать в качестве первичного ключа. Все остальные ключи, кроме выбранного
первичного, называют альтернативными или возможными ключами отноше-