Реляционные базы данных
Освоение свойств моделей данных (МД) осложняется тем, что в разных моделях данных используется своя терминология описания структурных элементов и их связей. Для упрощения изучения МД ниже приведены соответствующие термины в сравнении с понятиями, используемыми в реляционной модели данных.
Краткая характеристика структуры моделей данных
Модель данных |
Элемент структуры |
Связь |
Структура таблицы |
Реляционная |
Таблицы: столбцы – поля, строки – записи |
По ключу |
Линейная |
Иерархическая |
Сегменты: исходный и порожденный – аналоги таблиц |
По указателю |
Линейная |
Сетевая |
Записи: владелец и член – аналоги таблиц |
По указателю и по ключу (связь именуется); совокупность записей и связь образуют набор |
Линейная, нелинейная |
Объектно-реляционная |
Объекты (таблицы, абстрактные типы данных) |
По ключу |
Линейная, нелинейная |
Объектно-ориентированная |
Классы объектов (типов данных, данных): объект – строка, столбцы – свойства (константы, встроенные объекты, потоки данных, коллекции, многомерные переменные, ссылки) |
По объектной ссылке и объектному указателю |
Линейная, нелинейная |
При обсуждении моделей данных (гл. 5–9) будем придерживаться такой однотипной последовательности;
- 1) логическая структура, включающая описание структуры (элементы, связи);
- 2) создание БД в рамках рассматриваемой модели данных (МД);
- 3) использование БД;
- 4) свойства модели данных (достоинства и недостатки). Сравнительная таблица свойств МД приведена в гл. 9.
Логическая структура
Реляционные базы данных получили широкое распространение в персональных компьютерах. Наиболее известны такие локальные СУБД, как dBASE, Paradox и особенно – Access. СУБД Oracle, Sybase, Informix, BTrieve, Ingress, InterBase были изначально предназначены для работы в сети с большими объемами данных.
В основе реляционной модели лежит математическое понятие теоретико-множественного отношения, которое представляет собой подмножество декартова произведения списка доменов.
Домен – множество значений (например, множество целых чисел). Декартовым произведением доменов D1, D2, .., Dk (обозначается как D, × D2 × ... × Dk) называется множество всех кортежей (V1, V2, ..., Vk) длины к, таких, что Vi Î D1, i = I, I. Например, если k = 2, DÎ = {0, 1} и D2 = {а, b, с}, то D1 × D2 есть {(0, а), (0, b), (0, с), (1, а), (1, b), (1, с)), а отношением может быть, например, {(0, а), (О, с), (1, b)}.
Элементы отношения называются кортежами и имеют арность к (степень отношения), причем i-й компонентой является V1, Отношение удобно представлять таблицей – совокупностью всех кортежей; каждая строка есть кортеж и каждый столбец соответствует одному компоненту. Кортежи обычно нумеруются и их количество определяет размерность таблицы. Столбцы называются атрибутами, и им часто присваиваются имена. Упорядоченный список имен атрибутов отношения называется схемой отношения. Если отношение называется "Студент" и его схема имеет атрибуты А1, А1, .... Аk, то такую схему будем записывать как СТУДЕНТ(А1, А2, ..., Аk).
Совокупность схем отношений называется схемой (реляционной) БД, а текущие значения соответствующих отношений – БД.
Данные из диаграммы объектов-связей представляются двумя видами отношений.
- 1. Набор объектов может быть представлен отношением, содержащим все атрибуты данного набора объектов. Если объекты набора идентифицируются с помощью связи с другим объектом, то схема отношения содержит дополнительно атрибуты ключа второго набора.
- 2. Связь между наборами объектов Е1, Е2, Ек представляется отношением, схема которого состоит из атрибутов ключей каждого из этих наборов.
Реляционная модель есть представление БД в виде совокупности упорядоченных нормализованных отношений.
Для реляционных отношений характерны следующие особенности.
- 1. Любой тип записи содержит только простые (по структуре) элементы данных.
- 2. Порядок кортежей в таблице несущественен.
- 3. Упорядочение значащих атрибутов в кортеже должно соответствовать упорядочению атрибутов в реляционном отношении.
- 4. Любое отношение должно содержать один или более атрибутов, которые вместе составляют уникальный первичный ключ.
- 5. Если между двумя реляционными отношениями существует зависимость, то одно отношение является исходным, второе – подчиненным.
- 6. Чтобы между двумя реляционными отношениями существовала зависимость, атрибуты, служащие первичным ключом в исходном отношении, должны также присутствовать в подчиненном отношении.
Э. Кодд первоначально предложил 12 (дюжину) правил, фактически требований, которым должна удовлетворять реляционная база данных.
- 1. Правило информации. Вся информация на логическом уровне представляется только значениями в таблицах без использования указателей и индексов.
- 2. Правило гарантированного доступа. Каждый атомарный элемент таблицы доступен через комбинацию из имени таблицы, имени поля и ключа.
- 3. Системная поддержка Null-значений. Для представления отсутствующих данных с любым типом используют Νull-значение.
- 4. Динамический оперативный каталог на основе реляционной модели. Метаданные (словари) формируются теми же языками, что и данные.
- 5. Правило исчерпывающего подъязыка данных. В базе данных возможно использовать несколько языков программирования, однако один (чаше всего – SQL) должен быть главным.
- 6. Правило обновления представления (вида, View). Все теоретически обновляемые представления может обновлять и система.
- 7. Ввод, обновление и удаление данных на высоком уровне. Работа с несколькими записями должна быть характерна не только запросам на выборку, но и запросам на обновление.
- 8. Физическая независимость данных. Возможно изменение адреса БД, изменение физической компоновки БД не оказывая влияния на работу прикладных программ и пользователя.
- 9. Логическая независимость данных. При добавлении или удалении элементов (таблиц, полей) в структуре БД другие части базы данных остаются неизменными.
- 10. Независимость целостности. Ключ не должен иметь значения Null. Первичный и родительский ключи должны быть уникальными. Каждому значению внешнего ключа должно существовать значение родительского ключа. Ссылочная целостность уменьшает быстродействие из-за проверки условий-связей через словарь.
- 11. Независимость распределения. В распределенной БД расположение данных независимо. Для пользователя такая БД должна выступать как централизованная БД.
- 12. Правило соблюдения правил. Нельзя обходить ограничения, введенные с помощью языка SQL.
Пример 5.1. Представим БД "Учебный процесс" в виде реляционной модели (табл. 5.1). Далее отношения (например, табл. 5.1, а) будем записывать и в другой форме:
ГРУППА(Шифр группы. Название, Количество {студентов}, Средний_балл).
Подчеркнутый атрибут является ключевым.
Таблица 5.1
а) Отношение "Группа"
Шифр_группы |
Название |
Количество |
Средний балл |
1 |
И|1 |
16 |
4,3 |
2 |
И2 |
23 |
4,0 |
3 |
И3 |
18 |
4,2 |
б) Отношение "Студент"
Номер_эач_ки |
Шифр_группы |
ФИО студента |
Год рождения |
Средний балл |
И-1746 |
1 |
Серой А.П. |
1979 |
4,1 |
И-1747 |
2 |
Киров П.Г. |
1980 |
4,0 |
И-1748 |
3 |
Сухов П.Н. |
1981 |
4,5 |
в) Отношение "Кафедра:
Код кафедры |
Название |
Телефон |
Зав. кафедрой |
1 |
ИиУС |
154-12-86 |
Сорокин П.В. |
2 |
АПП |
171-12-05 |
Борисов Б.В. |
3 |
ТПП |
212-10-81 |
Степанов И.В. |
г) Отношение "Преподаватель"
Табел_номер |
ФИО преподавателя |
Уч_степень |
Уч_звание |
Код кафедры |
381 |
Шаталов А.С |
д.т. н. |
Профессор |
1 |
101 |
Сидоров А.Т. |
К. т, н |
Доцент |
2 |
402 |
Тараканов П.Т. |
к. ф.-м. н |
Доцент |
3 |
д) Отношение "Предмет"
Код предмета |
Название |
Всего часов |
Практ/лаборатор |
Семестрон |
П1 |
Информатика |
350 |
130 |
2 |
П2 |
Кибернетика |
300 |
120 |
3 |
п3 |
Математика |
600 |
200 |
4 |
е) Отношение "Изучение"
Шифр_группы |
Кол предмета |
Та6ел_номер |
Вид занятий |
Часы |
2 |
П2 |
402 |
Практические |
|
2 |
П2 |
381 |
Лекции |
|
1 |
П3 |
381 |
Лекции |
|
1 |
П3 |
401 |
Практические |
ж) Отношение "Успеваемость"
Шифр_ группы |
Номеру_ зач_кн |
Код предмета |
Табел_ номер |
Вид занятий |
Оценка |
1 |
И-1746 |
П3 |
381 |
Экзамен |
5 |
2 |
И-1747 |
П3 |
381 |
Экзамен |
4 |
3 |
И-1748 |
П3 |
381 |
Экзамен |
3 |
Рис. 5.1. Схема связей БД "Учебный процесс"
Процедуры создания и использования реляционных БД основываются на теории реляционных БД, подробно рассмотренной в гл. 4. Ее результаты используем в прикладных целях. При введении структуры данных используют соответствующие форматы данных. Для таблицы "Преподаватель" они представлены в табл. 5.2. Вся БД (табл. 5.1) представлена в 4НФ, поэтому отразим схему связей между ее отношениями (рис. 5.1), где подчеркнутые поля – первичные ключи. Уточненный (в процессе проектирования) перечень таблиц и полей с их форматами данных приведен в приложении 1, а схема связей – в гл. 5.
Таблица 5.2
Форматы типов данных отношения "Преподаватель"
Имя поля |
Ключ |
Уникальное поле |
Обязательное поле |
Тип данных |
Размер |
Подписи поля |
Табел_номер |
Первичный |
Да |
Да |
Числовой |
Целое |
Таб N |
ФИО преподавателя |
- |
Нет |
Да |
Текстовый |
30 |
ПФИО |
Уч_степень |
- |
Нет |
Нет |
Текстовый |
12 |
Уч_ст |
Уч_звание |
- |
Нет |
Нет |
Текстовый |
12 |
Уч_зп |
Код кафедры |
Внешний |
Нет |
Да |
Текстовый |
6 |
Код_каф |