- •Е.И. Асташева сетевые базы данных
- •Введение
- •1. Введение в базы данных
- •1.1. Что такое база данных
- •1.2. Структура базы данных
- •2. Иерархическая и сетевая модели организации данных
- •3. Реляционная модель базы данных
- •3.1. Домены и отношения
- •3.2. Целостность данных
- •3.3. Реляционная алгебра
- •3.4. Реляционное исчисление
- •4. Проектирование логической структуры базы данных
- •4.1. Концепция функциональной зависимости
- •4.2. Нормализация базы данных
- •4.3. Объектное моделирование
- •5. Функции защиты базы данных
- •5.1. Транзакции и параллелизм
- •5.2. Безопасность и целостность баз данных
- •6. Дополнительные аспекты реляционной технологии
- •6.1. Представления
- •6.2. Повышение производительности с помощью оптимизации
- •6.3. Домены, отношения и типы данных
- •6.4. Неопределенные значения и трехзначная логика
- •6.5. Распределенные базы данных
- •7. Технология физического хранения и доступа к данным
- •7.1. Основные этапы доступа к базе данных
- •7.2. Управление страницами
- •7.3. Процедура индексирования и хеширования
- •7.4. Сжатие данных
- •Заключение
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
3.1. Домены и отношения
Основные определения: домены; виды отношений', предикаты.
Отношения имеют ряд основных свойств, а именно:
• в самом общем случае в отношении не бывает двух одинаковых кортежей. Это следует из самого определения отношения, однако для некоторых СУБД в ряде случаев допускается отступление от этого свойства. Действительно, поскольку в отношении имеет место первичный ключ, то одинаковые кортежи исключены;
• кортежи не упорядочены сверху вниз - в отношении просто отсутствует понятие позиционного номера. В отношении без потери информации можно с успехом расположить кортежи в любом порядке;
• атрибуты не упорядочены слева направо - атрибуты в заголовке отношения можно располагать в любом порядке, при этом целостность данных не нарушается. Поэтому понятия позиционного номера в отношении атрибута тоже не существует;
• значения атрибутов состоят из логически неделимых единиц - это свойство есть следствие того, что значения берутся из доменов. Иначе, можно сказать, что отношения не содержат групп повторения, то есть являются нормализованными (о чем мы будем говорить ниже).
В реляционных системах поддерживаются несколько видов отношений.
Именованное - представляет собой переменное отношение, определяемое в СУБД путем операторов создания и, как правило, необходимое для более удобного представления информации для пользователя.
Базовое отношение - являющееся непосредственной важной частью БД, поэтому при проектировании им дают собственное наименование.
Производное отношение - то, которое было определено через другие (как правило, базовые) отношения путем использования средств СУБД.
Представление - фактически является именованным производным отношением, при этом представление выражается исключительно через операторы СУБД, примененные к именованным отношениям, поэтому их физически в БД не существует.
Результат запроса - это неименованное производное отношение, содержащее данные - результат конкретного запроса. Результат запроса в БД не хранится, а существует только до тех пор, пока он необходим пользователю.
Хранимое отношение - то, которое физически поддерживается в памяти компьютера. К хранимым, в большинстве случаев, относятся базовые отношения.
Исходя из вышесказанного, можно теперь определить реляционную БД как набор отношений, связанных между собой.
Связь в данном случае - это ассоциирование двух или более отношений. БД, не имеющая связей между отношениями, имеет очень простую структуру и в полной мере реляционной называться не может. Однако одно из основных требований к организации реляционной БД - это обеспечение возможности поиска одних кортежей по значениям других, для чего необходимо установить между ними связи. А так как в реальных информационных системах часто содержатся тысячи кортежей, то теоретически между ними может быть установлено более миллиона связей.
Наличие такого множества связей и определяет сложность реляционных моделей БД. Существуют следующие основные виды связей:
• один к одному;
Рис. 3.2. Связь "один к одному"
Связь "один ко многим" состоит в том, что в каждый момент времени каждому элементу (кортежу) А соответствует несколько элементов (кортежей) В (см. рис. 3.3). В качестве примера можно сказать, что в доме проживает много жильцов.
Рис. 3.3. Связь "один ко многим"
Связь "многие к одному" предполагает, что в каждый момент времени множеству элементов А соответствует 1 элемент В. Например, несколько студентов представляют собой студенческую учебную группу (см. рис. 3.4).
Рис. 3.4. Связь "многие к одному"
Наконец, связь "многие ко многим" состоит в том, что в каждый момент времени множеству элементов А соответствует множество элементов В (см. рис. 3.5). К сожалению, этот тип связи в реляционных БД непосредственно -не поддерживается. Примером такой связи может служить тот факт, что у студентов учебные занятия по дисциплинам ведут множество преподавателей.
Рис. 3.5. Связь "многие ко многим"
Помимо вышеперечисленных, еще могут существовать множественные связи между одними и теми же элементами, тренарные связи (см. рис. 3.6), которые, впрочем, могут быть выражены через уже рассмотренные.
Рис. 3.6. Множественные и тренарные связи