- •Добряк Павел Вадимович управление данными
- •Управление данными
- • Угту-упи, 2012
- •Введение
- •1. Основные определения
- •1.1. Элементы баз данных
- •1.2. Технологии управления данными
- •1.3. Модели данных
- •2.1. Основные понятия реляционной модели
- •2.2. Нормализация
- •2. Реляционная модель
- •2.3. Проблемы проектирования реляционных баз данных
- •Задачи для самостоятельного решения
- •3. Реляционные алгебра и исчисления
- •3.1. Реляционная алгебра
- •3.2. Реляционное исчисление на кортежах
- •3.3. Реляционное исчисление на доменах
- •4.1. Введение в sql
- •4.2. Пример реляционной базы данных
- •4.3. Запросы к одной таблице
- •4.4. Запросы к нескольким таблицам
- •4.5. Вложенные запросы
- •4.6. Вложенные подзапросы и кванторы
- •4.7. Объединение однотипных запросов
- •4.8. Рекурсивные запросы
- •Объединение однотипных запросов.
- •Запросы для самостоятельного программирования
- •5. Olap и хранилища данных
- •5.1. Архитектура хранилищ данных
- •5.2. Аналитические запросы
- •6. Триггеры, хранимые процедуры, события
- •7. Транзакции
- •7.1. Функции транзакций
- •7.2. Уровни изолированности
- •7.3. Сериализация транзакций
- •7.4. Синхронизационный захват
- •7.5. Метод временных меток
- •8. Обзор перспективных направлений баз данных
- •9. Объектные технологии в субд
- •9.1. Три манифеста баз данных
- •9.2. Объектная модель sql
- •9.3. Модель данных odmg и язык oql
- •10. Запросы к интернет-страницам
- •10.1. Теговая парадигма
- •10.2. Язык запросов xQuery
- •11. Пространственные базы данных
- •12. Лабораторные работы
- •13. Курсовая работа
- •13.1. Концептуальное проектирование
- •13.2. Семантическое проектирование
- •13.3. Физическое проектирование. Реляционная модель данных
- •13.4. Запросы
- •Объединение однотипных запросов.
- •13.5. Интеллектуализация базы данных.
- •13.6. Клиентская часть информационной системы
- •13.7. Дополнительные элементы базы данных
- •Вопросы к экзамену
- •1. Основные определения.
- •2. Реляционная модель
- •3. Реляционные алгебра и исчисления
- •10. Запросы к интернет-страницам
- •11. Пространственные базы данных
- •Литература
- •Список иллюстраций список таблиц
- •Список листингов
- •Алфавитный указатель
- •Список сокращений
3.2. Реляционное исчисление на кортежах
Выражение в реляционном исчислении на кортежах имеют вид:
{S | F(S)}, где S – переменная-кортеж, F-формула.
Пример: все продавцы, получающие зарплату больше 10000
{S | Продавцы(S) & S.Зарплата>10000}
Формулы могут строиться с помощью логических операций конъюнкции, дизъюнкции, отрицания и операций сравнения. Используются кванторы существования и всеобщности, например:
Выбрать все сделки Иванова:
{S | Сделки(S)
& (
B)(Продавцы(B)
& B.N
= S.N_Продавца
& B.Имя=’Иванов’)}
3.3. Реляционное исчисление на доменах
Выражение имеет вид: {d1, d2,…,dn | F(d1,d2,…, dm)}; m>=n, где d1…dm – переменные области определения (домена). F – формула, которая может быть отношением или выражением сравнения.
Пример: Найти номера и имена всех продавцов, зарплата которых > 10000.
{N, Имя | ( Город, Отдел, N_Начальника)(Продавцы(N, Имя, Отдел, Город, Зарплата, N_Начальника)& (Зарплата>10000))}
Д/З . Для примера реляционной БД из Д/З приведите примеры всех операций, запишите запрос в формах реляционного исчисления на кортежах и на доменах.
Вопросы для самопроверки:
1. Что из трех математических основ требует процедурного программирования (то есть программирования с поэтапным получением результата), а что – декларативного (то есть описания желаемого результата)?
4. SQL
4.1. Введение в sql
Язык SQL (Structure Query Language – язык структурированных запросов) представляет собой декларативный язык для работы с реляционными БД, основанный на реляционном исчислении на кортежах. Декларативность языка заключается в том, что, в отличие от императивных языков (например, С++), программист не пишет последовательность действий для получения нужного ему результата, а описывает желаемый результат. СУБД сама подбирает алгоритм нахождения результата по его описанию.
Язык SQL состоит из трех подъязыков, которые описаны в Табл. 8:
Табл. 8. Подъязыки языка SQL
Подъязык |
Описание |
Операторы |
Определение данных (Data Definition Language, DDL) |
Предназначен для создания различных объектов БД |
Create - создание, Alter - изменение, Drop – удаление следующих объектов: Database – базы данных, Table - таблицы, View - представления, Index – индекса, Trigger – триггера, Procedure – процедуры. |
Управление данными (Data Control Language, DCL). |
Предназначен для управления правами доступа пользователей к различным объектам БД |
Grant – наделить правами, Revoke – отнять права. |
Манипулирование данными (Data Manipulation Language, DML) |
Предназначен для работы с данными. |
Select – выбрать данные, Insert – создать новые данные, Update – изменить данные, Delete – удалить данные. |
Операторы определения и управления данными просты, часто они скрыты от разработчика, если он пользуется мастерами при создании БД. Их рассмотрение выходит за пределы данной книги. Все богатство языка SQL заключено в операторе Select, который используется со вспомогательными операторами, приведенными в Табл. 9.
Табл. 9. Вспомогательные операторы для Select
Группа операторов |
Описание операторов |
Тип выборки |
All – выбрать все записи Distinct – выбрать записи, удалив повторы
|
Селекция, сортировка и группировка |
order by [asc | desc] – сортировка по возрастанию или убыванию, Where – селекция записей, group by - группировка, having – селекция групп, [left | right | full | inner] join…on – различные виды соединений таблиц |
Операторы сравнения и логические операторы |
=, <>, >, <, >=, <= - операторы сравнения, Or, Аnd, Not – логические И, ИЛИ, отрицание, is [not] null – проверка на (не)пустое значение in, between, like, starting,containing – операторы примерного совпадения полей строковых типов. |
Агрегирующие операторы |
Count – подсчет количества строк, Sum – сумма, Avg – среднее значение, Min – минимальное значение, Max – максимальное значение. |
Кванторы |
Any – какой-нибудь, All – все, Singular – единственный, Exists – существует. |
Операции над множествами |
Union – объединение, Intersect – пересечение, Except – разность. |
Синтаксис оператора Select сложный, мы будем рассматривать его на примерах от простых к сложным, обращая внимание на типичные ошибки, с которыми сталкивается начинающий программист на SQL.
