Разработка и защита баз данных в Microsoft SQL Server 2005
Покупка
Новинка
Тематика:
Системы управления базами данных (СУБД)
Издательство:
ИНТУИТ
Год издания: 2016
Кол-во страниц: 107
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
Дополнительное профессиональное образование
Артикул: 834938.01.99
Программный пакет Microsoft SQL Server 2005 предоставляет надежную платформу для реализации собственных баз данных. SQL Server 2005 включает простые в применении функции, которые создают идеальную рабочую среду.
Этот курс предназначен для разработчиков и администраторов баз данных, которые уже знакомы с SQL Server и хотят изучить новейшие функциональные возможности, появившиеся в SQL Server 2005. В курсе описываются основы создания проекта базы данных при помощи SQL Server 2005: какие аспекты следует учитывать при проектировании базы данных, как обеспечить защиту базы от несанкционированного доступа, как защитить данные от непредвиденной потери и распределить их между другими серверами.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Разработка и защита баз данных в Microsoft SQL Server 2005 2-е издание, исправленное Национальный Открытый Университет “ИНТУИТ” 2016 2
Разработка и защита баз данных в Microsoft SQL Server 2005/ - М.: Национальный Открытый Университет “ИНТУИТ”, 2016 Программный пакет Microsoft SQL Server 2005 предоставляет надежную платформу для реализации собственных баз данных. SQL Server 2005 включает простые в применении функции, которые создают идеальную рабочую среду. Этот курс предназначен для разработчиков и администраторов баз данных, которые уже знакомы с SQL Server и хотят изучить новейшие функциональные возможности, появившиеся в SQL Server 2005. В курсе описываются основы создания проекта базы данных при помощи SQL Server 2005: какие аспекты следует учитывать при проектировании базы данных, как обеспечить защиту базы от несанкционированного доступа, как защитить данные от непредвиденной потери и распределить их между другими серверами. (c) ООО “ИНТУИТ.РУ”, 2008-2016 (c) 2008-2016 3
Какие именно данные приложения следует хранить в базе данных В данной лекции описывается, как осмысленно выбрать место для хранения настроек приложений, как определять наилучшее место для хранения различных типов пользовательских настроек, как принимать решение о том, где хранить XML-данные и выбирать место для хранения файлов внешних приложений С появлением усовершенствованных в отношении производительности и более гибких ядер баз данных, как, скажем, в Microsoft SQL Server 2005, размывается граница между теми объектами, которые следует хранить в базах данных, и теми, которые хранить в них не следует. Раньше базы данных хорошо подходили для хранения только структурированных данных. Однако благодаря недавним достижениям в сфере технологий механизмов баз данных становится все более простым и более выполнимым хранение в базе данных и неструктурированных данных, таких, как документы и изображения. Хранить ли в базе данных все или только некоторые из данных внешних приложений, зависит от того, как эти данные используются. В этой лекции рассказывается о том, как хранить настройки приложений в базе данных. Кроме того, вы узнаете, как манипулировать пользовательскими настройками, сохраняемыми в базе данных. Поскольку XML представляет собой естественный способ хранения иерархических данных, приводятся также подробные сведения об XML-данных. В завершение рассматривается хранение в базе данных больших объектов, для чего обычно используются отдельные файлы. Где хранить настройки приложений В программировании на платформе .NET для хранения данных приложений обычно используются XML-документы (обычно с расширением . config ). Если необходимо, чтобы приложение демонстрировало различное поведение в разных ситуациях, возникают сложности. Необходимо либо предусмотреть это в файле конфигурации, либо рассмотреть вариант с применением архитектуры параметров, управляемых данными, при которой для настройки приложения используются данные. Если вы выберете последнее решение, то база данных будет естественным местом для хранения данных, которые управляют настройками приложения. Прежде чем выбрать модель управления настройками с помощью данных, следует сначала учесть некоторые доводы в пользу использования в приложении конфигурационных файлов. Если ваше приложение не нуждается в базе данных для какой-либо еще функции, возможно, не стоит включать в приложение базу данных только для параметров приложения. Аналогично, если приложение нуждается в параметрах уже в процессе загрузки, а на этом этапе процесса база данных обычно недоступна, то конфигурационный файл будет более естественным решением. (Раньше параметры приложения в подобных ситуациях обычно хранились в реестре Windows, но сейчас они чаще хранятся в конфигурационных файлах приложения.) Одним из главных преимуществ хранения параметров конфигурации приложения в файле является то, что этим файлом с легкостью могут манипулировать пользователи. XMLфайл можно редактировать в Блокноте, поэтому любой пользователь может изменить 4
параметры. Если необходимо предотвратить просмотр или изменение уязвимых настроек пользователями, то файлы конфигурации можно зашифровать. Несмотря на недоступность в процессе запуска приложения, хранение параметров приложения в базе данных может быть выгодным. В базе данных можно управлять доступом к параметрам при помощи политики безопасности базы, в том числе, используя шифрование в SQL Server 2005. Это не даст пользователям, которые, возможно, не вполне представляют себе последствия сделанных изменений, возможности изменить параметры. Если вы используете какой-либо вариант ролевой модели безопасности (см. лекции 2-3), можно контролировать, кому предоставляется возможность изменять отдельные параметры приложения. Сохранение параметров приложения в базе данных будет также очень полезно в распределенных приложениях. Таким образом, вы сможете хранить такие разные параметры, как часовой пояс или офисные правила, в одном месте - базе данных. Эти параметры можно настроить так, чтобы приложение хранило различные версии настроек для разных пользователей или групп пользователей, а контролировать параметры смогут сотрудники, имеющие достаточную квалификацию. В табл. 1.1 показаны преимущества, предлагаемые каждым из двух вариантов. Совет. Если вы хотите использовать преимущества, предоставляемые хранением параметров в базе данных, но не хотите утяжелять клиент полнофункциональной базой данных, подумайте о реализации хранения параметров приложения в базе данных средствами программы Microsoft SQL Server 2005 Express Edition, которая распространяется бесплатно, или Microsoft SQL Server 2005 Workgroup Edition, стоимость которой является убедительным доводом в пользу ее применения для небольших реализаций. Таблица 1.1. Сравнение вариантов хранения параметров приложения Особенность Хранение в базе данных Хранение в конфигурацином файле Пользователь может легко изменить параметры ? Приложение не требует для работы ядра СУБД ? Параметры доступны в процессе загрузки приложения ? В приложении можно реализовать ролевую модель обеспечения безопасности ? В приложении можно реализовать централизованное управление параметрами ? В приложении можно легко ограничить доступ к параметрам ? В приложении может быть обеспечен гранулярный контроль над параметрами ? Как вы уже поняли из сравнения двух методов в табл. 1.1, следует выбрать тот вариант, который лучше подходит для вашего приложения. Не существует однозначного ответа на вопрос, где хранить параметры приложения - в базе данных или в 5
конфигурационном файле. Взвешенно оцените свои потребности и среду и используйте приведенную здесь информацию для принятия такого решения, которое наилучшим образом соответствует требованиям вашего приложения. Где хранить пользовательские настройки Часто приложению необходимо хранить информацию о предпочтениях пользователей. В веб-приложениях это обычно реализуется при помощи файлов cookie (небольших текстовых файлов, которые хранят информацию о пользователях), но ввиду возросших требований к обеспечению безопасности в интернете такой подход может оказаться проблематичным. При использовании некоторых видов идентификации пользователей пользовательские настройки можно хранить в базе данных. Это позволит управлять этими настройками, не обращаясь к клиентскому компьютеру. В базе данных можно хранить самые разные пользовательские настройки. Эти настройки можно хранить в виде XML-данных, которые обеспечивают максимальную гибкость (о хранении XMLданных будет рассказано далее в этой лекции). Можно также использовать стандартные методы работы с данными для отслеживания пользовательских настроек. Если для хранения пользовательских настроек используется SQL Server, то пользователь может переносить их с одного клиента на другой. Реализация таблицы пользовательских настроек 1. Определите, какие параметры вам необходимо хранить. Хотя в базе данных приложения можно хранить все пользовательские настройки, важно решить, какие параметры необходимы для обеспечения функционирования приложения в особых случаях, а какие параметры должны быть доступными при любом входе пользователя в систему, с какого бы клиента этот вход не выполнялся. 2. После того, как вы определите, какие параметры нужно хранить, разработайте необходимую для хранения параметров таблицу. табл. 1.2 представляет собой примерный проект таблицы для управления пользовательскими настройками в базе данных. Таблица 1.2. Примерный проект таблицы для хранения пользовательских настроек Имя логического столбца Назначение Идентификатор пользователя Хранит уникальный идентификатор пользователя, который может использоваться для идентификации и возврата пользовательских настроек. Тип данных этого столбца будет зависеть от реализации идентификаторов пользователей в приложении. Дата добавления пользователя. В этот столбец записывается дата добавления Первая запись о пользовательских настройках обычно создается после добавления пользователя. Дата обновления настроек Помогает управлять активными пользователями и проверять актуальность их настроек. Обновление данных часто является более важным, чем их создание. 6
Последний вход в систему Сохраняет информацию о последнем входе пользователя в систему. В некоторых случаях эта информация дублирует информацию в столбце Дата обновления настроек. В зависимости от реализации столбца даты обновления, можно отказаться от данного столбца и использовать только столбец Дата обновления. Столбец или столбцы для хранения пользовательских настроек В этот столбец записываются пользовательские настройки, которые необходимо сохранить. Существует две распространенных реализации столбцов пользовательских настроек. Первая реализация - реляционная. Каждая настройка в этой реализации хранится в отдельном столбце таблицы. С этим решением связана следующая проблема: чтобы добавить дополнительную настройку, придется расширять таблицу путем добавления столбца. Второй вариант - все пользовательские настройки хранятся в одном столбце. С появлением XML можно использовать XML-документ для хранения нужных настроек либо в столбце TEXT, либо в столбце с типом данных XML; об этом речь пойдет далее в этой лекции. 3. Затем продумайте, какие объекты данных необходимы для извлечения и управления таблицей пользовательских настроек. Вот что для этого нужно: Хранимая процедура Insert. С помощью этой процедуры добавляется начальная запись пользовательских настроек. Часто это делается при добавлении пользователя, поэтому данную процедуру можно объединить с процедурой добавления пользователя. Хранимая процедура Update. Обновляет запись пользовательских настроек. Эта процедура часто вызывается для управления пользовательскими настройками в приложении. Важно. При отслеживании часто изменяющихся данных в таблице пользовательских настроек администратору придется активно наблюдать за производительностью и при необходимости регулировать работу реализации. Это особенно верно, если пользовательские настройки обновляются не просто для входа в приложение и выхода из него, но также и для других событий. Хранимая процедура Delete. Предназначена для удаления записи пользовательских настроек. Эта операция, как и операция вставки, может выполняться в составе процедуры удаления пользователя. Однако вам нужно будет выполнить эти две процедуры по отдельности, если придется поддержать концепцию, например, сбросить пользовательские настройки на значения по умолчанию. Где хранить XML-документы Несколько лет назад XML-документы были новым веянием, но сейчас они уже стали привычными. Весьма вероятно, что вы уже видели и применяли XML-документы для 7
настройки конфигурации и других задач в приложениях, с которыми работали. В SQL Server 2005 и Microsoft .NET Framework XML-документы широко используются для настройки параметров конфигурации и реализации других функций, таких, как службы интеграции SQL Server Integration Services (для которых XML хранятся в файлах .dtsx ) и службы составления отчетов SQL Server Reporting Services (данные XML хранятся в файлах с расширением . rdl ). XML имеет ряд преимуществ, не последнее из которых гибкость при изменении требований к конфигурации приложения. Как было отмечено ранее, файлы XML также дают возможность пользователям приложения легко изменять параметры конфигурации. XML также прекрасно справляется с хранением иерархических данных. Вот несколько примеров иерархических данных: магазинные чеки, спецификации материалов и счета за медицинское обслуживание. Все они включают родительские записи с дочерними записями разных уровней. Извлечение полных наборов этих данных из механизма базы данных может быть затруднено, но XML хранит данные в форме, позволяющей легко просмотреть данные. Поскольку XML очень эффективен и все более широко используется, разработчики компании Microsoft включили в SQL Server 2000 и SQL Server 2005 тип данных XML, а также реализовала особый механизм оптимизации и операторы T-SQL для управления XML-данными. Примечание. XML-документы уже широко применяются для совместного использования информации внутренними и внешними потребителями в различных сферах бизнеса. В частности, приложения, используемые в здравоохранении, используют XML-схемы для организации совместного использования данных внешними партнерами и внутренними системами лечебных учреждений. Программный пакет Microsoft BizTalk Server 2006 разработан для управления бизнес-процессами и интеграции в подобных ситуациях и для этой цели использует XML-документы. Поддержка XML в SQL Server 2005 В SQL Server 2005 разработчиками Microsoft в механизм базы данных были добавлены несколько новых специфических XML-функций. Эти усовершенствования позволили облегчить доступ к XML-данным и манипуляции с ними. Ниже перечислены некоторые из таких усовершенствований: Собственный тип данных XML Поддержка XML-схем Возможность использования запросов XQuery к XML-данным, которые хранятся в столбцах с типом данных XML и в переменных Возможность индексировать XML-данные, которые хранятся в столбцах XML Поддержка языка манипулирования данными XML (XML-DML) Усовершенствование существующих функций SQL Server 2000 для работы с XML, в том числе добавление ключевых слов OPENROWSET, FOR XML и OPENXML Использование типа данных XML 8
В SQL Server 2005 появляется полнофункциональный тип данных XML. Благодаря этому типу данных становится возможным использовать свойственные XML SQLзапросы для поиска XML-данных и доступа к ним. Этот тип данных доступен и для таблиц, и для переменных. Если вы храните данные с использованием типа данных XML, то для запроса к ним можно использовать реализацию языка запросов XQuery в SQL Server. До появления типа данных XML при необходимости выполнить запрос к этим данным проектировщикам приходилось сначала извлекать их в реляционную версию. Необходимость извлечения XML-данных в таблицы и столбцы (эта методика получила название разбивки данных) с целью получения возможности запрашивать эти данные ограничивала гибкость, присущую XML-документам. Теперь, благодаря возможности использовать тип данных XML, разработчики могут ссылаться на содержимое документа, не прибегая к его разбивке на строки и столбцы. В табл. 1.3 перечислены поддерживаемые в SQL Server 2005 методы манипуляций с типом данных XML. Таблица 1.3. Методы языка XQuery, поддерживаемые в SQL Server 2005 Метод Синтаксис Назначение query() .query(выражение XQuery) Выполняет выборку данных в XML-документе или фрагменте аналогично оператору SELECT. value() .value (выражение XQuery, тип данных SQL) Объединяет функциональность метода query() с функцией CONVERT языка SQL. Это позволяет выполнить выборку значения из XML-документа или фрагмента и конвертировать результат в определенный тип данных. exist() .exist (выражение XQuery) Возвращает значение TRUE, если искомое выражение обнаружено в XML-документе; метод аналогичен оператору EXISTS в T-SQL. modify() .modify (выражение XML-DML) Позволяет добавлять, обновлять или удалять узлы в документе XML. Метод modify() следует использовать в предложении оператора UPDATE T-SQL nodes() .nodes(выражение XQuery) as ИмяТаблицы(ИмяПоля) (См. информацию о XML-DML на справочном ресурсе SQL Server Books Online.) Позволяет выполнить разбивку документа и разместить результаты в реляционном формате В следующем примере демонстрируется, как можно выполнить запрос к XML-данным в переменных XML. Применяем метод Query() языка XQuery 1. В меню Start (Пуск) выберите All Programs, Microsoft SQL Server 2005, SQL Server Management Studio (Все программы, Microsoft SQL Server 2005, Среда SQL Server Management Studio). 2. В окне Microsoft SQL Server Management Studio создайте новый запрос, нажав кнопку New Query (Создать запрос). (Готовый запрос можно найти в файлах примеров под именем XQueryQueryMethod.sql ). 3. Объявите переменную с типом данных XML, введя в панель запросов следующий 9
код: DECLARE @SampleXML XML 4. Запишите в переменную выражение XML, добавив в панель запросов следующий код: SET @SampleXML = '<root> <L1> <L2>Это первая строка</L2> </L1> <L1> <L2>Это вторая строка</L2> </L1> </root>' 5. Чтобы извлечь значения из узла L2, воспользуйтесь методом query(). Введите в панель запроса следующий код: SELECT @SampleXML.query('/root/L1/L2') 6. Выполните запрос, нажав кнопку Execute (Выполнить) на панели инструментов или функциональную клавишу F5. В панели результатов будут отображены следующие результаты: <L2> Это первая строка</L2> <L2> Это вторая строка</L2> Даже этот простой пример может дать некоторое представление о том, что можно сделать с помощью новых функций XQuery в SQL Server. Можно использовать метод data(), чтобы возвратить данные из элемента без тэгов XML, или метод exist(), чтобы проверить, существует ли определенный узел. Следующий код (который можно найти в файлах примеров под именем XQueryQueryDataMethod.sql ) демонстрирует пример использования метода data() для возвращения определенного фрагмента XML-данных, не заключенных в тэги XML: DECLARE @SampleXML XML SET @SampleXML = '<root> <L1> <L2>Это первая строка</L2> </L1> <L1> <L2>Это вторая строка</L2> </L1> </root>' SELECT @SampleXML.query("data(/root/L1/L2 = "Это вторая строка"])") Должен получиться результат “Это вторая строка”. 10