Разработка переносимого графического интерфейса пользователя для работы со встраиваемой реляционной БД на примере СУБД SQLite

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

чках) данных, а другая часть получается из полей на форме, которую должен заполнить пользователь. После этого сформированный запрос отправляется в основной класс приложения, а из него в класс провайдера к СУБД.

Полный код класса NewTable находится в Приложении 1.

 

 

3.Представление реляционной БД в виде иерархической структуры (XML-файла)

 

.1.Иерархическая модель данных

 

Выше была описана реляционная модель данных. Но она не является единственной возможной моделью представления данных, а так же реляционные БД не являются единственными, хотя они и самые популярные и распространенные. Другой достаточно популярной моделью представления данных, в некоторых случаях более выгодной и удобной, является иерархическая модель данных. Смысл её заключается в том, что в БД задан набор объектов, имеющих ряд атрибутов и какое-то значении. Между объектами существуют связи, каждый объект может содержать в себе несколько объектов более низкого уровня (они являются значением этого объекта). Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку, при этом возможна ситуация, когда объект-предок не имеет потомков или имеет их несколько, тогда как у объекта-потомка обязательно только один предок. Объекты, имеющие общего предка, называются близнецами (сестринскими объектами).

 

.2.Формат данных - XML

- это описанная в текстовом формате иерархическая структура, предназначенная для хранения любых данных. Данный формат является универсальным и крайне распространенным, используется во многих отраслях - от компьютерных игр до автоматизации работы производственного оборудования. Визуально структура может быть представлена как дерево элементов. Элементы XML описываются тегами.

Синтаксис:

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

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

атрибут - пара имя-значение, добавляемое в открывающий тег после названия элемента;

важнейшее обязательное требование заключается в том, что документ имеет только один корневой элемент (англ. root element);

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

 

.3.Представление РБД в виде XML (решение задачи 2, часть 1)

 

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

Разработанный механизм генерирует дерево:

корнем которого является БД (имя БД, кол-во таблиц);

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

дочерними элементами второго уровня - строки;

дочерними элементами третьего уровня - ячейки (имя столбца, значение).

Далее это дерево отображается непосредственно во время работы приложения и сохраняется в XML-файл на жесткий диск после завершения работы. Такая схема дает общее представление об обрабатываемой БД, причем оно достаточно легко для понимания человеком.

 

.4.Технология LINQ, а именно - LINQ to XML (решение задачи 2, часть 2)

 

При реализации представления РБД в виде иерархической структуры была использована технология Microsoft LINQ и конкретно возможность работать с XML. С её помощью обработка данных, заданных в виде дерева значительно упрощается и становится намного более наглядной.

В ниже следующем методе происходит построение схемы БД. Используются простые SQL-запросы, экземпляры классов XDocument - предоставляет всю информацию об объекте, XElement - узел дерева (элемент в иерархической структуре) и метод SetAttributeValue - добавляет/изменяет значение атрибута.

 

///

/// Строит стуктуру БД в объект.

/// void BuildXDoc()

{

{= new XDocument(new XElement("DataBase"));.Root.SetAttributeValue("name", baseName);

tablesNames=SQLiteProvider.GetTablesNames(appPath);.Root.SetAttributeValue("tablesCount",tablesNames.Count);"> tablesNames = SQLiteProvider.GetTablesNames(appPath);.Root.SetAttributeValue("tablesCount", tablesNames.Count);

(string s in tablesNames)

{xEl1 = new XElement("Table");.SetAttributeValue("name", s);

= "SELECT * FROM " + s;[] drs = SQLiteProvider.Query(appPath, query);

.SetAttributeValue("columnsCount", drs[0].Table.Columns.Count);

(DataRow dr in drs)

{xEl2 = new XElement("Row");

i = 0;(object cell in dr.ItemArray)

{xEl3 = new XElement("Field");.SetAttributeValue("name", dr.Table.Columns[i].ColumnName);.SetAttributeValue("value", cell);++;.Add(xEl3);

}.Add(xEl2);

}.Root.Add(xEl1);

}

 

}

 

Пример XML-файла, полученного в результате обработки РБД можно увидеть в Приложении 3.

Заключение

 

Конечным результатом работы можно назвать разработанный и реализованный переносимый графический интерфейс пользователя для работы со встраиваемой реляционной БД на примере СУБД SQLite с возможностью составления схемы БД в виде дерева и сохранения его в XML-файл.

Данный интерфейс, хоть и далек от идеального, но реализует поставленные задачи:

1)организована работа с БД через графический интерфейс пользователя: создание нового, загрузка созданного файла БД; добавление новых таблиц в БД; чтение таблиц, полей т