Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Теоретическая часть

Изучение возможностей СУБД Microsoft SQL Server 2005

По созданию и ведению баз данных

 

Цель работы

Целью работы является изучение возможностей СУБД Microsoft SQL Server 2005 по созданию и ведению баз данных.

 

Задачи

Задачами лабораторной работы являются овладение навыками создания и заполнения таблиц баз данных, создания представлений, триггеров и хранимых процедур, освоение программных технологий доступа к базам данных Microsoft SQL Server по технологии ADO.NET.

 

Теоретическая часть

Серверные СУБД – СУБД, предназначенные для управления доступом к базам данных по технологии «клиент-сервер» (технология, по которой клиент посылает запросы, которые обрабатываются на сервере, а затем клиенту возвращается результат). Они используются для «больших» баз данных (терабайты информации), большого числа пользователей, распределенных по всему миру, для работы через Интернет.

Microsoft SQL Server является ярким представителем серверных СУБД. Первая версия этой реляционной СУБД была разработана компаниями Microsoft и Sybase в 1988 году и предназначалась для платформы OS/2. Последующие версии этого сервера баз данных предназначались для платформы Windows и со временем были тесно интегрированы с этой операционной системой. Для других платформ версии этого сервера не выпускались и не выпускаются, что не вписывается в тенденции повсеместного перехода на Linux.

СУБД Microsoft SQL Server представляет собой современную полнофункциональную базу данных, которая идеально подходит для малых и средних организаций. Ее важнейшими характеристиками являются:

– простота администрирования. Это одно из важнейших преимуществ СУБД: В комплект средств административного управления данной СУБД входит целый набор специальных мастеров и средств автоматической настройки параметров конфигурации.

– возможность подключения к Web;

– быстродействие и функциональные возможности механизма сервера СУБД;

– наличие средств удаленного доступа.

Кроме того, СУБД Microsoft SQL Server в качестве языка запросов использует стандартизованную версию языка SQL (Transact-SQL или T-SQL).

На сегодняшний день наиболее широко используемой являются выпущенные в 2005 г. версия Microsoft SQL Server 2005 (кодовое название Yukon) и в 2008-2010 гг – Microsoft SQL Server 2008 (кодовое название Katmai).

Кроме того, существует дополнительная «сокращенная» версия – Microsoft SQL Server Express: она доступна для скачивания и может бесплатно распространяться вместе с использующим ее программным обеспечением. Данная версия имеет некоторые технические ограничения, которые делают ее непригодной для развертывания больших баз данных, но она вполне годится для ведения программных комплексов в масштабах небольшой компании. Содержит полноценную поддержку новых типов данных, в том числе XML-спецификации. Фактически, это полноценный MS SQL Server, включая все его компоненты программирования, поддержку национальных алфавитов и Unicode. Поэтому часто SQL Server Express используется в приложениях, при проектировании или для самостоятельного изучения.

Система SQL Server может быть реализована либо как клиент-серверная система, либо как автономная «настольная» система. Тип проектируемой системы зависит от количества пользователей, которые должны одновременно осуществлять доступ к базе данных, и от характера работ, которые должны выполняться.

Триггеры. Триггерные процедуры (или просто триггеры) автоматически вызываются, как только происходит некоторое событие (или условие запуска). Обычно условием запуска является выполнение некоторой операции обновления базы данных, но это может быть и определенная исключительная ситуация (например, нарушение некоторого установленного ограничения целостности) или истечение заданного времени.

Каждый триггер привязывается к конкретной таблице. При этом все производимые триггером модификации данных рассматриваются как одна транзакция. В случае обнаружения ошибки или нарушения целостности данных происходит откат этой транзакции: внесение изменений запрещается, а все изменения, уже сделанные триггером, отменяются.

Триггерные события состоят из вставки, удаления и обновления строк в таблице. В отличие от обычной подпрограммы, триггер выполняется неявно в каждом случае возникновения триггерного события, к тому же он не имеет аргументов. Приведение его в действие иногда называют запуском триггера. Момент запуска триггера определяется с помощью ключевых слов BEFORE (триггер запускается до выполнения связанного с ним события; например, до добавления записи) или AFTER (после события). В случае, если триггер вызывается до события, он может внести изменения в модифицируемую событием запись (конечно, при условии, что событие не удаление записи).

При выполнении команд добавления, изменения и удаления записей сервер создает две специальные таблицы: inserted и deleted. В них содержатся списки строк, которые будут вставлены или удалены по завершении транзакции. Структура таблиц inserted и deleted идентична структуре таблиц, для которой определяется триггер. Для каждого триггера создается свой комплект таблиц inserted и deleted, поэтому никакой другой триггер не сможет получить к ним доступ. В зависимости от типа операции, вызвавшей выполнение триггера, содержимое таблиц inserted и deleted может быть разным. Например, при использовании команды INSERT в таблице inserted содержатся все строки, которые пользователь пытается вставить в таблицу; в таблице deleted не будет ни одной строки; после завершения триггера все строки из таблицы inserted переместятся в исходную таблицу.

Основной формат команды создания триггера CREATE TRIGGER имеет следующий вид:

CREATE TRIGGER имя_триггера

BEFORE | AFTER <триггерное_событие>

ON <имя_таблицы>

[REFERENCING

<список_старых_или_новых_псевдонимов>]

[FOR EACH { ROW | STATEMENT}]

[WHEN(условие_триггера)]

<тело_триггера>

Хранимые процедуры. Хранимые процедуры позволяют повысить производительность, расширяют возможности программирования и поддерживают функции безопасности данных. Это именованная совокупность нескольких операторов (или даже один оператор), сохраненная для последующего использования в откомпилированном виде.

В коде хранимой процедуры можно использовать не только операции выборки и модификации данных, но и логику ветвления, переменные, вызовы других процедур и некоторые другие средства, характерные для языков программирования высокого уровня. Код процедуры синтаксически анализируется при компиляции, а оптимизированный план выполнения создается при первом вызове процедуры. В отличие от запросов, хранимые процедуры имеют возможность возвращать несколько наборов записей, а также значения.

Вместо хранения часто используемого запроса, клиенты могут ссылаться на соответствующую хранимую процедуру. При вызове хранимой процедуры ее содержимое сразу же обрабатывается сервером. Для вызова процедуры клиентская программа или другая процедура должны указать имя выполняемой процедуры и передать ей набор входных параметров.

Основными преимуществами хранимых процедур являются следующие:

– упрощение сложных операций за счет инкапсуляции процессов в один блок, простой для выполнения;

– обеспечение непротиворечивости данных без необходимости снова и снова воспроизводить одну и ту же последовательность шагов. Если все разработчики и приложения используют одни и те же хранимые процедуры, значит, один и тот же код будет использоваться всеми.

– предотвращение ошибок. Чем больше шагов необходимо выполнить, тем выше вероятность появления ошибок. Предотвращение ошибок обеспечивает целостность данных.
– упрощение управления изменениями. Если таблицы или имена столбцов изменяются, обновлять приходится только код хранимой процедуры и ничего больше.

– повышение безопасности. Ограничение доступа к основным данным только через хранимые процедуры снижает вероятность повреждения данных (случайного или преднамеренного).
– повышение производительности. Поскольку хранимые процедуры обычно сохраняются в компилированном виде, СУБД тратит меньше времени на обработку их команд.
– возможность написания более гибкого и мощного кода. Существуют элементы языка SQL и некоторые возможности, реализуемые только в хранимых процедурах.

Основной формат команды создания хранимой процедуры CREATE PROCEDURE имеет следующий вид:

CREATE PROCEDURE имя_хранимой_процедуры([параметр[,...]]) [характеристика...]

тело_процедуры

ADO.NET (ActiveX Data Objects.NET) является набором классов, реализующих программные интерфейсы для облегчения подключения к базам данных из приложения независимо от особенностей реализации конкретной системы управления базами данных и от структуры самой базы данных, а также независимо от места расположения этой самой базы – в частности, в распределенной среде (клиент-серверное приложение) на стороне сервера.

В библиотеки ADO.NET входят классы провайдеров, использующиеся для обмена данными между хранилищем и клиентским приложением. Разнообразие типов хранилищ данных определяет потребность в связывании классов доступа с данными из разнотипных хранилищ. Классы провайдеров данных – классы, отвечающие за обмен данными между отсоединенными классами клиентского приложения и хранилищем.

Для взаимодействия с СУБД SQL Server версии 7.0 и выше в.NET Framework используется провайдер SQL Server, который включает в себя классы с функциональностью, аналогичной функциональности провайдера общего назначения OleDb.

Чтобы получить доступ к хранилищу данных, требуется подходящий объект открытого подключения. Для этого предназначен класс DbConection. Данный класс – абстрактный, от него порождаются все классы подключений, специфичные для отдельных провайдеров (например, SQLConnection для SQL Server). В качестве параметра конструктору этого класса передается строка подключения, а для отправки любых команд хранилищу данных соединение необходимо открыть.

На следующем шаге работа ведется с объектами DbDataAdapter и DataSet. Объект DataSet – это помещаемое в память компьютера представление о наборе взаимосвязанных таблиц. Это аналог Recordset из «обычного» ADO. Отличие заключается в том, что Recordset представляет собой единственную таблицу, а DataSet – набор таблиц и отношений между ними.

Объект DbDataAdapter используется для извлечения данных в DataTable и записи обновленных данных в хранилище. Класс DbDataAdapter – родитель классов DbDataAdapter, специфичных для отдельных провайдеров (в частности, SQLDataAdapter для SQL Server). Основное назначение этого класса – извлечь информацию из источника данных и заполнить ею объект DataTable в DataSet при помощи метода OleDbDataAdapter.Fill(). В качестве параметров конструктору этого класса необходимо указать информацию о параметрах подключения к базе данных и команду SELECT на языке SQL, которая будет использована для заполнения DataTable. Для этого класс DbDataAdapter имеет свойство SelectCommand – команду, применяемую для извлечения данных. Значением свойства SelectCommand должен быть допустимый объект DbCommand, использующий корректное подключение. Если требуется только чтение данных их хранилища, допустимо не создавать объекты команд для остальных свойств.

Объект DbCommand используется для отправки операторов языка SQL хранилищу данных. Ему требуется открытое подключение, через которое команда передается хранилищу данных.

Объект DataTable представляет табличные данные в виде строк, столбцов и ограничений. Объекты DataTable используются для хранения данных в памяти (при выполнении операций над отсоединенными данными). Его дополняет объект DataView – представление объекта DataTable. Это представление можно сравнить с окном, через которое избранная часть содержимого DataTable. Содержимое этого представления можно упорядочивать и фильтровать с помощью соответствующих методов.




Дата добавления: 2015-09-12; просмотров: 6 | Поможем написать вашу работу | Нарушение авторских прав

<== предыдущая лекция | следующая лекция ==>
Exercise 9. Find the meanings in a dictionary| А. Создание и заполнение базы данных

lektsii.net - Лекции.Нет - 2014-2024 год. (0.011 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав