Содержание
- 2. Очень общие понятия Система управления базами данных (СУБД) (сервер БД) – программно-аппаратный комплекс - обеспечивает сохранность,
- 3. История развития БД Система баз данных (database system) – это, по сути, не что иное, как
- 4. Этапы развития БД Файлы и файловые системы Первые БД были созданы на основе файловых систем. Для
- 5. Децентрализованное управление доступом к файлу (администрирование). В файловой системе для каждого файла имеется информация о пользователе
- 6. Иерархические БД Рассмотрим следующую модель данных предприятия: предприятие состоит из отделов, в которых работают сотрудники. В
- 7. 2. Иерархическая модель реализует отношение между исходной и дочерней записью по схеме 1:N. Допустим, что исполнитель
- 8. Сетевые БД Иерархическая структура преобразовывается в сетевую следующим образом: 1) деревья (a) и (b) заменяются одной
- 9. Архитектура Систем Баз Данных Трехуровневая архитектура ANSI/SPARC, предложенная американским комитетом по стандартизации ANSI.
- 10. Внутренний уровень - уровень наиболее близкий к физическому хранению данных, т.е. связанный с со способами сохранения
- 11. Трехуровневая архитектура БД позволяет обеспечить логическую (между 1 и 2 ур.) и физическую (между 2 и
- 12. Система управления базами данных представляет собой программное обеспечение, которое управляет доступом к БД [К.Дейт]. Запрос пользователя
- 13. Основы реляционной модели данных 1. Базовые понятия реляционных баз данных Основными понятиями реляционных баз данных являются
- 14. 1.1. Тип данных Понятие тип данных в реляционной модели данных полностью адекватно понятию типа данных в
- 15. 1.3. Кортеж, отношение Фундаментальным понятием реляционной модели данных является понятие отношения. В определении понятия отношения будем
- 16. Тело отношения содержит множество кортежей отношения. Каждый кортеж отношения представляет собой множество пар вида : (
- 17. 1.4. Свойства отношений 1. В отношении нет одинаковых кортежей. Тело отношения есть множество кортежей и, как
- 18. 1.5. Первая нормальная форма Труднее всего дать определение вещей, которые всем понятны. Именно такая ситуация с
- 19. 2. Целостность реляционных данных Существуют два ограничения, которые должны выполняться в любой реляционной базе данных. Это:
- 20. 2.1. Null-значения Достаточно часто встречается ситуация, когда данные неизвестны или не полны. Например, место жительства или
- 21. 2.2. Трехзначная логика (3VL) Т.к. null-значение обозначает на самом деле тот факт, что значение неизвестно, то
- 22. Имеется несколько парадоксальных следствий применения трехзначной логики. Парадокс 1. Null-значение не равно самому себе. Действительно, выражение
- 23. 2.3. Потенциальные ключи По определению, тело отношения есть множество кортежей, поэтому отношения не могут содержать одинаковые
- 24. Любое отношение имеет, по крайней мере, один потенциальный ключ. Действительно, если никакой атрибут или группа атрибутов
- 25. Что является первичным ключом в отношение 1? Отношение 1 Отношение 2 К пониманию того, что в
- 26. Целостность сущностей Т.к. потенциальные ключи фактически служат идентификаторами объектов предметной области (т.е. предназначены для различения объектов),
- 27. 2.4. Внешние ключи Различные объекты предметной области, информация о которых хранится в базе данных, всегда взаимосвязаны
- 28. Потенциальный ключ – (Номер товара, Номер поставщика). Проблемы: Если изменилось наименование поставщика – необходимо внести изменение
- 29. Связь данных в соответствии с семантикой предметной области в отношении определяется фразами: "Поставщики выполняют Поставки", «Товар
- 30. Отношение «Поставщики» Отношение «Поставки» Отношение «Товар»
- 31. Определение 2. Пусть дано отношение R. Подмножество атрибутов FK отношения R будем называть внешним ключом, если:
- 32. Целостность внешних ключей Т.к. внешние ключи фактически служат ссылками на кортежи в другом (или в том
- 33. Операции, могущие нарушить ссылочную целостность Ссылочная целостность может нарушиться в результате операций, изменяющих состояние базы данных.
- 34. Удаление кортежа в родительском отношении. При удалении кортежа в родительском отношении удаляется значение потенциального ключа. Если
- 35. Таким образом, ссылочная целостность в принципе может быть нарушена при выполнении одной из четырех операций: Обновление
- 36. Изменение начинается в родительском отношении и каскадно выполняется в дочернем отношении. Необходимо учитывать, что дочернее отношение
- 37. 3. Реляционная алгебра В описании реляционной модели утверждается, что доступ к реляционным данным осуществляется при помощи
- 38. РА представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата:
- 39. Объединением (A UNION B) двух совместимых по типу отношений A и B называется отношение с тем
- 40. Выборкой (A where c) на отношении A с условием c называется отношение с тем же заголовком,
- 41. Пусть даны отношения A(A1,..An,X1,…Xk) и B(X1,…Xk,B1,..Bn), имеющие одинаковые атрибуты X1,…Xk (т.е. атрибуты с одинаковыми именами и
- 42. Пусть даны отношения A(X1,…Xn, Y1,…Yk) и B(Y1,…,Yk), причем атрибуты (Y1,…,Yk) - общие для A и B.
- 43. 4. Нормальные формы отношений 4.1. Этапы разработки БД При разработке базы данных обычно выделяется несколько уровней
- 44. Модель предметной области. Модель предметной области - это наши знания о предметной области. Знания могут быть
- 45. Логическая модель данных. На следующем, более низком уровне находится логическая модель данных предметной области. Логическая модель
- 46. Физическая модель данных. На еще более низком уровне находится физическая модель данных. Физическая модель данных описывает
- 47. Собственно база данных и приложения. И, наконец, как результат предыдущих этапов появляется собственно сама база данных.
- 48. Опишем некоторые принципы построения хороших логических моделей данных. Хороших в том смысле, что решения, принятые в
- 49. Все сведения были даны в виде отношения с заголовком: (Н_Ф,Фильм,Н_Р, Режиссер, Сайт_Реж,Н_А,Актер)
- 50. В качестве потенциального ключа отношения необходимо взять пару атрибутов {Н_Ф, Н_А}, так как каждый актер может
- 51. Отношение ФИЛЬМЫ_РЕЖИССЕРЫ_АКТЕРЫ находится в 1НФ, но при этом логическая модель данных не адекватна модели предметной области.
- 52. В отношении ФИЛЬМЫ_РЕЖИССЕРЫ_АКТЕРЫ можно привести следующие примеры функциональных зависимостей (на самом деле их больше): Зависимость атрибутов
- 53. Определение 2. Отношение R находится во второй нормальной форме (2НФ) т. и т.т., к. отношение R
- 54. ФИЛЬМЫ_РЕЖИССЕРЫ АКТЕРЫ ЗАНЯТОСТЬ
- 55. Анализ декомпозированных отношений Отношения, полученные в результате декомпозиции, находятся в 2НФ. Отношения Фильмы_Режиссеры, Актеры имеют простые
- 56. Определение 3. Атрибуты называются взаимно независимыми, если ни один из них не является функционально зависимым от
- 58. create table ACT (ACT_ID INTEGER not null primary key , ACTOR VARCHAR(30) character set win1251 not
- 59. Алгоритм нормализации (приведение к 3НФ) Шаг 1 (Приведение к 1НФ). На первом шаге задается одно или
- 60. Декомпозированные отношения: R1(K1,K2,B1,…,Bn) - остаток от исходного отношения. Ключ {K1,K2}. R2(K1,A1,…An) - атрибуты, вынесенные из исходного
- 61. Декомпозированные отношения: R1(K,A1,…,An) - остаток от исходного отношения. Ключ K. R2(A1,…An,B1,…,Bn) - атрибуты, вынесенные из исходного
- 62. Корректность процедуры нормализации - декомпозиция без потерь. При использовании алгоритма нормализации возникает вопрос – не будут
- 63. Сравнение нормализованных и ненормализованных моделей Таким образом, выбор степени нормализации отношений зависит от характера запросов, с
- 64. OLTP и OLAP-системы Можно выделить некоторые классы систем, для которых больше подходят сильно или слабо нормализованные
- 65. Другим типом приложений являются так называемые OLAP-приложения (On-Line Analitical Processing (OLAP) - оперативная аналитическая обработка данных).
- 66. Такие системы характеризуются следующими признаками: Добавление в систему новых данных происходит относительно редко крупными блоками (например,
- 67. Манипулирование реляционными данными Оператор SELECT является самым важным для пользователя и самым сложным оператором SQL. Он
- 68. Стадия 1. Выполнение одиночного оператора SELECT Если в операторе присутствуют ключевые слова UNION, EXCEPT и INTERSECT,
- 69. Шаг 2 (WHERE). Если в операторе SELECT присутствует раздел WHERE, то сканируется таблица A, полученная при
- 70. Шаг 3 (GROUP BY). Если в операторе SELECT присутствует раздел GROUP BY, то строки таблицы B,
- 71. Шаг 4 (HAVING). Если в операторе SELECT присутствует раздел HAVING, то группы, не удовлетворяющие условному выражению,
- 72. Шаг 5 (SELECT). Каждая группа, полученная на шаге 4, генерирует одну строку результата следующим образом. Вычисляются
- 73. Стадия 2. Выполнение операций UNION, EXCEPT, INTERSECT Если в операторе SELECT присутствовали ключевые слова UNION, EXCEPT
- 74. Как на самом деле выполняется оператор SELECT Концептуальный алгоритм вычисления результата оператора SELECT выполнять непосредственно чрезвычайно
- 75. Шаг 2 (Преобразование в каноническую форму). Запрос во внутреннем представлении подвергается преобразованию в некоторую каноническую форму.
- 76. Шаг 3 (Генерация планов выполнения запроса и выбор оптимального плана). На этом шаге оптимизатор генерирует множество
- 77. Транзакции и целостность баз данных Транзакция - это неделимая, с точки зрения воздействия на СУБД, последовательность
- 78. В многопользовательских системах, кроме того, транзакции служат для обеспечения изолированной работы отдельных пользователей - пользователям, одновременно
- 79. Ограничение целостности этой базы данных состоит в том, что поле FL_Kol не может заполняться произвольными значениями
- 80. Транзакции и целостность баз данных Опр. 1. Транзакция - это последовательность операторов манипулирования данными, выполняющаяся как
- 81. Транзакция обычно начинается автоматически с момента присоединения пользователя к СУБД и продолжается до тех пор, пока
- 82. Ограничения целостности Свойство (С) - согласованность транзакций определяется наличием понятия согласованности БД. Опр. 2. Ограничение целостности
- 83. Опр. 3. База данных находится в согласованном (целостном) состоянии, если выполнены (удовлетворены) все ограничения целостности, определенные
- 84. В некоторых случаях система может не выполнять проверку на нарушение ограничений, а сразу выполнять компенсирующие операции
- 85. Классификация ограничений целостности Ограничения целостности можно классифицировать несколькими способами: По способам реализации. По времени проверки. По
- 86. Опр. 4. Декларативная поддержка ограничений целостности заключается в определении ограничений средствами языка определения данных (DDL -
- 87. Опр. 5. Процедурная поддержка ограничений целостности заключается в использовании триггеров и хранимых процедур. Не все ограничения
- 88. Классификация ограничений целостности по времени проверки По времени проверки ограничения делятся на: Немедленно проверяемые ограничения. Ограничения
- 89. Классификация ограничений целостности по области действия По области действия ограничения делятся на: Ограничения домена Ограничения атрибута
- 90. Ограничения кортежа Опр. 10. Ограничения целостности кортежа представляют собой ограничения, накладываемые на допустимые значения отдельного кортежа
- 91. Ограничения базы данных Опр. 12. Ограничения целостности базы данных представляют ограничения, накладываемые на значения двух или
- 92. Транзакции и параллелизм Рассмотрим возможности параллельного выполнения транзакций несколькими пользователями, т.е. свойство (И) - изолированность транзакций.
- 93. Работа транзакций в смеси Транзакция рассматривается как последовательность элементарных атомарных операций. Атомарность отдельной элементарной операции состоит
- 94. Элементарные операции различных транзакций могут выполняться в произвольной очередности (конечно, внутри каждой транзакции последовательность элементарных операций
- 95. Проблемы параллельной работы транзакций Различают три основные проблемы параллелизма: Проблема потери результатов обновления Проблема незафиксированной зависимости
- 96. Проблема потери результатов обновления Две транзакции по очереди записывают некоторые данные в одну и ту же
- 97. Проблема незафиксированной зависимости (чтение "грязных" данных, неаккуратное считывание) Транзакция B изменяет данные в строке. После этого
- 98. Проблема несовместимого анализа Проблема несовместимого анализа включает несколько различных вариантов: Неповторяемое считывание. Фиктивные элементы (фантомы). Собственно
- 99. Неповторяемое считывание Транзакция A дважды читает одну и ту же строку. Между этими чтениями вклинивается транзакция
- 100. Фиктивные элементы (фантомы) Транзакция A дважды выполняет выборку строк с одним и тем же условием. Между
- 101. Собственно несовместимый анализ В смеси присутствуют две транзакции – длинная и короткая. Длинная выполняет некоторый анализ
- 102. Результат. Хотя транзакция B все сделала правильно - деньги переведены без потери, но в результате транзакция
- 103. В результате конкуренции за данными между транзакциями возникают конфликты доступа к данным. Различают следующие виды конфликтов:
- 104. Опр. 14. График запуска набора транзакций называется последовательным, если транзакции выполняются строго по очереди, т.е. элементарные
- 105. Задача обеспечения изолированной работы пользователей не сводится просто к нахождению правильных (сериальных) графиков запусков транзакций. Если
- 106. 1. Время ожидания начала транзакции - то время, которое проходит от момента, когда транзакция возникла до
- 107. Т.к. транзакции не мешают друг другу, если они обращаются к разным данным или выполняются в разное
- 108. Блокировки Основная идея блокировок заключается в том, что если для выполнения некоторой транзакции необходимо, чтобы некоторый
- 109. Правила взаимного доступа к заблокированным объектам можно представить в виде следующей матрицы совместимости блокировок. Если транзакция
- 110. Доступ к объектам базы данных на чтение и запись должен осуществляться в соответствии со следующим протоколом
- 111. Решение проблем параллелизма при помощи блокировок Проблема потери результатов обновления Две транзакции по очереди записывают некоторые
- 112. Проблема незафиксированной зависимости Тр-я B изменяет данные в строке. После этого тр-я A читает измененные данные
- 113. Проблема несовместимого анализа Неповторяемое считывание Транзакция A дважды читает одну и ту же строку. Между этими
- 114. Фиктивные элементы (фантомы) Транзакция A дважды выполняет выборку строк с одним и тем же условием. Между
- 115. Собственно несовместимый анализ Длинная транзакция выполняет некоторый анализ по всей таблице, например, подсчитывает общую сумму денег
- 116. Разрешение тупиковых ситуаций Итак, при использовании протокола доступа к данным с использованием блокировок часть проблем разрешилось
- 117. Cитуация тупика может возникать при наличии не менее двух транзакций, каждая из которых выполняет не менее
- 118. Первый подход характерен для так называемых настольных СУБД (FoxPro и т.п.). Этот метод является более простым
- 119. Второй способ характерен для промышленных СУБД (ORACLE, MS SQL Server и т.п.). В этом случае система
- 120. Преднамеренные блокировки Как видно из анализа поведения транзакций, при использовании протокола доступа к данным не решается
- 121. При использовании блокировок объектов разной величины возникает проблема обнаружения уже наложенных блокировок. Если транзакция A пытается
- 122. Преднамеренная блокировка с возможностью взаимного доступа (IS-блокировка - Intent Shared lock). Накладывается на некоторый составной объект
- 123. Преднамеренная блокировка как с возможностью взаимного доступа, так и без него (SIX-блокировка - Shared Intent eXclusive
- 124. Для сложных объектов (например, для таблицы базы данных) таблица совместимости блокировок имеет следующий вид:
- 125. Более точная формулировка протокола преднамеренных блокировок для доступа к данным выглядит следующим образом: При задании X-блокировки
- 126. Понятие относительной силы блокировок можно описать при помощи следующей диаграммы приоритета (сверху - более сильные блокировки,
- 127. Протокол преднамеренных блокировок не определяет однозначно, какие блокировки должны быть наложены на родительский объект при блокировании
- 129. Проблема фиктивных элементов (фантомов) решается, если транзакция A использует преднамеренную S-блокировку или более сильную. Т.к. транзакция
- 130. Предикатные блокировки Другим способом блокирования является блокировка не объектов базы данных, а условий, которым могут удовлетворять
- 131. Проблема фиктивных элементов (фантомов) легко решается с использованием предикатных блокировок, т.к. вторая транзакция не может вставить
- 132. Метод временных меток Альтернативный метод сериализации транзакций, хорошо работающий в условиях редких конфликтов транзакций и не
- 133. Перед выполнением операции над объектом r транзакция B выполняет следующие действия: Проверяет, не закончилась ли транзакция
- 134. В итоге система обеспечивает такую работу, при которой при возникновении конфликтов всегда откатывается более молодая транзакция
- 135. Механизм выделения версий данных Использование блокировок гарантирует сериальность планов выполнения смеси транзакций за счет общего замедления
- 136. Кратко суть метода состоит в следующем: Для каждой транзакции (или запроса) запоминается текущий системный номер (SCN
- 138. Теорема Есварана о сериализуемости Концепция способности к упорядочению была впервые предложена Есвараном. Им был предложен протокол
- 139. Протокол называется двухфазным, потому что он характеризуется двумя фазами: 1 фаза - нарастание блокировок. Во время
- 140. На следующем рисунке показан пример транзакции, не подчиняющийся протоколу двухфазной блокировки: На практике, как правило, вторая
- 141. Реализация изолированности транзакций средствами SQL Уровни изоляции Стандарт SQL не предусматривает понятие блокировок для реализации сериализуемости
- 142. Если все транзакции выполняются на уровне способности к упорядочению (принятом по умолчанию), то чередующееся выполнение любого
- 143. Различные уровни изоляции определяются по возможности или исключению этих особых случаев нарушения способности к упорядочению. Эти
- 144. Синтаксис операторов SQL, определяющих уровни изоляции Уровень изоляции транзакции задается следующим оператором: SET TRANSACTION {ISOLATION LEVEL
- 145. … (предыдущая транзакция выполняется со своим уровнем изоляции) COMMIT; SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; COMMIT;
- 146. Оператор SET TRANSACTION должен удовлетворять следующим условиям: Если предложение ISOLATION LEVEL отсутствует, то по умолчанию принимается
- 147. Транзакции и восстановление данных Главное требование долговечности данных транзакций состоит в том, что данные зафиксированных транзакций
- 148. Требование атомарности транзакций утверждает, что не законченные или откатившиеся транзакции не должны оставлять следов в базе
- 149. Виды восстановления данных Восстановление базы данных может производиться в следующих случаях: Индивидуальный откат транзакции. Откат индивидуальной
- 150. Во всех трех случаях основой восстановления является избыточность данных, обеспечиваемая журналом транзакций. Как и страницы базы
- 151. Максимальную скорость выполнения транзакций. Для этого необходимо выталкивать страницы как можно реже. В идеале, если оперативная
- 152. Основным принципом согласованной политики выталкивания буфера журнала и буферов страниц базы данных является то, что запись
- 153. Дополнительное условие на выталкивание буферов - каждая успешно завершившаяся транзакция должна быть реально зафиксирована во внешней
- 154. Оказывается, что минимальным требованием, гарантирующим возможность восстановления последнего согласованного состояния БД, является выталкивание при фиксации транзакции
- 155. Индивидуальный откат транзакции Для того чтобы можно было выполнить по журналу транзакций индивидуальный откат транзакции, все
- 156. Индивидуальный откат транзакции выполняется следующим образом: Просматривается список записей, сделанных данной транзакцией в журнале транзакций (от
- 157. Восстановление после мягкого сбоя Несмотря на протокол WAL, после мягкого сбоя не все физические страницы базы
- 158. Последняя контрольная точка принималась в момент tc. Мягкий сбой системы произошел в момент tf. Транзакции T1-T5
- 159. T3 - транзакция начата до принятия контрольной точки и не завершена в результате сбоя. Такую транзакцию
- 160. Восстановление системы после мягкого сбоя осуществляется как часть процедуры перезагрузки системы. При перезагрузке системы транзакции T2
- 161. Если в файле регистрации обнаруживается запись COMMIT об окончании транзакции, то эта транзакция добавляется в список
- 162. Окончательно, система просматривает журнал транзакций вперед, начиная с момента контрольной точки, и повторно выполняет все операции
- 163. Восстановление начинается с обратного копирования базы данных из архивной копии. Затем выполняется просмотр журнала транзакций для
- 164. Оптимизация запросов для SQL Server Планы запросов Когда сервер SQL Server выполняет запрос, сначала требуется определить
- 165. Следовательно, SQL Server использует сложные алгоритмы, чтобы найти план выполнения с разумной стоимостью, близкой к минимально
- 166. Статистика распределения данных: SQL Server хранит статистику о распределении данных. Если эта статистика отсутствует или устарела,
- 167. Индексы Индекс является структурой на диске, которая связана с таблицей или представлением и ускоряет получение строк
- 168. Некластеризованный Некластеризованные индексы имеют структуру, отдельную от строк данных. В некластеризованном индексе содержатся значения ключа некластеризованного
- 173. Основы проектирования индексов Использование индекса не всегда означает высокую производительность, а высокая производительность не всегда означает
- 174. Прежде всего следует понять характеристики самой базы данных. Например, будет ли это база данных оперативной обработки
- 175. Определите оптимальное расположение для хранения индекса. Некластеризованный индекс может храниться в той же файловой группе, что
- 176. Опытный администратор базы данных может спроектировать хороший набор индексов, но эта задача очень сложна, требует много
- 177. Индексирование маленьких таблиц может оказаться не лучшим выбором, так как поиск данных в индексе может потребовать
- 178. Соображения, связанные со столбцами При проектировании индекса, следует принимать во внимание следующие рекомендации, относящиеся к столбцам.
- 179. Организация таблиц и индексов Таблицы и индексы хранятся в виде коллекции страниц размером 8 КБ. Таблица
- 180. Страницы таблиц и индексов содержатся в одной или нескольких секциях. Секция — это пользовательская единица организации
- 181. Таблицы SQL Server используют один из двух методов организации страниц данных внутри секции. Кластеризованные таблицы —
- 182. Структуры кластеризованного индекса (КИ) В SQL Server индексы организованы в виде сбалансированных деревьев. Каждая страница в
- 183. В зависимости от типов данных, каждая структура кластеризованного индекса состоит из одной или более единиц распределения,
- 185. Структуры некластеризованных индексов Некластеризованные индексы имеют ту же структуру сбалансированного дерева, что и кластеризованные индексы; существуют
- 186. Если таблица является кучей, что означает, что она не содержит КИ, то указатель строки является указателем
- 187. Для некластеризованных индексов есть одна строка в таблице sys.partitions со значением столбца index_id >0 для каждой
- 189. Структуры кучи Кучей является таблица без кластеризованного индекса. Для каждой кучи существует одна строка в представлении
- 190. Просмотр таблиц или последовательное считывание в куче может выполняться просмотром IAM-страниц для нахождения экстентов, хранящих страницы
- 191. Проектирование инфраструктуры серверных решений Инфраструкту́ра (лат. infra — ниже, под и лат. structura — строение, расположение)
- 192. Ресурсы оборудования (CPU, память, диск...) Операционная система SQL сервер Виртуальное оборудование (CPU, память, диск Операционная система
- 193. Распределенная база данных Кластеризация серверов Классическая и 3-х уровневая архитектура клиент-сервер
- 194. При разработке инфраструктуры серверов баз данных в первую очередь необходимо проанализировать их нагрузку, которая определяется решаемыми
- 195. Внешняя память (хранилища данных) Необходимое дисковое пространство = дисковое пространство для файлов БД + дисковое пространство
- 196. Производительность работы диска Необходимо определить какая скорость I/O диска требуется для БД. Для определения количества выполняемых
- 197. Размещение и роль серверов БД Необходимо определить какие данные являются необходимыми для распределенных БД. Например, сервера
- 198. Определение требований к внешней памяти в будущем 1. Определить период оценки – на сколько лет (месяцев
- 199. a) Линейный рост Linear growth Если в течение всего периода оценки занятое дисковое пространство будет увеличиваться
- 200. c) Геометрическая прогрессия Geometric growth Если увеличение дискового пространства происходит на некоторую величину (increment), но эта
- 201. Центральный процессор Анализ текущей производительности При анализе текущей производительности CPU сервера БД рассматриваются следующие факторы: Affinity
- 202. Текущая загруженность CPU. Для определения производительности следует определить базовую загруженность CPU в текущем окружении. Вначале найти
- 203. Выбор типа процессора SQL Server поддерживает как 32-разрядные, так и 64-разрядные CPU, также поддерживается многоядерность CPU
- 204. Преимущества 64-разрядных процессоров перед 32-разрядными: - больший объем напрямую адресуемой памяти. Сервер, выполняющийся под Windows Server
- 205. Оперативная память Анализ текущей загруженности памяти Определение доступной и используемой физической памяти. Необходимо помнить, что ОП
- 206. Влияние типа процессора на использование памяти SQL Server’ом Тип CPU определяет как один экземпляр SQL Server
- 207. Стратегии архивирования, распределения, восстановления данных Требования к объему архивируемых данных: 1) бизнес требования. Объем и состав
- 208. При определении устройства для архивации необходимо определить временные требования к доступности данных. Например: 1) доступ через
- 209. Определение структуры архивных данных. Можно структурировать архивные данные, используя следующие типы таблиц. Разделенные (Partitioned). Разделенные таблицы
- 210. Денормализованные. Если архив всех связанных данных целиком не доступен, можно использовать денормализованные таблицы (ДТ) для сохранения
- 211. Сводные (summary). Возможно, что нет необходимости в детализированных данных за определенный период. В таких случаях можно
- 212. Стратегия консолидации серверов БД Организации используют все больше приложений для управления бизнес-процессами, предоставления новых услуг и
- 213. Преимущества Уменьшение стоимости Сокращение избыточности данных. Например, в организации в нескольких отделах есть сервера баз данных,
- 214. 2. Упрощение администрирования. Для администратора базы уменьшается время на выполнение таких задач, как мониторинг производительности, создание
- 215. Риски Кроме преимуществ от консолидации серверов, необходимо учитывать и следующие риски: Единая точка отказа. Когда много
- 216. Падение производительности сервера. После консолидации серверов, производительность консолидированного сервера может уменьшиться из-за увеличения нагрузки. Необходимо оценить
- 217. Процессор. Определение требований к процессору подобно определению требований к памяти. Требования к CPU могут не быть
- 218. Рассмотрим организацию, которая имеет несколько серверов баз данных в своих подразделениях. Базы размещенные на этих серверах
- 219. Примерный план консолидации Оценка текущей инфраструктуры: определение емкости и степени использования серверов; документация процессов поддержки и
- 220. Разработка плана миграции: оценка вариантов консолидации с точки зрения бизнеса; определение организационных функций и ответственности в
- 221. Внедрение новой производственной среды: установка приложений, служебных программ и инструментов в новой консолидированной среде; разработка и
- 222. Стратегии распределения данных Распределение данных включает в себя пересылку данных между серверами БД. Обычно организации нуждаются
- 223. Предпосылки к использованию распределения данных Распределение данных помогает поддерживать мобильность пользователей, уменьшает нагрузку при составлении отчетов
- 224. Упрощение управления хранилищами данных. Хранилища данных используются при консолидации и организации данных для отчетов и анализа.
- 225. Синхронизация географически удаленных данных. Организации часто имеют несколько филиалов, которые географически удалены. Централизовано хранящиеся данные должны
- 226. Инструменты для распределения данных SQL Server имеет четыре инструмента для распределения данных: репликация SSIS (SQL Server
- 227. Репликация Репликация SQL Server представляет собой набор технологий, с помощью которых данные или объекты баз данных
- 228. Publisher содержит публикацию/публикации. Публикация - это совокупность одной или более статей, которые посылаются серверу подписчику (subscriber)
- 229. Топология репликации определяет отношения между серверами и копиями данных, и проясняет логику, определяющую порядок обмена данными
- 230. Существуют три типа репликации: snapshot (репликация моментальных снимков), transactional (репликация транзакций) merge (репликация слиянием)
- 231. Репликация моментальных снимков распространяет данные точно в том виде, в котором они были представлены в определенный
- 232. Например, если торговая организация ведет прайс-лист на товары, и цены обновляются в одно и то же
- 233. Моментальные снимки могут создаваться и применяться или непосредственно после создания подписки, или в соответствии с расписанием,
- 234. Репликация транзакций обычно используется в серверных средах и пригодна в следующих случаях: Необходимо, чтобы добавочные изменения
- 235. Репликация транзакций реализуется агентом моментальных снимков, агентом чтения журналов и агентом распространителя SQL Server. Агент моментальных
- 236. Добавочные изменения, вносимые на издателе, поступают подписчикам согласно расписанию агента распространителя, который может выполняться непрерывно для
- 237. Репликация слиянием, как и репликация транзакций, как правило, начинается с моментального снимка объектов и данных базы
- 238. Каждому подписчику нужна индивидуальная секция данных. Поскольку возможно возникновение конфликтов, необходимы средства по распознаванию и разрешению
- 239. Репликация слиянием реализуется агентом моментальных снимков SQL Server и агентом слияния. Если публикация не отфильтрована или
- 240. Повышение производительности репликации Перед настройкой репликации рекомендуется ознакомиться с факторами, влияющими на производительность репликации: серверное и
- 241. Задержка: время распространения изменений данных между узлами в топологии репликации. Пропускная способность: величина репликационной активности (измеряемая
- 242. SSIS (SQL Server Integration Services) Службы Integration Services предлагают широкий выбор встроенных задач, контейнеров, преобразований и
- 243. Сценарии типичных случаев применения пакетов служб SSIS: Слияние данных из разнородных хранилищ данных. Данные обычно хранятся
- 244. SQL Server Service Broker Компонент SQL Server Service Broker обеспечивает поддержку компонента SQL Server Database Engine
- 245. Компоненты диалога. Структурные элементы времени исполнения диалога. В процессе диалога приложения обмениваются сообщениями. Объекты определения служб.
- 246. Работа компонента Service Broker основана на отправке и получении сообщений. Каждое сообщение является частью диалога. Каждый
- 247. Для защиты конфиденциальных сообщений и управления доступом к службам применяется механизм обеспечения безопасности на основе сертификатов.
- 248. Программы могут использовать компонент Service Broker в качестве почтовой службы, чтобы поддерживать асинхронные диалоги с другими
- 249. Стратегии резервирования и восстановления данных Различные компании приводят свою статистику причин потери данных, но, в целом,
- 250. Статистика причин потерь информации по данным различных фирм Databarracks HP Meetingready
- 251. Быстрое и эффективное восстановление базы данных и возможности работы с ней - вот самое главное, что
- 252. Создание, тестирование и обслуживание рабочего окружения базы данных, для которого любые потери информации и любое время
- 253. Резервная копия — это копия данных, используемая для восстановления данных. Резервные копии позволяют восстанавливать данные после
- 254. Влияние модели восстановления на резервное копирование и восстановление Операции резервного копирования и восстановления выполняются в контексте
- 255. Простая модель Описание Нет резервных копий журналов. Автоматически освобождает место на диске, занятое журналами, устраняя таким
- 256. Полная модель Описание Необходимы резервные копии журналов. Потеря результатов работы из-за повреждения файлов данных исключена. Возможно
- 257. Модель с неполным протоколированием Описание Необходимы резервные копии журналов. Дополнение к полной модели полного восстановления, позволяющее
- 258. Резервные копии Областью применения резервных копий данных (резервного копирования данных) может быть вся БД, часть БД
- 259. Обычно разностное резервное копирование, проводимое вскоре после создания основы для разностной копии, происходит быстрее и занимает
- 260. Резервное копирование при простой модели восстановления Простая модель восстановления не подходит для рабочих систем, где потеря
- 261. Образец стратегии резервного копирования На следующем рисунке показана схема самой простой стратегии резервного копирования и восстановления
- 262. Минимизация потерь данных При использовании простой модели восстановления вероятность потери данных постепенно увеличивается до тех пор,
- 263. Приведенный рисунок иллюстрирует стратегию резервного копирования, которая снижает риск потери данных благодаря тому, что резервное копирование
- 264. Резервное копирование в модели полного восстановления Полная модель восстановления использует резервные копии журнала для предотвращения потери
- 265. Образец стратегии резервного копирования На следующем рисунке показана наиболее простая стратегия резервного копирования при модели полного
- 266. Минимизация потерь данных После завершения создания первой полной резервной копии базы данных и начала создания регулярных
- 268. До создания первой резервной копии (см. рисунок) существовала вероятность потери данных (с момента t0 до t1).
- 269. Массовые операции и модель полного восстановления Благодаря протоколированию всех операций, в том числе массовых операций (SELECT
- 270. Резервное копирование с использованием модели восстановления с неполным протоколированием Модель восстановления с неполным протоколированием является особой
- 271. Работа модели восстановления с неполным протоколированием В модели восстановления с неполным протоколированием проводится минимальная регистрация массовых
- 272. Необходимо собрать результаты выполнения операций с неполным протоколированием. Включаемые экстенты данных могут значительно увеличить объем резервной
- 274. Выбор модели восстановления для базы данных Как правило, простая модель восстановления больше подходит для баз данных
- 275. Определение целей и требований к восстановлению Чтобы выбрать наиболее подходящую модель восстановления БД, следует рассмотреть цели
- 276. Шаблоны использования данных Для каждой БД необходимо рассмотреть следующие вопросы: Как часто изменяются данные в этой
- 277. Простую модель восстановления рекомендуется использовать при следующих условиях: В восстановлении до момента сбоя необходимости нет. Если
- 278. Модель восстановления с неполным протоколированием предназначена исключительно как дополнение к модели полного восстановления. Рекомендуется применять ее
- 279. Стратегия резервирования и восстановления состоит из части, относящейся к резервированию, и части, относящейся к восстановлению. Часть,
- 280. До тех пор пока не были успешно восстановлены все резервные копии во всех сочетаниях, вовлеченных в
- 281. После того как выбрана модель восстановления, соответствующая бизнес-требованиям определенной базы данных, необходимо спланировать и выполнить соответствующую
- 282. - В рамках модели полного восстановления следует запланировать частное резервное копирование журналов. Планирование разностного резервного копирования
- 283. Оценка размера полной резервной копии БД Перед тем как выбрать стратегию резервного копирования и восстановления, необходимо
- 284. Тестирование резервных копий Можно сказать, что стратегия восстановления отсутствует, пока резервные копии не протестированы. Необходимо протестировать
- 285. Вопросы безопасности при восстановлении и резервировании Управление резервными копиями журналов Если при использовании модели полного восстановления
- 286. Физическая защита Оптимальным способом защиты лент резервных копий является хранение их в безопасном месте или вне
- 287. Обеспечение безопасности СУБД Обеспечение безопасности ПО должно строится на четырех основных принципах. Безопасная архитектура (secure by
- 288. Безопасность платформы и сети Платформа для SQL Server включает в себя физическое оборудование и сетевые компьютеры,
- 289. Безопасность операционной системы В состав пакетов обновления и отдельных обновлений для операционной системы входят важные дополнения,
- 290. Безопасность участников и объектов базы данных Участники — это отдельные пользователи, группы и процессы, которым предоставлен
- 291. Предотвращение угроз и снижение уязвимости Несмотря на то, что современные СУБД оснащены разнообразными механизмами защиты, в
- 292. На следующей диаграмме показано распределение количества сообщений об ошибках, связанных с безопасностью, которые ежемесячно поступают в
- 293. Каждый компонент может представлять риск, но не все угрозы равнозначны. Для некоторых требуется изменить методы применения,
- 294. Угрозы и уязвимости процесса
- 295. Угрозы и уязвимости платформы
- 296. Угрозы и уязвимости проверки подлинности Программные угрозы и уязвимости
- 297. Угрозы и уязвимости доступа к данным
- 298. Атака SQL Injection Атака типа SQL Injection — это атака, при которой производится вставка вредоносного кода
- 299. Атака осуществляется посредством преждевременного завершения текстовой строки и присоединения к ней новой команды. Поскольку к вставленной
- 300. Предположим, однако, что пользователь вводит следующее: Redmond'; drop table OrdersTable-- В этом случае запрос, построенный сценарием,
- 301. Проверка достоверности всех вводимых данных Всегда проверяйте все данные, вводимые пользователем, выполняя проверку типа, длины, формата
- 302. 3. Проверяйте содержимое строковых переменных и допускайте только ожидаемые значения. Отклоняйте записи, содержащие двоичные данные, управляющие
- 303. 8. Внедрите многоэтапную проверку достоверности. Меры предосторожности, предпринятые против случайных пользователей-злоумышленников, могут оказаться неэффективными против организаторов
- 304. По возможности отклоняйте вводимые данные, содержащие следующие символы:
- 305. Использование SQL-параметров безопасных типов Коллекция Parameters в SQL Server обеспечивает проверку длины и контроль соответствия типов.
- 306. Просмотр кода на предмет возможности атаки SQL Injection Необходимо просматривать все фрагменты кода, вызывающие инструкции EXECUTE,
- 307. Атака Injection, проводимая с помощью усечения данных Любое присваиваемое переменной динамическое значение Transact-SQL усекается, если оно
- 308. Передавая 154 символа в буфер, рассчитанный на 128 символов, злоумышленник может установить новый пароль для sa,
- 309. Рекомендации по безопасности при установке SQL Server Повышение физической безопасности Физическая и логическая изоляции составляют основу
- 310. Использование брандмауэров Брандмауэры играют важную роль в обеспечении безопасности установки SQL Server. Брандмауэры будут более эффективны,
- 311. Изолирование служб Изолирование служб уменьшает риск того, что подвергнувшаяся опасности служба подвергнет опасности другие службы. Чтобы
- 312. Отключение протоколов NetBIOS и SMB На внешних серверах сети должны быть отключены все ненужные протоколы, включая
- 313. Безопасное развертывание SQL Server Выбор режима проверки подлинности Настройка контактной зоны Соответствие стандартам безопасности Выбор режима
- 314. Настройка режима проверки подлинности Если во время процесса установки был выбран смешанный режим проверки подлинности, необходимо
- 315. Соединение с использованием проверки подлинности Windows Когда пользователь подключается с помощью пользовательской учетной записи Windows, SQL
- 316. Соединение с использованием проверки подлинности SQL Server Если используется проверка подлинности SQL Server, в SQL Server
- 317. Недостатки проверки подлинности SQL Server Если пользователь является пользователем домена Windows, имеющим имя входа и пароль
- 318. Преимущества проверки подлинности SQL Server Позволяет SQL Server поддерживать более старые приложения и приложения, поставляемые сторонними
- 319. Настройка контактной зоны В конфигурации по умолчанию новых установок SQL Server многие компоненты не включены. SQL
- 320. Соответствие стандартам безопасности Сертификация по стандарту Common Criteria Во время выпуска SQL Server 2008 официально соответствовал
- 321. Соответствие стандарту FIPS 140-2 SQL Server 2005 с пакетом обновления 1 (SP1) может быть настроен для
- 322. Безопасная работа с SQL Server Политика паролей Разрешения и защита объектов базы Шифрование SQL Server Сертификаты
- 323. Политика паролей При работе в Windows Server 2003 или более поздних версий SQL Server может использовать
- 324. Иерархия разрешений Компонент Database Engine в MS SQL Server управляет иерархической коллекцией сущностей, защита которых производится
- 326. Работа с разрешениями Выполнение различных действий с разрешениями осуществляется при помощи обычных запросов Transact-SQL: GRANT, DENY
- 327. Цепочки владения Если несколько объектов БД последовательно обращаются друг к другу, то такая последовательность известна как
- 328. Пример цепочки владения В следующей иллюстрации владелец представления July2003 — Мэри. Она предоставила Алексу разрешения для
- 330. Алекс выполняет инструкцию SELECT * в представлении July2003. SQL Server проверяет разрешения в представлении и подтверждает,
- 331. Представление InvoicesXZ требует данные из представления AcctAgeXZ. SQL Server проверяет владение представления AcctAgeXZ. Владелец этого представления
- 332. Межбазовые цепочки владения SQL Server можно настроить так, чтобы разрешить цепочку владения между конкретными базами данных
- 333. На практике такое предположение не всегда верно. Производственные базы данных гораздо сложнее, чем база данных-образец, и
- 334. Шифрование SQL Server Шифрование представляет собой способ скрытия данных с помощью ключа или пароля. Это делает
- 335. SQL Server шифрует данные, используя иерархическую структуру средств шифрования и управления ключами. На каждом уровне данные
- 337. Следует учитывать следующие основные понятия. Для лучшей производительности данные следует шифровать с помощью симметричных ключей, а
- 338. Механизмы шифрования SQL Server поддерживает следующие механизмы шифрования: Transact-SQL функции асимметричные ключи; симметричные ключи. сертификаты; Прозрачное
- 339. Симметричные ключи Симметричный ключ — это ключ, используемый и для шифрования, и для дешифрования данных. Данные
- 340. Сертификаты Сертификат открытого ключа, или просто сертификат, представляет собой подписанную цифровой подписью инструкцию, которая связывает значение
- 341. Эта подпись подтверждает действительность связи между открытым ключом и идентификационными данными субъекта Главное преимущество сертификатов в
- 342. Поставщик может отозвать сертификат до истечения срока его действия. При этом отменяется связь открытого ключа с
- 343. Основные сведения о прозрачном шифровании данных (TDE) Чтобы защитить базу данных, можно принять ряд мер предосторожности,
- 344. Функция прозрачного шифрования данных (TDE) выполняет в реальном времени шифрование и дешифрование файлов данных и журналов
- 345. При включении функции прозрачного шифрования данных необходимо немедленно создать резервную копию сертификата и закрытого ключа, связанного
- 347. Файлы резервных копий баз данных, в которых включено TDE, также шифруются с помощью ключа шифрования базы
- 348. Все новые полнотекстовые индексы будут шифроваться после включения шифрования базы данных. Ранее созданные полнотекстовые индексы будут
- 349. Кластеризация Кластером называется группа компьютеров, которые обеспечивают друг для друга взаимное резервное копирование на случай отказов.
- 350. Системы, исполняющие MSCS, обеспечивают высокую готовность и имеют много других достоинств. Некоторые из достоинств применения MSCS
- 351. Управляемость. При помощи программного обеспечения Cluster Administrator можно управлять всем кластером как единой системой. Вы можете
- 352. Основные понятия MSCS сокращает длительность простоев, осуществляя переходы по отказу между отдельными компьютерами, применяя при этом
- 353. Рис.2 Кластер Windows
- 354. Как только система будет сконфигурирована как сервер кластера, она будет преобразована из обычного сервера в так
- 355. Виртуальный сервер существует как элемент сети и ему сопоставлен IP-адрес, применяемый в протоколе TCP/IP. Этот IP-адрес
- 356. Компоненты кластера Для создания кластера нужны некоторые компоненты: программное обеспечение для управления кластером, взаимосвязь между серверами
- 357. Менеджер узлов (Node Manager). Поддерживает членство в кластере и передает "пульс" (heartbeats) членам кластера (узлам). (Этот
- 358. Менеджер ресурсов / Менеджер переходов по отказу (Resource Manager / Failover Manager). Запускает и останавливает службу
- 359. Монитор ресурсов (Resource Monitor). Отслеживает состояние различных ресурсов кластера и сообщает статистические данные. Эта информация может
- 360. Взаимосвязь между серверами Взаимосвязь между серверами – это просто соединение между узлами кластера. Так как для
- 361. Разделяемая дисковая система Другая ключевая компонента, необходимая для создания кластера, – разделяемая дисковая система. Если к
- 362. Для поддержки кластеризации были разработаны также более современные дисковые технологии, такие как Fibre Channel и некоторые
- 363. Если каждый контроллер имеет кэш и кэш размещается на отказавшем компьютере, то данные из кэша могут
- 364. В других решениях этой проблемы с разделяемыми дисками предусматривается расслоение (чередование) RAID и кэширование внутри самой
- 365. Последние дисковые подсистемы SCSI и Fibre Channel допускают размещение RAID- контроллеров в корпусах дисковых систем, а
- 366. Так как кэш размещен на контроллере, который не находится в совместном использовании, все данные, которые были
- 367. Чтобы пользоваться кэшем записи контроллера в кластерной конфигурации, нужно пользоваться внешней RAID-системой, в которой кэш находится
- 368. Внешние RAID-системы иногда называют "RAID в шкафу" или "RAID в ящике", потому что расслоение RAID производится
- 369. Обеспечивается избыточность RAID. Многие внешние решения RAID разрешают одному контроллеру памяти осуществлять коммуникацию и с основным,
- 370. Категории приложений, работающих с кластерами Приложения, которые работают на системах с MSCS можно разделить на следующие
- 371. Приложения, не рассчитанные на кластеризацию. Приложения этой категории никак не взаимодействуют с MSCS. Хотя при обычных
- 372. Режимы MSCS Поддержку кластеров для SQL Server и MSCS можно запускать в различных режимах. В активно-пассивном
- 373. Активно-пассивные кластеры В активно-пассивных кластерах для работы приложений SQL Server применяется первичный узел (primary node), а
- 374. В этой конфигурации один из серверов практически не используется (может месяцами стоять без дела). Фактически, во
- 375. Активно-активные кластеры В активно-активных кластерах выполнять приложения могут оба сервера, причем каждый сервер служит вторичным сервером
- 376. Каждый из этих двух серверов работает сразу и как первичный узел для некоторых приложений, и как
- 377. Примеры кластеризованных систем В этом разделе мы рассмотрим четыре примера кластеризованных систем, применяющих MSCS. Эти примеры
- 378. Каждый из узлов этого кластера представляет для сети свой собственный набор ресурсов (в форме виртуального сервера)
- 379. Пример 2 – система с "горячим резервированием" с максимальной готовностью Такие системы обеспечивают максимальную готовность и
- 380. Данная конфигурация лучше всего подходит для наиболее критически важных приложений. Если ваша фирма зависит от продаж
- 381. Пример 3 – кластеризация части сервера Конфигурация с кластеризацией части сервера является примером того, насколько гибкой
- 383. Скачать презентацию