
- •Введение в бд
- •Файловые системы
- •Системы с базами данных
- •Модели данных
- •Альтернативная терминология Терминология, используемая в реляционной модели, порой может привести к путанице, поскольку помимо предложенных двух наборов терминов существует еще один – третий.
- •Сетевая модель данных
- •Иерархическая модель данных
- •Вопросы:
- •Упражнения:
- •Реляционная модель.
- •Реляционная алгебра. Реляционное исчисление.
- •Реляционная модель
- •Реляционные языки
- •Реляционная алгебра
- •Унарные операции реляционной алгебры
- •Операции с множествами
- •Операции соединения
- •Деление
- •Реляционное исчисление
- •Реляционное исчисление кортежей
- •Реляционное исчисление доменов
- •Другие языки
- •Тема 3 Моделирование данных Модель «сущность-связь»
- •Элементы модели «сущность-связь»
- •Сущность
- •Атрибуты
- •Идентификаторы
- •Три типа бинарных связей
- •Диаграммы «сущность-связь»
- •Изображение атрибутов в диаграммах «сущность-связь»
- •Слабые сущности
- •Подтипы сущностей
- •Пример er-диаграммы
- •Диаграммы «сущность-связь» в стиле uml
- •Сущности и связи в uml
- •Представление слабых сущностей
- •Представление подтипов
- •Конструкции ооп, введенные языком uml
- •Семантическая объектная модель
- •Семантические объекты
- •Определение семантических объектов
- •Атрибуты
- •Кардинальное число атрибута
- •Экземпляры объектов
- •Парные атрибуты
- •Объектные идентификаторы
- •Домены атрибутов
- •Представления семантических объектов
- •Создание семантических объектных моделей данных
- •Пример: база данных администрации нтуу «кпи»
- •Спецификация объектов
- •Типы объектов
- •Простые объекты
- •Составные объекты
- •Гибридные объекты
- •Ассоциативные объекты
- •Объекты вида родитель/подтип
- •Объекты вида архетип/версия
- •Переход от семантической объектной модели к модели «сущность-связь»
- •Вопросы:
- •Упражнения:
- •Тема 4 Нормализация
- •Классы отношений
- •Нормальные формы от первой до пятой
- •Тема 5 Методология проектирования баз данных Введение в методологию проектирования баз данных
- •Методология концептуального проектирования базы данных
- •Методология логического проектирования реляционных баз данных
- •Суть состоит в том, что при устранении избыточности очень важно исследовать значение каждой из связей, существующих между сущностями.
- •Методология физического проектирования базы данных
- •Трехуровневая архитектура ansi-sparc
- •Система управления Базами Данных
- •1. Хранение, извлечение и обновление данных
- •2. Каталог доступный конечным пользователям
- •Поддержка транзакций
- •Сервисы управления параллельностью
- •Сервисы восстановления
- •6. Сервисы контроля доступа к данным
- •Поддержка обмена данными
- •8. Вспомогательные службы
- •Преимущества:
- •Недостатки:
- •Вопросы:
- •Упражнения:
- •История языка sql
- •Особая роль языка sql
- •Используемая терминология
- •Запись операторов sql
- •Манипулирование данными
- •Литералы
- •Простые запросы
- •Выборка строк (конструкция where)
- •Сортировка результатов (конструкция order by)
- •Использование агрегирующих функций языка sql
- •Группирование результатов (конструкция group by)
- •Ограничения на выполнение группирования (конструкция having)
- •Подзапросы
- •Ключевые слова any и all
- •Многотабличные запросы
- •Выполнение соединений
- •Внешние соединения
- •Ключевые слова exists и not exist
- •Комбинирование результирующих таблиц (операции union, intersect и except)
- •Изменение содержимого базы данных
- •Добавление новых данных в таблицу (оператор insert)
- •Модификация данных в базе (оператор update)
- •Удаление данных из базы (оператор delete)
- •Скалярные типы данных языка sql
- •Логические данные (тип boolean)
- •Символьные данные (тип character)
- •Битовые данные (тип bit)
- •Точные числовые данные (тип exact numeric)
- •Округленные числовые данные (тип approximate numeric)
- •Дата и время (тип datetime)
- •Интервальный тип данных interval
- •Скалярные операторы
- •Средства поддержки целостности данных
- •Обязательные данные
- •Ограничения для доменов
- •Целостность сущностей
- •Ссылочная целостность
- •Требования данного предприятия
- •Определение данных
- •Создание баз данных
- •Создание таблиц (оператор create table)
- •Модификация определения таблицы (оператор alter table)
- •Удаление таблиц (оператор drop table)
- •Создание индекса (оператор create index)
- •Удаление индекса (оператор drop index)
- •Представления
- •Создание представлений (оператор create view)
- •Удаление представлений (оператор drop view)
- •Замена представлений
- •Ограничения на использование представлений
- •Обновление данных в представлениях
- •Использование конструкции with check option
- •Преимущества и недостатки представлений
- •Преимущества
- •Недостатки
- •Материализация представлений
- •Использование транзакций
- •Немедленные и отложенные ограничения поддержки целостности данных
- •Управление доступом к данным
- •Идентификаторы пользователей и права владения
- •Привилегии
- •Предоставление привилегий другим пользователям (оператор grant)
- •Отмена предоставленных пользователям привилегий (оператор revoke)
- •Приложение
- •Тема 7.3 Хранимые процедуры и функции. Триггеры.
- •Создание хранимых процедур и функций
- •Простые формы выражений
- •Поддержка транзакций
- •Свойства транзакций
- •Архитектура базы данных
- •Управление параллельным доступом
- •Проблема потерянного обновления
- •Проблема зависимости от незафиксированных результатов (или "грязного" чтения)
- •Проблема анализа несогласованности
- •Упорядочиваемость и восстанавливаемость
- •Конфликтная упорядочиваемость
- •Упорядочиваемость по просмотру
- •Восстанавливаемость
- •Методы управления параллельным доступом
- •Методы блокировки
- •Двухфазная блокировка
- •Управление параллельным выполнением при использовании индексных структур
- •Защелки
- •Взаимоблокировка
- •Тайм-ауты
- •Предотвращение взаимоблокировок
- •Обнаружение взаимоблокировок
- •Частота выполнения операции обнаружения взаимоблокировок
- •Возобновление нормальной работы после обнаружения взаимоблокировки
- •Использование временных отметок
- •Правило записи Томаса
- •Сравнение методов
- •Упорядочение временных отметок в случае многих версий
- •Оптимистические методы упорядочения
- •Степень детализации блокируемых элементов данных
- •Иерархия степеней детализации
- •Блокировка с учетом нескольких степеней детализации
- •Восстановление базы данных
- •Необходимость восстановления
- •Транзакции и восстановление
- •Управление буферами базы данных
- •Функции восстановления
- •Механизм резервного копирования
- •Файл журнала
- •Создание контрольных точек
- •Методы восстановления
- •Метод восстановления с использованием отложенного обновления
- •Метод восстановления с использованием немедленного обновления
- •Метод теневого страничного обмена
- •Улучшенные модели транзакций
- •Модель вложенных транзакций
- •Эмуляция механизма вложенных транзакций с помощью точек сохранения
- •Хроники
- •Модель многоуровневых транзакций
- •Динамическая реструктуризация
- •Модели рабочих потоков
- •Общий обзор методов обработки запросов
- •Основные этапы обработки запросов
- •Динамическая и статическая оптимизация запросов
- •Декомпозиция запросов
- •Нормализация
- •Семантический анализ
- •Упрощение
- •Реструктуризация запросов
- •Эвристический подход к оптимизации запросов
- •Правила преобразования операций реляционной алгебры
- •Оценка стоимости операций реляционной алгебры
- •Статистические показатели базы данных
- •Вариант 6. Поиск по равенству значению кластеризующего (вторичного) индекса
- •Вариант 7. Поиск по равенству значению некластеризующего (вторичного) индекса
- •Составные предикаты
- •Конъюнктивная выборка без дизъюнкций
- •Выборки с дизъюнкциями
- •Конвейерная обработка данных
- •Тема 10
- •Основные типы угроз
- •Контрмеры – компьютерные средства контроля
- •Авторизация пользователей
- •Привилегии
- •Права владения и привилегии
- •Представления (подсхемы)
- •Резервное копирование и восстановление
- •Поддержка целостности
- •Шифрование
- •Raid (массив независимых дисковых накопителей с избыточностью)
- •Средства защиты субд Microsoft Access
- •Установка пароля
- •Защита на уровне пользователя
Ключевые слова any и all
Ключевые слова ANY и ALL могут использоваться с подзапросами, возвращающими один столбец чисел. Если подзапросу будет предшествовать ключевое слово ALL, условие сравнения считается выполненным только в том случае, если оно выполняется для всех значений в результирующем столбце подзапроса. Если тексту подзапроса предшествует ключевое слово ANY, то условие сравнения будет считаться выполненным, если оно удовлетворяется хотя бы для какого-либо (одного или нескольких) значения в результирующем столбце подзапроса. Если в результате выполнения подзапроса будет получено пустое значение, то для ключевого слова ALL условие сравнения будет считаться выполненным, а для ключевого слова ANY – невыполненным. Согласно стандарту ISO дополнительно можно использовать ключевое слово SOME, являющееся синонимом ключевого слова ANY.
Пример 7.1.22. Использование ключевых слов ANY и SOME
Найдите всех студентов, чей балл превышает балл хотя бы одного студента группы 001
SELECT НГ, НС, ФИО, ГОДР, АДРЕС, ПБАЛЛ
FROM СТУДЕНТ
WHERE ПБАЛЛ > SOME (SELECT ПБАЛЛ
FROM СТУДЕНТ
WHERE НГ =001);
Хотя этот запрос может быть записан с использованием подзапроса, определяющего минимальный балл студентов группы ТМ-31, после чего внешний подзапрос сможет выбрать сведения обо всех студентах института, чей балл превосходит это значение, возможен и другой подход, заключающийся в использовании ключевых слов SOME/ANY. В этом случае внутренний подзапрос создает множество значений {5;4,1}, а внешний запрос выбирает сведения о тех работниках, чей балл больше любого из значений в этом множестве (фактически больше минимального значения – 4,1). Подобный альтернативный метод можно считать более естественным, чем определение в подзапросе минимального балла. Но и в том и в ином случае вырабатываются одинаковые результаты выполнения запроса, которые представлены в табл. 7.1.25.
Таблица 7.1.25. Результат выполнения запроса из примера 7.1.22
Группа |
№ студента |
ФИО |
Год рождения |
АДРЕС |
Проходной балл |
001 |
01 |
Васильев М.В. |
1985 |
|
5 |
101 |
01 |
Аристов Р.П. |
1979 |
|
4,5 |
101 |
02 |
Бондаренко С.А. |
1978 |
|
4,5 |
101 |
03 |
Борисова Е.И. |
1979 |
|
4,25 |
101 |
04 |
Макова Н.В. |
1977 |
|
4,75 |
102 |
01 |
Боярская Н.П. |
1977 |
|
4,5 |
102 |
02 |
Федоров Д.К. |
1977 |
|
4,25 |
102 |
03 |
Сидоров И.Р. |
1977 |
|
4,5 |
103 |
01 |
Андреев Г.М. |
1978 |
|
4,25 |
103 |
02 |
Петров О.К. |
1979 |
|
4,75 |
104 |
01 |
Иванов К.К. |
1977 |
|
4,5 |
104 |
07 |
Григорьева Е.А. |
1979 |
|
4,75 |
105 |
01 |
Серов И.Г. |
1980 |
|
4,5 |
105 |
12 |
Антоненко К. П. |
1978 |
|
4,5 |
ТМ-31 |
07 |
Глушков И.В. |
1986 |
|
4,5 |
ТМ-31 |
12 |
Костюшко Т.А. |
1986 |
|
4,25 |
ТМ-31 |
19 |
Самойленко Ю.А. |
1986 |
|
4,75 |
ТМ-31 |
20 |
Святненко Ю.В. |
1986 |
|
4,75 |
ТМ-31 |
23 |
Терпило Д.А. |
1986 |
|
4,75 |
ТМ-31 |
24 |
Черняк А.Ю. |
1986 |
|
4,25 |
Пример 7.1.23. Использование ключевого слова ALL
Найдите всех студентов, чей балл превышает балл любого студентата группы 403
SELECT НГ, НС, ФИО, ГОДР, АДРЕС, ПБАЛЛ
FROM СТУДЕНТ
WHERE ПБАЛЛ > SELECT ПБАЛЛ
FROM СТУДЕНТ
WHERE НГ = 403);
В целом этот запрос подобен предыдущему. И в данном случае можно было бы использовать подзапрос, определяющий максимальное значение балла студентов группы под номером 403 , после чего с помощью внешнего запроса выбрать сведения обо всех студентах института, балл которых превышает это значение. Однако в данном примере выбран подход с использованием ключевого слова ALL. Результаты выполнения запроса представлены в табл. 7.1.26.
Таблица 7.1.26. Результат выполнения запроса из примера 7.1.23
Группа |
№ студента |
ФИО |
Год рождения |
АДРЕС |
Проходной балл |
001 |
01 |
Васильев М.В. |
1985 |
|
5 |
001 |
02 |
Носков А.К. |
1976 |
|
4,1 |
101 |
01 |
Аристов Р.П. |
1979 |
|
4,5 |
101 |
02 |
Бондаренко С.А. |
1978 |
|
4,5 |
101 |
03 |
Борисова Е.И. |
1979 |
|
4,25 |
101 |
04 |
Макова Н.В. |
1977 |
|
4,75 |
102 |
01 |
Боярская Н.П. |
1977 |
|
4,5 |
102 |
02 |
Федоров Д.К. |
1977 |
|
4,25 |
102 |
03 |
Сидоров И.Р. |
1977 |
|
4,5 |
103 |
01 |
Андреев Г.М. |
1978 |
|
4,25 |
103 |
02 |
Петров О.К. |
1979 |
|
4,75 |
104 |
01 |
Иванов К.К. |
1977 |
|
4,5 |
104 |
07 |
Григорьева Е.А. |
1979 |
|
4,75 |
105 |
01 |
Серов И.Г. |
1980 |
|
4,5 |
105 |
12 |
Антоненко К. П. |
1978 |
|
4,5 |
ТМ-31 |
07 |
Глушко И.В. |
1986 |
|
4,5 |
ТМ-31 |
12 |
Костюшко Т.А. |
1986 |
|
4,25 |
ТМ-31 |
19 |
Самойленко Ю.А. |
1986 |
|
4,75 |
ТМ-31 |
20 |
Святненко Ю.В. |
1986 |
|
4,75 |
ТМ-31 |
23 |
Терпило Д.А. |
1986 |
|
4,75 |
ТМ-31 |
24 |
Черняк А.Ю. |
1986 |
|
4,25 |