- •Лекция №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
- •Представления каталога
- •Функции динамического управления
- •Типы определяемых пользователем функции
- •Возвращающие табличное значение определяемые пользователем функции
- •Определяемые пользователем встроенные функции
- •Концепция транзакций
- •Эффекты одновременного доступа
- •Блокировки и управление версиями строк
- •Типы управления одновременным доступом
- •Режимы блокировки
- •Взаимоблокировка
- •Отображение сведений о блокировках
- •Режимы транзакций
- •Автоматическая фиксация транзакций
- •Явные транзакции
- •Неявные транзакции
- •Распределенные транзакции
- •Уровни изоляции в ядре субд
Двоичные данные
binary [ ( n ) ]
Двоичные данные фиксированной длины размером в n байт, где n — значение от 1 до 8000. Размер хранения составляет n байт.
varbinary [ ( n | max) ]
Двоичные данные переменной длины. n могут иметь значение от 1 до 8000; max означает максимальную длину хранения, которая составляет 2^31-1 байт. Размер хранения — это фактическая длина введенных данных плюс 2 байта. Введенные данные могут иметь размер 0 символов. В ANSI SQL синонимом для varbinary является binary varying.
Пространственные типы данных
Пространственные типы данных появились только в Microsoft SQL Server 2008. Эти типы данных представляют сведения о физическом расположении и форме геометрических объектов. Такими объектами могут быть точки или более сложные объекты, например страны, дороги, озера.
SQL Server поддерживает два пространственных типа данных:
geometry (плоский) - представляет данные в эвклидовом пространстве (плоской системе координат).
geography (геодезический) - позволяет сохранять эллипсоидальные (сферические) данные, такие как координаты широты и долготы GPS.
Специальные типы данных
Типы специальных данных не подходят ни к одной из других категорий типов данных. В SQL Server присутствуют следующие особые типы данных: hierarchyid, sql_variant, sysname, table, rowversion, xml, uniqueidentifier, cursor.
Тип данных hierarchyid
В Microsoft SQL Server 2008 был введен новый тип данных hierarchyid, который используется для представления положения в древовидной иерархии. Столбец типа hierarchyid не принимает древовидную структуру автоматически. Приложение должно создать и назначить значения hierarchyid таким образом, чтобы они отражали требуемые связи между строками.
Значения hierarchyid обладают следующими свойствами:
Исключительная компактность Среднее число бит, необходимое для представления узла в древовидной структуре с n узлами, зависит от среднего количества потомков у узла. Для представления узла в иерархии организации, насчитывающей 100 000 человек со средним уровнем ветвления 6, необходимо около 38 бит. Эта величина округляется до 40 бит (5 байт), которые необходимы для хранения.
Поддержка произвольных вставок и удалений В любой момент можно создать одноуровневый элемент, расположенный справа от заданного узла, слева от заданного узла или между любыми двумя другими одноуровневыми элементами. Свойство сравнения сохраняется, если произвольное число узлов вставляется в иерархию или удаляется из нее.
Кодировка в типе данных hierarchyid ограничена 892 байтами. Следовательно, узлы, имеющие слишком много уровней, чтобы уместиться в 892 байта, не могут быть представлены типом данных hierarchyid.
Тип данных sql_variant
Тип данных sql_variant позволяет сохранять данные различных типов в одном столбце, параметре или переменной. В каждом экземпляре столбца типа sql_variant хранятся значения и метаданные, описывающие эти значения (Базовый тип данных, Максимальный размер, Масштаб, Точность, Параметры сортировки).
Тип данных sysname
Тип данных sysname используется в столбцах таблицы, переменных и параметрах хранимых процедур, содержащих названия объектов. Тип данных sysname является псевдонимом типа nvarchar(128), по умолчанию sysname имеет значение NOT NULL. В более ранних версиях SQL Server тип sysname фунционально эквивалентен varchar(30).
Тип данных table
Тип данных table используется для определения временных таблиц. В переменных этого типа сохраняются результирующие наборы для последующей обработки. Этот тип данных может использоваться только для определения локальных переменных типа table и значений, возвращаемых пользовательской функцией.
Определение табличной переменной или возвращаемого значения включает определения столбцов, типа данных, точности и размера каждого столбца. Определенная пользователем таблица не может быть использована в качестве пользовательского типа данных.
Тип данных rowversion
Значения rowversion являются двоичными числами, указывающими относительную последовательность, в которой происходило изменение данных в базе данных - значение rowversion изменяется всякий раз при изменении строки. Размер при хранении составляет 8 байт. Тип данных rowversion не связан со временем или с датой.
Тип данных xml
Тип данных xml позволяет хранить XML-документы и их фрагменты в базе данных SQL Server. Database Engine позволяет создавать столбцы и переменные типа xml, в которых можно хранить экземпляры XML. При этом размер хранимого экземпляра типа данных xml не должен превышать 2 Гб. SQL Server поддерживает валидацию значений столбцов и переменных типа xml при помощи XML-схем, а также преобразование реляционных данных в xml и обратно.
Тип данных uniqueidentifier
Данный тип представляет собой 16-байтный GUID - уникальный идентификатор, генерируемый на основе MAC-адреса сетевой карты и текущего времени. Его главная особенность - уникальность, и хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико, что вероятность того, что в будут независимо сгенерированы два совпадающих ключа, достаточно мала.
Тип данных cursor
Тип данных cursor применяется для итеративной обработки строк, когда необходимо обрабатывать строки из некоторого набора по одной. cursor создается на основе запросы получающего набор строк и может использоваться только для объявления переменных или выходных параметров хранимых процедур. Необходимо учитывать, что курсор является самым медленным способом обработки данных, и в должен использоваться только в тех случаях когда действительно требуется обработка каждой строки по отдельности. На практике наиболее часто cursor применяется для вызова хранимой процедуры для каждой строки и определенного набора.