Российский Государственный Технологический Университет им. К.Э. Циолковского
Опубликован: 02.03.2007 | Доступ: свободный | Студентов: 5678 / 802 | Оценка: 3.96 / 3.45 | Длительность: 27:04:00
ISBN: 978-5-9556-0086-4
Лекция 18:

Основы ADO .NET

< Лекция 17 || Лекция 18: 123456789101112
Аннотация: ADO .NET (ActiveX Data Objects .NET) является набором классов, реализующих программные интерфейсы для облегчения подключения к базам данных из приложения независимо от особенностей реализации конкретной системы управления базами данных и от структуры самой базы данных, а также независимо от места расположения этой самой базы — в частности, в распределенной среде (клиент-серверное приложение) на стороне сервера. Работу C# с ADO обсуждает данная лекция
Ключевые слова: ADO, net, activex data object, базы данных, приложение, ASP, множества, представление, ПО, СУБД, технологический процесс, поле, атрибут, запись, кортеж, таблица, первичный ключ, ключ, БД, информация, деятельность, доступ, Интернет, база данных, операции, объектная модель, visual, механизмы, время выполнения, отсоединенный объект, разделы, объект, тип данных, коллекция объектов, метаданные, Типы данных столбцов, диапазон, тип значений, сеанс, позиционирование, контроль, unchangeable, значение, класс, массив, сортировка, поиск, индекс, цикла, SQL, server, файл, локальное представление, интерфейс, производные, очередь, подмножество, открытый метод, метод класса, выделение подстроки, поставщик данных, провайдер, источник данных, TDS, состояние соединения, список, broken, транзакция базы данных, работ, меню, Data, database file, designer, пул, место, Размещение, OLE DB, вызов метода, параметр, NULL, schemata, связь, запрос изменения, data definition language, команда, data manipulation language, установка соединения с базой данных, переменная условия, выходные параметры, XmlReader, исполнение, параметризованная команда, параметр команды, шаблон, параметр хранимой процедуры, PARAMETER, согласование типов, Common Type System, индексатор, компонент, запрос, указатель, механизм доступа к данным, идентификатор, выборка, извлечение данных, adaptive configuration, последовательность операторов, поддержка, целостность, транзакция, ACID

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

ADO .NET широко используется совместно с технологией web-программирования с использованием объектов ASP .NET для доступа к расположенным на сервере базам данных со стороны клиента.

Особенность изложения материала этой главы заключается в следующем.

Решение даже самой простой задачи, связанной с данными, предполагает использование множества разнообразных объектов – представителей классов ADO .NET, которые находятся между собой в достаточно сложных взаимоотношениях. Из-за этих отношений строго последовательное описание элементов ADO .NET представляется весьма проблематичным. С какого бы элемента ни начиналось описание, всегда предполагается предварительное представление о множестве других элементов.

По этой причине часто упоминание и даже примеры использования некоторых классов предшествуют их подробному описанию.

Реляционные базы данных. Основные понятия

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

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

столбец (поле, атрибут) —

  • характеризуется определенным типом (данных),
  • множество значений столбца являются значениями одного типа;

строка (запись, кортеж) —

  • характеризуется кортежем атрибутов,
  • состоит из упорядоченного множества значений (кортежа) атрибутов;

таблица

  • набор данных, представляющих объекты определенного типа,
  • состоит из множества элементов столбцов-строк,
  • каждая строка таблицы УНИКАЛЬНА;

первичный ключ таблицы —

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

дополнительный ключ таблицы —

  • а бог его знает, зачем еще одна гарантия уникальности строки в таблице;

внешний ключ таблицы —

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

Работа с базами данных

Работа с БД на уровне приложения .NET – это работа:

  • с множествами объявлений классов, которые содержат объявления унаследованных методов и свойств, предназначенных для решения задачи извлечения информации из базы данных;
  • с множеством объектов-представителей классов, которые обеспечивают работу с базами данных;
  • с множеством значений и свойств конкретных объектов, отражающих специфику структуры конкретной базы данных.

Функциональные особенности этой сложной системы взаимодействующих классов обеспечивают ЕДИНООБРАЗНУЮ работу с базами данных независимо от системы управления базой и ее реализации.

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

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

Деятельность программиста – разработчика приложений для работы с базами данных в основе своей ничем не отличается от того, что было раньше. Те же объявления классов и интерфейсов.

А потому желательно:

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

Доступ к отсоединенным данным

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

Недостатки такого подхода стали выявляться после появления приложений, ориентированных на Интернет.

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

Факт плохого масштабирования приложений с постоянным соединением известен давно. Соединение с парой клиентов обслуживается приложением хорошо, 10 клиентов обслуживаются хуже, 100 – много хуже...

В ADO .NET используется другая модель доступа – доступ к отсоединенным данным. При этом соединение устанавливается лишь на то время, которое необходимо для проведения определенной операции над базой данных.

Модель доступа – модель компромиссная. В ряде случаев она проигрывает по производительности традиционной модели, и для этих случаев рекомендуется вместо ADO .NET использовать ADO.

< Лекция 17 || Лекция 18: 123456789101112
kewezok kewezok
kewezok kewezok
Елена Шляхт
Елена Шляхт
Объясните плиз в чем отличие а++ от ++а
Почему результат разный?
int a=0, b=0;
Console.WriteLine(a++); //0
Console.WriteLine(++b); //1
a++;
++b;
Console.WriteLine(a); //2
Console.WriteLine(b); //2