Базы Данных в VS 2010
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ
МОГИЛЕЛЕВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИМЕНИ А.А.
КУЛЕШОВА
Кафедра
математического анализа и
КУРСОВАЯ РАБОТА
по дисциплине «Технологии программирования и методы алгоритмизации»
БАЗЫ
ДАННЫХ В VISUAL STUDIO 2010
Выполнил:
студент 3 курса группы «Е»
специальности «Информатика.
Иностранный язык»
Гамзунов
Валентин Владимирович
Проверил:
доцент кафедры математического
анализа и дифференциальных уравнений
Батан
Сергей Николаевич
Кафедра
математического анализа и
КУРСОВАЯ РАБОТА
по дисциплине «Технологии программирования и методы алгоритмизации»
БАЗЫ
ДАННЫХ В VISUAL STUDIO 2010
Выполнил:
студент 3 курса группы «Е»
специальности «Информатика.
Иностранный язык»
Гамзунов
Валентин Владимирович
Проверил:
доцент кафедры математического
анализа и дифференциальных уравнений
Батан Сергей Николаевич
РЕФЕРАТ
Объем
работы: страниц 23. Курсовая работа состоит
из реферата, введения, трех глав, заключения,
списка использованной литературы (всего
6 источников).
Ключевые
слова: база данных, OLE DB, типы дынных,
ключевые поля, язык программирования
C-Sharp (C#).
Предмет
исследования: системы управления базами
данных в среде Visual
Studio 2010.
Объект
исследования: управление базами данных
средствами среды программирования
Visual Studio 2010.
Цель
исследования: при помощи языка программирования
C-Sharp (C#) создать программу, которая позволяет
работать с базой данных в среде Visual
Studio 2010.
Методы
исследования: анализ, синтез, обобщение.
Результаты
исследования: структурирование полученных
знаний, применение их на практике.
Сфера применения результатов: преподавания программирования.
Оглавление
Введение
Потоки информации, циркулирующие в мире, который нас окружает, огромны. Во времени они имеют тенденцию к увеличению. Поэтому в любой организации, как большой, так и маленькой, возникает проблема такой организации управления данными, которая обеспечила бы наиболее эффективную работу. Некоторые организации используют для этого шкафы с папками, но большинство предпочитают компьютеризированные способы – базы данных, позволяющие эффективно хранить, структурировать и систематизировать большие объемы данных. И уже сегодня без баз данных невозможно представить работу большинства финансовых, промышленных, торговых и прочих организаций. Не будь баз данных, они бы просто захлебнулись в информационной лавине.
Существует много веских причин перевода существующей информации на компьютерную основу. Сейчас стоимость хранения информации в файлах ЭВМ дешевле, чем на бумаге. Базы данных позволяют хранить, структурировать информацию и извлекать оптимальным для пользователя образом. Использование клиент/серверных технологий позволяют сберечь значительные средства, а главное и время для получения необходимой информации, а также упрощают доступ и ведение, поскольку они основываются на комплексной обработке данных и централизации их хранения. Кроме того ЭВМ позволяет хранить любые форматы данных, текст, чертежи, данные в рукописной форме, фотографии, записи голоса и т.д.
В данной работе рассмотрены основные средства управления базами данных в среде Visual Studio 2010, используя механизм доступа к данным OLE DB и язык программирования С-Sharp (C#).
Глава 1. Основные понятия
Одним из важнейших условий эффективного функционирования любой организации в наши дни является наличие хорошо развитой и надежной информационной системы.
Информационная
система представляет собой сложную
систему, реализующую автоматизированный
сбор, обработку и манипулирование
данными. В настоящее время
- Хранение данных
- Защита данных
- Редактирование данных
- Поиск отбор данных по запросам пользователей
- Обработка данных и вывод результатов
База данных (БД) – это совокупность данных, организованная по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования данными, не зависящая от прикладных программ. Обращение к БД осуществляется с помощь системы управления базами данных.
Система управления базами данных (СУБД) – комплекс программ и языковых средств, предназначенных для создания, обслуживания и использования баз данных. К её основным функциям относится определение данных, обработка данных и управление ими.
Данные, хранимые в базе данных, имеют некоторую структуру, т.е. организованы по каким-то правилам, в соответствии с некоторой моделью, которую поддерживает СУБД. Моделью данных называется формализованное описание информационных структур и операций над ними; описание организации данных и соответствия этой организации её информационной структуре. Основными моделями данных являются:
- Иерархическая модель. В иерархической модели данные имеют древовидную структуру. Она удобна для использования, если информация иерархически упорядочена, и редко используется при наличии сложных логических связей.
- Сетевая модель. Сетевая модель подразумевает представление данных в виде произвольного графа. К достоинствам сетевой (и иерархической) модели организации данных относится возможность их эффективной реализации с точки зрения затрат памяти и оперативности работы. К недостаткам высокую – высокую сложность и жесткость схемы БД, построенной на её основе.
- Реляционная модель. Реляционная модель данных получила название от английского термина «relation» - отношение. В данной модели важно то, что при соблюдении некоторых простых условий отношение представляется в виде привычной и естественной для восприятия человеком двумерной таблицы, точнее таблиц, связанных отношениями. Эта модель имеет целый ряд важных преимуществ: простота, удобство реализации на ЭВМ, наличие проработанной теоретической базы, гибкость, возможность настройки при формировании запросов. Реляционная модель используется в основном в БД среднего размера.
- Объектно-ориентированная модель. Объектно-ориентированная БД используется для создания крупных БД со сложными структурами данных и объединяет в себе две модели: реляционную и сетевую. В них отдельные записи БД представляются в виде объектов. Между записями БД и соответствующими функциями их обработки устанавливаются взаимоотношения с помощью механизмов, подобных аналогичным в объектно-ориентированных языках программирования.
В силу того, что доступ к данным будет производиться средствами объектно-ориентированного языка программирования языка C#, в данной работе мы будем использовать объектно-ориентированную модель БД.
1.1. Механизмы доступа к данным
Существует несколько способов доступа к данным из средств разработки и клиентских приложений.
Подавляющее большинство систем управления базами данных содержит в своем составе библиотеки, предоставляющие специальный прикладной программный интерфейс (Application Programming Interface, API) для доступа к данным этой СУБД. Обычно такой интерфейс представляет собой набор функций, вызываемых из клиентского приложения. В случае настольных СУБД эти функции обеспечивают чтение/запись файлов базы данных, а в случае серверных СУБД инициируют передачу запросов серверу баз данных и получение от сервера результатов выполнения запросов или кодов ошибок, интерпретируемых клиентским приложением. Библиотеки, содержащие API для доступа к данным серверной СУБД, обычно входят в состав ее клиентского программного обеспечения, устанавливаемого на компьютерах, где функционируют клиентские приложения.
В последнее время Windows-версии клиентского программного обеспечения наиболее популярных серверных СУБД, в частности Microsoft SQL Server, Oracle, Informix, содержат также COM-серверы, предоставляющие объекты для доступа к данным и метаданным.
Использование клиентского API (или клиентских COM-объектов) является наиболее очевидным (и нередко самым эффективным с точки зрения производительности) способом манипуляции данными в приложении. Однако в этом случае созданное приложение сможет использовать данные только СУБД этого производителя, и замена ее на другую (например, с целью расширения хранилища данных или перехода в архитектуру <клиент-сервер>) повлечет за собой переписывание значительной части кода клиентского приложения - клиентские API и объектные модели не подчиняются никаким стандартам и различны для разных СУБД.
Другой
способ манипуляции данными в
приложении базируется на применении универсальных
механизмов доступа к данным. Универсальный
механизм доступа к данным обычно реализован
в виде библиотек и дополнительных модулей,
называемых драйверами или пров
Отметим, что достоинством универсальных механизмов является возможность применения одного и того же абстрактного API, а во многих случаях - COM-серверов, компонентов, классов для доступа к разным типам СУБД. Поэтому приложения, использующие универсальные механизмы доступа к данным, легко модифицировать, если необходима смена СУБД. При этом нередко модификация затрагивает не код приложения как таковой, а настройки доступа к данным, содержащиеся в реестре или внешних файлах. Однако за подобную универсальность порой приходится платить невозможностью доступа к уникальной функциональности, специфичной для конкретной СУБД, снижением производительности приложений, а также усложнением процедуры поставки приложения - ведь в его состав нужно включать библиотеки, ответственные за реализацию универсальных механизмов, драйверы для тех или иных СУБД, а также обеспечивать настройки, необходимые для их правильного функционирования.
Наиболее
популярными среди
- Open Database Connectivity (ODBC).
- OLE DB.
- ActiveX Data Objects (ADO).
- Borland Database Engine (BDE).
Универсальные механизмы ODBC, OLE DB и ADO фирмы Microsoft представляют собой по существу промышленные стандарты. Что касается механизма доступа к данным BDE фирмы Borland, то он так и не стал промышленным стандартом, однако до недавнего времени применялся довольно широко, так как до выхода Delphi 5 был практически единственным универсальным механизмом доступа к данным, поддерживаемым средствами разработки Borland на уровне компонентов и классов.
Наиболее часто используемые в приложениях способы доступа к данным.
В общем случае приложение, использующее базы данных, может применять следующие механизмы доступа к ним:
- Непосредственный вызов функций клиентского API (или обращение к COM-объектам клиентских библиотек).
- Вызов функций ODBC API (или применение классов, инкапсулирующих подобные вызовы).
- Непосредственное обращение к интерфейсам OLE DB.
- Применение ADO (или применение классов, инкапсулирующих обращение к объектам ADO).
- Применение ADO + OLE DB + ODBC.
- Применение BDE + SQL Links (или применение классов, инкапсулирующих обращение к функциям BDE).
- Применение BDE + ODBC Link + ODBC.
Помимо этих существуют и иные способы доступа к данным, обычно в той или иной степени, использующие перечисленные универсальные механизмы или непосредственно клиентские API.
1.2. OLE DB и ADO
OLE DB и ADO - часть универсального механизма доступа к данным Microsoft (Microsoft Universal Data Access), позволяющая осуществить доступ как к реляционным, так и к нереляционным источникам данных, таким как файловая система, данные электронной почты, многомерные хранилища данных и др.
Microsoft ActiveX Data Objects (ADO) - это набор библиотек, содержащих COM-объекты, реализующие прикладной программный интерфейс для доступа к таким данным и используемые в клиентских приложениях. ADO использует библиотеки OLE DB, предоставляющие низкоуровневый интерфейс для доступа к данным. OLE DB предоставляет доступ к данным с помощью COM-интерфейсов. Можно также использовать OLE DB непосредственно, минуя ADO.
Для доступа к источнику данных с помощью OLE DB требуется, чтобы на компьютере, где используется клиентское приложение, был установлен OLE DB-провайдер для данной СУБД. OLE DB-провайдер представляет собой DLL, загружаемую в адресное пространство клиентского приложения и используемую для доступа к источнику данных. Для каждого типа СУБД нужен собственный OLE DB-провайдер, так как эти провайдеры базируются на функциях клиентских API, разных для различных СУБД.
Среди OLE DB-провайдеров для разных источников данных имеется специальный провайдер Microsoft OLE DB Provider for ODBC Drivers. Этот провайдер использует не API клиентской части какой-либо СУБД, а интерфейс ODBC API, поэтому он применяется вместе с ODBC-драйвером для выбранной СУБД.
Отметим, что ADO становится все более популярным способом доступа к данным, так как входит в состав таких широко используемых продуктов, как Microsoft Office 2000 и Microsoft Internet Explorer 5.0, а также включен в ядро операционных систем семейства Windows 2000.
Глава 2. OLE DB
OLE DB представляет собой низкоуровневый программный интерфейс для доступа к различным источникам данных, таким как реляционные и нереляционные данные, текстовые, графические и географические данные, архивы электронных писем, файловая система, бизнес-объекты. Эти интерфейсы могут быть использованы в приложениях, предоставляющих доступ к данным.
2.1. Компоненты OLE DB
На самом верхнем уровне можно отметить три главных компонента OLE DB:
- потребители (consumers),
- провайдеры данных (data providers)
- сервисные компоненты (service components).
Любой компонент программного обеспечения, применяющий интерфейсы OLE DB, является потребителем. Это может быть какое-либо офисное приложение или иное бизнес-приложение, средство разработки типа Visual Basic, С++, С#, Delphi. Потребители могут обращаться к данным посредством ActiveX Data Objects, представляющих собой высокоуровневый интерфейс к OLE DB, или применять OLE DB непосредственно, используя OLE DB-провайдер.
Провайдер - это часть программного обеспечения, в которой реализованы интерфейсы OLE DB. С точки зрения OLE DB существуют два типа OLE DB-провайдеров - провайдеры данных и сервисные компоненты.
Провайдер данных - это компонент программного обеспечения, манипулирующий данными. Он располагается между потребителем данных и базой данных. В OLE DB все провайдеры представляют данные в табличном формате (аналогичном тому, в котором хранятся данные в реляционных СУБД и файлах электронных таблиц), в виде виртуальных таблиц. Провайдер данных выполняет следующие функции:
- получение от потребителя запросов на получение или модификацию данных;
- получение данных из базы данных или их модификацию в базе данных;
- возвращение данных потребителю.
Провайдер сервисов (или сервисный компонент) реализует расширенную функциональность, не поддерживаемую обычными провайдерами данных, например сортировку и фильтрацию данных, обработку транзакций и SQL-запросов, управление курсором и др. Сервисный компонент может обращаться к хранилищу данных непосредственно или с помощью соответствующего провайдера данных - в этом случае провайдер сервисов является одновременно и провайдером, и потребителем. Например, сервисные компоненты, такие как Microsoft Cursor Service for OLE DB и Microsoft Data Shaping Service for OLE DB, могут использоваться совместно с провайдерами данных OLE DB для расширения их функциональности.
На
рисунке 1 показано, как компоненты OLE
DB взаимодействуют между собой. Из рисунка
следует, что потребитель может получать
данные как непосредственно с помощью
провайдера данных, так и с использованием
сервисов, предоставляемых сервисными
компонентами.
Рисунок 1
2.2. Объекты OLE DB
Объектная модель OLE DB содержит четыре ключевых объекта:
- DataSource;
- Session;
- Command;
- Rowset.
2.2.1. Объект DataSource
Объект DataSource, применяемый потребителями данных для соединения с провайдером, может быть создан различными способами, включая вызов функции CoCreateInstance с идентификатором класса (CLSID, Class Identifier) OLE DB-провайдера, использование объекта Enumerator (см. ниже), который занимается поиском источников данных, и пр. Объект DataSource инкапсулирует информацию, связанную с соединением (включая имя пользователя и пароль). Основное назначение этого объекта - предоставлять данные из источника данных потребителю.
Для создания новой сессии (объект Session) потребитель должен вызвать метод CreateSession интерфейса IDBCreateSession объекта DataSource.
2.2.2. Объект Session
Объект Session предоставляет контекст для транзакций, может генерировать наборы данных (rowsets) из источников данных, а также команды для запросов к источнику данных. Объект Session может выполнять роль фабрики классов для объектов Command и Rowset (см. ниже) и объекта Transaction, применяемого для управления вложенными транзакциями. Объекты Command и Rowset могут быть использованы для создания или модификации таблиц и индексов. Интерфейс IOpenRowset используется потребителями данных для работы с отдельными таблицами и индексами в хранилище данных.
С одним объектом DataSource может быть связано несколько объектов Session.
Если OLE DB-провайдер поддерживает команды или запросы, он должен уметь порождать объект Command. С одним объектом DataSource может быть связано несколько объектов Command. Для создания нового объекта Command применяется метод CreateCommand интерфейса IDBCreateCommand.
2.2.3. Объект Command
Объект Command используется для выполнения команд, представляющих собой строки, передаваемые от потребителя данных объекту Data Source для выполнения. В большинстве случаев такая команда представляет собой SQL-предложение SELECT, однако в общем случае это может быть любое другое SQL-предложение (например, DDL-предложение). Команды могут содержать параметры - в этом случае применяется интерфейс ICommandWithParameters. Одна сессия может порождать несколько команд. Результатом выполнения команды (с помощью метода Execute интерфейса ICommand) обычно является новый объект Rowset.
2.2.4. Объект Rowset
Объект Rowset (набор данных) позволяет OLE DB-провайдеру данных представлять данные из источников данных в табличном формате, то есть в виде набора строк, содержащих одну или несколько колонок. Этот объект может быть результатом выполнения команды или может быть сгенерирован непосредственно провайдером данных, если провайдер не поддерживает команд. Все провайдеры данных <умеют> создавать наборы данных напрямую. Объект Rowset может быть также использован для обновления, добавления или удаления строк - это зависит от функциональности провайдера данных.
С помощью интерфейса IRowset из объекта Rowset потребители могут перемещаться по набору данных вперед и, если набор данных позволяет, назад. Некоторые провайдеры могут предоставлять дополнительные функции наподобие непосредственного доступа или определения примерной позиции данной строки в наборе.
Частным случаем объекта Rowset является объект Index, предоставляющий набор строк, использующий соответствующий индекс для получения набора данных в упорядоченном виде.
Существуют также специальные объекты типа Rowset - schema rowsets, содержащие метаданные (то есть сведения о структуре данных), и view rowsets, содержащие подмножество строк и столбцов объекта Rowset.
Помимо четырех основных объектов, перечисленных выше, существуют и другие объекты OLE DB. Они нужны для перечисления источников данных, управления транзакциями, обработки ошибок и др. Некоторые из них мы рассмотрим ниже.
2.2.5. Объект Enumerator
Объект Enumerator необходим для получения списка доступных объектов, обеспечивающих доступ к источникам данных (OLE DB-провайдеров). Этот объект используется потребителями данных для поиска соответствующих объектов. В большинстве случаев сведения, возвращаемые объектом Enumerator, извлекаются из системного реестра. Этот объект реализует интерфейс ISourceRowset и возвращает объект Rowset с описанием всех источников данных и других доступных с его помощью объектов Enumerator. Для этой цели используется метод GetSourcesRowset интерфейса ISourceRowset.
2.2.6. Объект Transaction
Объект Transaction поддерживает транзакции в источнике данных. Транзакции, как мы уже знаем из первой статьи данного цикла, позволяют определить группу операций, которые либо все вместе выполняются, либо все вместе отменяются.
Транзакции бывают локальными и распределенными. Локальные транзакции - это транзакции, выполняемые в контексте единого провайдера данных. Провайдер, поддерживающий локальные транзакции, должен реализовать интерфейс ITransactionLocal. Транзакция начинается с вызова метода StartTransaction, завершается с помощью метода Commit или откатывается с помощью Abort. Способность провайдера поддерживать транзакции может быть определена с помощью интерфейса IDBProperties.
Распределенные транзакции выполняются в контексте нескольких провайдеров данных. Для выполнения таких транзакций потребители используют интерфейс TtransactionJoin, доступный только если провайдер данных поддерживает распределенные транзакции. В этом случае потребитель вызывает метод JoinTransaction для регистрации сессии в распределенной транзакции. После присоединения к распределенной транзакции потребитель использует интерфейс ITransaction для завершения или отката транзакции.
Глава 3. Описание работы
- База данных
При работе над данной курсовой работой была создана многофункциональная программа, работающая с базой данных «People».
Данная база содержит таблицу «PERSONS» состоящую из следующих полей:
| Поле | Описание |
| ID | Порядковый номер |
| FIRSTNAME | Имя |
| MIDDLENAME | Отчество |
| LASTNAME | Фамилия |
| ADDRESS | Адрес |
| AGE | Возраст |
Следует отметить, что для обеспечения правильности работы программы, поле «ID» было задано как ключевое.
Данная
программа позволяет
- Выбор языка и среды программирования
Данная программа написана в среде программирования Visual Studio 2010 на языке C#. Выбранная среда содержит богатый набор различных типов данных и компонентов, облегчающих создание программного продукта под MS Windows.

- Базы данных в интернете
- Базы данных в СУБД ACCESS
- Базы данных "Выставочный комплекс" Visual FoxPro
- Базы Данных "Гостиница"
- Базы данных для гостиницы
- Базы данных для информационной системе
- Базы данных для кинотеатров
- Базы данных MySQL
- Базы данных Oracle Power Objects
- Базы данных. Аптека
- Базы данных (БД) и системы управления базами данных (СУБД)
- Базы данных - библиотека
- Базы данных в Excel
- Базы данных в Microsoft Access