Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Базы данных проектирование и реализация. Учебное пособие
.pdf
7. ФИЗИЧЕСКОЕ ПРОЕКТИРОВАНИЕ
БАЗЫ ДАННЫХ
Представление информации на логическом уровне позволяет перейти
к следующему этапу – физическому проектированию базы данных.
Между логическим и физическим проектированием существует постоянная обратная связь, так как решения, принимаемые на этапе физического проектирования с целью повышения производительности системы, способны повлиять на структуру логической модели данных.
Основной целью физического проектирования базы данных является описание способа физической реализации логического проекта
базы данных в конкретной СУБД. В случае реляционной модели данных
под этим подразумевается следующее:
создание основных объектов базы данных (таблицы, представле-
ния и ограничения) использованием команд ЯОД или соответствующего интерфейса;
определение и реализация методов доступа к данным, обеспечи-
вающих требуемую производительность СУБД (индексы
секционирование
1
Индекс – объект базы данных, создаваемый с целью повышения произво-
дительности SQL-запросов. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы,
а ускорение работы с использованием индексов достигается за счет того, что
структура индекса оптимизирована для поиска.
2
Кластер – объект базы данных, используемый для физически совмест-
ного хранения одной или нескольких таблиц, которые часто соединяются вместе в SQL-запросах. Кластеры хранят взаимосвязанные строки разных таблиц
вместе в одних и тех же блоках данных, что позволяет сократить количество
операций дискового ввода-вывода и улучшить время доступа для соединений
таблиц,
дельные части с раздельными параметрами физического хранения с целью повышения производительности и доступности.
входящих в кластер.
3
Секционирование – разделение хранимых объектов баз данных на от-
3
);
1
, кластеры2,
81

разработка средств защиты данных (роли, методы авторизации
и аутентификации);
анализ необходимости снижения уровня требований нормализа-
ции данных в логической модели, с целью повышения общей производительности системы.
7.1. ИНДЕКСИРОВАНИЕ В БАЗАХ ДАННЫХ
Индекс
– объект базы данных, создаваемый для логического упорядочивания хранимых записей и повышения скорости извлечения данных и сокращения времени выполнения запросов за счет:
быстрого поиска строк, соответствующих выражению WHERE;
быстрого извлечения строк из других таблиц при выполнении
объединений JOIN;
быстрого определения величины MAX() или MIN() для заданного
индексированного столбца;
быстрой сортировки или группирования.
В системах без индексов весь поиск данных выполняется путем сканирования таблиц (последовательного просмотра). При сканировании
таблиц прочитываются все записи и сравниваются с запрашиваемыми
данными. Индекс позволяет избежать проведения последовательного
просмотра таблиц и гарантирует отсутствие повторений значений в индексированных полях записей.
Индекс содержит записи, состоящие из
значений одного или нескольких столбцов и адреса (адресов) логических записей, содержащих
эти значения. Значения в индексе упорядочены по ключу индексирования, который может быть построен на основе одного или нескольких
полей или вычисляемых значений.
Типы и виды индексов
Чтобы реализовать все преимущества индексов для ускорения до-
ступа к данным, применяется несколько типов индексов.
Индексы, обеспечивающие порядок сортировки:
по возрастанию;
по убыванию.
Индексы, различающиеся источником данных:
по представлению. Индексированное представление – это любое
представление, для которого определен кластерный индекс. При создании
82

индекса по представлению результирующий набор представления организуется и сохраняется в базе данных так же, как таблица с кластеризованным индексом. Изменения данных в таблицах, участвующих в представлении, будут автоматически отражаться в представлении и в индексе. В дополнение к кластерному индексу можно создавать другие некластеризованные индексы в
представлении, чтобы повысить произво-
дительность других запросов.
Обычно следует индексировать представления, данные которых относительно статичны, содержат большое количество строк и которые
используются большим количеством запросов;
по выражениям. Индекс можно создать не только по полям таб-
лиц, но и по выражению, которое может включать функции, поля и скаляры. Это позволяет быстро находить данные в таблице по результатам
вычислений.
Индексы, различающиеся по воздействию на источник данных:
кластерный индекс. При создании кластерного индекса записи
физически перестраиваются (сортируются) в соответствии со структурой индекса. Существует только один кластеризованный индекс для
каждой таблицы, так как строки данных могут храниться в единственном порядке, но каждая таблица может иметь несколько различных некластерных индексов, каждый из которых определяет свой собственный
порядок следования
записей. Кластерные индексы эффективны при выборке диапазона значений. После того как запись с первым значением
найдена с использованием кластерного индекса, записи с последующими значениями индекса гарантированно будут физически смежными,
что обеспечит более быстрый доступ;
некластерный индекс. В отличие от кластерного такой индекс не
перестраивает физическую структуру таблицы, а лишь организует ссылки
на соответствующие записи.
7.2. КЛАСТЕРИЗАЦИЯ
Кластер – специализированный объект базы данных, используемый
для физически совместного хранения одной или нескольких таблиц, которые часто соединяются вместе в SQL-запросах. Кластеры хранят взаимосвязанные строки разных таблиц вместе в одних и тех же блоках
данных, что позволяет сократить количество операций дискового вводавывода и уменьшить время доступа для соединений таблиц
83
, входящих

в кластер. После создания кластера в нем можно создавать таблицы. Перед тем как добавлять строки в кластеризованные таблицы, необходимо
создать индекс кластера. Кластеры не влияют на проектирование модели данных приложений, их существование прозрачно для пользователей и приложений. Данные, хранящиеся в кластере, обрабатываются
с помощью тех же инструкций
SQL, что и данные, хранящиеся в некластеризованных таблицах. Кластеры целесообразно использовать для
хранения одной или нескольких таблиц, которые часто используются
в запросах и для которых запросы часто выполняют соединение данных
из нескольких связанных таблиц либо извлекают связанные данные из
одной таблицы.
Использование кластеров замедляет операции добавления, обновления, удаления строк таблицы по сравнению с хранением таблицы вне
кластера со своим собственным индексом. Кроме того, кластеры используют дополнительный объем дисковой памяти, поскольку каждая
отдельная таблица в кластере занимает больше блоков, чем если бы она
хранилась вне кластера. Поэтому перед созданием кластера следует
убедиться, что планируемый выигрыш в производительности запросов превысит дополнительную затрату ресурсов на сопровождение кластера.
7.3. СЕКЦИОНИРОВАНИЕ
Секционированисе
– разделение хранимых объектов баз данных на
отдельные части с раздельными параметрами физического хранения
с целью повышения управляемости, производительности и доступности
в больших базах данных.
Секционирование реализовано во многих реляционных СУБД, таких как IBM DB2, Informix, Oracle Database, Microsoft SQL Server,
PostgreSQL, MySQL, однако методы разбиения могут различаться в разных СУБД.
Среди используемых критериев секционирования можно выделить:
секционирование по диапазонам значений;
хеш-секционирование;
секционирование по списку значений;
секционирование по интервалу;
секционирование по ключам.
Секционирование может принести следующую пользу.
84

В определенных ситуациях оно значительно увеличивает быстро-
1.
действие, особенно когда большой процент часто запрашиваемых строк
таблицы относится к одной или лишь нескольким секциям. Секционирование может сыграть роль ведущих столбцов в индексах, что позволит уменьшить размер индекса и увеличит вероятность нахождения
наиболее востребованных частей индексов в памяти.
2.
Когда в выборке или изменении данных задействована большая
часть одной секции, последовательное сканирование этой секции может
выполняться гораздо быстрее, чем случайный доступ по индексу к данным, разбросанным по всей таблице.
3.
Редко используемые данные можно перенести на более дешевые
и медленные носители.
85

8. БЕЗОПАСНОСТЬ БАЗ ДАННЫХ
В современном мире информация становится стратегическим ресурсом, одним из основных богатств экономически развитого государства,
поэтому, рассматривая накопленные данные как информационный ресурс, оказывающий влияние на общество, бизнес и личность [31], необходимо понимать, что данные нуждаются в защите, поскольку они, как
и другие ресурсы (материальные, финансовые), подвержены уничтожению (удалению), хищению
ровое сообщество, страны и бизнес-организации принимают меры по
защите своих информационных ресурсов (данных). Пренебрежение мерами защиты может приводить к угрозам:
для страны, если сведения о государственных и военных тайнах
станут известны потенциальному противнику;
для бизнеса, если коммерческие тайны будут доступны конкурен-
там;
для личности, если персональные данные попадут в руки крими-
нальных структур.
Здесь речь идет об утрате конфиденциальной информации. Однако
искажение и безвозвратная потеря данных также создают угрозу бизнесу, поскольку доступ к данным есть необходимое условие для выполнения бизнес-процессов практически во всех сферах деятельности, и
при отсутствии мер по
возможны не менее серьезные последствия:
утраченная деловая репутация;
необратимые финансовые потери и долгий реабилитационный пе-
риод;
в самом тяжелом случае невозможность продолжить деятель-
ность.
и порче (искажению). Исходя из этого, ми-
защите и восстановлению утраченных данных
86

По своей природе большие базы данных никогда не будут свободны
от злоупотреблений в результате нарушений условий безопасности:
если большая система предназначена для облегчения доступа, она становится небезопасной; если сделана водонепроницаемой, становится
невозможно ее использовать («if you design a large system for ease of
access it becomes insecure, while if you make it watertight it becomes
impossible to use») [32]. Это иногда называют «правилом Андерсона».
8.1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ
Информационная безопасность – все аспекты, связанные с определением, достижением и поддержанием конфиденциальности, целостности, доступности, подотчетности, аутентичности и достоверности информации или средств ее обработки [11], т. е. деятельность по предотвращению несанкционированного доступа, использования, раскрытия,
искажения, изменения, исследования, записи или уничтожения информации, с учетом целесообразности применения и без какого-либо
ущерба производительности организации. Успешное решение этой задачи в значительной мере достигается под влиянием широкого спектра
законодательных и нормативных актов, которые регулируют способы
доступа, обработки, хранения и передачи данных. Однако, во-первых,
это задача непростая, во-вторых, это обходится недешево [33].
Защита информации
– деятельность, направленная на предотвращение утечки защищаемой информации, несанкционированных и непреднамеренных воздействий на защищаемую информацию [34]. В этом стандарте применены следующие термины с соответствующими определениями.
Информационная безопасность –
защита конфиденциальности,
целостности и доступности информации.
Конфиденциальность – обеспечение доступа к информации только
авторизованным пользователям.
Целостность – обеспечение достоверности и полноты информации
и методов ее обработки.
Доступность – обеспечение доступа к информации и связанным
с ней активам авторизованных пользователей по мере необходимости.
Безопасность информации [данных] – состояние защищенности
информации [данных], при котором обеспечены ее [их] конфиденциальность, доступность и целостность [34]. Безопасность информации
87

определяется отсутствием недопустимого риска, связанного с утечкой
информации по техническим каналам, несанкционированными и непреднамеренными воздействиями на данные и (или) на другие ресурсы
автоматизированной информационной системы, используемые в автоматизированной системе.
Защита данных – организационные, программные и технические
методы и средства, направленные на удовлетворение ограничений,
установленных для типов данных или экземпляров типов данных в системе обработки данных [13].
Организационные меры включают документированные процедуры
и правила работы с разными видами информации, IТ-сервисами, средствами защиты и т. д.
Технические меры заключаются в использовании аппаратных
и программных средств контроля доступа, мониторинга утечек, антивирусной защиты, межсетевого экранирования, защиты от электромагнитных
излучений и прочего.
Безопасность персональных данных – состояние защищенности
персональных данных, характеризуемое способностью пользователей,
технических средств и информационных технологий обеспечить конфиденциальность, целостность и доступность персональных данных при
их обработке в информационных системах.
Защита персональных данных – комплекс мероприятий техниче-
ского, организационного и организационно-технического характера,
направленных на защиту сведений, относящихся к определенному или
определяемому на основании такой информации физическому лицу
(субъекту персональных данных).
Конфиденциальность – понятие, которое употребляется по отно-
шению к данным. Это статус данных, и согласованный между лицом
или организацией их предоставляющей, и организацией, их получающей; он определяет требуемую степень защиты. Конфиденциальность
данных относится не только к данным отдельных лиц, но и к любым
данным, составляющим чью-либо собственность, или к секретным
данным, обращение к которым требует конфиденциальности. Действующий Федеральный закон от 27.07.2006 № 149-ФЗ (в ред. от 03.04.2020)
«Об информации, информационных технологиях и о защите информации» описывает понятие «конфиденциальность»: «Конфиденциальность информации – обязательное для выполнения лицом, получившим доступ к определённой информации, требование не передавать
88

такую информацию третьим лицам без согласия ее обладателя». Согласно этому же закону «информация – сведения (сообщения, данные)
независимо от формы их представления».
В Указе Президента Российской Федерации «Об утверждении перечня сведений конфиденциального характера» (от 6 марта 1997 г.
№ 188) [35] к сведениям конфиденциального характера относятся следующее.
1.
Сведения о фактах, событиях и обстоятельствах частной жизни
гражданина, позволяющие идентифицировать его личность (персональные данные), за исключением сведений, подлежащих распространению
в средствах массовой информации в установленных федеральными законами случаях.
2.
Сведения, составляющие тайну следствия и судопроизводства,
а также сведения о защищаемых лицах и мерах государственной защиты.
3.
Служебные сведения, доступ к которым ограничен органами го-
сударственной власти в соответствии с Гражданским кодексом Российской Федерации и федеральными законами (служебная тайна).
4.
Сведения, связанные с профессиональной деятельностью, доступ
к которым ограничен в соответствии с Конституцией Российской Федерации и федеральными законами (врачебная, нотариальная, адвокатская
тайна, тайна переписки, телефонных переговоров, почтовых отправлений, телеграфных или иных сообщений и т. д.).
5.
Сведения, связанные с коммерческой деятельностью, доступ к ко-
торым ограничен в соответствии с Гражданским кодексом Российской
Федерации и федеральными законами (коммерческая тайна).
6.
Сведения о сущности изобретения, полезной модели или про-
мышленного образца до официальной публикации информации о них.
Целостность базы данных – соответствие имеющейся в базе дан-
ных информации ее внутренней логике, структуре и всем явно заданным
правилам. Каждое правило, налагающее некоторое ограничение на возможное состояние базы данных, называется ограничением целостности.
Эти ограничения определяются в большинстве случаев особенностями
предметной области, хотя могут отражать и чисто информационные
(лингвистические) характеристики.
Правило целостности сущностей
: атрибуты, входящие в состав не-
которого потенциального ключа, не могут принимать null-значений.
89

Правило целостности внешних ключей – внешние ключи не должны
быть несогласованными, т. е. для каждого значения внешнего ключа
должно существовать соответствующее значение первичного ключа
в связанном отношении.
Ссылочная целостность – это ограничение базы данных, гарантирующее, что ссылки между данными являются действительно правомерными и неповрежденными. Существуют две основные стратегии поддержания
ссылочной целостности.
RESTRICT (ОГРАНИЧИТЬ) – не разрешать выполнение опера-
ции, приводящей к нарушению ссылочной целостности.
CASCADE (КАСКАДНОЕ ИЗМЕНЕНИЕ) – разрешить выполне-
ние требуемой операции, но внести при этом необходимые изменения
в связанные таблицы так, чтобы не допустить нарушения ссылочной целостности и сохранить все имеющиеся связи. Изменение начинается
в родительской таблице и каскадно выполняется в дочерних таблицах.
В реализации этой стратегии имеется одна тонкость, заключающаяся
в том, что дочерние
таблицы сами могут быть родительскими для некоторых третьих таблиц. При этом может дополнительно потребоваться
выполнение какой-либо стратегии и для этой связи и т. д. Если при этом
какая-либо из каскадных операций (любого уровня) не может быть выполнена, то необходимо отказаться от первоначальной операции и вернуть базу
данных в исходное состояние. Это сложная стратегия, но она
не нарушает связей между родительскими и дочерними таблицами.
Понятие согласованности или целостности данных является ключевым понятием баз данных [36] и очевидно, что ограничения должны
быть формально объявлены для СУБД, после чего СУБД должна предписывать их выполнение. Объявление ограничений сводится просто
к использованию соответствующих средств языка базы данных, а соблюдение ограничений осуществляется с помощью контроля со стороны СУБД над операциями обновления, которые могут нарушить эти
ограничения, и запрещения тех операций, которые их действительно
нарушают. При первоначальном объявлении ограничения система
должна проверить, удовлетворяет ли ему в настоящий момент база данных
. Если это условие не соблюдается, ограничение должно быть отвергнуто; в противном случае оно принимается (т. е. записывается в словарь базы данных) и начиная с этого момента соблюдается [37].
Доступность информации – состояние информации (ресурсов ав-
томатизированной информационной системы), при котором субъекты,
90
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
