Конспект Лекций БД. Конспект лекций_БД. Конспект лекций по курсу Информационное обеспечение, базы данных
![]()
|
Идентификация пользователей. Доступ к БД обычно требует идентификации пользователя и подтверждения его полномочий. При идентификации пользователя первый уровень защиты БД проверяет, что пользователь, обращающейся к системе, зарегистрирован. Его личность может быть установлена при помощи: того, что он знает, например, номер подключения, пароль; того, чем он обладает, например, пластиковая идентификационная карточка; физической идентификации (голос, отпечатки пальцев). Самый распространенный и дешевый способ защиты задание паролей, но он может быть подобран, если взломщикам станет известна длина пароля и алфавит, из которого он состоит. Идеальная схема паролей ограничивает доступ к системе при помощи паролей, которые трудно угадать, но при этом легко запомнить. Для уязвимых систем следует создавать более сложную схему защиты. Часто используется программа, задающая пользователю серию вопросов, личного характера, которые вводятся в систему при ее создании. (Ваш любимый цвет, запах, дань недели и т.д.). Когда пользователь обращается к системе и вводит свой идентификационный номер, компьютер задает вопросы, случайным образом выбранные из списка. Выбор вопросов каждый раз изменяется, чтобы сохранить ответы в тайне. Другой способ защиты от несанкционированного доступа состоит в использовании определенного алгоритма. Компьютер предлагает пользователю случайно выбранное число и запрашивает ответ. Пользователь выполняет на числом заранее определенные операции и вводит результат. Компьютер сравнивает полученное значение с тем, что он вычислил. Если они совпадают, то доступ разрешается. При такой организации защиты, все что может узнать “заинтересованный” пользователь, подключившись к коммуникационной линии это конечный результат. Достаточно сложно догадаться об алгоритме обработки исходного числа по такой информации. Контроль доступа повышается, если все отклоненные попытки доступа записываются в протокол и вызывают задержку, т.е. увеличивают время, которое необходимо затратить на несанкционированное проникновение. Система должна автоматически отключать пользователей, которые не могут ввести правильно пароль за установленное время или за установленное число попыток. Важный аспект защиты БД состоит в определении того, достаточно ли только идентифицировать пользователя или ее следует сочетать с какой-либо идентификацией терминала. Увеличилось число случаев вторжения в систему “хакеров”, когда идентификация пользователя производилась кем-то, подключающимся со стороны, а не с одного из системных терминалов. Механизмы переключения с сети очень часто дают неправильное (из-за неправильной адресации) или не санкционированное (из-за взлома) соединение. Такие ошибки, из-за помех в коммуникационной линии, могут оставаться незамеченными, что значительно снизит надежность БД и может нарушить защиту. При использовании телекоммуникационного оборудования желательно использовать автоматическую идентификацию терминалов. Нежелательное вторжение со стороны можно предотвратить при помощи процедур прямого/обратного набора. Пользователь обращающийся к системе, прежде чем получить доступ к БД, должен представить необходимую идентификационную информацию. После ее получения система отключается от линии и сравнивает полученную информацию. Если сигнал пришел из одного из легитимных терминалов, система посылает сигнал обратно. Таким образом, если вторжение и произойдет, оно будет исходить из одного из компьютеров сети, что может значительно сузить круг подозреваемых лиц. Однако, такая защита требует значительных дополнительных затрат. Еще одним средством предотвращения несанкционированного доступа к системе служит задание типов транзакций, которые можно запускать с каждого из терминалов. Эффективный и простой способ защиты предоставить каждому терминалу узкий круг возможностей. Для терминалов, находящихся в самом доступном месте, могут быть разрешены только функции чтения данных. Проверка полномочий и представления данных. Представление данных это средство предоставления пользователю его личной модели БД. Это также является способом защиты данных данные, которые пользователю “не нужны”, просто не выводятся на его терминал, спрятаны от него, что существенно повышает защищенность БД. Представления данных могут создаваться при помощи операций выбора, создания проекций или соединения существующих таблиц. То есть возможности пользователей могут быть ограничены только рассмотрением части некоторой существующей таблицы или же соединения некоторых таблиц, только тех данных, которые ему действительно нужны. Для каждого представления данных возможны следующие типы: Право чтения: пользователь имеет возможность только просмотра данных, но не их изменение. Право ввода: пользователь имеет возможность вводить новые данные (добавлять их в конец табл.), но не изменять существующие. Право обновления: пользователь имеет возможность только изменять введенные данные, но не удалять записи целиком. Право удаления: позволено удалять записи. Эти типы доступа обычно обеспечиваются назначением для представления данных нескольких паролей. Шифровка. Различные методы идентификации пользователей и проверки полномочий, стандартные способы защиты БД могут оказаться недостаточными для “заинтересованного” пользователя. В таких случаях может оказаться полезным зашифровать данные. Многие методы шифровки очень просты и легко поддаются дешифрации, однако, многие имеют достаточно большую степень защиты данных. Методы простой подстановки. Суть методов в замене каждой буквы на следующую за ней в алфавите, либо в подстановки заданного ключевого слова. Пробел может обозначатся любой буквой, например А. При такой защите в случае несанкционированного доступа на экран выводятся непонятные фразы. Однако, если проанализировать большой объем информации, можно оценить частоту появления символов и подобрать код. Выбор СУБД. Классификация требований к свойствам СУБД. Для анализа свойства можно классифицировать следующим образом: обязательные, важные, необязательные, излишние, нежелательные. Процесс получения данных для оценки СУБД включает обращение за информацией к поставщику и тестирование СУБД в окружении, близком к прикладному. Определение требований к приложениям. Всех пользователей можно разделить на две большие группы: постоянные и случайные. Требования постоянного пользователя легко определить, они планируются заранее и обычно поддерживают повседневные операции (складской учет, бухгалтерия, продажи). Требования случайных пользователей не возможно представить заранее. Таким пользователям обычно необходима информация для анализа и принятия решения, а не для поддержания повседневных операций. Таким пользователям необходимы средства классификации и комбинации данных, а также язык запросов. Поддержание непротиворечивости данных. Основная причина установки СУБД необходимость совместного использования данных многими приложениями. Никакая СУБД не может гарантировать, что противоречия в данных никогда не возникнут, но она должна обеспечивать средства минимизации частоты их появления. Даже в хорошо управляемых системах разные копии записей данных обновляются врезных временных циклах, тогда противоречивость данных неизбежна. Следовательно, любая оценка СУБД должна включать рассмотрение средств, обеспечивающих согласованность разных копий одних и тех же данных. Требования к времени отклика. Быстродействие СУБД должно быть приемлемым. Необходимо заставить пользователей определить реалистичные требования к времени отклика системы. Поддержка создания специальных программ. Разработка специальных программ, взаимодействующих с СУБД требует наличия средств, поддерживающих разработку программ и их отладку. СУБД должна содержать базовый язык для написания стандартных программ или обеспечить взаимодействие с процедурными языками. Возможности запросов, манипулирования данными и создания отчетов. СУБД должна обеспечивать возможность создание отчетов во множестве различных форм. Защита и целостность данных самый существенный фактор эффективного функционирования СУБД. Необходимо обратить внимание на следующие возможности: контроль доступа, позволяющий избежать несанкционированного доступа; контроль параллельной обработки (средства поддержания целостности данных при многопользовательском режиме, СУБД должна ограничивать доступ нескольких транзакций одновременно к одним и тем же данным); управление представлением данных (ограничения данных таблиц, к которым пользователь может обращаться), для пользователей важно возможность изменения представления данных и накладываемые ограничения. средства резервного копирования и восстановления, для пользователей важна простота применения этих средств, их полнота и надежность. Аттестация общий метод получения информации о качестве функционирования, используемый в процессе оценки СУБД. Основная идея имитировать окружение приложения, чтобы получить правдоподобные данные о функционировании системы. Моделирование реального приложения может оказаться трудной задачей, так как трудно поддерживать все параметры функционирующего окружения постоянными. Хотя суть аттестации может отличаться в разных фирмах, существуют определенные аспекты СУБД, важные для каждой фирмы: требования к оперативной памяти, требования к вспомогательным запоминающим устройствам, обслуживание нескольких пользователей, одновременно обращающихся к БД, требования ввода/вывода, средства резервного копирования и восстановления. Наиболее распространенный способ получения информации у поставщика заявка. В заявке определяются требования, которыми должна обладать СУБД и запрашивается у поставщика информация, насколько его СУБД может удовлетворить эти требования. Основные требования, которые необходимо оценить: Выполняемые функции: словарь данных, ЯМД, встроенные функции, контроль доступа. Рабочие характеристики: результаты аттестации, требования к памяти, возможности оптимизации. Защита и целостность: идентификация пользователей, проверка полномочий, обработка транзакций. Поддержка: обучение, документация, сопровождение, модернизация. При выборе СУБД часто пользуются бальной моделью. При выборе СУБД многие выбирают из рассмотренной классификации только два критерия: обязательные и желательные свойства. Выбор схемы весов произволен. Простая схема состоит в приписывании веса 10 каждому обязательному требованию и весов от 1 до 9 каждому желательному свойству, больший вес должен соответствовать большей степени желательности. После определения этих показателей, каждому свойству, для каждого поставщика ставится в соответствии число от 1 до 10 на основании того, насколько хорошо это свойство представлено в СУБД данного поставщика. Окончательный балл за каждое свойство каждого поставщика определяется умножением веса свойств на значение, выставленное поставщику за это свойство. Результаты суммируются Свойство \ Поставщик А. Б. В. Обязательные: Вес Представление данных 10 6 (60) 5 (50) 8 (80) Пароли 10 9 (90) 6 (60) 7 (70) Средства восстановления. 10 10 (100) 9 (90) 8 (80) Желательные: Вес Реляционный язык запросов 7 10 (70) 10 (70) 0(0) Обучение пользователей 9 9 (64) 5 (45) 2(18) Общий балл: 384 315 248 Основываясь на результатах этого примера, мы можем исключить поставщика В из дальнейшего рассмотрения, а предпочтительнее для нас является поставщик А. В случае равенства баллов проводится дополнительный анализ. У этого метода обычно 2 результата: Можно исключить некоторые системы из дальнейшего рассмотрения. Мы получаем информацию для принятия решения, включая возможную необходимость дополнительного исследования или тестирования. Распределенные системы управления базами данных. В настоящее время РСУБД продолжают развиваться, однако с развитием технологии коммуникаций в скором времени они будут играть ведущую роль во всех сферах бизнеса. В преобладающих на сегодня централизованных БД пользователи и прикладные программы обращаются с местных и удаленных терминалов к централизованной БД (вся информация физически находится в одном месте). В распределенной БД не все данные хранятся централизованно. Они распределены по сети узлов, удаленных географически, но связанных коммуникационными линиями (вся информация физически хранится в разных местах). Каждый узел имеет свою собственную БД, кроме того, он может обращаться к данным, хранящимся на других узлах. Причины развития и применения РСБД: Очень часто организации физически распложены в разных местах (отделения, филиалы, корпуса и т.д.). Для некоторых из них может требоваться специфическая информация (набор данных), которая необходима только этому узлу, а большая часть данных ему не нужна, или необходима крайне редко. Так как каждый узел поддерживает свою собственную БД, доступ к наиболее часто используемым данным становится быстрее и эффективнее, а в случае необходимости данные с других узлов могут быть получены. РСБД более надежны. В случае выхода из строя одного компьютера большая часть системы продолжает работать. Если данные тиражированы на нескольких узлах, то они могут быть получены и обработаны другими узлами, оставшимися рабочими. Локальные БД позволяют лучше контролировать данные, за которые отвечает пользователь, следовательно, лучше выполняются пользовательские требования. Для ИС в которых происходит большой обмен информацией между узлами, в случаях постоянного тиражирования данных на нескольких узлах использовать РСБД не рекомендуется из-за издержек, связанных с управлением коммуникациями и контролем, обеспечения согласованных действий при обновлении данных. Преимущества тиражирования данных состоит в скорости обработки данных на тех узлах, где поддерживаются копии данных, а также в обеспечении резервных копий на случай отказа системы на другом узле. Однако такое тиражирование данных требует дополнительных объемов памяти. С другой стороны, предоставление доступа к данным пользователя в сети делает защиту данных в РСУБД значительно более сложной, чем в централизованной. Основные понятия: локальные данные - данные, которые поддерживаются в собственной базе узла; глобальные данные – данные, поддерживаемые в БД, расположение которой отличается от расположения хотя бы одного из ее пользователей; соединения – коммуникационные каналы между двумя узлами сети, обеспечивающие возможность обмена данными; РСУБД – ПО, управляющее распределенной системой БД; транзакция – выполнение пользовательской программы, взаимодействующей с РСУБД. РСУБД это система, состоящая из нескольких СУБД, работающих на локальных узлах, соединенных средствами обработки сообщений. Словарь данных РСУБД содержит обычную информацию, необходимую для управления данными, а также информацию, касающуюся местонахождения, тиражирования и фрагментации данных различных реляционных таблиц. При обработке запросов, задающих извлечение или обновление данных, словарь данных РСУБД может предоставить нужную информацию о расположении и копиях данных, следя пи этом, чтобы изменения данных были переданы на все соответствующие узлы. Словарь данных РСУБД может поддерживаться в центральном узле, или же его подмножества могут быть распределены между различными узлами в случае необходимости. Полную копию словаря можно получить, объединив все распределенные подмножества. Пользователь взаимодействует с РСУБД, запуская программы, которые называются транзакциями. Транзакции в таких системах больше не сводится к одному процессу, контролируемому одним программным модулем, она может вызывать несколько процессов в различных узлах, контролируемых независимыми программными модулями. Каждый из процессов, взаимодействующих внутри транзакции, называется агентом. Транзакция, состоящая из одного агента, называется локальной транзакцией. Транзакция, для которой необходимо несколько агентов, называется глобальной транзакцией. Данный агент может обращаться только к данным, которые контролирует его локальное ПО. Доступ к данным, других узлов требует взаимодействия с агентами этих узлов. Агент, начинающий транзакцию, называется инициирующим агентом. Инициирующий агент может требовать активизации агентов на других узлах в целях доступа к нужным данным. Будучи активизированными, два и более агента могут обмениваться сообщениями между собой. Транзакция передает команды чтения и записи РСУБД и выполняет конечный ввод и вывод. На каждом узле РСУБД обычно запускается один или несколько из следующих программных модулей: диспетчер транзакций (ДТ), диспетчер данных (ДД) или планировщик. Транзакции общаются с ДТ, ДТ обменивается информацией с планировщиком, планировщики общаются между собой и с ДД, а ДД управляют данными. Узел 1 Т ДТ Планировщик ДД ![]() ![]() ![]() данные ранзакция Т ![]() ![]() ![]() ![]() Узел 2 Т ДТ Планировщик ДД ![]() ![]() данные ранзакция Т ![]() ![]() ![]() Узел 3 Т ДТ Планировщик ДД ![]() ![]() данные ранзакция Т ![]() Каждая транзакция сообщает обо всех своих операциях чтения и записи одному ДТ, а он в свою очередь сообщает о них планировщику. Выбор планировщика определяется алгоритмом контроля параллельной обработки, однако, чаще всего выбирается планировщик, находящийся на том же участке, что и обрабатываемые данные. Планировщик управляет последовательностью, в которой ДД выполняет команды чтения и записи, а также производит контроль параллельной обработки. Когда планировщик получает команду чтения или записи, он может выполнить ее немедленно; отложить выполнение, удерживая команду; отклонить команду в случае ошибки передачи, нарушения доступа и др. подобных проблем. ДД выполняет каждую команду чтения и записи, которую он получает. По команде чтения ДД просматривает локальную БД и возвращает требуемое значение. По команде записи ДД изменяет локальную БД и возвращает подтверждение планировщику. Планировщик передает его обратно ДТ, который в свою очередь передает его обратно транзакции. Т ![]() ![]() B ![]() ![]() ![]() ![]() ![]() ![]() Read (X) ![]() ![]() ![]() Write (Y) Планировщик ДД Y ![]() ![]() ![]() ![]() End. РСУБД могут связывать узлы, находящиеся на значительном географическом удалении (такие системы называются глобальными (ГС)), а также обслуживать локальные сети (ЛС), где узлами являются рабочие станции, между которыми установлены соединения. Структура соединения задается графом: узлы соответствуют вершинам графа, а соединения между узлами соответствуют его ребрам. В ГС соединениями служат телефонные линии, спутниковые каналы и высокочастотная связь. В ЛС соединением служит коаксиальный кабель и оптоволокно, следствием чего является большая скорость работы и небольшой коэффициент ошибок. ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 3 4 3 4 1 2 4 Полностью связанная конфигурация обеспечивает самую большую гибкость и надежность, но из-за высокой стоимости установки, поддержания соединений используется редко. Такая частичная или полная связь используется для ГС. ЛС обычно имеют конфигурацию: кольцо, шина, звезда. Соединение двух узлов означает наличие прямой связи между ними. Каждый узел в РСУБД должен быть способен обрабатывать как транзакции, обращающиеся к данным со своего узла, так и транзакции, требующие данные с других узлов. Выбор конфигурации производится на основе анализа ответов на следующие вопросы: затраты на передачу сообщений между узлами; надежность линии (вероятность отказа); возможности обхода неисправных узлов; частота обращения к данным с других узлов, их объем для передаче; стоимость физического соединения узлов. |