
- •Системы оперативной обработки транзакций
- •Традиционные экспертные системы
- •Информационные хранилища
- •Многомерные базы данных
- •Системы оперативной аналитической обработки данных
- •Трактовка терминов: “Информационно-поисковая система”, “Информационно-справочная система”, ”База знаний”. Понятие поискового образа объекта ипс и связь его с базой данных.
- •Архитектуры приложений баз данных. Локальное приложение. Информационная система с архитектурой “файл - сервер”. Информационная система с архитектурой “клиент-сервер”.
- •Понятие о сервере баз данных. Общие сведения о sql-серверах на примере ms sql Server 2008. Понятие об администрировании сервером. Основные сведения об утилитах администрирования sql-сервером.
- •Архитектура ado.Net.
- •Общие сведения о подключении к данным в Visual Studio.
- •Строки подключения
- •Установка соединения посредством кода в ado.Net
- •Подключения на этапе разработки в обозревателе серверов/обозревателе баз данных
- •Уровни объектной модели ado.Net
- •Хранение данных в наборах данных. Создание набора данных
- •Взаимодействие с базой данных через объект DataSet
- •Общие сведения об адаптере таблиц
- •Общие сведения об объекте DataTableReader
- •Мастер настройки источников данных
- •Конструктор наборов данных
- •Связанные таблицы и объекты DataRelation
- •Заполнение набора данных
- •Редактирование данных в приложении
- •Общие сведения о сохранении данных
- •Представление объекта DataTable
- •Технология linq.
- •Введение в запросы linq.
- •Linq to sql. Создание проекта linq.
- •Linq to sql. Три части операции запроса.
- •Linq to sql. Синтаксис запроса и метода.
- •Linq to DataSet. Общие сведения о linq to DataSet.
- •Linq to DataSet. Запросы к одиночным таблицам.
- •Linq to DataSet. Универсальные методы Field и SetField.
- •Понятие метаданных и способы их представления в структурах данных. Основные сведения о представлении знаний. Сравнительное определение терминов “Знание” и “Информация”.
- •Нелинейные структуры данных. Общие понятия о деревьях.
- •Представление сетевых структур.
- •Методы реализации древовидных и сетевых структур в реляционных субд.
- •Дескрипторная компонента проектной среды поддержки принятия решений в сапр. Реализация дескрипторной компоненты средствами реляционных субд.
- •– 41. Классификационная компонента проектной среды принятия решений в сапр. Обоснование необходимости присутствия классификационной компоненты в информационных системах сапр.
- •Продукционная компонента проектной среды принятия решений в сапр.
- •Компонента структурных объектов проектной среды принятия решений в сапр. Общее понятие о методах реализации структурной компоненты в информационных системах сапр.
- •Представление инженерных знаний в форме информационно-логических таблиц (илт).
- •Справочные таблицы без условий. Реляционное представление справочных таблиц без условий.
- •Справочные таблицы с условиями. Реляционное представление справочных таблиц с условиями.
Конструктор наборов данных
Конструктор наборов данных представляет собой набор визуальных инструментов для создания и редактирования типизированных наборов данных и отдельных элементов, которые составляют набор данных.
Конструктор наборов данных обеспечивает визуальное представление объектов, содержащихся в типизированных наборах данных. С помощью Конструктора наборов данных можно создавать и изменять Адаптеры таблиц, Запросы адаптеров таблиц, DataTable, DataColumn и DataRelation.
Открытие набора данных в конструкторе наборов данных
Дважды щелкните набор данных (файл .xsd) в Обозревателе решений, чтобы открыть его в Конструкторе наборов данных.
либо
Выберите набор данных, который требуется открыть в окне Источники данных, щелкните правой кнопкой мыши и выберите Изменить набор данных с помощью конструктора. При добавлении нового элемента DataSet с помощью диалогового окна Добавление нового элемента откроется Конструктор наборов данных с пустым набором данных, готовым для редактирования.
Примечание. Конструктор наборов данных можно использовать для расширения функциональных возможностей набора данных. Дважды щелкните область конструктора или щелкните правой кнопкой мыши и выберите Просмотр кода, чтобы создать файл разделяемого класса, в который можно добавить код к набору данных, который не будет изменен или удален конструктором. Информация о расширении функциональных возможностей адаптера таблиц содержится в разделе Практическое руководство. Расширение функциональных возможностей адаптера таблицы.
Задачи, выполняемые конструктором наборов данных
Можно создавать наборы данных, добавляя и редактируя отдельные объекты, составляющие набор данных. В следующей таблице приводится объяснение различных объектов во вкладке Набор данныхПанели элементов, которые можно перемещать на поверхность конструктора:
Связанные таблицы и объекты DataRelation
Если в наборе данных имеется несколько таблиц, то данные, содержащиеся в них, могут быть взаимосвязаны.
Набор данных не имеет встроенных сведений о таких отношениях, поэтому для работы с данными в связанных таблицах необходимо создать объекты DataRelation, которые описывают отношения между таблицами в наборе данных.
Объекты DataRelation могут использоваться для программного извлечения дочерних записей для указанной родительской и наоборот. Если база данных содержит отношения между двумя и более таблицами, средства разработки автоматически создадут объекты DataRelation.
Отношения в наборах данных
Набор данных может содержать связанные таблицы, как реляционная база данных. DataRelation - это объект, упрощающий связь между таблицами данных. В следующих разделах содержатся сведения об объектах ADO.NET DataRelation, о процедуре их создания и об их использовании для работы с данными в связанных таблицах.
Наборы данных, содержащие связанные данные таблиц, используют объекты DataRelation для представления отношения подчинения между таблицами и возврата для каждой таблицы связанных записей из другой таблицы. При добавлении связанных таблиц в наборы данных с помощью Мастера настройки источника данных или Конструктора источников данных создается и настраивается объект DataRelation.
Объект DataRelation выполняет две функции:
Открывает доступ к записям, связанным с рабочей записью. Предоставляет дочерние записи при работе с родительскими (GetChildRows) и наоборот - предоставляет родительские записи при работе с дочерними (GetParentRow ).
Вводит ограничения для обеспечения целостности данных, например, удаление связанной дочерней записи при удалении родительской записи.
Важно понять разницу между реальным объединением и использованием функции объекта DataRelation.
При реальном объединении записи берутся из родительской и дочерней таблиц и помещаются в один плоский набор записей. При использовании объекта DataRelation новый набор записей не создается. Вместо этого отслеживаются отношения между таблицами и поддерживается синхронизация родительских и дочерних записей.
Отношения создаются соответствующими столбцами в родительской и дочерней таблице. Поэтому тип данных для обоих столбцов должно быть идентичным.
Отношения также могут передавать различные изменения из родительской DataRow в ее дочерние строки. Чтобы контролировать, как изменяются значения в дочерних строках, добавьте ограничение внешнего ключа (ForeignKeyConstraint) в коллекцию ConstraintCollection объекта DataTable. ForeignKeyConstraint определяет, какое действие выполнять при удалении или изменении значения в родительской таблице.
При создании DataRelation первым делом определяется, может ли быть создано отношение. После добавления в DataRelationCollection отношение поддерживается путем запрещения изменений, которые нарушат его. В период между созданием DataRelation и его добавлением в DataRelationCollection можно внести дополнительные изменения в родительские или дочерние строки. Исключение возникает, если это приводит к возникновению отношения, которое более не является допустимым.
Примечание. Если между двумя таблицами определена двунаправленная связь, может произойти порча данных. Двунаправленная связь состоит из двух объектов DataRelation, использующих одни и те же столбцы с перекрещивающимися ролями "родительский/дочерний". Исключение при сохранении объектов DataRelation не возникает; однако может произойти порча данных.
Объекты DataRelation содержатся в DataRelationCollection, доступ к которой возможен с помощью свойства Relations объекта DataSet и свойств ChildRelations и ParentRelations объекта DataTable.
Пример создания отношения
private void CreateRelation()
{
DataColumn parentColumn =
Borei.Tables["Suppliers"].Columns["CodeSuppliers"];
DataColumn childColumn =
Borei.Tables["Goods"].Columns["CodeGoods"];
DataRelation suppliersGoodsRelation;
suppliersGoodsRelation = new DataRelation("suppliersGoodsRelation",
parentColumn, childColumn);
Borei.Relations.Add(suppliersGoodsRelation);
}
Объекты DataRelation и ограничения
Объект DataRelation также используется для создания и введения следующих ограничений:
ограничение уникальности, которое гарантирует, что столбец таблицы не содержит дублирующихся значений;
ограничение внешнего ключа, которое может использоваться для поддержания целостности данных между родительской и дочерней таблицами в наборе данных.
Ограничения, заданные в объекте DataRelation, реализуются посредством автоматического создания соответствующих объектов или настройки свойств.
При создании ограничения внешнего ключа с помощью объекта DataRelation экземпляры класса ForeignKeyConstraint добавляются в свойство ChildKeyConstraint объекта DataRelation.
Ограничение уникальности реализуется либо присвоением свойству Unique столбца данных значения true, либо добавлением экземпляра класса UniqueConstraint в свойство ParentKeyConstraint объекта DataRelation.
Правила целостности данных
Отношения, используемые только для ограничений
При создании объекта DataRelation имеется возможность указать, что отношение будет использоваться только для введения ограничений. Это означает, что оно не будет использоваться для доступа к связанным записям. Это позволяет создавать несколько более эффективный набор данных, содержащий меньшее число методов, чем набор данных, в котором предусмотрена возможность использования связанных записей. Например, отношение, предусматривающее только ограничение, не позволяет удалять родительскую запись, имеющую дочерние записи, и при этом нельзя получить доступ к дочерним записям с помощью родительской.