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