Разработка базы данных

Разработка удаленной базы данных и приложения-клиента для доступа к электронным источникам литературы, содержащихся на жестком диске сервера предприятия в виде упакованных архивов файлов и пакетов файлов. Реляционное исчисление доменов. Средства Delphi.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 24.03.2011
Размер файла 2,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

Отношение R находится в нормальной форме Бойса-Кодда (BCNF) в том и только в том случае, если каждый детерминант является возможным ключом.

В отношении R (A, B, C) существует многозначная зависимость R.A ?(r)? (r)? R.B в том и только в том случае, если множество значений B, соответствующее паре значений A и C, зависит только от A и не зависит от С.

Легко показать, что в общем случае в отношении R (A, B, C) существует многозначная зависимость R.A ?(r)? (r)? R.B в том и только в том случае, когда существует многозначная зависимость R.A (r)? (r)? R.C.

Теорема Фейджина. Отношение R (A, B, C) можно спроецировать без потерь в отношения R1 (A, B) и R2 (A, C) в том и только в том случае, когда существует MVD A ?(r)? (r)? B | C.

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

Отношение R находится в четвертой нормальной форме (4NF) в том и только в том случае, если в случае существования многозначной зависимости A ?(r)? (r)? B все остальные атрибуты R функционально зависят от A.

Отношение R (X, Y, ..., Z) удовлетворяет зависимости соединения * (X, Y, ..., Z) в том и только в том случае, когда R восстанавливается без потерь путем соединения своих проекций на X, Y, ..., Z.

Отношение R находится в пятой нормальной форме (нормальной форме проекции-соединения - PJ/NF) в том и только в том случае, когда любая зависимость соединения в R следует из существования некоторого возможного ключа в R.

Пятая нормальная форма - это последняя нормальная форма, которую можно получить путем декомпозиции. Ее условия достаточно нетривиальны, и на практике 5NF не используется. Заметим, что зависимость соединения является обобщением как многозначной зависимости, так и функциональной зависимости.

4. РАЗРАБОТКА БАЗЫ ДАННЫХ

4.1 Предметная область базы данных

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

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

1) автор (фамилия и имена (инициалы) или псевдоним каждого автора источника литературы);

2) название (заглавие) источника литературы;

3) язык, на котором написан источник;

4) список тем (разделов), с которыми связан данный источник литературы.

К объектам и атрибутам, позволяющим охарактеризовать место расположение файлов источников, можно отнести:

1) полное файловое имя (путь и имя файла) архива источника литературы;

2) название основного (первого) файла источника литературы.

4.2 Построение инфологической модели

Анализ определенных выше объектов и атрибутов позволяет выделить сущности проектируемой базы данных и, приняв решение о создании реляционной базы данных, построить ее инфологическую модель на языке "Таблицы-связи" (рис. 4.1). Для того, чтобы БД сохраняла целостность при любых операциях над ней (вставка, удаление, изменение кортежей), все отношения в ней нормализованы (БД приведена к третей нормальной форме).

Выделены следующие сущности:

1) “Авторы” (“Код автора”, “Автор”) - эта сущность отводится для хранения сведений об авторах литературных источников. Так как фамилия и имена (инициалы) автора (группы авторов) могут быть достаточно громоздкими и будут многократно встречаться в разных источниках, то их целесообразно нумеровать и ссылаться на эти номера. Для этого вводится целочисленный атрибут "Код автора", который будет автоматически наращиваться на единицу при вводе в базу данных нового автора. Самой же информации об авторе соответствует атрибут “Автор”.

2) “Заглавия” (“Код заглавия”, “Заглавие”). Выделение этой сущности позволит сократить объем данных и снизить вероятность возникновения противоречивости. Как и сущность “Авторы”, данная сущность характеризуется двумя атрибутами - целочисленным "Код заглавия", который будет автоматически наращиваться на единицу при вводе в базу данных нового заглавия и “Заглавие”, непосредственно отражающий заглавие источника литературы.

3) “Языки” (“Код языка”, “Язык”) - эта сущность отражает информацию об языке, на котором написан источник литературы. Данная сущность также включает в себя два атрибута: “Код языка” - целочисленный автоматически увеличивающийся и “Язык” -название языка источника литературы.

4) “Книги” (“Код книги”, “Код автора”, “Код заглавия”, “Код языка”, “Темы”, “Архив”, “Файл”) - эта сущность отражает информацию о конкретных источниках литературы.

Рисунок 4.1 Инфологическая модель БД

4.3 Проектирование базы данных

Для физической реализации БД использовалась СУБД InterBase версии 6.0. Эта СУБД была выбрана по ряду причин:

1) поддержка данной СУБД реляционных и распределённых баз данных;

2) высокая надёжность;

3) наличие реализации СУБД для ОС Linux (кроссплатформенность продукта);

4) соответствие встроенного языка SQL стандарту ANSI SQL-92;

5) малые требования к дисковому пространству и памяти;

6) свободное распространение СУБД в открытых кодах.

Полный листинг кода создания БД на языке SQL (встроенный в InterBase) находится в приложении 20. Поэтапно рассмотрим физическую реализацию БД. Зададим 3 диалект БД и русскую кодировку символов WIN1251. Создаём пустую БД от лица суперпользователя SYSDBA со стандартным паролем “masterkey”. Размер страница БД установлен равным размеру кластера в файловой системе NTFS 4048 байт. Для удаления из строк пробелов и преобразования строк к верхнему регистру были декларированы внешние функции Upper и Trim. Они реализованы на языке программирования Delphi и физически расположены в динамически связуемой библиотеке (DLL) Str.dll.

Каждая из полученных сущностей должна быть представлена базовой таблицей:

Таблица Authors - информация об авторах источников, состоящая из следующих полей:

1) NumAut - числовое автоинкрементное поле, содержащее номер автора и являющееся ключевым полем отношения;

2) Author - строковое поле, содержащее фамилию и инициалы автора (группы авторов), являющееся уникальным.

Таблица Titles - информация об названиях источников состоящая из следующих полей:

1) NumTit - числовое автоинкрементное поле, содержащее номер заглавия и являющееся ключевым полем отношения;

2) Titles - строковое поле, содержащее название источника и являющееся уникальным.

Таблица Languages - языки источников, состоящая из следующих полей:

1) NumLan - числовое автоинкрементное поле, содержащее номер языка и являющееся ключевым полем отношения;

2) Language - строковое поле, содержащее язык источника и являющееся уникальным полем.

Таблица Books - информация об источниках литературы, состоящая из следующих полей:

1) NumBook - числовое автоинкрементное поле, содержащее номер книги и являющееся ключевым полем отношения;

2) NumAut - числовое поле, содержащее код (номер) автора в таблице Authors;

3) NumTit - числовое поле, содержащее код (номер) названия в таблице Titles;

4) NumLan - числовое поле, содержащее код (номер) языка в таблице Languages;

5) Sections - текстовое (мемо) поле, содержащее список тем, связанных с источником;

6) Atchive - строковое поле, содержащее полное файловое имя архива источника;

7) MainFile - строковое поле, содержащее имя главного файла источника.

Таблица Books связана с таблицами Authors, Titles, Languages типом связи “один-ко-многим” посредством внешних ключей NumAut, NumTit и NumLan.

Создаём таблицу Authors с непустыми полями NumAut типа INTEGER и Author типа VARCHAR длиной 50 символов, поле NumAut является первичным ключом, а Author уникальным полем. Аналагично создаём таблицу Titles с непустыми полями NumTit типа INTEGER и Title типа VARCHAR длиной 200 символов, поле NumTit является первичным ключом, а Title уникальным полем. Также создаём таблицу Languages с непустыми полями NumLan типа INTEGER и Language типа VARCHAR длиной 20 символов, поле NumLan является первичным ключом, а Language уникальным полем. Наконец создаём таблицу Books с полями NumLan - непустое поле типа INTEGER, являющееся первичным ключом таблицы; NumAut - поле типа INTEGER; NumTit - поле типа INTEGER; NumLan - поле типа SMALLINT; Sections - поле типа BLOB подтипа TEXT; Archive - непустое поле типа VARCHAR длиной 32765 байт и MainFile - непустое поле типа VARCHAR длиной 255 байт. Также на таблицу Books накладываются ограничения, посредством задания внешних ключей NumAut, NumTit и NumLan, которые связаны с аналогичными полями в таблицах Authors, Titles и Languages.

Для того, чтобы поля таблиц NumBook, NumAut, NumTit и NumLan автоматически увеличивались при добавлении новой записи необходимо задать создать генераторы. Назовём их GenBook, GenAut, GenTit и GenLan для соответственно. Для их увеличения созданы триггеры InsBook, InsAut, InsTit и InsLan, которые активизируются перед занесением новой записи в соответствующую таблицу и выполняют увеличение генераторов на единицу посредством вызова встроенной процедуры GEN_ID.

Создадим представление (VIEW), которое состоит из следующих полей Number, Author, Title, Language, Sections, Archive и File. Они являются результатом выборки следующих полей таблиц Books.NumBook, Authors.Author, Titles.Title, Languages.Language, Books.Sections, Books.Archive, Books.MainFile, при условии

Books.NumAut=Authors.NumAut AND

Books.NumTit=Titles.NumTit AND

Books.NumLan=Languages.NumLan.

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

Для добавления, изменения и удаления записей из таблиц БД и других целей предусмотрены ряд хранимых процедур:

· DeleteAll - очистка всей БД (удаление всех записей во всех таблицах) и обнуление генераторов;

· DeleteBook - удаление заданного источника;

· InsertBook - вставка нового источника;

· SearchBook - поиск источника по заданным атрибутам с учётом регистра символов;

· SearchUpBook - поиск источника по заданным атрибутам без учёта регистра символов;

· UpdateAuthor - изменение автора источника;

· UpdateBook - изменение атрибутов источника;

· UpdateTilte - изменение названия источника;

· UpdateLanguage - изменение языка источника;

· IsWriter - проверка прав пользователя на изменение БД.

Для управления безопасностью БД созданы три роли:

· Admin - имеет права на любые действия с БД (чтение, изменение структуры и данных);

· Writer - имеет права на чтение и изменение данных БД, но не имеет прав на изменение структуры БД;

· Reader - имеет права только на чтение данных БД.

Эти роли, исходя из выше сказанного, наделены соответствующими правами на соответствующие таблицы и хранимые процедуры.

5. РАЗРАБОТКА ПРИЛОЖЕНИЯ-КЛИЕНТА

5.1 Обоснование выбора среды программирования

Разработка клиентского приложения осуществлялось на языке Delphi (ранее Object Pascal) в среде программирования Borland Delphi 7.0 Enterprise Edition.

Сформулируем основные критерии, по которым производился выбор среды программирования для создания приложения.

Создание максимально возможного удобства в работе. Для этого программа должна иметь удобный и современный интерфейс пользователя.

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

Поддержка длинных имен файлов.

Минимальные затраты на разработку модуля.

Максимальная переносимость исходного кода программы для платформы Linux.

В ходе последующего анализа имеющихся средств программирования на основании перечисленных критериев был выбран вариант написания данного модуля с использованием системы визуального программирования Borland Delphi 7.0. Данное заключение основывалось на следующем.

Среда визуального программирования Delphi 7.0 работает в среде Windows 9x/NT/2000/XP и предоставляет программисту возможность реализации всех достоинств графического интерфейса этой системы. Так как подавляющее большинство пользователей персональных компьютеров работают сегодня в среде операционных систем семейства Windows, то этот интерфейс является для них наиболее привычным и удобным.

Многие системы разработки приложений для ОС Windows генерируют код-полуфабрикат, который не может быть выполнен процессором без дополнительной трансляции во время работы самой программы, что существенно снижает производительность компьютера. Delphi же использует настоящий компилятор и компоновщик и генерирует стопроцентный машинный код. Такая реализация лишена непроизводительных затрат, что делает программы, написанные на Delphi, максимально эффективными.

Так как Delphi 7.0 является средой программирования для Windows, то, как и сама операционная система Delphi поддерживает длинные имена файлов и папок.

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

Среда визуального программирования Delphi 7.0 является мощным средством для быстрой и качественной разработки программ для операционной системы Windows 95. Имеющаяся библиотека визуальных компонентов позволяет создать интерфейс с пользователем за считанные минуты. Объектно-ориентированный язык Object Pascal, положенный в основу Delphi, является расширением языков Turbo Pascal и Borland Pascal фирмы Borland и нашел в себе отражение новых веяний в программировании. Компонентный принцип, используемый в Delphi, позволяет создавать полноценные Windows-приложения, написав минимальное количество строк кода. Delphi представляет собой открытую систему, позволяя добавлять свои компоненты в систему, модифицировать уже имеющиеся стандартные компоненты благодаря тому, что предоставлены их исходные тексты. Благодаря всему этому разработка программ в среде Delphi становится легкой и приятной.

Также, вследствие того, что большинство компонентов Delphi 7.0 идентично компонентам Kylix, то переход под платформу Linux будет занимать минимально возможное время.

Таким образом, выбранная платформа, как было показано выше, удовлетворяет поставленным требованиям, поэтому выбор был остановлен на данной системе программирования.

5.2 Средства Delphi для работы с базами данных

Хотя Delphi не имеет своего формата таблиц БД, она тем не мене обеспечивает мощную поддержку различных СУБД - как локальных (например, dBase или Paradox), так и промышленных (например, Sybase или InterBase). Средства Delphi для работы с БД можно разделить на три вида:

1) инструментальные средства;

2) компоненты.

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

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

1) Borland Database Engine (BDE) - процессор баз данных, который представляет собой набор динамических библиотек и драйверов, предназначенных для организации доступа к БД из Delphi-приложений. BDE является центральным звеном при организации доступа к данным.

2) BDE Administrator - утилита для настройки различных параметров BDE.

3) Database Desktop - программа создания и редактирования таблиц, SQL- запросов и запросов QBE.

4) SQL Explorer - проводник БД, позволяющий просматривать и редактировать БД и словари данных.

5) SQL Builder - программа визуального конструирования SQL-запросов.

6) SQL Monitor - программа отслеживания порядка выполнения SQL-запросов к удалённым БД.

7) Data Pump - программа для переноса данных между БД.

8) IBConsole - программа для управления удалёнными БД.

9) InterBase Sever Manager - программа для запуска сервера InterBase.

10) SQL Links - драйверы для доступа к удалённым промышленным СУБД, таким как Microsoft SQL Server или Oracle. К промышленному серверу InterBase, который поставляется совместно с Delphi и является для него родным, доступ также можно организовать напрямую через BDE, не используя драйверы SQL-Links.

11) dbExpress - набор драйверов для доступа к базам данных SQL с помощью таких компонентов, как SQLConnection, SQLDataSet, SQLQuery, SQLStoredProc и SQLTable. dbExpress включает в свой состав следующие драйверы:

· InterBase - DBEXPINT.DLL;

· DB2 - DBEXPDB2.DLL;

· Oracle - DBEXPORA.DLL;

· MySQL - DBEXPMYS.DLL.

12) InterBase Server - клиентская и серверная часть SQL.

Компоненты, предназначенные для работы с БД, находятся на страницах Data Access, Data Control, dbExpress, BDE, ADO, Decision Cube, QReport и InterBase палитры компонентов. Некоторые компоненты предназначены специально для работы с удалёнными БД в архитектуре “клиент-сервер”.

5.3 Реализация приложения

5.3.1 Общее описание форм и модулей

Для реализации интерфейса с базой данных был выбран набор компонентов прямого доступа к серверу InterBase. Этот выбор имеет ряд преимуществ по сравнению с другими группами компонентов. Основным преимуществом является то, что данный набор компонент предназначен специально для доступа к СУБД InterBase и он позволяет более произвести более тонкие настройки приложения. Нет необходимости установки совместно с программой BDE или копирования библиотек драйверов для доступа к серверу, что способствует экономии дискового пространства и времени при установке. Также компоненты InterBase в Delphi аналогичны компонентам InterBase в Kylix, что существенно снижает затраты при смене платформы приложения.

Листинг файла проекта приложения (Lib.dpr) расположен в приложении Б.

В соответствии с требованиями к приложению для обеспечения заданной функциональности в нём реализованы следующие формы и модули.

1. MainForm (см. приложение А, рис. А.1), наследник типа TForm - основная форма приложения. На ней располагается ряд визуальных и невизуальных компонентов, обеспечивающих отображение данных, главное меню приложения, навигационный и управляющий интерфейс БД, обработку событий приложения и настройку вида программы. Форме соответствует модуль Main (см. приложение В).

2. DataModule1 (см. приложение А, рис. А.2), наследник типа TDataModule - простой модуль данных, являющийся контейнером для невизуальных компонентов, реализующих взаимодействие приложения с БД. Данной форме соответствует модуль DBUnit (см. приложение Г).

3. EditForm (см. приложение А, рис. А.3), наследник типа TForm - диалоговое окно редактирования (добавления/изменения) записей БД. Форме соответствует модуль Edit (см. приложение Д).

4. DeleteForm (см. приложение А, рис. А.4), наследник типа TForm - диалоговое окно подтверждения удаления текущей записи БД. Форме соответствует модуль Delete (см. приложение Е).

5. FilterForm (см. приложение А, рис. А.5), наследник типа TForm - диалоговое окно задания фильтра БД. Данной форме соответствует модуль Filter (см. приложение Ж).

6. FindForm (см. приложение А, рис. А.6), наследник типа TForm - диалоговое окно поиска необходимых записей БД. Код формы реализован в модуле Find (см. приложение З).

7. DirSourceForm (см. приложение А, рис. А.7), наследник типа TForm - диалоговое окно выбора каталога, содержащего файлы источника. Код реализации формы располагается в модуле DirSource (см. приложение И).

8. PathForm (см. приложение А, рис. А.8), наследник типа TForm - диалоговое окно задания пути к БД. Форме соответствует модуль Path (см. приложение К).

9. UserForm (см. приложение А, рис. А.9), наследник типа TForm - диалоговое окно выбора пользователя программы. Форме соответствует модуль User(см. приложение Л).

10. AboutBox (см. приложение А, рис. А.10), наследник типа TForm - окно информации о программе, данной форме соответствует модуль About (см. приложение М).

11. Модуль Data содержит строковые, числовые и прочие константы, используемые другими модулями (см. приложение Н).

12. Модуль Files содержит подпрограммы манипулирования файлами, упаковкой/распаковкой файлов и запуском внешних программ (см. приложение О).

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

5.3.2 Форма MainForm и модуль Main

Форма MainForm является основным окном программы и контейнером для визуальных и невизуальных компонентов. На ней располагаются следующие невизуальные компоненты.

При создании формы, для обработки события MainForm.OnCreate, выполняется метод TMainForm.FormCreate, в котором инициализируются начальными значениями глобальные переменные и создаются временные каталоги.

При активизации формы и возникновении события MainForm.OnActivate, выполняется метод TMainForm.FormActivate. В нём первоначально восстанавливаются параметры приложения путём считывания их из файлов инициализации при помощи метода TMainForm.RestoreIniFiles. Затем делается попытка соединится с БД (вызов метода DataModule1.InitDBParams), и если она успешна, то устанавливается уровень доступа пользователя (метод DataModule1.SetAccess) и таблица заполняется данными (метод MainForm.DataSetRefrashExecute). В противном случае работа программы завершается.

При уничтожении формы возникает событие OnDestroy, обработка которого осуществляется методом TMainForm.FormDestroy. В ходе его выполнения процедурой Files.DeleteFiles удаляются все временные файлы, затем удаляются все временные каталоги и методом MainForm. SaveIniFiles сохраняются все настройки программы в файле инициализации.

Для сохранения и восстановления настроек программы используются методы TMainForm.SaveIniFiles и TMainForm.RestoreIniFiles.

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

Компонент ActionList1 типа TActionList - список управляющих элементов программы. Это ключевой невизуальный компонент приложения, он обеспечивает синхронизацию необходимых действий программы при возникновении некоторых событий. ActionList1 содержит ряд элементов (объектов) типа TAction, сгруппированных по следующим категориям:

1) DataSet - объекты действий для обработке баз данных;

2) File - объекты действий для задания имени пользователя и пути к фалу БД, а также выход из программы;

3) Help - объект действия для получения справки о программе;

4) Options - объекты действий для задания настроек программы;

5) SortBy - объекты действий для задания поля БД, по которому будет осуществляться сортировка выводимых в таблице записей;

6) SortDir - объекты действий для задания направления сортировки записей в таблице (по возрастанию или по убыванию).

Рассмотрим подробно элементы списка действий ActionList1.

Объекты DataSetFirst, DataSetPrior, DataSetNext, DataSetLast категории DataSet предназначены для перемещения указателя БД соответственно к первой, предыдущей, следующей или последней записи. Они является стандартными предопределёнными действиями Delphi.

Объект DataSetInsert категории DataSet предназначен для вставки новой записи в БД. Обработка действия осуществляется методом TMainForm.DataSetInsertExecute, в котором активизируется форма редактирования записи EditForm, а ей поля редактирования принимают пустые значения. Затем, по закрытии формы редактирования записей, значения её полей ввода передаются процедуре DataModule1.CallInsertBook, которая создаёт новую запись в БД. Таблица БД обновляется (действие DataSetRefresh) и указатель устанавливается на новую запись (процедура DataModule1.IBDataSet1.Locate). Для быстрой активизации действия предусмотрено сочетание клавиш Ctrl+I.

Объект DataSetUpdate категории DataSet предназначен для изменение существующих записей БД. Обработка действия осуществляется при помощи метода TMainForm.DataSetUpdateExecute, который аналогичен методу TMainForm.DataSetInsertExecute. Отличием является то, что поля редактирования формы EditForm заполняется не пустыми значениями, а значениями редактируемой записи БД. Значения полей ввода формы передаются процедуре DataModule1.CallUpdateBook, которая редактирует выбранную запись в БД. Для активизации действия можно использовать сочетание клавиш Ctrl+E.

Объект DataSetUpdate категории DataSet предназначен для удаления существующих записей БД. Обработка действия осуществляется методом TMainForm.DataSetDeleteExecute. В нём в зависимости от установки соответственного флажка в настройках программы может запрашиваться подтверждение для удаления (для этого активизируется форма DeleteForm). Далее вызывается процедура DataModule1.CallDeleteBook, которая и осуществляет удаление. Для быстрой активизации действия предусмотрено сочетание клавиш Ctrl+D.

Объект DataSetRefrash категории DataSet предназначен для обновления таблицы БД. Обработка действия осуществляется методом TMainForm.DataSetRefrashExecute. При обновлении СУБД передаются запрос на выборку всех записей БД, отсортированных в заданном порядке. Сортировка записей БД осуществляется в зависимости от текущих настроек. Перед обновлением делается закладка на текущий курсор БД, затем после обновления указатель опять устанавливается на ту же запись. Возможна быстрая активизация действия при нажатии клавиш Ctrl+R.

Объект DataSetOpen категории DataSet предназначен для открытия существующего в базе источника для чтения/редактирования. Обработка действия осуществляется методом TMainForm.DataSetOpenExecute. Алгоритм работы метода следующий. Увеличивается глобальный счётчик открытых файлов источников, затем по его значению задаётся название новой папки, в которую распаковываются файлы источника при помощи функции UnPackFiles модуля Files. Далее процедурой Files.OpenFile открывается главный файл источника. Возможна быстрая активизация действия при нажатии клавиш Ctrl+O.

Объект DataSetFind категории DataSet предназначен для поиска существующей в БД записи по задаваемым атрибутам. Обработка действия осуществляется методом TMainForm.DataSetFindExecute. В его теле активизируется форма поиска записи БД FindForm, при помощи обработки событий которой и осуществляется поиск. Далее, в случае если в курсор БД находится не на последней записи, становится доступным действие DataSetFindNext. Для активизации действия возможно использование сочетания клавиш Ctrl+F.

Объект DataSetFindNext категории DataSet предназначен для поиска следующей существующей в БД записи по атрибутам, заданным в действии DataSetFind. Обработка действия осуществляется методом TMainForm.DataSetFindNextExecute. Алгоритм работы метода следующий. Из полей ввода формы FindForm процедурой FindForm.GetLocateParams считываются значения - атрибуты искомой записи. Затем они передаются стандартному методу поиска TIBDataSet.LocateNext, который осуществляет поиск и возвращает указатель на искомую запись. Так как данное действие может повторяться подряд большое количество раз, то для ускорения его активизации предусмотрена горячая клавиша F3.

Объект DataSetFilter категории DataSet предназначен для локальной фильтрации записей БД по задаваемым атрибутам. Обработка действия осуществляется методом TMainForm.DataSetFilterExecute. В ходе выполнения метода активизируется форма FilterForm. И на её обработчики событий возлагается вся дальнейшая работа по фильтрации записей.

Объект DataSetAll категории DataSet предназначен для отмены локальной фильтрации записей БД. Обработка действия осуществляется методом TMainForm.DataSetAllExecute, в котором сбрасывается флаг фильтрации Filtered объекта IBDataSet1, используемого для доступа к БД.

Объект FileDataBasePath категории File предназначен задания пути к файлу БД. Обработка действия осуществляется методом TMainForm. FileDataBasePathExecute. В ней активизируется диалоговое окно задания маршрута, и затем обработчиками событий этой формы выполняются все необходимые действия. После закрытия диалогового окна, происходит обновление данных путём вызова метода TMainForm.DataSetRefrashExecute.

Объект FileUser категории File предназначен задания пути к файлу БД. Обработка действия осуществляется методом TMainForm. FileUserExecute. В ней активизируется диалоговое окно задания пользователя программы, и затем обработчиками событий этой формы выполняются все необходимые действия. После закрытия диалогового окна, происходит попытка установить соединение с БД с новыми параметрами (имя и пароль пользователя) при помощи вызова метода DataModule1.Connect. Праметры пользователя считываются из соответствующих полей ввода формы UserForm. Если соединение неудачно, то приложение автоматически прекращает свою работу, иначе данные в таблице обновляются путём вызова метода TMainForm.DataSetRefrashExecute. Далее при помощи метода DataModule1.SetAccess устанавливается уровень доступа данного пользователя к БД (чтение/изменение или только чтение). В зависимости от уровня доступа становятся доступными или недоступными действия вставки (DataSetInsert), изменения (DataSetUpdate) и удаления (DataSetDelete) записей БД.

Объект FileExit категории File предназначен для завершения работы приложения. Он является стандартным предопределённым объектом Delphi.

Объект HelpAbout - единственный объект категории Help предназначен для активизации информационного окна программы. Это осуществляется путём вызова метода TMainForm.HelpAboutExecute.

Объект OptColor категории Options предназначен для задания цвета фона сетки БД, поля ссылок и полей редактирования. Это осуществляется путём вызова метода TMainForm.OptColorExecute. В нём сначала активируется стандартный диалог выбора цвета ColorDialog1, а затем выбранный цвет присваивается соответственным свойствам упомянутых объектов.

Объект OptFont категории Options предназначен для задания шрифта сетки БД, поля ссылок и полей редактирования. Это осуществляется путём вызова метода TMainForm.OptFontExecute. В нём сначала активируется стандартный диалог выбора шрифта FontDialog1, а затем выбранный шрифт присваивается соответственным свойствам упомянутых объектов.

Объект OptConfDel категории Options предназначен для включения/выключения запроса на подтверждение удаления записи БД. Обработка действия осуществляется методом TMainForm.OptConfDelExecute. При его вызове изменяется значение флага подтверждения удаления ConfirmDelete на противоположное. Для того чтобы объект переходил из выбранного в невыбранное состояние автоматически его свойство AutoCheck установлено в True.

Объекты SortByNum, SortByAut, SortByTit, SortByLan, SortByNo категории SortBy предназначены для задания поля БД, по которому осуществляется сортировка таблицы. Обработка всех действий осуществляется методом TMainForm.RefreshExecute. Для перехода объекта из выбранного в невыбранное состояние автоматически его свойство AutoCheck установлено в True.

Объекты SortdirInc и SortDirDec категории SortDir предназначены для задания направления сортировки БД (по возрастанию или по убыванию). Обработка этих действий осуществляется методом TMainForm.RefreshExecute. Для автоматического перехода объекта из выбранного в невыбранное состояние его свойству AutoCheck присвоено логическое значение True.

Компонент AplicationEvents1 типа TAplicationEvents - основной обработчик событий приложения. В данном приложении на него возложена обработка события OnHint - активизация подсказки. Обработка осуществляется методом TMainForm.ApplicationEvents1Hint, где в строку состояния программы подставляется текущая подсказка приложения, которая в свою очередь берётся из свойства Hint компонента, над которым в данное время расположен курсор.

Компоненты ColorDialog1 типа TColorDialog и FontDialog1 типа TFontDialog предназначены для выбора цветов и шрифтов соответственно. Они реализуют стандартные диалоговые окна и используются в действиях OptColor и OptFont.

Компонент TMainMenu1 типа TMainMenu реализует главное меню программы. Он является контейнером для объектов типа TMenuItem, реализующие пункты главного и выпадающего меню. Все пункты главного меню связаны с элементами списка действий ActionList1 посредством задания в их свойствах Action имён соответствующих объектов действий. Рассмотрим главное меню поэлементно.

1. “Файл” (объект mmFile) соответствует категории действий File и открывает выпадающее меню, содержащее следующие пункты:

· “Путь к базе данных” (объект mmDataBaseFile) связан с действием FileDataBasePath;

· “Пользователь” (объект mmUser) связан с действием FileUser;

· “Выход” (объект mmExit) связан с действием FileExit.

2. “Таблица” (объект mmTable) соответствует категории действий DataSet и открывает выпадающее меню, содержащее следующие пункты:

· “В начало” (объект mmFirst) связан с действием DataSetFirst;

· “Назад” (объект mmPrior) связан с действием DataSetPrior;

· “Вперёд” (объект mmNext) связан с действием DataSetNext;

· “В конец” (объект mmLast) связан с действием DataSetLast;

· “Вставить” (объект mmInsert) связан с действием DataSetInsert;

· “Удалить” (объект mmDelete) связан с действием DataSetDelete;

· “Редактировать” (объект mmUpdate) связан с действием DataSetUpdate;

· “Обновить” (объект mmRefrash) связан с действием DataSetRefrash;

· “Открыть” (объект mmOpen) связан с действием DataSetOpen;

· “Найти” (объект mmFind) связан с действием DataSetFind;

· “Найти далее” (объект mmFindNext) связан с действием DataSetFindNext;

· “Фильтр” (объект mmFilter) связан с действием DataSetFilter;

· “Показать всё” (объект mmAll) связан с действием DataSetAll;

3. “Сортировка” (объект mmSort) соответствует двум категориям действий SortBy и SortDir. Данный пункт открывает выпадающее меню, содержащее следующие пункты:

· “По номеру” (объект mmSortByNum) связан с действием SortByNum;

· “По автору” (объект mmSortByAut) связан с действием SortByAut;

· “По названию” (объект mmSortByTit) связан с действием SortByTit;

· “По языку” (объект mmSortByLan) связан с действием SortByLan;

· “Отсутствует” (объект mmSortByNo) связан с действием SortByNo;

· “По возрастанию” (объект mmSortDirInc) связан с действием SortDirInc;

· “По убыванию” (объект mmSortDirDec) связан с действием SortDirDec;

4. “Настройка” (объект mmOptions) соответствует категории действий Options и открывает выпадающее меню, содержащее следующие пункты:

· “Цвет” (объект mmColor) связан с действием Opt Color);

· “Шрифт” (объект mmFont) связан с действием OptFont;

· “Подтверждение удаления” (объект mmConfDel) связан с действием OptConfDel;

5. “Помощь” (объект mmHelp) соответствует категории действий Help и открывает выпадающее меню, содержащее единственный пункт “О программе” (объект mmAbout), который связан с действием HelpAbout.

Для того чтобы в пунктах меню прорисовывались изображения, в свойстве компонента TMainMenu.Images задано имя списка изображений ImageList1.

Компонент ToolBar1 типа TToolBar является панелью инструментов и предназначен для быстрого вызова основных функций (действий) программы. Он содержит ряд быстрых кнопок типа TToolButton, нажатие на которые активизирует то или иное действие. Все кнопки связаны с определённым действием категории DataSet из списка действий ActionList1, то есть у них в свойство Action заданы имена соответствующих объектов действий. Для того, чтобы кнопки содержали изображения, в свойство компонент Images задано имя списка изображений ImageList1.На панели инструментов расположены следующие кнопки:

· TBFirst связана с действием DataSetFirst;

· TBPrior связана с действием DataSetPrior;

· TBNext связана с действием DataSetNext;

· TBLast связана с действием DataSetLast;

· TBInsert связана с действием DataSetInsert;

· TBDelete связана с действием DataSetDelete;

· TBUpdate связана с действием DataSetUpdate;

· TBRefarsh связана с действием DataSetRefarsh;

· TBOpen связана с действием DataSetOpen;

· TBFind связана с действием DataSetFind;

· TBFindNext связана с действием DataSetFindNext;

· TBFilter связана с действием DataSetFilter;

· TBAll связана с действием DataSetAll.

Компонент Edit1 типа TEdit предназначен для редактирования ячеек таблицы. В основном он находится в невидимом состоянии, а становится видным, только когда фокус ввода перейдёт на определённую ячейку таблицы. Он располагается поверх нее, и весь ввод осуществляется через данный компонент. В этот компоненте прописан единственный метод - обработчик события OnExit TMainForm.Edit1Exit. В обработчике изменяется значение соответствующей ячейки на новое, путём вызова ранимой процедуры, а затем обновляется вся таблица.

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

Компонент PanelMain типа TPanel является контейнером для двух других панелей (объектов типа TPanel) PanelGrid, PanelMemo и разделителя Splitter1 типа TSplitter. Объект Splitter1 располагается между панелями PanelGrid и панель PanelMemo и предоставляет возможность изменять их размеры. Компонент PanelGrid в свою очередь является контейнером для таблицы DBGrid1 типа TDBGrid и панели Panel2 типа TPanel, содержащей название таблицы. Компонент PanelMemo также является контейнером для редактора DBMemo1 типа TDBMemo и панели Panel1 типа TPanel, содержащей заголовок редактора.

Компонент DBMemo1 связан с мемо-полем БД Sections и предназначен для его отображения на форме. Связь между данным компонентом и БД устанавливается посредством задания свойству DataSource значения DataModule1.DataSource1.

Компонент DBGrid1 связан с БД и предназначен для отображения представления VBooks на форме. Связь между данным компонентом и БД устанавливается посредством задания свойству DataSource значения DataModule1.DataSource1. В данном компоненте прописаны обработчики трёх событий OnColExit, OnDrawColumnCell и OnKeyPress. В методе TMainForm.DBGrid1ColExit при выходе из ячейки таблицы поле редактирования Edit1 снова становится невидимым. В обработчике события TMainForm.DBGrid1DrawColumnCell вместо прорисовки ячейки таблицы прорисовывается поле редактирования Edit1 и весь ввод направляется к нему. В методе TMainForm.DBGrid1KeyPress в случае нажатия клавиши Enter фокус ввода перемещается на компонент Edit1.

база файл домен сервер

5.3.3 Модуль данных DataModule1 и модуль DBUnit

Модуль данных DataModule1 типа TdataModule является контейнером для невизуальных компонентов, связанных с БД. Также он включает в себя методы для установления параметров, уровня доступа и соединения с БД, вызова хранимых процедур и фильтрации БД. Ниже рассмотрим все данные методы и объекты.

Метод TDataModule1.Connect производит соединение с БД. Сначала Определяются параметры соединения (диалект SQL, кодировка символов, имя и пароль пользователя, путь к базе данных), затем непосредственно осуществляется соединение.

Метод TDataModule1.InitDBParams начальную инициализацию параметров соединения с БД и далее вызывает метод TDataModule1.Connect для осуществления соединения. Параметры берутся из командной строки, а если они отсутствуют, то из файла инициализации программы.

Метод TDataModule1.SetAccess осуществляет установку уровня доступа пользователя (возможность просмотра/изменения или только возможность просмотра данных ДБ) путём вызова хранимой процедуры IsWriter. В случае, если не возникает исключения, то пользователь обладает полным доступом, в ином случае - только просмотр.

Три следующих метода TDataModule1.CallInsertBook, TDataModule1.CallDeleteBook и TDataModule1.CallUpdateBook осуществляют соответственно вставку нового источника, удаления существующего источника или редактирования существующего источника посредством вызова хранимых на стороне сервера процедур InsertBook, DeleteBook и UpdateBook.

Метод TDataModule1.SetFilter устанавливает заданные параметры фильтрации записей БД и включает режим локальной фильтрации.

Метод TDataModule1.IsFieldContainStr проверяет, содержит ли заданное поле заданную подстроку.

Объект IBTransaction1 типа TIBTransaction предназначен для осуществления транзакций БД. Он связывается с компонентом БД посредством задания его свойству DefaultDatabase значения IBDatabase1.

Объект IBDatabase1 типа TIBDatabase предназначен для осуществления соединений с БД. Он связывается с компонентом транзакций посредством задания его свойству DefaultTransaction значения IBTransaction1.

Компонент IBDataSet1 типа TIBDataSet предназначен для манипулирования набором данных, получаемом посредством SQL-запроса к БД. Для соединения с БД свойству компонента Database присваивается имя IBDatabase1. Он связывается с компонентом транзакций посредством задания его свойству Transaction значения IBTransaction1. Объект имеет два определённых обработчика событий AfterScroll и OnFilterRecord.

Компонент IBStoredProc1 типа TIBStoredProc предназначена для вызова хранимых на сервере процедур вставки, удаления источников и проверки доступа. Компонент связан с объектами IBDatabase1 и IBTransaction посредством задания соответствующих свойств.

Компонент DataSource1 типа TDataSource предназначен для связи набора данных БД с таблицей БД, то есть является источником данных для таблицы MainForm.DBGrid1. Используется набор данных IBDataSet1.

5.3.4 Форма EditForm и модуль Edit

Форма EditForm представляет собой диалоговое окно, предназначенное для задания пользователем атрибутов новой или редактируемой записи. Форма является контейнером для визуальных компонентов и одного невизуального компонента OpenDialogArc типа TOpenDialog. Он является стандартным диалогом Delphi для открытия файла и предназначен для выбора архива, содержащего файлы источника.

При активизации формы, выполняется метод EditForm.FormActivate, который в свою очередь для каждого комбинированного списка вызывает метод TEditForm.SetComboBox, в котором он заполняется соответствующими значениями из БД.

Ниже рассматриваются все визуальные компоненты формы.

На форме располагаются две панели типа TPanel: Panel1 и Panel2. Они выполняют роль контейнеров для других визуальных элементов и предназначены для облегчения проектирования формы и улучшения её дизайна. На панели Panel1 расположены управляющие кнопки окна, а на панели Panel2 поля ввода, метки к ним и переключатели.

Управляющие кнопки окна представляют собой компоненты BOK и BCancel типа TbitBtn и предназначены для подтверждения (внесения в БД) или отмены введённых в полях ввода данных. Они я являются кнопками предопределенных типов. Свойству Kind этих компонентов присвоены значения bkOK и bkCancel соответственно. Кнопка BOK генерирует результат закрытия формы mrOK, а BCancel mrCancel, которые обрабатываются в соответствующих процедурах.

На панели Panel2 располагаются GroupBoxData типа TGroupBox, GroupBoxSection типа TGroupBox, RadioGroupSource типа TRadioGroup и GroupBoxPath типа TGroupBox.

Компонент GroupBoxData предназначен для выделения компонентов ввода параметров источника и является контейнером для комбинированных списков ввода параметров (типа TComboBox) и меток к ним (типа TLabel): ComboBoxAut и LabelAut - автор источника, ComboBoxTit и Labeltit - название источника, ComboBoxLan и LabelLan - язык источника.

Компонент GroupBoxSource предназначен для выделения поля ввода/редактирования тем, связанных с источником, Memo1 типа TMemo и является контейнером для него.

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

Компонент GroupBoxPath предназначен для выделения компонентов ввода путей к файлу (файлам) источника и является контейнером для меток к полям редактирования типа TLabel, полей ввода типа TEdit и кнопок типа TBitBtn для активизации диалогов поиска элементов ввода.

5.3.5 Форма DeleteForm и модуль Delete

Форма DeleteForm представляет собой диалоговое окно, предназначенное для подтверждения или отмены пользователем удаления выбранной записи. Форма является контейнером для пяти визуальных компонентов.

Компонент Bevel1 типа TBevel предназначен для выделения каймой изображения и текста. Компонент Image1 типа TImage выводит на форму изображение для большей наглядности диалогового окна. Компонент Label1 типа TLabel представляет собой вопрос диалогового окна. Компонент BNo и BYes типа TBitBtn являются управляющими кнопками окна и предназначены для подтверждения или отмены удаления.

5.3.6 Форма FindForm и модуль Find

Форма FindForm представляет собой диалоговое окно, предназначенное для задания атрибутов поиска записи в БД. Форма является контейнером для ряда визуальных компонентов. В данном компоненте определён обработчик события OnDeactivate - метод TFindForm.FormDeactivate, в котором, в случае задания пользователем, производится поиск записи стандартным методом Locate.

Форма делится на две части панелями Panel1 и Panel2 типа TPanel. На объекте Panel1 расположены управляющие кнопки BOK и BCancel типа TBitBtn, предназначенные для начатия поиска или его отмены. На панели Panel2 расположены компоненты групп gbValue и gbParam типа TGroupBox. В группу gbValue включены поля редактирования типа TEdit и метки к ним типа Tlabel для задания искомых значений. Поле EditNum и метка LabelNum служат для задания номера источника, поле EditAut и метка LabelAut - задание автора, поле EditTit и метка LabelTit - задание названия, поле EditLan и метка LabelLan- задание языка, поле EditSec и метка LabelSec - задание темы. В группу gbParam включены переключатели с независимой фиксацией типа TCheckBox: CheckBoxCase, предназначенный для задания поиска с учётом регистра символов, и CheckBoxSubStr, предназначенный для задания поиска с учётом подстрок.

5.3.7 Форма FilterForm и модуль Filter

Форма FilterForm представляет собой диалоговое окно, предназначенное для задания атрибутов фильтрации записи в БД. Форма является контейнером для ряда визуальных компонентов. В данном компоненте определён обработчик события OnDeactivate - метод TFindForm.FormDeactivate. В котором, в случае задания пользователем, производится установка фильтра при помощи вызова метода DataModule1.SetFilter.

Форма делится на две части панелями Panel1 и Panel2 типа TPanel. На объекте Panel1 расположены управляющие кнопки BBOK и BBCancel типа TBitBtn, предназначенные для задания начала фильтрации или выхода из диалогового окна. На панели Panel2 расположены компонент групп GBFilterValue и независимый переключатель CBCase типа TCheckBox, задающий необходимость поиска с учётом регистра символов. В группу GBFilterValue включены поля редактирования типа TEdit и метки к ним типа TLabel для задания допустимых значений. Поле EditAut и метка LabelAut предназначены для задания автора, поле EditTit и метка LabelTit - задание названия, поле EditLan и метка LabelLan- задание языка, поле EditSec и метка LabelSec - задание темы.

5.3.8 Форма DirSourceForm и модуль DirSource

Форма DirSourceForm представляет собой диалоговое окно, предназначенное для выбора каталога, в котором расположены файлы источника. Активация формы происходит при нажатии кнопки просмотра каталогов BBrowseDir на форме EditForm. Форма является контейнером для пяти визуальных компонентов.

Компонент Bevel1 типа TBevel предназначен для выделения каймой списка и дерева каталогов. Компонент BNo и BYes типа TBitBtn являются управляющими кнопками окна и предназначены для подтверждения или отмены выбора каталога.

5.3.9 Форма PathForm и модуль Path

Форма PathForm представляет собой диалоговое окно, предназначенное для задания сетевого пути к файлу БД. Форма является контейнером для ряда визуальных компонентов. В данном компоненте определёны обработчики события OnActivate - метод TPathForm.FormActivate и OnDeactivate - метод TPathForm.FormDeactivate. В первом методе, производится установка начальных значений полей редактирования, а во втором попытка соединится с новым файлом БД. Форма делится на две части панелями Panel1 и Panel2 типа TPanel. На объекте Panel1 расположены управляющие кнопки BBOK и BBCancel типа TBitBtn, предназначенные для задания нового пути или выхода из диалогового окна. На панели Panel2 расположены компоненты поля редактирования с метками типа TLabeledEdit leServer, предназначенный для ввода имени сервера, и leFile, предназначенный для ввода локального пути к файлу БД на сервере.

5.3.10 Форма UserForm и модуль User

Форма UserForm представляет собой диалоговое окно, предназначенное для задания имени пользователя БД. Форма делится на две части панелями Panel1 и Panel2 типа TPanel. На объекте Panel1 расположены управляющие кнопки BBOK и BBCancel типа TBitBtn, предназначенные для задания нового пользователя или выхода из диалогового окна. На панели Panel2 расположены компоненты поля редактирования с метками типа TLabeledEdit leUser, предназначенный для ввода имени пользователя, и lePass, предназначенный для ввода пароля пользователя.

5.3.11 Форма AboutBox и модуль About

Форма AboutBox представляет собой окно, выводящее информацию о программе: название приложения (метка ProductName типа TLabel), версия приложения (метка Version типа TLabel), дата создания приложения (метка Data типа TLabel), авторские права на приложение (метка Copyright типа TLabel), разработчик (метка Comments типа TLabel). Также форма снабжена изображением ProgramIcon типа TImage и кнопкой закрытия окна BitBtnOK типа TBitBtn. Все компоненты, кроме кнопки располагаются на панели Panel1 типа TPanel.

5.3.12 Модуль Files

Модуль Files содержит подпрограммы манипулирования файлами. Функция CopyFiles производит копирование файлов при помощи вызова функции WinAPI SHFileOperation. Процедура DeleteFileExt удаляет расширение в имени файла. Функция DeleteFiles производит удаление файлов при помощи вызова функции WinAPI SHFileOperation. Функция ExtractFileLastDir возвращает каталог нижнего уровня для заданного полного пути файла. Функция GetNewArcName производит поиск нового имени для архива в указанном каталоге в том случае, если уже существует архив с заданным именем. Функция OpenFile открывает заданный файл с помощью зарегистрированных в системе для данного типа файлов средств, это осуществляется путём вызова функций WinAPI FindExecutable и ShellExecute. Функции PackFiles и UnPackFiles выполняют соответственно упаковку и распаковку файлов при помощи архиватора WinRAR (необходимо его наличие в системе). Функция RunApp запускает приложение на выполнения при помощи функции WinAPI CreateProcess, в частности при помощи данной функции выполняется запуск архиватора WinRAR.


Подобные документы

  • Разработка базы данных книжного магазина в среде программирования Delphi. Создание таблиц и их заполнение. Требования к составу и параметрам технических средств. База данных как набор файлов, содержащих информацию. Этапы создания приложения в Delphi.

    курсовая работа [803,6 K], добавлен 04.11.2012

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

    дипломная работа [326,9 K], добавлен 02.10.2013

  • Разработка информационной и инфологической модели базы данных на тему "Командировка". Выбор модели данных и составление ее концептуальной схемы. Получение доступа к БД средствами Delphi, разработка пользовательского интерфейса. Реализация SQL-запросов.

    реферат [1,2 M], добавлен 16.06.2009

  • Особенности работы "поисковика" дублирующихся файлов на диске. Выбор среды программирования. Разработка программного продукта. Основные требования, предъявляемые к программе, производящей поиск дублирующихся файлов на диске. Отображение скрытых файлов.

    курсовая работа [1,8 M], добавлен 28.03.2015

  • Построение банков данных. Инструментальные средства баз данных Borland. Принцип работы и архитектура баз данных в Delphi. Навигационный способ доступа к базам данных: операции с таблицей, сортировка и перемещение по набору данных, фильтрация записей.

    курсовая работа [642,7 K], добавлен 06.02.2014

  • Анализ данных предметной области. Информационно-логическая модель базы данных. Физическое проектирование и мероприятия по защите и обеспечению целостности базы данных. Приложение интерфейса для SQL-сервера базы данных на языке программирования Delphi.

    курсовая работа [2,2 M], добавлен 30.05.2013

  • Разработка приложения для работы с базой данных с использованием объектно-ориентированного и визуального программирования. Обзор языка элементов языка программирования Delphi. Проектирование базы данных автозаправки. Клиентская система приложения.

    курсовая работа [2,3 M], добавлен 31.01.2016

  • Разработка базы данных и приложения для автоматизации ведения кадрового учёта предприятия. Формирование таблицы анкетных данных. Разработка графического интерфейса пользователя клиентских приложений. Возможность подключения к удаленной базе данных.

    дипломная работа [47,6 K], добавлен 17.02.2009

  • Анализ предметной области, потребности различных категорий пользователей разрабатываемой базы данных. Описание концептуальной схемы и преобразование ее в реляционную БД. Создание ER-модели в среде ER-Win. Генерация файлов, разработка запросов в SQL.

    курсовая работа [786,4 K], добавлен 15.12.2013

  • Разработка логической схемы базы данных автомобилестроительного предприятия. Инфологическое моделирование системы. Создание графического интерфейса пользователя для базы данных средствами языка программирования Java. Тестирование программных средств.

    курсовая работа [2,3 M], добавлен 16.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.