- •Лекция №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
- •Представления каталога
- •Функции динамического управления
- •Типы определяемых пользователем функции
- •Возвращающие табличное значение определяемые пользователем функции
- •Определяемые пользователем встроенные функции
- •Концепция транзакций
- •Эффекты одновременного доступа
- •Блокировки и управление версиями строк
- •Типы управления одновременным доступом
- •Режимы блокировки
- •Взаимоблокировка
- •Отображение сведений о блокировках
- •Режимы транзакций
- •Автоматическая фиксация транзакций
- •Явные транзакции
- •Неявные транзакции
- •Распределенные транзакции
- •Уровни изоляции в ядре субд
Лекция №6
Определение ЯМД, основанного на ИО.
Исчисление отношений (ИО) – это совокупность обозначений и правил (формула) для описания результирующего отношения, выводимого из РМД. Эта формула называется -выражением:
{ (t1, t2, …, tn): W}
целевой список предикат
Этот ЯМД в нашем курсе не рассматривается.
ЯМД, основанный на операции отображения.
Эти языки занимают промежуточное положение между РА и ИО. Под отображением в данном случае понимают операцию выбора данных, которая имитирует действия человека при поиске данных в таблице.
r |
ФАМ |
Г_Р |
Группа |
Пол |
|
|
|
|
|
Действия:
Пример столбца: группа
Выделение в нем некоторого элемента (аргумент отображения) А8-97
Просмотр строки, содержащей аргумент отображения
Выделение из строки значений, которые входят в столбцы ФАМ, Г_Р
Таким образом, главная конструкция этого языка – это операция отображения, например:
Язык SQL
SELECT ФАМ, Г_Р FROM r WHERE Группа = ‘А8-97’
аргумент отображения
Здесь нет ничего от РА; только исчисление отношений. В языке SQL есть блочная структура, т.е. возможно вложение одного элементарного блока в другой.
Пример: Сотрудники_ЗИЛ (ФАМ, Г_Р)
ВУЗ (ФАМ, Н_ВУЗА)
Выдать года рождения сотрудников ЗИЛа, которые учатся в МЭИ.
SELECT Г_Р FROM СОТР_ЗИЛ WHERE ФАМ IN (SELECT ФАМ FROM ВУЗ WHERE
Н_ВУЗА = ‘МЭИ’)
Запрос реализуется в 2 этапа: сначала – внутренний блок SELECT: из отношения ВУЗ извлекается множество ФАМ, которые учатся в МЭИ; затем полученный список ФАМ используется в условиях внешнего SELECT. Это вносит определенную процедурность в формулировку запросов и приближает рассмотренную группу языков к алгебраическим языкам.
Язык QBE (Query by Example)
Язык, сходный с SQL, однако QBE разработан специально для работы с терминала.
Всякая операция в QBE специфицируется с помощью одной или нескольких таблиц; каждая такая таблица строится на экране монитора частично системой, частично пользователем.
Первоначально система выдает на экран пустую таблицу. Пользователь, знающий, что ответ на запрос находится в таблице r, запишет r в качестве имени таблицы; тогда система ответит заполнением соответствующих имен столбцов:
R |
A |
B |
C |
D |
|
P.ax |
P.bx |
C1 |
|
условие запроса
Пользователь формулирует запрос, заполняя три позиции в таблице. P. – означает печать. P указывает цель запроса (результат), которая должна быть выведена.
Q = AB (C=C1(r))
Нормализация отношений
Нормализацией называется процесс приведения отношения к одной из нормальных форм (НФ). Отношения могут находиться в следующих состояниях: ненормализованное отношение, 1НФ, 2НФ, 3НФ, 4НФ, 5НФ. Однако 5НФ практического значения не нашла. Нормализация используется на этапе концептуального проектирования РМД.
Для чего вводится нормализация:
минимизация избыточности хранения данных;
обеспечение непротиворечивости данных;
расширение возможностей БД по добавлению, удалению и обновлению;
сделать БД более наглядной, семантически выразительной.
1НФ
Отношение, которое состоит из простых атрибутов, называется нормализованным и находится, по меньшей мере, в 1НФ.
Любое ненормализованное отношение можно привести к 1НФ.
Пример: Служ (#служ, ФИО, дети(имя, Г_Р))
составной атрибут
служ
# служ ФИО дети
корневое отношение имя Г_Р
подчиненное отношение
Существует алгоритм приведения к 1НФ:
Корневое отношение помещается в результирующее отношение.
Подчиненное отношение помещается в результирующее отношение вместе с атрибутами ключа корневого отношения.
Этот процесс продолжается до удаления всех деревьев из исходного отношения.
Т аким образом, в нашем случае в результирующее отношение попадут 2 отношения:
Служ(#служ, ФИО)
Дети(#служ, имя, Г_Р) 1НФ
При анализе нормализации важную роль играет понятие функциональной зависимости (ФЗ).