- •Оано впо «волжский университет им. В.Н. Татищева»
- •Содержание
- •Используемые сокращения
- •1 Основные понятия системы баз данных
- •2 История развития систем управления базами данных
- •3 Модели данных
- •3.1 Иерархическая модель
- •3.2 Сетевая модель
- •3.3 Реляционная модель
- •3.3.1 Терминология и базовые понятия реляционных бд
- •3.3.2 Целостность и сохранность баз данных
- •4 Архитектура субд
- •4.1 Типовая организация современной субд
- •4.2 Основные функции субд.
- •5 Язык sql
- •5.1 Оператор select
- •5.1.1 Особенности использования предложения select
- •5.1.2 Особенности использования предложения where
- •5.1.3 Сортировка результатов запроса
- •5.1.4 Группировка записей
- •5.1.5 Ограничение на группировку записей
- •5.2 Объединение однотипных запросов
- •5.3 Структурированные, или вложенные, запросы
- •5.4 Запросы на удаление
- •5.5 Запросы на обновление данных
- •5.6 Запросы на добавление данных
- •6.2 Теоретико-множественные отношения
- •6.3 Соединения
- •6.4 Деление
- •7 Проектирование реляционной базы данных
- •7.1 Существующие подходы к проектированию баз данных
- •7.2 Этапы проектирования баз данных
- •7.2.1 Формирование и анализ требований к системе
- •7.2.1.1 Функциональное моделирование
- •7.2.1.2 Состав функциональной модели
- •7.2.1.3 Типы связей между функциями
- •7.2.1.4 Декомпозиция отношений
- •7.2.2 Проектирование с использованием метода «сущность-связь»
- •7.2.3 Переход от er–модели к реляционной
- •7.3 Проектирование реляционных баз данных с использованием нормализации
- •7.3.1 Функциональные зависимости
- •7.3.2 Пример нормализации отношений
- •Накладная № 123
- •8 Физическая организация базы данных
- •8.1 Структура данных в файлах с различной организацией
- •8.1.1 Основные понятия
- •8.1.2 Неупорядоченные и упорядоченные файлы
- •8.1.3 Хешированные файлы
- •8.2 Индексированные файлы
- •9 Защита баз данных
- •9.1 Потенциальные опасности
- •9.2 Основные типы угроз
- •9.3 Контрмеры – компьютерные средства контроля
- •Вопросы для самоконтроля
- •Используемая литература
5.5 Запросы на обновление данных
Оператор UPDATE предназначен для изменения значения в группе записей. При корректировке каждому из перечисленных полей присваивается соответствующее значение. Корректировка выполняется для всех записей, удовлетворяющих условию поиска. Если опустить WHERE <условия поиска>, то в объекте будут изменены все записи.
Формат оператора UPDATE:
UPDATE <объект>
SET < обновляемое поле1=значение1 > [,< обновляемое поле2 = значение2 >…]
[Where<условия поиска>]
Пример. Увеличить цены на товары типа конструктор.
UPDATE Товары SET Товары.Цена = [Товары]![Цена]*0.5
WHERE Товары.[Тип товара]="конструктор";
5.6 Запросы на добавление данных
Оператор INSERT предназначен для добавления записей в таблицу.
Формат оператора INSERT:
INSERT <объект>
VALUES (<значение поле1> [,< значение поле2 >…])
Пример. Добавить информацию о новом товаре в таблицу Товары.
INSERT Товары
VALUES (098, «Конструктор», «Терминатор», 2300);
6 Реляционная алгебра и язык SQL
6.1 Унарные операции
1. Выборка
Операция выборки применяется к одному отношению R и определяет результирующее отношение, которое содержит только те кортежи (строки) из отношения R, которые удовлетворяют заданному условию.
Пример: Показать всех сотрудников, оклад которых более 10000 рублей.
SELECT *
FROM Сотрудники
WHERE Сотрудники.Оклад>10000;
2. Проекция
Операция проекции определяет новое отношение, содержащее вертикальное подмножество отношения R, создаваемое посредством извлечения значений указанных атрибутов и исключения из результата строк-дубликатов.
Пример: Показать ведомость всех сотрудников с указанием только фамилии, имя, отчества, оклада.
SELECT Фамилия, Имя, Отчество, Оклад
FROM Сотрудники;
6.2 Теоретико-множественные отношения
1. Объединение
Объединение двух отношений R1 и R2 определяет новое отношение, содержащее множество кортежей, принадлежащих либо первому R1, либо второму R2 исходным отношениям, либо обоим отношениям одновременно. При этом отношения R1 и R2 должны быть совместимы по объединению.
Таблица 4 - Отношение R1, исходное для операции объединения
-
R1 – Поставщик
Код города
Город
001
Тольятти
002
Москва
004
Пенза
005
Тверь
Таблица 5 - Отношение R2, исходное для операции объединения
-
R2 – Потребитель
Код города
Город
001
Тольятти
003
Саратов
004
Пенза
006
Сызрань
Пример: Показать города поставщиков и потребителей продукции. Исходные данные отображены в таблицах 4 и таблице 5, результат объединения указан в таблице 6.
SELECT Город
FROM Поставщик
UNION
SELECT Город
FROM Потребитель
,
где , - отношения;
r1 и r2 соответственно кортежи отношений R1 и R2;
- знак объединения;
- операция логического сложения «ИЛИ».
Таблица 6 - Отношение R3, результат объединения
-
R3 – объединение (города поставщиков и потребителей.)
Код города
Город
001
Тольятти
002
Москва
003
Саратов
004
Пенза
005
Тверь
006
Сызрань
2 Пересечение
Пересечение двух отношений R1 и R2 называется новым отношением, которое содержит множество кортежей, принадлежащих и первому R1 и второму отношению R2.
Пример. Показать города, которые являются одновременно и городами поставщиков и городами потребителей продукции. Исходные данные отображены в таблицах 4 и 5, результат пересечения указан в таблице 7.
SELECT Город
FROM Поставщик
INTERSECT
SELECT Город
FROM Потребитель;
,
где , - отношения;
r1 и r2 соответственно кортежи отношений R1 и R2;
- знак пересечения;
- операция логического сложения «И».
Таблица 7 - Отношение R4 результат пересечения
-
R4 – пересечение (города одновременно поставщиков и потребителей)
Код города
Город
001
Тольятти
004
Пенза
3. Разность
Разностью отношений называется отношение, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2 (и наоборот).
Пример: Показать города, которые являются городами поставщиков, но не являются городами потребителей продукции. Исходные данные отображены в таблицах 4 и 5, результат разности указан в таблице 8.
SELECT Город
FROM Поставщик
EXCEPT
SELECT Город
FROM Потребитель;
,
Таблица 8 - Отношение R5 результат разности
-
R5 – разность (города поставщиков без городов потребителей)
Код города
Название
002
Москва
005
Тверь
4. Декартово произведение
Введем предварительно понятие конкатенации.
Конкатенацией, или сцеплением кортежей с = <d, с2…сп> и q = <q1, q2, …qm>, называется кортеж, полученный добавлением значений второго в конец первого:
<с, q> = < d, c2,…cn, qiT q2,…qm>-
Операция декартово произведение определяет новое отношение, которое является результатом конкатенации (т.е. сцепления) каждого кортежа из отношения R7 с каждым кортежем из отношения R8.
Пример: Показать всех сотрудников, участвующих в проектах, с названиями этих проектов, с условием, что каждый сотрудник участвует в каждом проекте. Исходные данные отображены в таблицах 9 и 10, результат объединения указан в таблице 11.
SELECT *
FROM Сотрудники CROSS JOIN Проекта;
или
SELECT *
FROM Сотрудники, Проекта;
Таблица 9 - Отношение R7, исходное для операции декартово произведение (таблица Сотрудники)
-
R7 – информация о сотрудниках
Код сотрудника
Фамилия
Имя
Отчество
001
Иванов
Юрий
Игоревич
002
Орлов
Егор
Петрович
003
Юрков
Павел
Антонович
004
Степанов
Олег
Сергеевич
005
Петров
Сергей
Олегович
006
Локтев
Павел
Сергеевич
Таблица 10 - Отношение R8, исходное для операции декартово произведение (таблица Проекты)
-
R8 – перечень проектов
Проект
Автоматизация цеха 1
Инновационные исследования
Таблица 11 - Отношение R9, результат декартова произведения
R9 – информация о сотрудниках | ||||
Код сотрудника |
Фамилия |
Имя |
Отчество |
Проект |
001 |
Иванов |
Юрий |
Игоревич |
Автоматизация цеха 1 |
002 |
Орлов |
Егор |
Петрович |
Автоматизация цеха 1 |
003 |
Юрков |
Павел |
Антонович |
Автоматизация цеха 1 |
004 |
Степанов |
Олег |
Сергеевич |
Автоматизация цеха 1 |
005 |
Петров |
Сергей |
Олегович |
Автоматизация цеха 1 |
006 |
Локтев |
Павел |
Сергеевич |
Автоматизация цеха 1 |
001 |
Иванов |
Юрий |
Игоревич |
Инновационные исследования |
002 |
Орлов |
Егор |
Петрович |
Инновационные исследования |
003 |
Юрков |
Павел |
Антонович |
Инновационные исследования |
004 |
Степанов |
Олег |
Сергеевич |
Инновационные исследования |
005 |
Петров |
Сергей |
Олегович |
Инновационные исследования |
006 |
Локтев |
Павел |
Сергеевич |
Инновационные исследования |
Если добавляется условие WHERE, то эта операция называется ограничением декартова произведения.
Комбинация декартова произведения и выборки может быть сведена к одной операции соединение.
5. Декомпозиция сложных операций
Операции реляционной алгебры могут быть очень сложными. Для упрощения такие операции можно разбить на ряд меньших операций реляционной алгебры и присвоить имена результатам промежуточных выражений. Для присваивания имен результатам операции реляционной алгеброй используется операция присваивания.
Операция переименования позволяет присвоить новое имя S выражению Е, а так же дополнительно переименовывать атрибуты.
Пример: Рассчитать премии сотрудникам 80% от оклада.
SELECT Сотрудники. Фамилия, Сотрудники. Имя, Сотрудники. Отчество, Сотрудники. Оклад*0,8 AS Премия
FROM Сотрудники;