
- •Тема 1 . Понятие о сервере баз данных. Общие сведения о sql-серверах на примере одного из: Oracle, MySql, ms sql Server. Понятие об администрировании сервером.
- •Тема 2. Понятие удалённого источника данных. Odbc протокол доступа к источникам данных. Модель ado доступа к источникам данных. Технология ado.Net.
- •Тема 3. Подключение к данным. Общие сведения о подключении к данным в базе данных. Создание подключений к базам данных ms sql Server. Создание подключений к базам данных ole db и odbc.
- •Создание подключений к базам данных oledb и odbc.
- •Источники данных odbc
- •Источники данных ole db
- •Альтернатива odbc - ole db провайдер.
- •Хранение данных в наборах данных
- •Конструктор наборов данных
- •Мастер конфигурации источников данных
- •Общие сведения о технологии linq
- •Тема 5. Выборка данных в приложение. Заполнение данными набора данных. Создание запросов TableAdapter. Изменение запросов TableAdapter. Создание классов linq to sql (реляционный конструктор объектов).
- •Для заполнения набора данных с помощью адаптера таблицы TableAdapter
- •Заполнение набора данных с помощью адаптера данных DataAdapter
- •Для заполнения набора данных с помощью адаптера данных DataAdapter
- •Создание запросов TableAdapter
- •Для редактирования запроса TableAdapter:
- •Создание классов linq to sql (реляционный конструктор объектов)
- •Для добавления файла linq to sql в проект
- •Тема 6. Отображение данных на форме приложения. Понятие Источника данных. Создание элементов управления для отображения данных из таблицы.
- •Чтобы создать инструкцию sql с помощью адаптера таблицы
- •Выполнение возвращающих строки инструкций sql с помощью объекта команд
- •Для выполнения возвращающей строки инструкции sql программными средствами с помощью объекта команды
- •Выполнение сохраненных процедур, возвращающих значения, при помощью адаптера таблиц
- •Для создания сохраненной процедуры, возвращающей значения с помощью TableAdapter:
- •Выполнение сохраненных процедур, возвращающих строки, с помощью командного объекта
- •Для выполнения сохраненной процедуры возвращения строк программными средствами с помощью объекта команды:
- •Выполнение сохраненных процедур, возвращающих одиночное значение, при помощью адаптера таблиц
- •Для выполнения сохраненной процедуры, возвращающей одиночное значение, с помощью адаптера таблиц:
- •Чтобы объявить экземпляр адаптера таблиц и выполнить запрос:
- •Тема 8. Сохранение изменений данных в базе данных. Общие сведения о сохранении данных. Обновление записей в базе данных. Вставка новых записей в базу данных.
- •10. Сравнительный анализ понятий: «Данные, знания, информация».
- •Тема 12. Экономико-математические методы исследований. Традиционные методы экономической статистики. Классические методы экономического анализа.
- •Тема 13. Операционный анализ. Одномерные задачи оптимизации. Линейное программирование. Математическое программирование. Динамическое программирование. Неопределённость целей.
- •Тема 15. Сетевые методы принятия решений. Алгоритм выбора самого дешёвого пути. Задача о максимальном потоке. Сетевые графики.
- •Тема 16. Имитационное моделирование. Основные этапы метода имитационного моделирования. Общая постановка задачи имитационного моделирования.
- •Тема 17. Эвристические методы принятия решений. Эвристические деревья решений. Табличное представление инженерных знаний. Формализация представления инженерных решений в форме информационных таблиц.
- •Нелинейные структуры данных. Общие понятия о деревьях.
- •Классификационная компонента проектной среды принятия решений в сапр. Обоснование необходимости присутствия классификационной компоненты в информационных системах сапр.
- •Компонента знаний
- •Тема 21. Информационно-логические таблицы (илт).
- •Тема 22. Сервер информационно-логических таблиц (силт). Архитектура силт. Сеть силт. Базы ресурсов силт. Интерфейсы удалённого доступа силт. Реализация модели распределённых знаний.
Хранение данных в наборах данных
Набор данных - это реляционное представление данных, которое в свою очередь может быть представлено в виде XML. Тесная связь между наборами данных и XML позволяет получить следующие преимущества:
Структура набора данных - его таблицы, столбцы, отношения и ограничения - может быть определена в виде схемы XML.
Как и в большинстве баз данных, наборы данных поддерживают ограничения в качестве способа обеспечения целостности данных
Как правило, в приложениях необходимо извлечь информацию из базы данных и выполнить с ней некоторые действия: показать пользователю на экране монитора, сделать нужные расчеты или послать данные в другой компонент. Очень часто, в приложении нужно обработать не одну запись, а их набор: список клиентов, перечень заказов, набор элементов заказа и т. п. Как правило, в приложениях требуется одновременная работа с более чем одной таблицей: клиенты и все их заказы; автор и все его книги, заказ и его элементы, т. е. с набором связанных данных. Причем для удобства пользователя данные требуется группировать и сортировать то по одному, то по другому признаку. При этом нерационально каждый раз возвращаться к исходной базе данных и заново считывать данные. Более практично работать с некой временной "вырезкой" информации, хранящейся в оперативной памяти компьютера.
Эту роль выполняет набор данных - DataSet, который представляет собой своеобразный кэш записей, извлеченных из базового источника. В отличие от традиционного Recordset, DataSet может состоять из одной или более таблиц, он имеет дело с копиями таблиц из базы данных источника.
Модель наборов данных имеет следующие преимущества:
Работа с несколькими таблицами. Набор данных может содержать несколько таблиц результатов, которые поддерживаются как отдельные объекты. Можно работать с отдельными таблицами или переходить от одной таблицы к другой, как от родительской к дочерней.
Работа с данными из нескольких внешних источников. В таблицах наборов данных могут одновременно содержаться данные из разных внешних источников (например, из разных баз данных, из файлов XML, электронных таблиц и т. д. - все в одном наборе данных). После того, как данные попадают в набор данных, можно управлять ими и устанавливать между ними связи в едином формате, как если бы они имели общий внешний источник.
Перемещение данных между уровнями в распределенном приложении. С помощью хранения данных в наборе данных можно легко перемещать их между уровнем представления, бизнес-уровнем и уровнем данных приложения.
Обмен данными с другими приложениями. Наборы данных позволяют реализовать эффективный способ обмена данными с другими компонентами приложения и с другими приложениями. Наборы данных включают широкую поддержку таких возможностей, как сериализация данных в формате XML, чтение и запись XML-схем.
Привязка данных. При работе с формами обычно проще привязывать элементы управления к данным из набора данных, чем программными средствами загружать значения данных в элементы управления после выполнения команды.
Сохранение данных для повторного использования. Наборы данных позволяют работать с одними и теме же записями несколько раз без повторного обращения к базе данных. С помощью определенных средств набора данных можно осуществлять сортировку и фильтрацию записей, а также использовать набор данных в качестве источника данных при подкачке.
Облегчение программирования. При работе с набором данных можно создать файл класса, предоставляющий структуру набора в виде объектов (например, к таблице Customers набора данных можно получить доступ как к объекту dataset.Customers). Это делает процесс программирования более простым, понятным и менее склонным к ошибкам. Все это поддерживается такими средствами Visual Studio, как IntelliSense, мастер настройки адаптеров данных и т. п.
Наборы данных могут быть типизированными или нетипизированными. Типизированные наборы данных получают свою схему (таблицу и структуру столбцов) из файлов XSD и проще программируются. В своих приложениях можно использовать как типизированные, так и нетипизированные наборы данных. Однако для поддержки типизированных наборов данных в Visual Studio предусмотрено больше инструментов, которые упрощают процесс программирования наборов данных и уменьшают вероятность возникновения ошибки.
Создать типизированный набор данных можно, запустив мастер Мастер конфигурации источников данных, или путем добавления элемента DataSet с помощью команды "Добавить новый элемент" в меню "Проект".
Типизированный набор данных извлекается из базового класса DataSet и затем использует сведения из Конструктора наборов данных, которые хранятся в XSD-файле, для создания нового строго типизированного класса набора данных. Сведения, указанные в схеме (таблицы, столбцы и т. д.), создаются и компилируются в этот новый класс набора данных как набор объектов и свойств первичного класса. Так как типизированные наборы данных наследуются от базового класса DataSet, типизированный класс обладает всеми функциональными возможностями класса DataSet и может использоваться с методами, принимающими экземпляр класса DataSet в качестве параметра.
Нетипизированный набор данных, в отличие от типизированного, не имеет соответствующей встроенной схемы. Как и типизированный набор данных, нетипизированный набор содержит такие структуры, как таблицы, столбцы и др., однако они доступны только как коллекции. (Однако после создания вручную таблиц и других элементов данных нетипизированного набора данных можно экспортировать структуру набора данных в качестве схемы с помощью метода WriteXmlSchema набора данных.)
Класс для типизированного набора данных имеет объектную модель, в которой его свойства принимают действительные имена таблиц и столбцов. Например, при работе с типизированными наборами данных можно ссылаться на столбцы с помощью следующего кода:
Типизированный доступ не только отличается большей удобочитаемостью, но и полностью поддерживается технологией IntelliSense в Редакторе кода Visual Studio. Помимо того, что с таким кодом проще работать, синтаксис для типизированного набора данных позволяет проверять типы во время компиляции, что существенно уменьшает вероятность ошибок при присвоении значений элементам набора данных. Если изменить имя столбца в DataSet и затем скомпилировать приложение, будет получена ошибка построения. Двойным щелчком клавишей мыши по ошибке построения в Списке задач можно перейти непосредственно к строке(-ам) кода, ссылающейся на старое имя столбца. Кроме того, доступ к таблицам и столбцам в типизированном наборе данных во время выполнения происходит несколько быстрее, так как доступ определяется на этапе компиляции, а не с помощью коллекций во время выполнения.
Хотя типизированные наборы данных обладают рядом преимуществ, во многих случаях целесообразно применять нетипизированные наборы. Самый очевидный сценарий - когда для набора данных нет доступной схемы. Такое может произойти, например, если приложение взаимодействует с компонентом, который возвращает набор данных, но при этом его структура заранее не известна. Иногда приходится работать с данными, не имеющими статической предопределенной структуры; в этом случае работать с типизированным набором данных нецелесообразно, так как приходится заново создавать класс типизированного набора данных при каждом изменении структуры данных.
Довольно часто приходится создавать наборы данных динамически, не имея доступной схемы. В этом случае набор данных является просто удобной структурой, в которой можно хранить данные до тех пор, пока они не будут представлены в виде реляционной структуры. В то же время можно использовать такие дополнительные возможности набора данных, как сериализация данных для передачи их в другой процесс или для сохранения в виде XML-файла.