
- •Лекция №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
- •Представления каталога
- •Функции динамического управления
- •Типы определяемых пользователем функции
- •Возвращающие табличное значение определяемые пользователем функции
- •Определяемые пользователем встроенные функции
- •Концепция транзакций
- •Эффекты одновременного доступа
- •Блокировки и управление версиями строк
- •Типы управления одновременным доступом
- •Режимы блокировки
- •Взаимоблокировка
- •Отображение сведений о блокировках
- •Режимы транзакций
- •Автоматическая фиксация транзакций
- •Явные транзакции
- •Неявные транзакции
- •Распределенные транзакции
- •Уровни изоляции в ядре субд
Создание таблиц-элементов
Таблицы-элементы конструируются так, чтобы в каждой таблице хранился горизонтальный фрагмент исходной таблицы, основанный на интервале значений ключа. Интервалы основаны на значениях данных в столбце секционирования. Диапазон значений в каждой таблице-элементе определяется проверочным ограничением на столбце секционирования, и интервалы не пересекаются. Например, нельзя, чтобы в одной таблице был интервал от 1 до 200000, а в другой – от 15000 до 300000, иначе будет неясно, какая таблица содержит значения от 15000 до 200000.
Например, таблица Customer расположенная на Server1 секционируется на три таблицы Customers_33, Customers_66 и Customers_99, расположенные на Server1, Server2 и Server3 соответственно. Для этих таблиц будет задано следующее проверочное ограничение:
-- На Server1:
CREATE TABLE Customers_33
(CustomerID INTEGER PRIMARY KEY
CHECK (CustomerID BETWEEN 1 AND 32999),
... -- прочие колонки)
-- На Server2:
CREATE TABLE Customers_66
(CustomerID INTEGER PRIMARY KEY
CHECK (CustomerID BETWEEN 33000 AND 65999),
... -- прочие колонки)
-- На Server3:
CREATE TABLE Customers_99
(CustomerID INTEGER PRIMARY KEY
CHECK (CustomerID BETWEEN 66000 AND 99999),
... -- прочие колонки)
Определение распределенных секционированных представлений
После создания таблиц-элементов необходимо определить собственно секционированное представление, которое будет обеспечивать доступ к тем же данным, что и исходная таблица. При этом нагрузка на каждый из серверов, содержащих таблицы-элементы, будет снижена.
Для предыдущего примера на Server1 определяется распределенное секционированное представление Customers. Это позволяет запросам, которые ранее использовали таблицу Customers, продолжать работать без каких-либо изменений. Распределенное секционированное представление поможет распределить нагрузку между тремя серверами при доступе к данным представления.
-- для Server1
CREATE VIEW Customers AS
SELECT * FROM CompanyDatabase.TableOwner.Customers_33
UNION ALL
SELECT * FROM Server2.CompanyDatabase.TableOwner.Customers_66
UNION ALL
SELECT * FROM Server3.CompanyDatabase.TableOwner.Customers_99
Правила таблиц
Таблицы-элементы определяются в предложении FROM в каждой инструкции SELECT в определении представления. Каждая таблица-элемент должна соответствовать следующим правилам:
На таблицы-элементы нельзя ссылаться в представлении больше одного раза.
У таблиц-элементов не может быть индексов, созданных на любых вычисляемых столбцах.
Все ограничения первичного ключа таблиц-элементов должны быть на одинаковом количестве столбцов.
У таблиц-элементов должна быть одна и та же настройка ANSI_PADDING.
Правила столбцов
Столбцы определяются в списке выборки каждой инструкции SELECT в определении представления. Каждый столбец должен соответствовать следующим правилам.
Все столбцы в каждой таблице-элементе должны быть включены в список выборки. Допустимый синтаксис: SELECT * FROM <таблица-элемент>.
На столбцы нельзя ссылаться в списке выборки больше одного раза.
В списке выборки у столбцов должен быть одинаковый порядок следования.
Тип столбцов в списке выборки каждой инструкции SELECT должен совпадать. Это относится к типам данных, точности, масштабу и параметрам сортировки. Например, следующее определение представления будет ошибочным, поскольку первый столбец в обоих выражениях SELECT имеет разный тип данных:
CREATE VIEW NonUpdatable
AS
SELECT IntPrimaryKey, IntPartNmbr
FROM FirstTable
UNION ALL
SELECT NumericPrimaryKey, IntPartNmbr
FROM SecondTable