- •Оглавление
- •Глава 1 Представление данных 6
- •Глава 2 Реляционные базы данных 10
- •Глава 3 Язык структурированных запросов 42
- •Глава 4 Задание к выполнению лабораторных работ 72
- •Глава 5 Курсовая работа 97 Введение
- •Представление данных
- •Уровни представления данных
- •Инфологическая модель «сущность-связь»
- •Основные понятия
- •Характеристика связей
- •Вопросы для самопроверки
- •Реляционные базы данных
- •Основные понятия
- •Объекты реляционной структуры
- •Операции реляционной алгебры
- •Неопределенные значения
- •Ограничения целостности
- •Разработка реляционной базы данных
- •Основные предпосылки
- •Нормализация
- •Нормальные формы
- •Правила нормализации
- •Алгоритм нормализации
- •Нормализация в примерах.
- •Заключение
- •Вопросы для самопроверки
- •Язык структурированных запросов
- •Основные понятия
- •Типы данных
- •Операции над данными и null
- •Выбор данных из базы
- •Выбор данных из базы – оператор join
- •Выбор данных из базы – источник данных запрос
- •Управление структурой базы данных
- •Типы команд управления структурой
- •Типы объектов структуры
- •Создание таблицы
- •Удаление таблицы
- •Создание представления
- •Удаление представления
- •Изменение представления
- •Создание триггера
- •Изменение данных
- •Удаление данных
- •Ограничения целостности при манипулировании данными
- •Пример создания базы данных
- •Заключение
- •Вопросы для самопроверки
- •Задание к выполнению лабораторных работ
- •Лабораторная работа №1. Изучение команды select – простые запросы
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Содержание отчета
- •Лабораторная работа №2. Изучение команды select – запрос из нескольких источников
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Видео прокат
- •Вариант 2 Биржа
- •Вариант 3 Биржа труда
- •Вариант 4 Коктейли
- •Вариант 5 Урожай
- •Вариант 6 Фитнес центр
- •Вариант 7 Овощная база
- •Вариант 8 Оборудование
- •Вариант 9 Курортная карта
- •Вариант 10 осаго
- •Контрольные вопросы
- •Содержание отчета
- •Лабораторная работа №3. Разработка структуры базы данных. Вторая часть
- •Задания для самостоятельного решения
- •Контрольные вопросы
- •Содержание отчета
- •Лабораторная работа №3. Разработка системы протоколирования операций над данными реляционной таблицы с использованием триггеров
- •Задание для самостоятельного решения:
- •Контрольные вопросы:
- •Содержание отчета
- •Лабораторная работа №2. Разработка пользовательских функций и процедур
- •Задания для самостоятельного решения
- •Контрольные вопросы:
- •Содержание отчета
- •Лабораторная работа №2. Импорт данных
- •Задания для самостоятельного решения
- •Контрольные вопросы:
- •Содержание отчета
- •Курсовая работа
- •Библиографический список
Операции реляционной алгебры
Основные операции над реляционными структурами определенные в работах Э. Коддом. Ниже приведены описания этих операций в интерпретации табличного представления:
Объединение (UNION) – формирует одну таблицу из двух исходных, причем обе исходные и результирующая таблицы имеют одинаковые заголовки, а тело результирующей таблицы состоит из строк обеих исходных таблиц.
Пересечение (INTERSECT) – формирует новую таблицу из двух исходных, причем обе исходные и результирующая таблицы имеют одинаковые заголовки, а тело результирующей таблицы состоит из строк, содержащихся одновременно в обеих исходных таблицах.
Вычитание (MINUS) - формирует новую таблицу из двух исходных, причем обе исходные и результирующая таблицы имеют одинаковые заголовки, а тело результирующей таблицы состоит из строк, содержащихся в первой таблице (уменьшаемое), и не содержащихся во второй таблице (вычитаемое).
Декартово произведение (TIMES) – формирует таблицу, заголовок которой содержит все столбцы обеих исходных таблиц, а тело содержит число строк, равное произведению числа строк исходных таблиц. Строки формируются путем объединения каждой строки первой таблицы со всеми строками второй таблицы.
Переименование атрибута (RENAME) – формирует таблицу с измененным именем столбца, но с тем же количеством и типом полей в заголовке и телом, что и исходная таблица.
Ограничение (WHERE) – формирует таблицу с тем же заголовком, что и исходная таблица, но включающую только те строки исходной таблицы, которые удовлетворяют заданному условию. Формируется усеченная по строкам таблица.
Проекция отношения – формирует новую таблицу из исходной, оставляя в новой только заданные операцией столбцы, т.е. формируется усеченная по столбцам таблица.
Соединение отношений – формирует новую таблицу по двум исходным и условию. Первоначально выполняется операция декартова произведения и для его результата выполняется операция ограничения.
Неопределенные значения
Основное назначение баз данных – хранение и обработка информации об объектах реального мира той или иной прикладной области. При этом, практически в любой задаче возникает ситуация неопределенности, т.е. неполноты знаний о текущем состоянии объекта. При этом отсутствие того или иного признака у объекта и отсутствие информации о наличии этого признака являются принципиально разными состояниями и обрабатываться должны по-разному.
Например, база данных библиотеки должна содержать информацию о дате возврата читателем книги. И естественно, информация об этом не будет известна до момента этого самого возврата.
В реляционном подходе для неопределенных значений любых типов данных введен специальный заменитель – NULL-значение. Для обработки таких значений используются специальные операции.
Ограничения целостности
Целостность понимается как правильность хранимых данных в любой момент времени. Задача контроля правильности хранимых данных решается частично. Системы управления базами данных обеспечивают контроль непротиворечивости вводимых значений, связанности данных и их принципиальную корректность. Так можно проверить, чтобы сотрудник был обязательно принят в существующий отдел, но нельзя проверить, что в связи указан именно тот отдел из существующих, которому реально принадлежит сотрудник. Или можно проверить, что вводимый номер дня недели, при составлении учебного расписания должен быть в диапазоне от 1 до 7. Однако проверить, что в данной записи должен быть четверг, а не вводимая пятница невозможно.
Основные ограничения целостности, определенные Э. Коддом:
Ограничение целостности сущности или ограничение первичного ключа – поля, входящие в первичный ключ таблицы, не могут принимать неопределенные значения.
Ограничение ссылочной целостности или ограничение внешнего ключа – значение внешнего ключа для любой строки дочерней таблицы должно либо в точности соответствовать значению первичного ключа одной из строк родительской таблицы, либо быть полностью неопределенным. Полностью неопределенное означает, что все поля внешнего ключа принимают неопределенное значение NULL.
Современные системы управления базами данных поддерживают ряд дополнительных ограничений целостности. Эти ограничения задаются при разработке структуры базы данных и называются ограничениями целостности, определяемые пользователем.
Ограничения целостности, определяемые пользователем:
принадлежность значения заданному диапазону значений;
принадлежность значения заданному множеству значений.
Примером таких ограничений может служить рассмотренный выше пример с диапазоном допустимых значений дня недели в расписании, в случае явного указания названия дня недели (понедельник, вторник…) ограничение сводится к принадлежности значений множеству из семи строковых констант.
