- •1 Основные понятия и определения
- •1.1Информационные системы и банки данных
- •1.2Назначение и основные компоненты банка данных
- •1.3Трех уровневая архитектура абстракций базы данных.
- •1.4Физическая и логическая независимость данных
- •1.5Администратор базы данных
- •1.6Системы управления базами данных
- •1.7Схема обмена данными при работе с базой данных
- •1.8Локальные информационные системы
- •1.9Информационные системы в сетях
- •2Модели данных концептуального уровня
- •2.1Иерархическая модель данных
- •2.2Сетевая модель
- •2.3Реляционная модель
- •2.4Постреляционная модель
- •2.5Многомерная модель
- •2.6Объектно-ориентированная модель
- •3Физические модели баз данных
- •3.1Файловые структуры, используемые в базах данных
- •3.2 Хешированные файлы
- •3.2.1Стратегия разрешения коллизий с областью переполнения
- •3.2.2Организация стратегии свободного замещения
- •3.3Индексные файлы
- •3.3.1Файлы с плотным индексом, или индексно-прямые файлы
- •3.3.2Файлы с неплотным индексом, или индексно-последовательные файлы
- •3.3.3Организация индексов в виде b-tree (в-деревьев)
- •3.4Моделирование отношений «один-ко-многим» на файловых структурах
- •3.5Инвертированные списки
- •3.6Модели бесфайловой организации данных
- •4Реляционная модель данных
- •4.1Основные определения
- •4.2Соглашения об отношениях в реляционных системах
- •4.3Классы отношений
- •4.3.1Классы отношений с точки зрения способов создания и хранения
- •4.3.2Классификация отношений с точки зрения их содержания
- •4.4Операции реляционной алгебры
- •4.4.1Основные понятия
- •4.4.2Базовые теоретико-множественные операции
- •4.4.3Специальные операции реляционной алгебры
- •4.4.4Связи между отношениями (таблицами)
- •4.5Реляционное исчисление
- •4.6Язык запросов по образцу qbe
- •4.7Структурированный язык запросов sql
- •4.7.1История развития sql
- •4.7.2Общая характеристика языка
- •4.7.3Структура sql
- •4.7.4Оператор выбора select
- •4.7.5Применение агрегатных функций и группировки
- •4.7.6Раздел order by и ключевое слово top
- •4.7.7Вложенные запросы
- •4.7.8Внутренние и внешние объединения
- •4.7.9Перекрестные запросы
- •4.7.10Операторы манипулирования данными
- •4.7.11Запросы на создание таблиц
- •4.7.12Использование языка определения данных
- •4.8Правила Кодда (требования к реляционным бд)
- •5Проектирование баз данных
- •5.1Этапы проектирования бд
- •5.2Проблемы проектирования реляционных баз данных
- •5.3Нормализация отношений
- •5.4Метод сущность-связь
- •5.5Средства автоматизации проектирования
- •5.5.1Основные определения
- •5.5.2Модели жизненного цикла
- •5.5.3Модели структурного проектирования
- •5.5.4Объектно-ориентированные модели
- •5.5.5 Классификация case-средств
- •6Защита информации в базах данных
- •6.1Общие подходы к обеспечению безопасности данных
- •6.2Назначение и проверка полномочий, проверка подлинности
- •6.3Средства защиты базы данных
- •7Базы данных в сетях
- •7.1Организация базы данных в локальной сети
- •7.2Модели архитектуры клиент-сервер
- •7.3Управление распределенными данными
- •8История развития баз данных
4.2Соглашения об отношениях в реляционных системах
В нашем курсе мы будем рассматривать отношения, обладающие следующими свойствами:
в отношениях нет одинаковых кортежей;
кортежи не упорядочены;
атрибуты именованы (т.е. не обязательно упорядочены);
все значения атрибутов – атомарные.
Очень часто описанные ограничения на свойства отношений в конкретных языках СУБД нарушаются. Например, допускается, чтобы кортежи повторялись, вводится упорядоченность кортежей и атрибутов в кортеже. Возможны операции: перейти на первый кортеж, на следующий кортеж, прочитать атрибут № 5. Такие возможности обусловлены требованиями базового языка, а не реляционной модели, и их использование не рекомендуется.
Поясним последнее свойство отношений. Отношения, для которых это свойство не выполняется, называются ненормализованными. Будем считать, что атрибут является атомарным, если его невозможно разбить на более простые части, которые соответствуют каким-то параметрам объекта из предметной области.
Рассмотрим отношение, в котором хранятся сведения о сотрудниках. Среди атрибутов этого отношения есть атрибут дети_сотрудника. Этот атрибут представляет собой множество пар вида: (имя_ребенка, год_рождения). Данное отношение является типичным примером ненормализованного отношения.
Ненормализованное отношение «Сотрудники».
№ |
Фамилия |
Должность |
Оклад |
Дети |
1. |
Иванов |
Директор |
10000 |
Оля 1990 Маша 1992 |
2. |
Петров |
Гл. инженер |
9000 |
Сережа 1989 Катя 1991 Коля 1995 |
Легко заметить, что в ненормализованном отношении один из атрибутов (Дети) также является отношением. В общем случае ненормализованное отношение представляет собой иерархию вложенных друг в друга отношений. В классической реляционной модели оперируют только с нормализованными отношениями. Существуют алгоритмы нормализации отношений. При применении этих алгоритмов из ненормализованного отношения будет построено эквивалентное ему нормализованное отношения, которое называют отношением в «Первой Нормальной Форме» (1НФ). Алгоритмы нормализации будут рассмотрены ниже. Для нашего примера приведем отношение «Сотрудники» в форме 1НФ, полученное из ненормализованного отношения.
Нормализованное отношение «Сотрудники»
№ |
Фамилия |
Должность |
Оклад |
Имя |
Год рождения |
1 |
Иванов |
Директор |
10000 |
Оля |
1990 |
1. |
Иванов |
Директор |
10000 |
Маша |
1992 |
2. |
Петров |
Гл. инженер |
9000 |
Сережа |
1989 |
2. |
Петров |
Гл. инженер |
9000 |
Катя |
1991 |
2. |
Петров |
Гл. инженер |
9000 |
Коля |
1995 |
В нормализованном отношении в качестве ключа можно взять конкатинацию номера сотрудника (№) и имени его ребенка (Имя). В данном случае мы предполагаем маловероятным тот факт, что родители могут дать двум своим детям одно и тоже имя. Это соглашение входит в наше представление о предметной области и существенно упрощает нам выбор ключа. В действительности известен факт отклонения от такого представления. Артист Московского Художественного Театра Авангард Леонтьев, родившийся после окончания Великой Отечественной Войны, был назван также как и его родной брат, погибший на этой войне. Этот «исключение» из нашего представления подтверждает, что полученные с помощью реляционной теории конструкции существенно опираются на представления пользователей об устройстве предметной области.
