- •Лекция №1 Информационные системы
- •Лекция № 2 Базы данных и стория появления бд
- •Основная концепция технологии бд:
- •Основные понятия курса (определения):
- •Характеристики субд
- •Основные свойства бд:
- •Лекция №3 Этапы проектирования бд Обобщенная архитектура субд
- •Этапы проектирования бд
- •Лекция №4 Модели данных
- •Реляционная модель данных (рмд)
- •Лекция №5
- •Рмд: языки манипулирования данными (ямд)
- •Лекция №6
- •Нормализация отношений
- •Определение фз
- •Лекция №7 Нормализация отношений (продолжение)
- •Лекция № 8 Платформа sql Server
- •Выпуски sql Server
- •Компоненты sql Server
- •Экземпляры sql Server
- •Системные базы данных
- •Лекция № 9 Файлы и файловые группы
- •Файловая группа по умолчанию
- •Физическая структура файлов данных
- •Страницы
- •Поддержка больших строк
- •Экстенты
- •Журнал транзакций и восстановление
- •Физическая архитектура журнала транзакций
- •Лекция № 10 Опции базы данных
- •Параметры сортировки (collation)
- •Модель восстановления (recovery)
- •Уровень совместимости (compatibility_level)
- •Автоматические
- •Восстановление
- •Состояние
- •Лекция № 11
- •Изменение настроек базы данных
- •Удаление базы данных
- •Лекция № 12 Типы данных Microsoft sql Server
- •Точные числа
- •Приблизительные числа
- •Двоичные данные
- •Пространственные типы данных
- •Специальные типы данных
- •Устаревшие типы данных
- •Пользовательские типы данных
- •Обозреватель объектов sql Server Management Studio
- •Представления каталога
- •Создание таблиц
- •Изменение таблиц
- •Удаление таблиц
- •Системные функции
- •Строковые функции
- •Функции даты (времени)
- •Обновление данных
- •Лекция № 14 Создание индексов и управление индексами Структура хранения данных
- •Структуры кластеризованного индекса
- •Структуры некластеризованного индекса
- •Оптимизация индексов
- •Источники информации об индексах
- •Создание индексов
- •Вычисляемые столбцы
- •Изменение индексов
- •Восстановление индексов
- •Удаление индексов
- •Лекция № 15 Ограничения целостности данных Назначение
- •Типы ограничений целостности данных
- •Определение default значений
- •Ограничение not null
- •Ограничения check
- •Ограничения unique
- •Ограничения primary key
- •Ограничения foreign key
- •Ссылочная целостность
- •Индексирование ограничений foreign key
- •Количество ограничений foreign key в таблице
- •Ограничения столбцов и таблиц
- •Применение триггеров
- •Программирование триггеров
- •Создание триггеров
- •Изменение триггеров
- •Удаление триггеров
- •Лекция № 16 Представления Что такое представление?
- •Использование представлений
- •Источники информации о представлениях Обозреватель объектов sql Server Management Studio
- •Функции динамического управления
- •Создание предавлений
- •Изменение представлений
- •Удаление представлений
- •Обновление данных в представлении
- •Типы представлений Стандартные представления
- •Индексированные представления
- •Секционированные представления
- •Секционированные представления
- •Создание таблиц-элементов
- •Определение распределенных секционированных представлений
- •Правила таблиц
- •Правила столбцов
- •Правила столбцов секционирования
- •Индексированные представления
- •Создание индексированных представлений
- •Лекция № 17 Хранимые процедуры и функции Преимущества хранимых процедур
- •Источники информации о хранимых процедурах Обозреватель объектов sql Server Management Studio
- •Представления каталога
- •Функции динамического управления
- •Создание хранимых процедур
- •Вызов хранимых процедур
- •Перекомпиляция хранимых процедур
- •Преимущества определяемых пользователем функций
- •Источники информации о пользовательских функциях Обозреватель объектов sql Server Management Studio
- •Представления каталога
- •Функции динамического управления
- •Типы определяемых пользователем функции
- •Возвращающие табличное значение определяемые пользователем функции
- •Определяемые пользователем встроенные функции
- •Концепция транзакций
- •Эффекты одновременного доступа
- •Блокировки и управление версиями строк
- •Типы управления одновременным доступом
- •Режимы блокировки
- •Взаимоблокировка
- •Отображение сведений о блокировках
- •Режимы транзакций
- •Автоматическая фиксация транзакций
- •Явные транзакции
- •Неявные транзакции
- •Распределенные транзакции
- •Уровни изоляции в ядре субд
Рмд: языки манипулирования данными (ямд)
ЯМД разбиваются на 3 больших класса:
Основанные на реляционной алгебре (РА) (процедурные языки);
Основанные на исчислении отношений (непроцедурные языки);
Основанные на операции отображения (SQL, QBE и др.)
ЯМД, основанный на РА
РА: UR=<R, R>, где R – основное множество (отношения); R - сигнатура (множество операций).
РА является замкнутой алгеброй относительно R, т.е. операнды и результаты операций являются отношениями.
Теоретико-множественные операции РА
Они применяются к отношениям, имеющим одинаковую схему отношений:
R (A1, A2, …, An) и S (A1, A2, …, An)
одинаковое количество атрибутов;
одноименные атрибуты определены на одних и тех же доменах.
Такие отношения имеют одну и ту же область определения – U:
U = dom (A1) * dom (A2) * … * dom (An)
РА определяется кортежом <P(n), , , , , U>
Пусть r и s – отношения со схемой R (A1, A2, …, An);
r(R) и s(R) – это исходные отношения, а q(R) – результирующее отношение.
-
r(R)
ШД
Цвет
Б
ч
Г
ч
Г
с
-
s(R)
ШД
Цвет
Г
с
Г
к
Операция объединения: q(R) = r(R) s(R) = {t(R) t r t s}
Операция объединения используется для первоначальной загрузки таблиц БД, для добавления записей.
-
q(R)
ШД
Цвет
Б
ч
Г
ч
Г
с
Г
к
Операция пересечения: q(R) = r(R) s(R) = {t(R) t r t s}
Используется для выделения необходимых коррекций.
-
q(R)
ШД
Цвет
Г
с
Операция разности: q(R) = r(R) \ s(R) = {t(R) t r t s}
Используется для удаления кортежей из отношения.
-
q(R)
ШД
Цвет
Г
ч
Б
ч
Операция дополнения (унарная операция): q(R) = r(R) = {t(R) t r}
Или q(R) = dom (R) \ r
-
q(R)
ШД
Цвет
Б
к
Б
с
Г
к
Специальные операции РА
Операция проекции отношения на один или несколько атрибутов (унарная операция)
Исходные данные: r(R) X R
Результирующее отношение: q(X)
q(X) = { t(X) t(R) r t(X) t(R)}
В q(X) входят такие подкортежи t(X), которые являются частью кортежей t(R), входящих в отношение r. Обозначение операции: x(r) или r(X)
Пример:
-
R
ШД
Цвет
Б
ч
Г
с
Г
ч
Найти имена всех деталей – q(ШД) = ШД(r)
-
q
ШД
Б
Г
Г
Дублирующие кортежи вычеркиваются (по определению)
- соединение, где - некоторая операция отношения.
Введем понятие - сравнимых атрибутов. Если операция определена на декартовом произведении доменов dom (A) * dom (B), то A и B называются
-сравнимыми. Один атрибут может рассматриваться -сравнимым сам с собой.
Исходные данные: r(R) и s(S); R S = ; T = R S; A R; B S; A и B
-сравнимы. Обозначим: tr для t(R) r, ts для t(S) s. Результирующее отношение: q(T).
q(T) = {t(T) t(R)= tr t(S)= ts tr(A) ts(B)}
В q(T) входят различные сцепления кортежей tr и ts, для которых предикат tr(A) ts(B) является истинным.
Короткая запись операции: q(T)=r[A B]s
Пример: ABC
-
AB
№ рейса
Вылет
Прилет
-
BC
№ рейса1
Вылет1
Прилет1
AC = AB [Прилет < Вылет1] BC
Условие вхождения кортежей может быть логически сложным (логические операции: , , ).
На языке SQL: SELECT AB.*, BC.* FROM AB, BC WHERE AB.ПРИЛЕТ < BC.ВЫЛЕТ1
3) - ограничение (или выборка) – частный случай - соединения.
Исходные данные: r(R); A R; a dom (A);
Результирующее отношение: q(R).
q(R) = {t(R) t(A) a} Короткая запись: q(R) = Aa(R)
В q(R) входят такие кортежи t(R) из отношения r, для которых предикат t(A) a является истинным.
Пример:
-
R
ШД
Цвет
Б
ч
Г
с
Г
ч
Найти кортежи, в которых черные детали: q(R) = Цвет=’ч’(R)
-
Q
ШД
Цвет
Б
ч
Г
ч
4) Операция декартова произведения кортежей отношения.
Исходные данные: r(R) и s(S); T = R S; R S = .
Результирующее отношение: q(T).
q(T) = {t(T) t(R)= tr t(S)= ts} Короткая запись: q(T)=r(R) * s(S)
В q(T) входят всевозможные сцепления кортежей tr и ts. Это очень опасная операция, т.к. мощность результата P=P1*P2.
Операция эквисоединения
Исходные данные: r(R) и s(S); F = R S (имеются одноименные атрибуты).
Результирующее отношение: q(T).
q(T) = {t(T) t(R)= tr t(S)= ts tr(F) = ts(F)} Короткая запись: q(T) = r s
В q(T) входят различные сцепления tr и ts, для которых значения одноименных атрибутов равны.
Пример:
-
Пост.
ШП
ШД
П1
Б
П2
Г
-
Деталь
ШД
Цвет
Б
ч
Г
с
Г
ч
q(ШП, ШД, Цвет) = Пост. (ШП, ШД) Деталь(ШД, Цвет)
-
q
ШП
ШД
Цвет
П1
Б
ч
П2
Г
с
П2
Г
ч