Главная » C# » Обращение к реляционной базе данных в Visual C# (Sharp)

0

Независимо от реализации базы данных, все они разделяют  общую  архитектуру (рис.  14.1).

Рис. 14.1. Общая архитектура баз данных

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

Слой ADO.NET представляет собой технологию, которая абстрагирует клиента бы данных в нейтральный набор интерфейсов. Сам по себе слой ADO.NET не реизует никаких технологий, но он определяет интерфейсы, требуемые базой даых. Слой ADO.NET похож на приложение управления освещением, рассматриваемое в главе 8, где конкретным реализациям элементов освещения нбходимо реализовать интерфейсы.

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

Среда Visual С# Express и другие варианты Visual Studio предоставляют несколько инструментов  для   генерирования   кода,   который   автоматически   привязывается к таблицам и строкам таблиц, уменьшая объем работы программиста. На рис. 14.1 стрелки от пользовательского кода указывают как на код, сгенерированный Visual Studio,  так  и  на  код  ADO.NET.  Это  означает,  что  использование  кода,  сгенери-

рованного Visual Studio, не  является  обязательным  для  пользовательского  кода. Но преимущество использования кода Visual Studio состоит в том, что он уменьшт объем тяжелой  монотонной работы,  выполняемой  пользовательским кодом. Сгенерированный Visual Studio код представляет собой тонкий слой функционалости поверх кода ADO.NET, который непосредственно соответствует манипулуемым таблицам.

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

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

•   Стратегия имен пользователей и паролей. Требование наличия хорошей стрегии для создания имен пользователей и соответствующих паролей нельзя недооценивать. Я рекомендую советоваться по этому вопросу с профессионалом в области компьютерной безопасности. Именно с профессионалом, а не с кеибо, кто знает кое-что о безопасности.

ПРИМЕЧАНИЕ

Для дополнительной информации о стратегиях безопасности см. статью "Resolving the ASP.NET Database Security Dilemma" ("Решение дилеммы безопасности баз данных ASP.NET") по адресу  http://www.eggheadcafe.com/articles/20021211.asp.  Для  понятия, что я имею в виду под "профессионал  в  компьютерной  безопасности",  посетите  Web- сайт Доминика  Бейлера  (Dominick  Baler)  по адресу http://www.leastprivilege.com.

•   Драйверы ADO.NET. При разработке кода ADO.NET вам будет нужен драйвер ADO.NET для каждой базы данных. Так, если вы используете сервер базы даых Microsoft SQL Server и хотите применять MySQL, то вам будет нужен драер для MySQL. Но в большей части код не изменится.

•   Абстракция. Код для доступа к разным реляционным  базам данных всегда бет различаться. Поэтому необходимо быть готовым абстрагировать код для роты с базой данных при прямом обращении к базе данных с  помощью ADO.NET.

Среда Visual Studio позволяет интегрировать любую реляционную базу данных, поддерживающую интерфейсы ADO.NET. Чтобы узнать, поддерживает ли коретная база данных ADO.NET, необходимо справиться у ее поставщика. Не слует принимать за должное, что все поставщики баз данных поддерживают ADO.NET.

Источник: Гросс  К. С# 2008:  Пер. с англ. — СПб.:  БХВ-Петербург, 2009. — 576 е.:  ил. — (Самоучитель)

По теме:

  • Комментарии