
- •Введение в бд
- •Файловые системы
- •Системы с базами данных
- •Модели данных
- •Альтернативная терминология Терминология, используемая в реляционной модели, порой может привести к путанице, поскольку помимо предложенных двух наборов терминов существует еще один – третий.
- •Сетевая модель данных
- •Иерархическая модель данных
- •Вопросы:
- •Упражнения:
- •Реляционная модель.
- •Реляционная алгебра. Реляционное исчисление.
- •Реляционная модель
- •Реляционные языки
- •Реляционная алгебра
- •Унарные операции реляционной алгебры
- •Операции с множествами
- •Операции соединения
- •Деление
- •Реляционное исчисление
- •Реляционное исчисление кортежей
- •Реляционное исчисление доменов
- •Другие языки
- •Тема 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
- •Установка пароля
- •Защита на уровне пользователя
Запись операторов sql
Оператор SQL состоит из зарезервированных слов, а также из слов, определяемых пользователем. Зарезервированные слова являются постоянной частью языка SQL и имеют определенное значение. Их следует записывать именно так, как указано в стандарте, и нельзя разбивать на части для переноса из одной строки в другую. Слова, определяемые пользователем, задаются самим пользователем (в соответствии с определенными синтаксическими правилами) и представляют собой имена различных объектов базы данных, таблиц, столбцов, представлений, индексов и т.д. Слова в операторе размещаются в соответствии с установленными синтаксическими правилами. Хотя в стандарте это не указано, многие диалекты языка SQL требуют задания в конце оператора некоторого символа, обозначающего окончание его текста; как правило, с этой целью используется точка с запятой (;).
Большинство компонентов операторов SQL не чувствительно к регистру. Это означает, что могут использоваться любые буквы – как строчные, так и прописные. Одним важным исключением из этого правила являются символьные литералы.
Символьные литералы – данные, которые должны вводиться точно так же, как были введены соответствующие им значения, хранящиеся в базе данных.
Например, если в базе данных хранится значение фамилии 'ИВАНОВ', а в условии поиска указан символьный литерал 'Иванов', то эта запись не будет найдена.
Поскольку язык SQL имеет свободный формат, отдельные операторы SQL и их последовательности будут иметь более удобный для чтения вид при использовании отступов и выравнивания. Рекомендуется придерживаться следующих правил.
Каждая конструкция в операторе должна начинаться с новой строки.
Начало каждой конструкции должно быть обозначено таким же отступом, что и начало других конструкций оператора.
Если конструкция состоит из нескольких частей, каждая из них должна начинаться с новой строки с некоторым отступом относительно начала конструкции, что будет указывать на их подчиненность.
Будем применять следующую расширенную форму системы обозначений BNF (Backus Naur Form – форма Бэкуса-Наура):
Прописные буквы будут использоваться для записи зарезервированных слов и должны указываться в операторах точно так же, как это будет показано.
Строчные буквы будут использоваться для записи слов, определяемых пользователем.
Вертикальная черта (|) указывает на необходимость выбора одного из нескольких приведенных значений, например b | с.
Фигурные скобки определяют обязательный элемент, например {а}.
Квадратные скобки определяют необязательный элемент, например [а].
Многоточие (...) используется для указания необязательной возможности повторения конструкции от нуля до нескольких раз, например {а b} [,с...]. Эта запись означает, что после а или b может следовать от нуля до нескольких повторений с, разделенных запятыми.
На практике для определения структуры базы данных (в основном ее таблиц) используются операторы DDL, а для заполнения этих таблиц данными и выборки из них информации с помощью запросов – операторы DML. В этом разделе вначале познакомимся с операторами DML и лишь затем обратимся к операторам языка DDL. Подобный подход отражает большую важность операторов DML с точки зрения рядового пользователя. Основные операторы DDL рассматриваются в теме 7.2.