- •Лекция №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
- •Представления каталога
- •Функции динамического управления
- •Типы определяемых пользователем функции
- •Возвращающие табличное значение определяемые пользователем функции
- •Определяемые пользователем встроенные функции
- •Концепция транзакций
- •Эффекты одновременного доступа
- •Блокировки и управление версиями строк
- •Типы управления одновременным доступом
- •Режимы блокировки
- •Взаимоблокировка
- •Отображение сведений о блокировках
- •Режимы транзакций
- •Автоматическая фиксация транзакций
- •Явные транзакции
- •Неявные транзакции
- •Распределенные транзакции
- •Уровни изоляции в ядре субд
Лекция № 9 Файлы и файловые группы
База данных - это некоторый набор перманентных (постоянно хранимых) данных, используемых прикладными программными системами какого-либо предприятия.
Базы данных MS SQL Server хранятся на жестком диске в виде файлов. Существуют три типа файлов баз данных MS SQL Server - это первичные файлы, вторичные файлы и журналы транзакций. База данных должна содержать первичный файл данных и, по крайней мере, один файл журнала транзакций. При необходимости можно создать один или несколько вторичных файлов данных и дополнительные файлы журналов транзакций.
Первичные файлы
Первичный файл данных содержит сведения, необходимые для запуска базы данных, и ссылки на другие файлы в базе данных. Первичные файлы также могут содержать данные пользовательских таблиц и индексов. Данные и объекты пользователя могут храниться в данном файле или во вторичном файле данных. В каждой базе данных имеется один первичный файл данных. Для имени первичного файла данных рекомендуется расширение MDF.
Вторичные файлы
Вторичные файлы данных не являются обязательными; это пользовательские файлы, в которых хранятся данные пользователя. Вторичные файлы могут быть использованы для распределения данных на несколько дисков, в этом случае каждый файл записывается на отдельный диск. Кроме того, если размер базы данных превышает максимальный размер для одного файла Windows, можно использовать вторичные файлы данных, таким образом база данных сможет расти дальше. Для имени вторичного файла данных рекомендуется расширение NDF.
Журналы транзакций
В этих файлах содержатся данные журнала - информация об операциях, произведенных над базой данных. Протоколирование производимых операций необходимо для обеспечения возможности восстановления базы данных после сбоев или неверных изменений данных. В каждой базе данных должен быть, как минимум, один файл журнала транзакций, а может быть и несколько таких файлов. Для файлов журнала транзакций рекомендуется расширение LDF.
По умолчанию и данные, и журналы транзакций помещаются на один и тот же диск и имеют один и тот же путь. Это сделано для поддержки однодисковых систем, но для производственных сред это может быть неоптимальным решением.
Рекомендуется помещать данные и файлы журнала на разные физические диски. Таким образом, число перемещений и время на позиционирование пишущей головки жесткого диска будет минимизировано. Например, файл журнала транзакций на отдельном физическом диске может писаться параллельно с файлами данных не требуя дополнительного позиционирования пишущей головки, так как файл журнала транзакций пишется последовательно.
Файлы данных MS SQL Server объединены в файловые группы. Данные внутри файловой группы распределяются по файлам пропорционально свободному месту в файлах. Например, если в файле f1 свободно 100 МБ, а в файле f2 - 200 МБ, то в файл f1 будет записана одна часть данных, а в файл f2 - две части, при этом оба файла будут заполнены примерно в одно и то же время.
Как только заполняются все файлы в группе, компонент Database Engine перебирает файлы файловой группы в поисках файла для которого разрешено автоматическое увеличение. Увеличение размера происходит циклически по одному файлу за раз. Например, файловая группа состоит из трех файлов, для всех разрешено автоматическое увеличение. Когда свободное пространство во всех файлах группы закончится, будет расширен только первый файл. Когда заполнится первый файл и в файловую группу снова нельзя будет записывать новые данные, будет расширен второй файл. Когда заполнится второй файл и в файловую группу опять нельзя будет записывать новые данные, будет расширен третий файл. Когда заполнится третий файл и в файловую группу нельзя будет записывать новые данные, будет снова расширен первый файл и т. д.
Используя этот механизм распределения данных по файлам, можно увеличить производительность доступа к данным, разместив файлы файловой группы на разных физических носителях (при таком размещении данные могут писаться параллельно, образуя подобие чередующегося дискового массива RAID). Например, три файла f1, f2 и f3, могут быть созданы на трех дисках соответственно и отнесены к файловой группе fgroup1. Можно создать таблицу размещенную на файловой группе fgroup1. В этом случае, запросы данных из таблицы будут распределены по трем дискам, что несколько улучшит производительность. Подобного улучшения производительности можно достичь и с помощью одного файла, созданного на чередующемся наборе дискового массива RAID. Тем не менее, файлы и файловые группы позволяют без труда добавлять новые файлы на новые диски.
Все файлы данных хранятся в файловых группах, перечисленных в следующей таблице.
Файловая группа |
Описание |
Первичная |
Файловая группа, содержащая первичный файл. Все системные таблицы размещены в первичной файловой группе. |
Определяемая пользователем |
Любая файловая группа, созданная пользователем при создании или изменении базы данных. |
У каждой базы данных есть первичная файловая группа. Эта файловая группа содержит первичный файл данных и все вторичные файлы, не входящие в другие файловые группы. Пользовательские файловые группы могут создаваться для удобства администрирования, распределения и размещения данных.
Например, для больших баз данных возможно резервное копирование отдельных файловых групп, что занимает значительно меньше времени, чем полное резервное копирование базы данных. Также файловая группа может быть целиком помечена как доступная только для чтения.