Организация интерфейса для работы с базами данных

Автор работы: Пользователь скрыл имя, 22 Ноября 2011 в 11:12, дипломная работа

Описание

Пояснительная записка на 47 страниц, 9 рисунков, 5 приложений.
БАЗА ДАННЫХ, INTERBASE, ГРАФИЧЕСКИЙ ИНТЕРФЕЙС, BORLAND C++ BUILDER.
В ходе проделанной работы были рассмотрены реляционные базы данных InterBase. Была изучена история их возникновения и кратко рассмотрены основы создания баз данных в программе IBAdmin.
Также была рассмотрена история возникновения объектно-ориентированного языка С++. На основе платформы Borland C++ Builder 6.0 был разработан графический интерфейс, который позволяет сцепляться с базами данных Inter Base, просматривать их содержимое, выполнять запросы, представлять данные в виде дерева (только для баз данных, содержащих таблицу с административным делением территориальных типов).
Данную работу можно использовать в качестве учебно-методического пособия для изучения реляционных баз данных IBAdmin и написания интерфейса для доступа к ним. Написанную программу можно использовать в качестве наглядного примера.

Содержание

ОБОЗНАЧЕНИЯ И СОКРАЩЕНИЯ 5
ВВЕДЕНИЕ 6
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 8
Историческая справка по базам данных 8
Реляционная база данных 11
Базы данных в IBAdmin 12
1.3.1. InterBase и область его применения 13
1.3.2. СУБД InterBase 14
1.3.3. Несколько слов о языке SQL 15
1.3.4. Типы данных, поддерживаемые Interbase 16
1.3.5. Домены 17
1.3.6. Генераторы, триггеры 17
1.3.7. Исключения 18
1.3.8. Управление доступом к данным в InterBase 19
Историческая справка по С++ 20
Основы визуального программирования интерфейса 22
2. ПРАКТИЧЕСКАЯ ЧАСТЬ 27
ЗАКЛЮЧЕНИЕ 39
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ 41
ПРИЛОЖЕНИЕ А 42

Работа состоит из  1 файл

ВКР.doc

— 1.26 Мб (Скачать документ)

       C++Builder позволяет очень быстро разрабатывать прикладные программы самого разного назначения и, прежде всего — программы для работы с базами данных. В этой области C++Builder занимает самые передовые позиции, работая с любыми системами управления базами данных.

       В целом C++Builder — великолепный инструмент, как для начинающих программистов, так и для ассов программирования.  
 

       
  1. ПРАКТИЧЕСКАЯ  ЧАСТЬ

       Мною  была написана программа для работы с реляционными базами данных InterBase.

       Рассмотрим  более подробно структуру программы.

       Форма – главное окно программы. Оно содержит строку заголовка, в котором отображается название формы и кнопки управления окном.  На поле этого окна помещаются VCL компоненты в виде программных кнопок, надписей и других элементов программы

       Программа состоит из 5 форм:

  • главное окно программы представлено формой Form_DB_Props;
  • форма FormDetail – «Свойства таблицы»;
  • форма FormPassword – для ввода пароля при изменении;
  • форма FormQuery – позволяет писать SQL-запросы;
  • форма Notebook – «Записная книжка».

       Основные  компоненты, используемые в программе:

  • MainMenu – компонент, представляющий меню. Невизуальный компонент. Пользователь увидит лишь меню, сгенерированное им. Основное событие объекта OnClick, возникающее при щелчке пользователя на разделе  (Соединение с БД, Окно запросов, Записная книжка). 
  • PopupMenu – контекстное всплывающее меню. Привязано к конкретным объектам. Оно всплывает, если во время, когда данный компонент в фокусе, пользователь щелкнет правой кнопкой мыши. Событие, используемое в программе – OnClick.
  • IBDataBase – обеспечивает соединение с базой данных InterBase.
  • DataSource – компонент – источник данных, осуществляющий обмен информацией между компонентам, которые являются наборами данных, непосредственно связывающиеся с БД (Table, Query и т.д.) и компонентами визуализации и управления данными.
  • IBTable – компонент, используемый для к одной таблице набора данных.
  • IBTransaction – позволяет организовывать транзакции.
  • IBQuery – позволяет общаться с БД на языке SQL.
  • RadioGroup – радиокнопки образуют группы взаимосвязанных индикаторов, из которых обычно может быть выбран только один. Они используются для выбора пользователем одной из нескольких взаимоисключающих альтернатив, в моем случае, для выбора вида таблиц. Событие, используемое в программе – OnClick.
  • Button – кнопка, у которой применяется событие OnClick.
  • DBGrid – компонент визуализации и управления данными. Данным компонентом представлен список выбранных таблиц. Имена таблиц с префиксом RDB$ указывают на то, что данная таблица является системной. Еще один элемент, представленный компонентом DBGrid, показывает все имеющиеся поля таблицы и хранимые в них данные.

       Логической  мы ее назовем потому, что связи  таблиц, представленные на схеме, не являются физическими (не существует соответствующих RELATION CONSTRAINTS), в данном случае эти связи отображают логическое отношение данных, допускающее, например, наличие записей в таблице MON$STATEMENTS, имеющих MON$TRANSACTION_ID = NULL, появляющихся при подключении клиентских приложений, использующих fbclient.dll (gds32.dll) версии ниже, чем 2.1.

  • DBMemo – связанный с данными аналог обычного многострочного окна редактирования Memo. Он позволяет отображать и редактировать данные поля типа Memo (редактирование многострочного текста), а также данные следующих типов: строка, число, булева величина.
  • TreeView – служит для отображения иерархических данных в виде дерева, в котором пользователь может выбрать нужный ему узел или узлы. На данной форме используется для отображения имен полей таблицы, а также длины в байтах и типа.
  • OpenDialog – диалог «Открыть файл». Позволяет открыть нужную БД. При активации данного компонента перед пользователем появляется.
  • Lable – служит для отображения надписей. 
  • Edit – окно редактирования. Но данное окно может служить и просто для отображения текста. В данном случае он отображает путь доступа к таблице.

       События, используемые в программе:

       OnClick – наступает, если пользователь нажал и отпустил левую кнопку мыши в то время, когда указатель мыши находился на компоненте.

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

       OnChange - наступает, когда может быть изменился текст в окне редактирования. В момент обработки события свойство Text равно новому значению текста. Определить, изменен ли в действительности текст, можно по значению свойства Modified, получающему значение true, если текст изменен.

       OnDataChange (например, DataSource) - происходит при каждом переходе на новую запись в наборе данных, в том числе при его открытии, а также при модификации значения поля при переходе к другому полю (например, в сетке). Если запись модифицирована не была, то при переходе к другой записи аргумент Field будет иметь значение NULL. To же значение аргумент Field будет иметь, если были изменены значения сразу нескольких полей. Однако это возможно только при модификации программным путем. Использовать это событие можно, например, для изменения значений элементов управления, не связанных с набором данных, для обновления других открытых в данный момент окон приложения и для прочих подобных действий.

       OnCellClick (событие компонента TDBGrid) — происходит при щелчке левой клавишей мышки на ячейке, не содержащей фокус ввода. Точнее, событие происходит в момент, когда пользователь отпускает левую клавишу мышки. Если щелчок был произведен на выбранной ячейке, событие не произойдет. Скорее всего, при этом ячейка (сетка) перейдет в режим редактирования (это зависит от настройки сетки). Обработчик события OnCellClick получает аргумент — Column типа TColumn. Аргумент Column ссылается на столбец, содержащий ячейку, на которой был произведен щелчок.

       OnShow (используется только дл формы) – возникает, когда форма появляется на экране (то есть когда ее свойство Visible принимает значение True .

       OnPopup – возникает перед появлением меню на экране. Его полезно использовать для установки свойств Checked, Enabled или Visible конкретных опций меню.

  1. Главное окно программы представлено формой Form_DB_Props.

       На  данной форме при нажатии кнопки Соединение с БД появляется окно, в котором необходимо выбрать БД (компонент OpenDialog), с которой нужно соединиться.

       

       Рис. 1  Соединение с базой данных 

       Путь  к данной БД отображен в компоненте Edit.

       

       Рис. 2 Вид окна программы при подключенной базе данных

       Компонент RadioGroup (выбор таблиц) позволяет выбрать, какие из таблиц будут показаны:

  • Клиентские – созданные пользователем;
  • Системные таблицы.   Системные таблицы InterBase содержат метаданные базы данных. Они создаются автоматически сервером InterBase при создании базы данных и изменяются всякий раз, когда выполняются команды, изменяющие структуру данных. Информация, содержащаяся в этих таблицах и описывающая таблицы, их поля, домены, триггеры и многое другое, доступна для прикладного программиста на основе обычных SQL запросов и весьма полезна.
  • Все таблицы БД.

       Список  клиентских таблиц, представленный компонентом DBGrid, показывает выбранный список таблиц используемой БД. Имена таблиц с префиксом RDB$ указывают на то, что данная таблица является системной.

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

       

       Рис.  3 Вид окна программы с выбранной пользовательской таблицей 

       Memo – окно редактирования многострочного текста.

  1. Форма FormDetail – «Свойства таблицы». Вызывается посредством нажатия правой кнопки в области данных выбранной таблицы и выбора подменю Подробнее о свойствах (компонент PopupMenu).

           Рис. 4 Переход к окну «Свойства таблицы»

       В окне «Свойства таблицы» в заголовке отображается имя выбранной таблицы. В области, представленной компонентом Memo, выдается информация об используемых для данной таблицы триггерах, а именно: имя, тип (активный, пассивный/ до, после/ удаления, вставки, модификации), позиция и код триггера. 

       

       Рис. 5 Окно «Свойства таблицы» 
 
 
 
 
 
 
 
 
 
 
 

       
  1. Форма FormPassword.

       

       Рис. 6 Вид окна программы при попытке удаления данных 

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

       

       Рис. 7 Выбор меню Очистить таблицу 

       
  1. Форма FormQuery – позволяет писать SQL-запросы.

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

       

       Рис.8 Вид программы с активным окном запросов 

       
  1. Форма Notebook – «Записная книжка». Представляет иерархические  данные в виде дерева. Используется только для таблицы Addr_objects – представляет географические объекты по административному делению.

       

       Рис. 9 Представление данных в  виде дерева 

       Данный  софт позволяет импортировать данные из таблицы одной БД в подобную таблицу другой БД.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       ЗАКЛЮЧЕНИЕ

       На  сегодняшний день существует множество  программ, позволяющих работать с базами данных. И все они имеют как преимущества, так и недостатки. К преимуществам моего софта можно отнести следующие:

  1. достаточно простой интерфейс;
  2. мобилен, не нужна установка на компьютер, можно открыть его с любого носителя;
  3. данный софт был бы достаточно удобен для администрирования баз данных, так как:
  • показывает как клиентские, так и системные таблицы и связи между ними;
  • позволяет просмотреть все триггеры;
  • показывает свойства всех полей выбранной таблицы;
  • не дает пользователю возможности копировать данные и удалять таблицы без ввода пароля, что позволяет защитить целостность  данных рассматриваемой БД.
  1. для обычных пользователей данный софт интересен следующим:
  • представление данных в виде таблицы и более наглядно - в виде дерева   (правда на данный момент только для таблиц одного типа);
  • возможность исполнения SQL - запросов.

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

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

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

Информация о работе Организация интерфейса для работы с базами данных