Проектирование базы данных "Грузоперевозки"

Составные части среды программирования Delphi 7.0. Основные команды языка SQL, механизм BDE. Database Desktop как технология моделирования таблиц базы данных. Разработка концептуальной модели и интерфейса приложения базы данных по грузоперевозкам.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.09.2010
Размер файла 326,6 K

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

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

40

Содержание

Введение

1 Теоретическая часть

1.1 Обзор систем управления базами данных

1.2 Среда программирования Delphi 7.0

1.3 Язык SQL

1.4 Database Desktop технология моделирования таблиц базы данных

1.5 Механизм BDE

2 Практическая часть

2.1 Анализ требований

2.2 Построение концептуальной модели базы данных

2.3 Построение интерфейса приложения базы данных

2.4 Разработка запросов базы данных

Заключение

Список использованных источников

Приложение

Введение

Delphi - результат развития языка Turbo Pascal, который, в свою очередь, развился из языка Pascal. Pascal был полностью процедурным языком, Turbo Pascal начиная с версии 5.5 добавил в Pascal объектно-ориентированные свойства, а Delphi - объектно-ориентированный язык программирования с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, и воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию. Также отличительным свойством Delphi от С++ является отсутствие возможности располагать объекты в стеке (объекты, унаследованные из Turbo Pascal, располагаться в стеке могут) - все объекты попадают в динамически выделяемую область (кучу).

Де-факто Object Pascal, а затем и язык Delphi являются функциональными наращиваниями Turbo Pascal. Об этом говорят обозначения версий компилятора. Так, в Delphi 7 компилятор имеет номер версии 15.0 (Последняя версия Borland Pascal / Turbo Pascal обозначалась 7.1, в Delphi 1 компилятор имеет версию 8.0, в Delphi 2 - 9.0, и т. д. Номер версии 11.0 носит компилятор Pascal, входивший в состав среды C++ Builder).

Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Delphi, из компании Borland Ltd. в Microsoft Corp.

1. Версия 1 была предназначена для разработки под 16-ти разрядную платформу Win16;

2. Версии со второй компилируют программы под 32-х разрядную платформу Win32;

3. Вместе с 6-й версией Delphi вышла совместимая с ним по языку и библиотекам среда Kylix, предназначенная для компиляции программ под операционную систему GNU/Linux;

4. Версия 8 способна генерировать байт-код исключительно для платформы .NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы .NET);

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

1. Теоретическая часть

1.1 Обзор систем управления базами данных.

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

Системы управления базами данных (СУБД) играют исключительную роль в организации современных промышленных, инструментальных и исследовательских информационных систем. Тематика СУБД поистине безгранична.

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

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

1. одну или несколько баз данных;

2. систему управления базами данных (СУБД);

3. персонал, обеспечивающий работу банка данных.

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

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

· каждый элемент таблицы -- один элемент данных

· все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют одинаковый тип (числовой, символьный и т. д.)

· каждый столбец имеет уникальное имя

· одинаковые строки в таблице отсутствуют

· порядок следования строк и столбцов может быть произвольным

Такая модель хранения данных обеспечивает удобство использования базы данных на ЭВМ. Учитывая, что таблицы базы данных могут быть связаны определенными отношениями, такая модель обеспечивает целостность данных и отсутствие избыточности хранения. Поэтому она и используется в большинстве современных баз данных.

Система управления базами данных (СУБД) -- специализированная программа или комплекс программ, предназначенная для организации и ведения базы данных. Она обеспечивает хранение данных и взаимодействие пользователя с БД, позволяя пользователям производить поиск, сортировку и выборку информации в базе данных, а некоторым пользователям - добавлять, удалять и изменять записи в БД.

Можно сформулировать основные функции СУБД:

1. Определение данных.

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

2. Манипулирование данными.

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

3. Управление хранением данных и доступом к ним.

СУБД осуществляет программную поддержку хранения данных в запоминающем устройстве ЭВМ и управляет всеми действиями, производимыми с данными.

4. Защита и поддержка целостности данных

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

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

СУБД выполняет эти функции с помощью определенного информационно-логического языка, или языка запросов. В большинстве СУБД для этого используется язык SQL.

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

По степени универсальности различают два класса СУБД:

1. системы общего назначения;

2. специализированные системы.

1.2 Среда программирования Delphi 7.0

Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows. К примеру, Borland Pascal for Windows 7.0, Borland C++ 4.0, Word for Windows, Program Manager - это все MDI приложения и выглядят по-другому, чем Delphi. MDI (Multiple Document Interface) - определяет особый способ управления нескольких дочерних окон внутри одного большого окна.

Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон. Это было сделано из-за того, что SDI близок к той модели приложений, что используется в Windows 95.

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

Главные составные части среды программирования

Ниже перечислены основные составные части Delphi:

1. Дизайнер Форм (Form Designer)

2. Окно Редактора Исходного Текста (Editor Window)

3. Палитра Компонент (Component Palette)

4. Инспектор Объектов (Object Inspector)

5. Справочник (On-line help)

Есть, конечно, и другие важные составляющие Delphi, вроде линейки инструментов, системного меню и многие другие, нужные Вам для точной настройки программы и среды программирования.

Программисты на Delphi проводят большинство времени переключаясь между Дизайнером Форм и Окном Редактора Исходного Текста (которое для краткости называют Редактор).

Дизайнер Форм в Delphi столь интуитивно понятен и прост в использовании, что создание визуального интерфейса превращается в детскую игру. Дизайнер Форм первоначально состоит из одного пустого окна, которое Вы заполняете всевозможными объектами, выбранными на Палитре Компонент.

Несмотря на всю важность Дизайнера Форм, местом, где программисты проводят основное время является Редактор. Логика является движущей силой программы и Редактор - то место, где Вы ее "кодируете".

Палитра Компонент (см. рис.3) позволяет Вам выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент просто первый раз щелкните мышкой на один из объектов и потом второй раз - на Дизайнере Форм. Выбранный Вами объект появится на проектируемом окне и им можно манипулировать с помощью мыши.

Палитра Компонент использует постраничную группировку объектов. Внизу Палитры находится набор закладок - Standard, Additional, Dialogs и т.д. Если Вы щелкнете мышью на одну из закладок, то Вы можете перейти на следующую страницу Палитры Компонент. Принцип разбиения на страницы широко используется в среде программирования Delphi и его легко можно использовать в своей программе. (На странице Additional есть компоненты для организации страниц с закладками сверху и снизу).

Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств, вторая - список событий. Если нужно изменить что-нибудь, связанное с определенным компонентом, то Вы обычно делаете это в Инспекторе Объектов. К примеру, Вы можете изменить имя и размер компонента TLabel изменяя свойства Caption, Left, Top, Height, и Width.

Три, инструмента, которые можно воспринимать как вспомогательные для среды программирования:

· Меню (Menu System)

· Панель с кнопками для быстрого доступа (SpeedBar)

· Редактор картинок (Image Editor).

В дополнение к инструментам, обсуждавшимся выше, существуют пять средств, поставляемых вместе с Delphi. Эти инструментальные средства:

· Встроенный отладчик

· Внешний отладчик (поставляется отдельно)

· Компилятор командной строки

· WinSight

· WinSpector

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

1.3 Язык SQL

SQL (обычно произносимый как "СИКВЭЛ" или "ЭСКЮЭЛЬ") символизирует собой Структурированный Язык Запросов. Это - язык, который дает возможность создавать и работать в реляционных базах данных, являющихся наборами связанной информации, сохраняемой в таблицах.

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

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

Элегантность и независимость от специфики компьютерных технологий, а также его поддержка лидерами промышленности в области технологии реляционных баз данных, сделало SQL (и, вероятно, в течение обозримого будущего оставит его) основным стандартным языком. По этой причине, любой, кто хочет работать с базами данных 90-х годов, должен знать SQL.

Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (Международной Организацией по Стандартизации

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

Поэтому, в язык SQL в качестве составных частей входят:

1. язык манипулирования данными (Data Manipulation Language, DML)

2. язык определения данных (Data Definition Language, DDL)

3. язык управления данными (Data Control Language, DCL).

Язык манипулирования данными используется, как это следует из его названия, для манипулирования данными в таблицах баз данных. Он состоит из 4 основных команд:

§ SELECT(выбрать)

§ INSERT(вставить)

§ UPDATE(обновить)

§ DELETE(удалить)

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

CREATE DATABASE(создать базу данных)

CREATE TABLE(создать таблицу)

CREATE VIEW(создать виртуальную таблицу)

CREATE INDEX(создать индекс)

CREATE TRIGGER(создать триггер)

CREATE PROCEDURE(создать сохраненную процедуру)

ALTER DATABASE(модифицировать базу данных)

ALTER TABLE(модифицировать таблицу)

ALTER VIEW(модифицировать виртуальную таблицу)

ALTER INDEX(модифицировать индекс)

ALTER TRIGGER(модифицировать триггер)

ALTER PROCEDURE(модифицировать сохраненную процедуру)

DROP DATABASE(удалить базу данных)

DROP TABLE(удалить таблицу)

DROP VIEW(удалить виртуальную таблицу)

DROP INDEX(удалить индекс)

DROP TRIGGER(удалить триггер)

DROP PROCEDURE(удалить сохраненную процедуру)

Язык управления данными используется для управления правами доступа к данным и выполнением процедур в многопользовательской среде. Более точно его можно назвать "язык управления доступом". Он состоит из двух основных команд:

· GRANT(дать права)

· REVOKE(забрать права)

С точки зрения прикладного интерфейса существуют две разновидности команд SQL:

· интерактивный SQL

· встроенный SQL.

1.4 Database Desktop технология моделирования таблиц базы данных

Database Desktop - это утилита, во многом похожая на Paradox, которая поставляется вместе с Delphi для интерактивной работы с таблицами различных форматов локальных баз данных - Paradox и dBase, а также SQL-серверных баз данных InterBase, Oracle, Informix, Sybase (с использованием SQL Links).

Хотя для создания таблиц можно использовать различные средства (SQL - компонент TQuery и WISQL, компонент TTable), применение этой утилиты позволяет создавать таблицы в интерактивном режиме и сразу же просмотреть их содержимое - и все это для большого числа форматов. Это особенно удобно для локальных баз данных, в частности Paradox и dBase.

Имя поля в таблице формата Paradox представляет собой строку, написание которой подчиняется следующим правилам:

· Имя должно быть не длиннее 25 символов.

· Имя не должно начинаться с пробела, однако может содержать пробелы.

· Имя не должно содержать квадратные, круглые или фигурные скобки [], () или {}, тире, а также комбинацию символов "тире" и "больше" (->).

· Имя не должно быть только символом #, хотя этот символ может присутствовать в имени среди других символов. Хотя Paradox поддерживает точку (.) в названии поля, лучше ее избегать, поскольку точка зарезервирована в Delphi для других целей.

Имя поля в таблице формата dBase представляет собой строку, написание которой подчиняется правилам, отличным от Paradox:

· Имя должно быть не длиннее 10 символов.

· Пробелы в имени недопустимы.

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

После создания таблицы, с ней можно связать некоторые свойства, перечень которых зависит от формата таблицы. Так, для таблиц формата Paradox можно задать:

· Validity Checks (проверка правильности) - относится к полю записи и определяет минимальное и максимальное значение, а также значение по умолчанию. Кроме того, позволяет задать маску ввода

· Table Lookup (таблица для "подсматривания") - позволяет вводить значение в таблицу, используя уже существующее значение в другой таблице

· Secondary Indexes (вторичные индексы) - позволяют доступаться к данным в порядке, отличном от порядка, задаваемого первичным ключом

· Referential Integrity (ссылочная целостность) - позволяет задать связи между таблицами и поддерживать эти связи на уровне ядра. Обычно задается после создания всех таблиц в базе данных

· Password Security (парольная защита) - позволяет закрыть таблицу паролем

· Table Language (язык таблицы) - позволяет задать для таблицы языковый драйвер.

В таблицах dBase не существует первичных ключей. Однако, это обстоятельство можно преодолеть путем определения уникальных (Unique) и поддерживаемых (Maintained) индексов (Indexes). Кроме того, для таблиц dBase можно определить и язык таблицы (Table Language) - языковый драйвер, управляющий сортировкой и отображением символьных данных.

1.5 Механизм BDE

Существует несколько способов доступа к данным из средств разработки и клиентских приложений.

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

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

Наиболее популярными среди универсальных механизмов доступа к данным можно назвать следующие:

· Open Database Connectivity (ODBC).

· OLE DB.

· ActiveX Data Objects (ADO).

· Borland Database Engine (BDE).

BDE (Borland Database Engine) - универсальный механизм доступа к данным, применяемый в средствах разработки фирмы Borland - Delphi и C++Builder, а также в некоторых других продуктах, например Corel Paradox, Corel Quattro Pro, Seagate Software Crystal Reports.

BDE - это наследник библиотеки Paradox Engine, созданной для Borland Pascal и Borland C++ с целью предоставить приложениям, разработанным с их помощью, доступ к таблицам СУБД Paradox. Вскоре после создания Paradox Engine компанией Borland было разработано несколько библиотек-драйверов под общим названием SQL Links. Эти библиотеки расширили функциональность BDE, позволив применять имевшийся в Paradox Engine набор функций для доступа к данным dBase, ODBC-источников, а также наиболее популярных серверных СУБД. Позже к этому набору были добавлены библиотеки для доступа к Access и FoxPro.

Механизм Borland Database Engine широко использовался при создании приложений с базами данных с помощью Borland Pascal 7.0 и Borland C++ 4.5 и 5. Затем средства разработки Borland были преобразованы в средства быстрой разработки приложений (Rapid Application Development, RAD), и большинство вызовов BDE API оказалось инкапсулировано в компонентах доступа к данным библиотеки Visual Components Library (VCL). BDE был фактически единственным механизмом доступа к данным в Delphi и C++Builder, поддерживаемым на уровне компонентов, классов, а также визуальных компонентов для редактирования данных, вплоть до 5-й версии обоих продуктов - Delphi и C++Builder.

Физически BDE представляет собой набор библиотек доступа к данным, реализующих BDE API - набор функций для манипуляции данными, вызываемых из приложения. Эти функции, в свою очередь, могут обращаться к функциям клиентского API (в случае, например, Oracle, Informix, IB Database) или ODBC API (Access 2000, Microsoft SQL Server 7.0, любые ODBC-источники), а также непосредственно манипулировать файлами некоторых СУБД (dBase, Paradox).

Для доступа к базе данных с помощью BDE на компьютере, содержащем клиентское приложение, должны быть установлены библиотеки BDE общего назначения, а также BDE-драйвер для данной СУБД. В случае серверных СУБД такие драйверы носят название SQL Links. Эти драйверы содержат BDE API - стандартный набор функций, созданных на основе функций клиентских API соответствующих СУБД.

Среди BDE-драйверов имеется драйвер, созданный с использованием ODBC API, так называемый ODBC Link, который применяется вместе с ODBC-драйвером для выбранной СУБД.

В отличие от ODBC-драйверов и OLE DB-провайдеров, выпускаемых как производителями СУБД, так и многими сторонними производителями, BDE-драйверы производятся только самой компанией Inprise. Число СУБД, для которых имеются BDE-драйверы, ограничено пятью наиболее популярными серверными СУБД, рассмотренными в предыдущей лекции, несколькими форматами данных настольных и сервером IB Database, входящим в комплект поставки средств разработки Borland. Для доступа к данным остальных СУБД с помощью BDE можно использовать только ODBC-драйвер и ODBC Link.

2. Практическая часть

2.1 Анализ требований

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

2.2 Построение концептуальной модели базы данных

Для базы данных было разработано 3 сущности.

Общая информация о сущности представлена в таблице:

Таблица сущностей.

Название сущности

Идентификатор

Тип связи

Автопарк

AvtoPark1

1:N (Перевозки)

1:N (Заработки)

Перевозки

Perevozki

N:1 (Автопарк)

Заработки

Zarabotki

N:1 (Автопарк)

Таблица Автопарк связана с таблицами Перевозки, Заработки по ключам ID, соответственно, чтобы можно было узнать местонахождение автомобиля, водителя, доходы и расходы на автомобиль

Рассмотрим каждую сущность более подробно.

Таблица атрибутов сущности Автопарк:

Имя атрибута

Формат

Область допустимых значений

Описание

Роль атрибута

N:Avto

строковый

0-255

Номер автомобиля

Первичный ключ

Marka

строковый

0-255

Марка автомобиля

Voditel

строковый

0-255

Водитель

Gruzopodyemnost'

числовой

0-9999

Грузоподъемность

Dlina

числовой

0-9999

Длина автомобиля

Schirina

числовой

0-9999

Ширина автомобиля

Visota

числовой

0-9999

Высота автомобиля

Таблица атрибутов сущности Перевозки:

Имя атрибута

Формат

Область допустимых значений

Описание

Роль атрибута

N:Avto

строковый

0-255

Номер автомобиля

Первичный ключ

Punkt otpr.

строковый

0-255

Пункт отправления автомобиля

Punkt nazn.

строковый

0-255

Пункт назначения автомобиля

Ves,t

числовой

0-9999

Вес груза

Data otpr.

дата

Дата отправления автомобиля

Data nazn.

дата

Дата прибытия автомобиля

Stoimost',rub

денежный

Стоимость перевозки

Таблица атрибутов сущности Заработки:

Имя атрибута

Формат

Область допустимых значений

Описание

Роль атрибута

N:Avto

строковый

0-255

Номер автомобиля

Первичный ключ

Kilometras,km

числовой

0-9999

Длина пройденного пути автомобиля

Tonnas,t

числовой

0-9999

Вес перевезенного груза автомобиля

Rashodi,rub

денежный

Расходы на содержание автомобиля

Dohodi,rub

денежный

Доходы автомобиля

2.3 Построение интерфейса приложения базы данных

Создание модуля (Рисунок 1.1).

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

Для этого сделаем следующее: File - New - Others, чтобы открыть окно хранилища объектов, и на вкладку New открывшегося окна дважды щелкните на значке DataModule. Сохраняем модуль. Далее прикрепим его к форме (Shift + F11) и выбираем только что созданный файл. Теперь поместим в модуль 3 объекта TTable с закладки BDE, также 4 объекта TDataSource с закладки Data Access и объект TQuery.

Объект

TTable

DataBase

Name

TableName

Active

Master

Sourse

IndexField

Name

Table1

BASA

AvtoPark1.db

True

DataSource1

Table2

BASA

Perevozki.db

True

DataSource2

Table3

BASA

Zarabotki.db

True

DataSource3

Объект

TDataSource

DataSet

DataSource1

Table1

DataSource2

Table2

DataSource3

Table3

DataSource4

Query1

Создание первой формы (Рисунок 1.2).

File - Use Unit свяжем нашу форму с модулем данных.

Поместим на форму компонент TDBGrid с закладки DataControls и компонент TDBNavigator с той же закладки.

Теперь выделим DBGrid1 и в свойстве DataSourse, выберем DataModule2.DataSourse1. Затем установим свойства для компонентов TDBNavigator:

Объект

TDBNavigator

DataSourse

VisibleButton

(True)

DBNavigator1

nbFirst

nbPrior

nbNext

nbLast

nbInsert

nbDelete

nbEdit

nbPost

nbCancel

nbRefresh

Создадим главное меню, этой формы. Для этого поместим на форму компонент TMainMenu c закладки Standart. Затем щелкнем 2 раза по этому значку и создадим следующее:

Сортировка Автопарк

Перевозки

Заработки Заработки

Автопарк

Печать таблицы

О программе

Выход

Создадим контекстное меню, этой формы. Для этого поместим на форму компонент TPopupMenu c закладки Standart. Затем щелкнем 2 раза по этому значку и создадим следующее:

Поиск

Сортировка

Добавим на форму объекты Timer1, Timer2, Label1, Gauge1(visible:false), Button1.

Создание второй формы (Рисунок 1.3).

Создадим другую форму (File-New-Form). Сохраним. Также свяжем нашу форму (File - Use Unit) и прикрепим её (Shift + F11).

Теперь займемся интерфейсом второй формы. Поместим на форму 2 компонента TLabel, TButton с закладки Standart; компонент TDBGrid и TDBNavigator; 9 компонентов TRadioButton.

Объект

TDBNavigator

DataSourse

VisibleButton

(True)

DBNavigator1

nbFirst

nbPrior

nbNext

nbLast

Объект

TRadioButton

Visible

TRadioButton1

True

TRadioButton2

False

TRadioButton3

True

TRadioButton4

False

TRadioButton5

False

TRadioButton6

False

TRadioButton7

False

TRadioButton8

False

TRadioButton9

False

Создадим главное меню, этой формы.

Создание третьей формы (Рисунок 1.4).

Создадим другую форму (File-New-Form). Сохраним. Свяжем нашу форму (File - Use Unit) и прикрепим её (Shift + F11). Поместим на форму Поместим на форму 2 компонента TButton, TLabel с закладки Standart; компонент TDBGrid; 2 компонента TRadioButton; а также ТPrinterSetupDialog и ТPrintDialog из вкладки Dialogs.

Создание четвертой формы (Рисунок 1.5).

Создадим следующую форму (File-New-Form). Сохраним. Свяжем нашу форму (File - Use Unit) и прикрепим её (Shift + F11). Поместим по одному компоненту TLabel, TЕdit; по 2 компонента TButton и TImage.

Создание пятой формы (Рисунок 1.6).

Создадим другую форму (File-New-Form). Сохраним. Свяжем нашу форму (File - Use Unit) и прикрепим её (Shift + F11). Поместим на форму компонент TDBGrid с закладки DataControls, 3 компонента TRadioButton, 2 компонента TButton, а также ТPrinterSetupDialog и ТPrintDialog из вкладки Dialogs.

Сделаем эту форму главной: Проект - Опции - Главная форма.

Создание окна формы «О программе» и «Справка» (Рисунок 1.7 - 1.8).

Прибавляем к проекту новое окно формы типа About box (File => New... => Закладка Forms => About box => Ok).

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

2.4 Разработка запросов базы данных

Первая форма:

Запрограммируем кнопку «Выход»:

procedure TForm1.Button1Click(Sender: TObject);

begin

Timer2.Enabled:=false;

Gauge1.Visible:=false;

Form7.Show;

close;

end;

Запрограммируем «Timer1», который будет отображать время:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

label1.Caption:=timetostr(time);

end;

И «Timer2», который будет вести отсчет времени в пробной версии:

procedure TForm1.Timer2Timer(Sender: TObject);

begin

Timer2.Interval:=200;

Gauge1.Progress:=Gauge1.Progress-1;

if Gauge1.Progress=0 then (close);

if Gauge1.Progress=0 then Form7.close;

end;

Запрограммируем «Автопарк»:

procedure TForm1.N5Click(Sender: TObject);

begin

DbGrid1.DataSource:=DataModule2.DataSource1;

DBNavigator1.DataSource:=DataModule2.DataSource1;

end;

Запрограммируем «Перевозки»:

procedure TForm1.N6Click(Sender: TObject);

begin

DbGrid1.DataSource:=DataModule2.DataSource2;

DBNavigator1.DataSource:=DataModule2.DataSource2;

end;

Запрограммируем «Заработки »:

procedure TForm1.N7Click(Sender: TObject);

begin

DbGrid1.DataSource:=DataModule2.DataSource3;

DBNavigator1.DataSource:=DataModule2.DataSource3;

end;

Запрограммируем «Сортировка»:

procedure TForm1.N14Click(Sender: TObject);

begin

Form3.Show;

Form1.Visible:=false;

end;

Запрограммируем «О программе»:

procedure TForm1.N3Click(Sender: TObject);

begin

AboutBox.Visible:=True;

end;

Запрограммируем «Экспорт в Excel»:

procedure TForm1.N18Click(Sender: TObject);

var

XLApp,Sheet,Colum:Variant;

index,i, j:Integer;

begin

XLApp:= CreateOleObject('Excel.Application');

XLApp.Visible:=true;

XLApp.Workbooks.Add(-4167);

XLApp.Workbooks[1].WorkSheets[1].Name:='Грузоперевозки';

Colum:=XLApp.Workbooks[1].WorkSheets['Грузоперевозки'].Columns;

Colum.Columns[1].ColumnWidth:=20;

Colum.Columns[2].ColumnWidth:=20;

Colum.Columns[3].ColumnWidth:=20;

Colum.Columns[4].ColumnWidth:=20;

Colum.Columns[5].ColumnWidth:=20;

Colum.Columns[6].ColumnWidth:=20;

Colum.Columns[7].ColumnWidth:=20;

Colum:=XLApp.Workbooks[1].WorkSheets['Грузоперевозки'].Rows;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clBlack;

Colum.Rows[1].Font.Size:=14;

Sheet:=XLApp.Workbooks[1].WorkSheets['Грузоперевозки'];

Sheet.Cells[1,2]:='Автопарк';

Sheet.Cells[2,1]:='Гос.номер';

Sheet.Cells[2,2]:='Марка';

Sheet.Cells[2,3]:='Водитель';

Sheet.Cells[2,4]:='Грузоподъемность';

Sheet.Cells[2,5]:='Длина';

Sheet.Cells[2,6]:='Ширина';

Sheet.Cells[2,7]:='Высота';

index:=3;

DBGrid1.DataSource.DataSet.First;

for i:=1 to DBGrid1.DataSource.DataSet.RecordCount do

begin

for j:=1 to DBGrid1.FieldCount do

sheet.cells[index,j]:=DBGrid1.fields[j-1].asstring;

inc(index);

DBGrid1.DataSource.DataSet.Next;

end;

end;

Запрограммируем «Печать таблицы»:

procedure TForm1.N9Click(Sender: TObject);

begin

Form8.Show;

Form1.Visible:=false;

Запрограммируем «Поиск»:

procedure TForm1.N16Click(Sender: TObject);

begin

Form5.Show;

Form1.Visible:=false;

end;

Вторая форма:

Запрограммируем кнопку «Выход»:

procedure TForm3.Button1Click(Sender: TObject);

begin

Form1.Show;

close;

end;

Запрограммируем «Справка»:

procedure TForm3.N1Click(Sender: TObject);

begin

AboutBox1.Show;

end;

Запрограммируем «О программе»:

procedure TForm3.N2Click(Sender: TObject);

begin

AboutBox.Visible:=True;

end;

Запрограммируем «Автопарк»:

procedure TForm3.RadioButton1Click(Sender: TObject);

begin

DbGrid1.DataSource:=DataModule2.DataSource1;

DBNavigator1.DataSource:=DataModule2.DataSource1;

RadioButton4.Visible:=True;

RadioButton5.Visible:=True;

RadioButton2.Visible:=True;

RadioButton6.Visible:=False;

RadioButton8.Visible:=False;

RadioButton9.Visible:=False;

end;

Запрограммируем «Гос.номер»:

procedure TForm3.RadioButton2Click(Sender: TObject);

begin

DataModule2.Table1.IndexFieldNames:='N:Avto';

end;

Запрограммируем «Заработки»:

procedure TForm3.RadioButton3Click(Sender: TObject);

begin

DbGrid1.DataSource:=DataModule2.DataSource3;

DBNavigator1.DataSource:=DataModule2.DataSource3;

RadioButton4.Visible:=False;

RadioButton5.Visible:=False;

RadioButton2.Visible:=False;

RadioButton6.Visible:=True;

RadioButton8.Visible:=True;

RadioButton9.Visible:=True;

end;

Запрограммируем « Гос.номер »:

procedure TForm3.RadioButton6Click(Sender: TObject);

begin

DataModule2.Table3.IndexFieldNames:='N:Avto';

end;

Запрограммируем «Километры»:

procedure TForm3.RadioButton8Click(Sender: TObject);

begin

DataModule2.Table3.IndexFieldNames:='Kilometras,km';

end;

Запрограммируем «Тонны»:

procedure TForm3.RadioButton9Click(Sender: TObject);

begin

DataModule2.Table3.IndexFieldNames:='Tonnas,t';

end;

Запрограммируем «Марка»:

procedure TForm3.RadioButton4Click(Sender: TObject);

begin

DataModule2.Table1.IndexFieldNames:='Marka';

end;

Запрограммируем «Водитель»:

procedure TForm3.RadioButton5Click(Sender: TObject);

begin

DataModule2.Table1.IndexFieldNames:='Voditel';

end;

Третья форма:

Запрограммируем кнопку «Выход»:

procedure TForm5.Button2Click(Sender: TObject);

begin

Form1.Show;

close;

end;

и кнопку «Печать»:

procedure TForm5.Button1Click(Sender: TObject);

begin

PrinterSetupDialog1.Execute;

PrintDialog1.Execute;

end;

Запрограммируем кнопку «Поиск водителя»:

procedure TForm5.RadioButton2Click(Sender: TObject);

var voditel:string [20];

begin

voditel:=InputBox('Поиск информации из БД','Введите водителя :', '');

if voditel <> '' then

begin

with DataModule2.Query1 do begin

Close;

SQL.Clear;

SQL.Add('select * ');

SQL.Add(' from AvtoPark1');

SQL.Add('where ( voditel = "'+ Voditel + '")');

Open;

end;

if DataModule2.Query1.RecordCount <> 0 then

DBgrid1.DataSource:=DataModule2.DataSource4

else begin

ShowMessage('В базе данных нет');

DBGrid1.DataSource:=dataModule2.dataSource4 end;

end;

RadioButton2.Checked:=False;

end;

Запрограммируем кнопку «Поиск по длине кузова»:

procedure TForm5.RadioButton3Click(Sender: TObject);

var Dlina:string [20];

begin

Dlina:=InputBox('Поиск информации из БД','Введите длину :', '');

if Dlina <> '' then

begin

with DataModule2.Query1 do begin

Close;

SQL.Clear;

SQL.Add('select * ');

SQL.Add(' from AvtoPark1');

SQL.Add('where ( Dlina = "'+ Dlina + '")');

Open;

end;

if DataModule2.Query1.RecordCount <> 0 then

DBgrid1.DataSource:=DataModule2.DataSource4

else begin

ShowMessage('В базе данных нет ');

DBGrid1.DataSource:=dataModule2.dataSource4 end;

end;

RadioButton3.Checked:=False;

end;

Четвертая форма:

Запрограммируем кнопку «Вход»:

procedure TForm7.Button1Click(Sender: TObject);

begin

If(Edit2.Text='111')then

begin

Image2.Show;

Form1.show;

Edit2.Clear;

Form7.Visible:=false;

Image2.Visible:=false;

End;else

begin

MessageDlg('Ключ не верный!',mterror,[mbOk],0);

Edit2.Clear;

end;

end;

и кнопку «Бета»:

procedure TForm7.Button2Click(Sender: TObject);

begin

Form1.Gauge1.Visible:=True;

form1.Timer2.Enabled:=true;

Form1.show;

end;

При нажатии рисунка 1 запускается процедура:

procedure TForm7.Image1Click(Sender: TObject);

begin

Close;

end;

При вводе в поле Edit2 рисунок Image2 становится видимым

procedure TForm7.Edit2Change(Sender: TObject);

begin

If(Edit2.Text='111')then

Image2.Show;

end;

Пятая форма:

Запрограммируем кнопку «Выход»:

procedure TForm8.Button2Click(Sender: TObject);

begin

Form1.Show;

close;

end;

и кнопку «Печать»:

procedure TForm8.Button1Click(Sender: TObject);

begin

PrinterSetupDialog1.Execute;

PrintDialog1.Execute;

end;

Запрограммируем «Автопарк»:

procedure TForm8.RadioButton1Click(Sender: TObject);

begin

DbGrid1.DataSource:=DataModule2.DataSource1;

end;

Запрограммируем «Перевозки»:

procedure TForm8.RadioButton2Click(Sender: TObject);

begin

DbGrid1.DataSource:=DataModule2.DataSource2;

end;

Запрограммируем «Заработки »:

procedure TForm8.RadioButton3Click(Sender: TObject);

begin

DbGrid1.DataSource:=DataModule2.DataSource3;

end;

Заключение

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

Список использованных источников

1. Учебник по Delphi 7 для начинающих

2. Архангельский А. Я. 100 компонентов Delphi

3. Дарахвелидзе Петр, Марков Евгений Программирование delphi 7

4. Мирончик Игорь Доступ к COM серверам Microsoft Office из Delphi 5

5. Тейлор Д., Мишель Дж., Пенман Дж. Delphi, библиотека программиста

6. Фаронов Delphi 7 Программирование баз данных

7. Фленов М. Библия для программиста в среде делфи. - С.петербург, 2002

8. Фленов. М. Delphi глазами хакера. - С.Петербург, 2003.

Приложение

Рисунок 1.1. Модуль данных

Рисунок 1.2. Первая форма

Рисунок 1.3. Вторая форма

Рисунок 1.4. Третья форма

Рисунок 1.5. Четвертая форма

Рисунок 1.6. Пятая форма

Рисунок 1.7. Окно формы «О программе»

Рисунок 1.8. Окно формы «Справка»


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

  • Создание баз данных с использованием Database Desktop. Проведение автоматизации рабочего места кассира. Описание входной и выходной информации. Выбор среды реализации, состава и параметров технических средств. Проектирование интерфейса программы.

    курсовая работа [1021,5 K], добавлен 22.01.2015

  • Главные составные части среды программирования. Требование к надежности, к составу и параметрам технических средств. Табличные базы данных. Выбор и обоснование выбора системы управления базами данных. Высокопроизводительный компилятор в машинный код.

    курсовая работа [793,5 K], добавлен 31.01.2016

  • Обзор преимуществ и недостатков среды программирования Delphi, ее сравнение с аналогичными продуктами. Разработка инфологической, датологической, модели базы данных. Проектирование структуры программного обеспечения и понятного интерфейса базы данных.

    курсовая работа [964,8 K], добавлен 27.09.2014

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

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

  • Системный анализ предметной области. Разработка концептуальной модели базы данных. Построение схемы функциональных зависимостей. Создание таблиц базы данных в Database Desktop и псевдонима в BDE Administrator. Разработка алгоритма работы программы.

    курсовая работа [911,3 K], добавлен 20.12.2014

  • Построение концептуальной модели, процесс моделирования смыслового наполнения базы данных. Основные компоненты концептуальной модели. Построение реляционной модели. Целостность данных в реляционной базе. Нормализация. Проектирование базы данных в ACCESS.

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

  • Особенности проектирования программы на языке С++ для обработки данных из таблиц базы данных. Основные функции программы, создание концептуальной модели базы данных и диаграммы классов, разработка интерфейса пользователя и запросов к базе данных.

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

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

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

  • Понятие реляционной модели данных, целостность ее сущности и ссылок. Основные этапы создания базы данных, связывание таблиц на схеме данных. Проектирование базы данных книжного каталога "Books" с помощью СУБД Microsoft Access и языка запросов SQL.

    курсовая работа [838,9 K], добавлен 25.11.2010

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

    курсовая работа [186,9 K], добавлен 18.12.2010

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