- •Предисловие
- •1. Анализ предметной области
- •1.1Анализ требований. Диаграмма вариантов использования
- •1.1.1Диаграмма вариантов использования
- •1.2Концептуальное моделирование предметной области
- •2. Проектирование базы данных
- •2.1Логическая модель базы данных
- •2.2Физическая модель базы данных
- •3.1Подключение к серверу ms sql Server 2008 r2
- •3.2Создание новой базы данных на сервере
- •3.3Создание новой таблицы на сервере
- •3. Создание базы данных
- •3.4Создание связей
- •3.5Создание диаграммы базы данных
- •3.6Ограничения целостности базы данных
- •3.7Сценарий создания базы данных
- •4. Заполнение базы данных
- •4.1Загрузка информации в базу данных средствами Management Studio
- •4.2Ведение базы данных средствами sql
- •4.3Sql-запросы на вставку, модификацию и удаление данных
- •4.3.1Добавление новых записей в таблицу (insert)
- •4.3.2Модификация существующих записей (update)
- •4.3.3Удаление записей из таблицы (delete)
- •5. Запросы на выборку данных
- •5.1Общий синтаксис запроса select
- •5.2Примеры реализации запросов
- •6. Организация бизнес-логики
- •6.1Хранимые процедуры
- •6.2Триггеры
- •7. Прикладной программный интерфейс субд
- •7.1Знакомство с основными объектами ado.Net
- •7.2Разработка клиентского приложения
- •7.3Пример разработки: иас «Оптовый заводской склад»
- •7.4Реализация основных функций Системы
- •7.4.1Ведение основных справочников и оформление поставок деталей
- •7.4.2Организация поиска поставок деталей
- •8. Администрирование сервера бд
- •8.1Инсталляция сервера
- •8.2Резервное копирование и восстановление бд
- •8.3Санкционирование доступа
- •Приложение а. Варианты заданий
- •1. Биржа труда
- •2. Проектная организация
- •3. Библиотечный фонд города
- •4. Турагентство
- •5. Регистратура городской поликлиники
- •6. Гибдд
- •7. Оператор сотовой связи
- •8. Аптека
- •9. Аудиторный фонд университета
- •10. Агентство недвижимости
- •11. Студенческий городок
- •12. Санаторий
- •13. Продуктовый магазин
- •14. Научные публикации вуза
- •15. Служба такси
- •16. Страховое агентство
- •17. Сайт купонов на скидки
- •18. Учебный план
- •19. Преподаватели университета
- •20. Расчет стипендии
- •21. Расписание занятий
- •Приложение б. Состав отчета
- •Список литературы
- •153003, Г. Иваново, ул. Рабфаковская, 34.
7. Прикладной программный интерфейс субд
7.1Знакомство с основными объектами ado.Net
Для обеспечения доступа к базам данных СУБД предоставляет разработчику набор стандартных процедур и функций (API – Application Programming Interface).
Для обеспечения быстрой разработки приложений, работающих с СУБД MS SQL Server, были созданы различные наборы компонентов, облегчающие взаимодействие с сервером:
BDE – набор компонентов для доступа к большому числу СУБД; разработан фирмой Borland (на текущий момент более не поддерживается); этот способ доступа не является рекомендуемым, поскольку не обеспечивает полноценный доступ к возможностям сервера;
ODBC (Open Database Connectivity) - широко распространенный программный интерфейс фирмы Microsoft. ODBC-драйвер для SQL Server, обеспечивает полнофункциональный доступ к серверу.
OLE DB и ADO - часть универсального механизма доступа к данным Microsoft. ADO (ActiveX Data Objects) - надстройка над интерфейсом OLE DB, позволяющая обеспечить бизнес-приложениям высокоуровневый доступ к данным. В качестве драйверов баз данных ADO использует так называемые OLE DB-провайдеры (для MS SQL Server используется провайдер Microsoft OLE DB Provider for SQL Server), которые представляют собой COM-серверы, реализующие предопределенный набор COM-интерфейсов.
ADO.NET - основная модель доступа к данным для приложений, основанных на Microsoft .NET. Представляет собой совершенно самостоятельную (по отношению к рассмотренному выше механизму ADO) технологию. Компоненты ADO.NET входят в поставку оболочки .NET Framework.
Общее описание объектной модели ADO.NET
ADO.NET (ActiveX Data Object.NET) - новая объектная модель, которая обеспечивает доступ к источникам данных в платформе .NET и использует стандарт XML для передачи данных.
ADO.NET развивает идею использования отсоединенных массивов данных. Если в предыдущих версиях ADO работа с данными подразумевала постоянное соединение с источником данных, то в ADO.NET применен подход, при котором вначале формируется моментальный снимок части базы данных, размещенный в памяти, и вся последующая работа выполняется над этим снимком, причем отключенный набор данных может использоваться несколькими частями программы или пользователями одновременно.
Одна из характерных особенностей ADO.NET – это использование управляемых провайдеров (managed provider) для доступа к данным. Управляемый провайдер данных – это набор объектов ADO.NET, разработанных для соединения с определенным источником данных. Все провайдеры обеспечивают одинаковый набор базовых методов и свойств, скрывая в своей реализации всю работу с API доступа к источнику данных. Необходимо только знать, какой управляемый провайдер должен использоваться в конкретном случае. В Visual Studio 2008 (.NET Framework 2.0) доступны:
SQL Server .NET Data Provider: предназначен для работы с базами данных Microsoft SQL Server 7.0 и более поздних версий; оптимизирован для доступа к SQL Server и взаимодействует с ним напрямую по «родному» протоколу передачи данных SQL Server;
OLE DB .NET Data Provider: управляемый провайдер для источников данных OLE DB; немного уступает по эффективности SQL Server .NET Data Provider, так как взаимодействует с базой данных через уровень OLE DB; используется для доступа к базам данных Access, Oracle, Active Directory, каталогам LDAP и другим источникам, поддерживающим OLE DB;
ODBC .NET Data Provider обеспечивает нативный доступ к ODBC-драйверам;
Oracle .NET Data Provider предназначен для работы с базами данных СУБД Oracle.
Провайдеры реализуется при помощи объектов, определенных в пространстве имен:
System.Data.SqlClient - содержит типы SQL Server .NET Data Provider;
System.Data.OleDb - содержит типы OLE DB .NET Data Provider;
System.Data.Odbc. - содержит типы ODBC .NET Data Provider;
System.Data.OracleClient - содержит типы Oracle .NET Data Provider;
System.Data. содержит типы, независимые от провайдеров, например, DataSet , DataTable, DataRelation, DataColumn, DataRow.
Рассмотрим основные классы объектов ADO.NET для работы с СУБД MS SQL Server.
DataSet - ключевой объект, который хранит данные в ADO.NET и представляет моментальный снимок части базы данных, размещенный в памяти. DataSet не имеет собственных средств для работы с источниками данных. Связующую роль между DataSet и источником данных выполняют управляемые провайдеры. Класс DataSet состоит из коллекции таблиц DataTable, которые можно связать между собой с помощью объектов класса DataRelation. Кроме того, для обеспечения целостности данных в классе DataSet можно использовать объекты UniqueConstraint и ForeignKeyConstraint.
DataRelation – класс, представляющий отношение "родительский - дочерний объект" между двумя объектами DataTable. Например, в отношении "Покупатель-Заказы" таблица "Покупатели" является родительской, а таблица "Заказы" — дочерней. Является аналогом отношения первичный ключ - внешний ключ.
DataTable – класс, представляющий одну таблицу с данными в памяти. Является центральным объектом библиотеки ADO.NET.
SqlDataAdapter - представляет набор выполняемых над данными команд и подключения базы данных, которые используется для заполнения DataSet и обновления базы данных SQL Server. Класс по сути служит мостом между DataSet и SQL Server для извлечения и сохранения данных; метод Fill изменяет данные в DataSet для соответствия их источнику данных, а метод Update изменяет данные в источнике данных для их соответствия DataSet с помощью выполняемых над источником данных инструкций Transact-SQL. Обновление выполняется построчно. SqlDataAdapter используется совместно c SqlConnection и SqlCommand для увеличения производительности при подключении к базе данных Microsoft SQL Server.
SqlDataReader - предоставляет возможность чтения потока строк только в прямом направлении из базы данных SQL Server. Используется, как правило, для хранения результатов выполнения SqlCommand.
SqlConnection - предоставляет открытое подключение к базе данных SQL Server и эквивалентен сетевому подключению к серверу.
SqlCommand – класс, представляющий инструкцию Transact-SQL или хранимую процедуру, выполняемую над базой данных SQL Server.
SqlCommandBuilder - связывается с объектом SqlDataAdapter и создает автоматически инструкции Transact-SQL, необходимые для согласования изменений, сделанных в DataSet со связанным экземпляром SQL Server.
Элементы управления для Windows Forms
BindingNavigator - элемент управления, который обеспечивает пользовательский интерфейс для перехода и управления элементами управления, привязанными к данным. BindingNavigator как правило используется совместно с компонентом BindingSource для создания стандартного средства поиска и изменения данных в форме Windows Form.
BindingSource – класс, инкапсулирующий источник данных для формы. Компонент используется для многих задач, выполняя различные функции связи между элементами управления Windows Forms и источниками данных. Это достигается путем присоединения компонента BindingSource к источнику данных с помощью свойства DataSource. Перемещение по источнику данных и его обновление выполняется посредством таких методов, как MoveNext, MoveLast и Remove. Такие операции, как сортировка и фильтрация, обрабатываются посредством свойств Sort и Filter.
DataGridView – элемент управления, предоставляющий настраиваемую таблицу для отображения данных. Класс DataGridView допускает настройку ячеек, строк, столбцов и границ. Можно воспользоваться элементом управления DataGridView для отображения данных вместе с источником базовых данных (свойство DataSource) или без него.
