- •Оглавление
- •Глава 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. Импорт данных
- •Задания для самостоятельного решения
- •Контрольные вопросы:
- •Содержание отчета
- •Курсовая работа
- •Библиографический список
Выбор данных из базы – источник данных запрос
В случае если в качестве источника данных используется запрос, то он указывается в скобках и обязательно указывается псевдоним. Обращение в запрос к полям такого источника данных осуществляется через псевдоним.
Управление структурой базы данных
Типы команд управления структурой
В SQL языке определены три типа команд, которые служат для управления всеми объектами структуры базы данных:
CREATE – команда создания объекта;
ALTER – изменение объекта;
DROP – удаление объекта.
После команды следует ключевое слово, указывающее на тип обрабатываемого объекта:
TABLE– таблица;
TRIGGER – триггер;
VIEW – представление;
и т.д.
Далее следует часть, зависимая от команды и типа объекта.
Типы объектов структуры
Основным объектом структуры базы данных является таблица. Следующими по важности объектами являются ключи: первичные, внешние, возможные. Как и все объекты, они могут управляться отдельными командами, но чаще всего эти объекты управляются в рамках команд управления таблицами, что будет показано ниже.
В рамках пособия будут рассмотрены два вспомогательных объекта: представление и триггер.
Представление – это виртуальная таблица, предоставляющая данные одной или более таблиц альтернативным способом. Более узко представление можно определить как, сохраненная в базе команда SELECT, к результатам которой можно обращаться как к таблице из других запросов по имени представления. В действительности представления могут служить не только для предоставления, но и для изменения данных в таблицах, на основе которых формируется представление. Далее будет рассмотрен упрощенный синтаксис команд управления представлениями только с учетом функции предоставления данных.
Триггер – это SQL-команда, выполнение которой инициируется при манипулировании данными таблицы. Каждая из операций над данными таблицы (добавление новой строки, изменения и удаление имеющейся) может сопровождаться вызовом триггера. При этом различают триггеры, вызываемые вместо и после выполнения операции. В команде триггера имеется доступ к старым и новым значениям атрибутов записи. Если триггер вызывается вместо выполняемой операции, то в SQL-команде необходимо в явном виде указать операцию еще раз, при этом имеется возможность переопределить новые значения атрибутов. При вызове команды манипулирования данными из триггера повторное срабатывание триггера блокируется – рекурсивный вызов запрещен. Команда триггера представляет собой SQL-команду, в том числе и составную команду.
Создание таблицы
Для создания таблицы применяется команда CREATE TABLE. Формат команды зависит от конкретной системы управления базой данных. Однако, отличия касаются в первую очередь дополнительных модификаторов полей, базовый синтаксис поддерживается всеми системами управления базами данных.
Формат команды
CREATE TABLE имя_таблицы ( столбец тип_данных [ DEFAULT значение_по_умолчанию ] [ [ CONSTRAINT имя_ограничения ] ограничение_поля ] [, столбец тип_данных [ DEFAULT значение_по_умолчанию ] [ [ CONSTRAINT имя_ограничения ] ограничение_поля ] ] ... [, [CONSTRAINT имя_ограничения] ограничение_таблицы ] ... );
Для каждого столбца обязательно определяется его имя, тип данных, хранящихся в столбце. Остальные модификаторы являются не обязательными. Значение по умолчанию позволяет задать значение, которое присваивается полю при вводе строки (INSERT), если значение явно не указанно.
Далее задаются ограничения для поля. Ограничению может быть задано имя в явном виде после необязательного ключевого слова CONSTRAINT, в противном случае система управления базами данных автоматически формирует имя ограничению. Ограничение имеет следующую конструкцию:
[ NULL | NOT NULL ]
| [ { PRIMARY KEY | UNIQUE }]
| [ [ FOREIGN KEY ] REFERENCES родительская_таблица [(поле_родительской_таблицы) ]]
Первое из трех ограничений определяет возможность задания полю неопределенного значения.
Два других ограничения связаны с понятием ключа. Первое из них – ограничение первичного ключа или задание возможного первичного ключа (UNIQUE). Второе задает ограничение внешнего ключа. Задается имя и поле родительской таблицы (первичный ключ).
Если ограничение поля не задано, то это эквивалентно указанию ограничения NULL, т.е. возможность задания неопределенного значения.
В случае, если какое-либо из ограничений является составным, то оно не может быть задано в ограничениях одного поля. Составные ограничения задают в ограничениях таблицы:
{ PRIMARY KEY | UNIQUE }
( поле_таблицы [, поле_таблицы[,..]] )
| FOREIGN KEY
( поле_таблицы [, поле_таблицы[,..]] )
REFERENCES родительская_таблица [ (поле_родительской_таблицы [поле_родительской_таблицы ,...] )
При этом состав ключа задается перечнем полей создаваемой таблицы, и в случае внешнего ключа указывается в явном виде имя родительской таблицы и полей, входящих в ее первичный ключ.
