- •Лекция №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
- •Представления каталога
- •Функции динамического управления
- •Типы определяемых пользователем функции
- •Возвращающие табличное значение определяемые пользователем функции
- •Определяемые пользователем встроенные функции
- •Концепция транзакций
- •Эффекты одновременного доступа
- •Блокировки и управление версиями строк
- •Типы управления одновременным доступом
- •Режимы блокировки
- •Взаимоблокировка
- •Отображение сведений о блокировках
- •Режимы транзакций
- •Автоматическая фиксация транзакций
- •Явные транзакции
- •Неявные транзакции
- •Распределенные транзакции
- •Уровни изоляции в ядре субд
Лекция № 14 Создание индексов и управление индексами Структура хранения данных
Таблицы хранятся в виде коллекции страниц размером 8 КБ. Следующая иллюстрация показывает организацию таблицы. Таблица содержится в одной или нескольких секциях, а каждая секция содержит строки данных либо в куче, либо в структуре кластеризованного индекса.
Таблицы SQL Server используют один из двух методов организации страниц данных внутри секции:
Кластеризованные таблицы - это таблицы, имеющие кластеризованный индекс. Строки данных хранятся по порядку ключа кластеризованного индекса. Кластеризованный индекс реализуется в виде структуры индекса сбалансированного дерева, которая поддерживает быстрый поиск строк по их ключевым значениям в кластеризованном индексе. Страницы в каждом уровне индекса, включая страницы данных на конечном уровне, связаны в двунаправленный список. Однако перемещение из одного уровня на другой выполняется при помощи ключевых значений.
Кучи - это таблицы, которые не имеют кластеризованного индекса. Строки данных хранятся без определенного порядка, и какой-либо порядок в последовательности страниц данных отсутствует. Страницы данных не связаны в связный список. Поиск строк требует полного последовательного просмотра всех строк таблицы.
В соответствие с организацией страниц данных внутри секции будет происходить чтение страниц для выборки или изменения данных.
Во многих случаях полный последовательный просмотр всех строк таблицы является не оптимальной стратегией поиска записи. Например, чтобы обновить одну строку в таблице без кластеризованного индекса может потребоваться последовательно считать с диска все страницы этой таблицы.
Необходимо определить, что важнее - повышение производительности запросов или производительность при изменении данных и дополнительные требования к месту на диске.
Кучи
Кучей является таблица без кластеризованного индекса. По умолчанию у кучи есть одна секция. Если куча имеет несколько секций, каждая из них имеет структуру кучи, содержащую данные для этой определенной секции. Например, если у кучи четыре секции, имеются четыре структуры кучи, по одной на каждую секцию.
Внутренние структуры SQL Server хранят указатель на первую IAM-страницу в цепи IAM-страниц, SQL Server использует IAM-страницы для перемещения по куче. Страницы данных и строки в этих страницах не расположены в каком-либо порядке и не связаны. Единственным логическим соединением страниц данных являются данные, записанные в IAM-страницы.
Просмотр таблиц или последовательное считывание в куче может выполняться просмотром IAM-страниц для нахождения экстентов, хранящих страницы кучи. Так как карта IAM представляет экстенты в том же порядке, в котором они существуют в файлах данных, это означает, что последовательный просмотр кучи выполняется последовательно в каждом файле. Использование IAM-страниц для определения последовательности просмотра означает также, что строки из кучи обычно возвращаются не в том порядке, в котором они вставлялись.
На следующей иллюстрации демонстрируется, как компонент SQL Server Database Engine использует IAM-страницы для получения строк данных из кучи с одной секцией.