Проектирование базы данных "Каталог запчастей автомобиля"
Анализ предметной области. Предположительный набор необходимых функций. Даталогическое и инфологическое проектирование. Реляционная модель данных. Создание запросов и атрибутов. Физическая модель данных. Разработка приложения для работы с базой данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 26.04.2015 |
Размер файла | 720,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Минобрнауки РФ
ФБГОУ ВПО Череповецкий государственный университет
Институт информационных технологий
Кафедра МПО ЭВМ
КУРСОВАЯ РАБОТА
Проектирование базы данных «Каталог запчастей автомобиля»
Выполнил студент
Виноградов А.С.
Группа: 1ИС-310
Принял преподаватель
Селяничев О.Л
Череповец 2014 г.
Введение
Основой для учета, контроля и планирования служат всевозможные картотеки, регистрационные журналы, списки и т.д. Они постепенно накапливаются и обновляются. При большом объеме информации поиск и обобщение необходимых сведений, осуществляемых вручную, представляют собой довольно трудоемкий процесс.
Сейчас же, в век компьютерных технологий и больших прогрессов в этой сфере, на смену картотекам пришли очень удобные, надёжные, быстродействующие компьютерные системы. Для решения задач с использованием компьютерных систем используется специальное программное обеспечение, часто объединенное в крупные информационно-справочные системы.
Первоначально для накопления и хранения информации на ЭВМ применялись локальные массивы (или файлы), при этом для каждой из решаемых функциональных задач создавались собственные файлы исходной и результатной информации. Это приводило к значительному дублированию данных, усложняло их обновление, затрудняло решение взаимосвязанных проблемных задач.
Постепенно с развитием программного обеспечения ЭВМ появились идеи создания управляющих систем, которые позволяли бы накапливать, хранить и обновлять взаимосвязанные данные по целому комплексу решаемых задач, например при автоматизации бухгалтерского учета на предприятии. Эти идеи нашли свое воплощение в системах управления базами данных (СУБД). СУБД взаимодействуют не с локальными, а взаимосвязанными по информации массивами, называемыми базами данных. С появлением персональных компьютеров СУБД становятся наиболее популярным средством обработки табличной информации. Они являются инструментальным средством проектирования банков данных при обработке больших объемов информации.
Одной из таких информационно-справочной системой является моя база данных «каталог запчастей автомобиля». Она позволяет автоматизировать многие процессы, связанные с вводом и обработкой информации большого объема. Эта программа должна облегчить работу сотрудников магазина, покупателей и решить большинство проблем, вызванных недостатками бумажных носителей.
1. Описание предметной области
Предметной областью данной разработки является каталог автозапчастей. Очень важно быстро получить информацию о нужной детали авто, причем получать сразу все данные, а не искать их в различных местах, ведь на это будет тратиться огромное количество времени, как, например, продавцов магазина или работников автосервиса так и владельцев авто. Данная предметная область призвана собрать все воедино и представить в наглядном и удобном виде.
Предположительный набор необходимых функций:
· Просмотр и добавление информации о деталях и поставщиках.
· Просмотр и добавление информации об автомобилях.
· Выполнение поиска информации о конкретной детали.
· Выполнение запросов по указанным критериям.
Эта программа поможет быстро получить сведения о деталях и их поставщиках.
запрос инфологический база данные
2. Функциональное назначение
Программа предусматривает выполнение следующих действий:
· просмотр записей;
· добавление записей;
· выборка по указанным параметрам.
3. Инфологическое проектирование
Инфологическая модель применяется на втором этапе проектирования БД, то есть после словесного описания предметной области. Цель инфологического этапа проектирования состоит в получении семантических (концептуальных) моделей, отражающих предметную область и информационные потребности пользователей. Процесс проектирования длительный, он требует обсуждений с заказчиком, со специалистами в предметной области. Инфологическая модель должна включать такое формализованное описание предметной области, которое легко будет «читаться» не только специалистами по базам данных. И это описание должно быть настолько емким, чтобы можно было оценить глубину и корректность проработки проекта БД [2].
В качестве инструмента для построения семантических моделей данных на этапе инфологического проектирования является неформальная модель "Сущность-Связь". Моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов [5].
Основными понятиями ER-модели являются сущность, связь и атрибут.
Сущность (объект) - это реальный или представляемый объект предметной области, информация о котором должна сохраняться и быть доступна. Различают такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных предметов, событий, личностей, выступающих как единое целое. Экземпляр сущности относится к конкретной вещи в наборе. В диаграммах ER-модели сущность представляется в виде прямоугольника, содержащего имя сущности.
Атрибут - поименованная характеристика сущности, определяющая его свойства и принимающая значения из некоторого множества значений. Каждый атрибут обеспечивается именем, уникальным в пределах сущности.
Связь - это поименованная графически изображаемая ассоциация, устанавливаемая между сущностями и представляющая собой абстракцию набора отношений, которые систематически возникают между различными видами предметов в реальном мире. Большинство связей относятся к категории бинарных и имеют место между двумя сущностями.
4. Даталогическое проектирование
Содержанием даталогического проектирования является определение модели данных. Модель данных - это набор соглашений по способам представления сущностей, связей, агрегатов, системы классификации. Кроме этого каждая модель данных определяет особенности выполнения основных операций над данными:
· добавление,
· выборка.
В качестве модели данных была выбрана реляционная модель данных.
Реляционная модель данных -- логическая модель данных, строгая формальная теория, описывающая структурный аспект, аспект целостности и аспект обработки данных в реляционных базах данных.
Основными достоинствами реляционной модели данных являются:
· простота и доступность;
· независимость данных;
· гибкость;
· возможность непроцедурных запросов[6].
Атрибуты сущности «Каталог автозапчастей»:
· Фирма поставщик;
· Юридический адрес поставщика;
· Запчасть;
· Срок поставки;
· Марка авто;
· Узел;
· Агрегат;
Исходя из описанной в разделе «Описание предметной области» структуры можно сформировать ненормализованную таблицу(табл №1).
Таблица 1. Ненормализованная таблица «Каталог автозапчастей»
№ записи |
Фирма поставщик |
Юридический адрес фирмы |
Запчасть |
Срок поставки(дней) |
Марка авто |
Узел |
Агрегат |
|
1 |
АвтоВаз |
Россия, Тольятти, ул.Голосова 26 |
пружина |
5 |
Приора |
подвеска |
амортизатор |
|
2 |
АвтоВаз |
Россия, Тольятти, ул.Голосова 26 |
Опорный подшипник |
10 |
Приора |
подвеска |
амортизатор |
|
3 |
Автобокс |
Россия, Екатеринбург, ул. Мельковского 5 |
Шаровая опора |
7 |
Приора |
подвеска |
рычаг |
|
4 |
Автомаг |
Россия, Петропавловск, ул Жумабаева 39 |
поршень |
3 |
Ваз 2109 |
ДВС |
Цилиндр ДВС |
|
5 |
АвтоВаз |
Россия, Тольятти, ул.Голосова 26 |
Поршневые кольца |
8 |
Ваз 2109 |
ДВС |
Цилиндр ДВС |
|
6 |
Рекардо |
Россия, С,ул. Мамлеева 10 |
Корзина сцепления |
20 |
Ваз 2112 |
трансмиссия |
сцепление |
|
7 |
Автомаг |
Россия, Петропавловск, ул Жумабаева 39 |
ШРУС |
15 |
Ваз 2112 |
трансмиссия |
КПП |
|
8 |
Incar |
Польша, Варшава, ул. Зуравия 5 |
Термостат |
5 |
Приора |
Система охлаждения |
Система отопления |
|
9 |
Экрис |
Россия, Москва, ул. Кузнецова 20 |
Резонатор |
3 |
Ваз 2109 |
Выхлопная система |
глушитель |
4. Нормализация
4.1 Первая нормальная форма
Отношение находится в первой нормальной форме (далее - 1НФ) тогда, когда каждый её атрибут атомарен, т.е. на позиции на пересечении каждой строки и столбца таблицы всегда находится единственное значение (т.е. в одной ячейке находится одно значение: в текстовом - текст, в числовом только одно число, а не группа чисел перечисленных через запятую).
Наша таблица (Таблица 1) не удовлетворяет требованиям 1НФ, поскольку ей присущи следующие проблемы:
- Юридический адрес фирмы не являются атомарными. В связи с этим приведем нашу таблицу к 1НФ.
Таблица 2.Каталог автозапчастей
№ |
Фирма поставщик |
Страна поставщика |
Город поставщика |
Улица поставщика |
Дом поставщика |
Деталь |
Срок поставки |
Марка авто |
узел |
агрегат |
|
1 |
АвтоВаз |
Россия |
Тольятти |
Голосова |
26 |
пружина |
5 |
Приора |
подвеска |
амортизатор |
|
2 |
АвтоВаз |
Россия |
Тольятти |
Голосова |
26 |
Опорный подшипник |
10 |
Приора |
подвеска |
амортизатор |
|
3 |
Автобокс |
Россия |
Екатеринбург |
Мельковского |
5 |
Шаровая опора |
7 |
Приора |
Подвеска |
рычаг |
|
4 |
Автомаг |
Россия |
Петропавловск |
Жумабаева |
39 |
Поршень |
3 |
Ваз 2109 |
ДВС |
Цилиндр ДВС |
|
5 |
Автоваз |
Россия |
Тольятти |
Голосова |
26 |
Поршневые кольца |
8 |
Ваз 2109 |
ДВС |
Цилиндр ДВС |
|
6 |
Рекардо |
Россия |
Димитровград |
Мамлеева |
10 |
Корзина сцепления |
20 |
Ваз 2112 |
Трансмиссия |
сцепление |
|
7 |
Автомаг |
Россия |
Петропавловск |
Жумабаева |
39 |
ШРУС |
15 |
Ваз 2112 |
Трансмиссия |
КПП |
|
8 |
Incar |
Польша |
Варшава |
Зуравия |
5 |
Термостат |
5 |
Приора |
Система охлаждения |
Система отопления |
|
9 |
Экрис |
Россия |
Москва |
Кузнецова |
20 |
Резонатор |
3 |
Ваз 2109 |
Выхлопная система |
глушитель |
Анализируя полученную таблицу можно сделать следующие выводы:
· большое количество дублируемых данных (название страны, название авто, названия узлов и агрегатов);
· ухудшение читаемости таблицы из-за большего количества столбцов, объема информации.
Поэтому нормализацию данной таблицы необходимо продолжить, чтобы устранить данные недостатки.
4.2 Вторая нормальная форма
Отношение находится во второй нормальной форме тогда и только тогда, когда это отношение находится в 1НФ и каждый неключевой атрибут полностью зависит от первичного ключа.
Для этого разделим таблицу 2 «Каталог Автозапчастей» на две таблицы «Запчасти» и «Поставщик».
Таблица 3.Запчасти
№ записи |
Запчасть |
Срок поставки |
Марка авто |
Узел |
Агрегат |
|
1 |
пружина |
5 |
Приора |
подвеска |
амортизатор |
|
2 |
Опорный подшипник |
10 |
Приора |
подвеска |
амортизатор |
|
3 |
Шаровая опора |
7 |
Приора |
подвеска |
рычаг |
|
4 |
Поршень |
3 |
Ваз 2109 |
ДВС |
Цилиндр ДВС |
|
5 |
Поршневые кольца |
8 |
Ваз 2109 |
ДВС |
Цилиндр ДВС |
|
6 |
Корзина сцепления |
20 |
Ваз 2112 |
Трансмиссия |
сцепление |
|
7 |
ШРУС |
15 |
Ваз 2112 |
Трансмиссия |
КПП |
|
8 |
Термостат |
5 |
Приора |
Система охлаждения |
Система отопления |
|
9 |
Резонатор |
3 |
Ваз 2109 |
Выхлопная система |
глушитель |
Таблица 4.Поставщик
№ записи |
Поставщик |
Страна Поставщика |
Город поставщика |
Улица поставщика |
Дом поставщика |
|
1 |
АвтоВаз |
Россия |
Тольятти |
Голосова |
26 |
|
2 |
АвтоВаз |
Россия |
Тольятти |
Голосова |
26 |
|
3 |
Автобокс |
Россия |
Екатеринбург |
Мельковского |
5 |
|
4 |
Автомаг |
Россия |
Петропавловск |
Жумабаева |
39 |
|
5 |
АвтоВаз |
Россия |
Тольятти |
Голосова |
26 |
|
6 |
Рекардо |
Россия |
Димитровград |
Мамлеева |
10 |
|
7 |
Автомаг |
Россия |
Петропавловск |
Жумабаева |
39 |
|
8 |
Incar |
Польша |
Варшава |
Зуравия |
5 |
|
9 |
Экрис |
Россия |
Москва |
Кузнецова |
20 |
Читаемость таблиц улучшилась, но до сих пор сохраняется повторяемость записей для сохранения атомарности. Продолжим нормализацию таблиц дальше.
4.3 Третья нормальная форма
Отношение находится в третьей нормальной форме тогда и только тогда, когда это отношение находиться в 2НФ и каждый не ключевой атрибут нетранзитивно зависит от первичного ключа. Определим новые отношения для таких столбцов как: Поставщик, Страна Поставщика, Город поставщика, Улица поставщика, Марка Авто, Узел, Агрегат, для соблюдения условия не транзитивной зависимости.
В соответствии с данным определением представим таблицу в следующем виде:
Таблица 5. Запчасти
№ записи |
Запчасть |
Срок поставки |
Марка авто |
Узел |
Агрегат |
|
1 |
Пружина |
5 |
1 |
1 |
1 |
|
2 |
Опорный подшипник |
10 |
1 |
1 |
1 |
|
3 |
Шаровая опора |
7 |
1 |
1 |
2 |
|
4 |
Поршень |
3 |
2 |
2 |
3 |
|
5 |
Поршневые кольца |
8 |
2 |
2 |
3 |
|
6 |
Корзина сцепления |
20 |
3 |
3 |
4 |
|
7 |
ШРУС |
15 |
3 |
3 |
5 |
|
8 |
Термостат |
5 |
1 |
4 |
6 |
|
9 |
Резонатор |
3 |
2 |
5 |
7 |
Таблица 6. Поставщик
№ записи |
Поставщик |
Страна поставщика |
Город поставщика |
Улица поставщика |
Дом поставщика |
|
1 |
1 |
1 |
Тольятти |
Голосова |
26 |
|
2 |
1 |
1 |
Тольятти |
Голосова |
26 |
|
3 |
2 |
1 |
Екатеринбург |
Мельковского |
5 |
|
4 |
3 |
1 |
Петропавловск |
Жумабаева |
39 |
|
5 |
1 |
1 |
Тольятти |
Голосова |
26 |
|
6 |
4 |
1 |
Димитровград |
Мамлеева |
10 |
|
7 |
3 |
1 |
Петропавловск |
Жумабаева |
39 |
|
8 |
5 |
2 |
Варшава |
Зуравия |
5 |
|
9 |
6 |
1 |
Москва |
Кузнецова |
20 |
Таблица 7. Марка Авто
Код |
Авто |
|
1 |
Приора |
|
2 |
Ваз 2109 |
|
3 |
Ваз 2112 |
Таблица 8. Узел Таблица 9. Агрегат
Код |
Узел |
|
1 |
Подвеска |
|
2 |
ДВС |
|
3 |
Трансмиссия |
|
4 |
Система охлаждения |
|
5 |
Выхлопная система |
Таблица 9. Агрегат
Код |
Агрегат |
|
1 |
амортизатор |
|
2 |
рычаг |
|
3 |
Цилиндр ДВС |
|
4 |
Сцепление |
|
5 |
КПП |
|
6 |
Система отопления |
|
7 |
Глушитель |
Таблица 10. Страна поставщика
Код |
Страна Поставщика |
|
1 |
Россия |
|
2 |
Польша |
Таблица 11. Фирма поставщик
Код |
Фирма поставщик |
|
1 |
Автоваз |
|
2 |
Автобокс |
|
3 |
Автомаг |
|
4 |
Рекардо |
|
5 |
Incar |
|
6 |
Экрис |
3НФ достаточна, потому что для данной предметной области при переходе к следующим нормальным формам не будет ощутим прирост удобства и эффективности, поэтому этим процесс проектирования нашей реляционной БД заканчивается.
5. Логическая модель данных
Логическая модель данных описывает понятия предметной области и их взаимосвязи и является прототипом будущей базы данных. Логическая модель разрабатывается в терминах информационных понятий, но без какой-либо ориентации на конкретную СУБД.
Логическую модель представим в виде ER-диаграммы. Основные преимущества ER-моделей:
· наглядность;
· модели позволяют проектировать базы данных с большим количеством объектов и атрибутов;
· ER-модели реализованы во многих системах автоматизированного проектирования баз данных (например, CA BPwin Data Modeler).
Рис. 2. ER-диаграмма
6. Физическая модель данных
Физическая модель данных строится на базе логической модели и описывает данные уже средствами конкретной СУБД.
Отношения, разработанные на стадии логического моделирования, преобразуются в таблицы, атрибуты в столбцы, домены в типы данных, принятые в выбранной конкретной СУБД. Результатом физического моделирования является генерация программного кода базы данных на соответствующем выбранной СУБД диалекте структурированного языка запросов SQL.
Типы данных полей
Марка |
String |
Марка автомобиля |
||
Название таблицы |
Название поля |
Тип данных |
Описание |
|
Узел |
Код_Узла |
Integer |
Поле используемое для связи с таблицей «Деталь» |
|
Узел |
String |
Название узла автомобиля |
||
Агрегат |
Код_Агрегата |
Integer |
Поле используемое для связи с таблицей «Деталь» |
|
Агрегат |
String |
Название агрегата автомобиля |
||
Деталь |
Код_Фирмы |
Integer |
Поле используемое для связи с таблицей «Фирма» |
|
Марка |
Integer |
Поле используемое для связи с таблицей «Марка» |
||
Узел |
Integer |
Поле используемое для связи с таблицей «Узел» |
||
Деталь |
String |
Запчасть автомобиля |
||
Фирма |
Код_Фирмы |
Integer |
Поле используемое для связи с таблицей «Деталь». |
|
Фирма |
String |
Фирма поставщика |
||
СтранаФирмы |
Integer |
Поле используемое для связи с таблицей «Страна». |
||
Страна |
Код_Страны |
Integer |
Поле используемое для связи с таблицей «Фирма» |
|
Страна Фирмы |
String |
Страна поставщика |
||
Марка |
Код_Марки |
Integer |
Поле используемое для связи с таблицей «Деталь» |
7. Разработка приложения для работы с базой данных
Для установки связи базы данных с приложением используется библиотека функций ODBC.
ODBC (Open Database Connectivity) - широко распространенный программный интерфейс фирмы Microsoft, удовлетворяющий стандартам ANSI и ISO для интерфейсов обращений к базам данных (Call Level Interface, CLI). Для доступа к данным конкретной СУБД с помощью ODBC, кроме собственно клиентской части этой СУБД, нужен ODBC Administrator (приложение, позволяющее определить, какие источники данных доступны для данного компьютера с помощью ODBC, и описать новые источники данных), и ODBC-драйвер для доступа к этой СУБД. ODBC-драйвер представляет собой динамически загружаемую библиотеку (DLL), которую клиентское приложение может загрузить в свое адресное пространство и использовать для доступа к источнику данных. Для каждой используемой СУБД нужен собственный ODBC-драйвер, так как ODBC-драйверы используют функции клиентских API, разные для различных СУБД.
После установки связи базы данных с приложением начинаем разработку приложения. Для этого используются следующие компоненты:
1. Query (со вкладки ADO). Позволяет формировать запросы к БД, которые возвращают данные из базы (например, командой SELECT) или не формируют результирующего набора данных (например, INSERT).
Для того чтобы во время разработки программы задать, какая информация будет выделена из базы данных в результате выполнения запроса, свойство SQL должно содержать представленный на языке SQL запрос на выборку данных.
В общем виде запрос на выборку из таблицы данных выглядит так:
SELECT Список-Полей FROM Таблица WHERE (Критерий) ORDER BY СписокПолей
где: SELECT -- команда выбора записей из таблицы и вывода содержимого полей, имена которых указаны в списке;
FROM -- параметр команды, который определяет имя таблицы, из которой нужно сделать выборку;
WHERE -- параметр, который задает критерий выбора. В простейшем случае критерий -- это инструкция проверки содержимого поля;
ORDER BY - параметр, который задает условие, в соответствии с которым будут упорядочены записи, удовлетворяющие критерию запроса.
2. Table (со вкладки ADO). Обеспечивает доступ к файлу (отдельной таблице базы данных)
3. DataSource (со вкладки Data Access). Обеспечивает связь компонента отображения-редактирования данных (например, компонента DBGrid) и источника данных, в качестве которого может выступать таблица (компонент Tаblе) или результат выполнения SQL-запроса к таблице (компонент Query).
4. DbGrid (со вкладки Data Controls). Служит для отображения записей набора данных в табличной форме. В свойстве DataSource указываем компонент источника данных.
5. DbComboBox (со вкладки Data Controls). Служит для отображения записей какого-то поля таблицы либо результатов запроса.
6. DbLookupComboBox (со вкладки Data Controls). Служит для отображения записей одного из полей связной таблицы.
Также при разработке приложения были использованы другие компоненты: Button, Label, Edit, ComboBox и другие компоненты.
Заключение
В ходе выполненной курсовой работы были закреплены знания в области проектирования и программирования реляционных баз данных.
Также были изучены возможности среды Borland Delphi для работы с базами данных, установления связи с ними, средства управления данными через эти связи, добавление, удаление, редактирование записей, а также создание запросов.
Результатов курсовой работы является программа управления базой данных «каталог автозапчастей».
Список литературы
1. В. Фаронов «Система программирования Delphi» - СПб.: БХВ-Петербург, 2006.
2. Т.С. Карпова. Базы данных: модели, разработка, реализация. - СПб.: «Питер», 2002. - 266 с.
Приложение 1
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBCtrls, StdCtrls, DB, Grids, DBGrids, ADODB, ExtCtrls, Menus;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
Panel1: TPanel;
ADOQuery1: TADOQuery;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Edit1: TEdit;
Label1: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
Label2: TLabel;
DBLookupComboBox2: TDBLookupComboBox;
Label3: TLabel;
ADOConnection1: TADOConnection;
ADOQuery2: TADOQuery;
DataSource2: TDataSource;
DBGrid2: TDBGrid;
ADOQuery3: TADOQuery;
DataSource3: TDataSource;
DataSource4: TDataSource;
ADOQuery4: TADOQuery;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Edit2: TEdit;
Label4: TLabel;
DBLookupComboBox3: TDBLookupComboBox;
Label5: TLabel;
Label6: TLabel;
Button4: TButton;
DataSource5: TDataSource;
ADOQuery5: TADOQuery;
DBGrid3: TDBGrid;
DataSource6: TDataSource;
ADOQuery6: TADOQuery;
Label7: TLabel;
Edit3: TEdit;
Label8: TLabel;
DBLookupComboBox4: TDBLookupComboBox;
DBLookupComboBox5: TDBLookupComboBox;
DBLookupComboBox6: TDBLookupComboBox;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
ADOQuery7: TADOQuery;
DataSource7: TDataSource;
Button5: TButton;
DBGrid4: TDBGrid;
ADOQuery8: TADOQuery;
DataSource8: TDataSource;
DBLookupComboBox7: TDBLookupComboBox;
Label12: TLabel;
DataSource9: TDataSource;
ADOQuery9: TADOQuery;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
DBGrid5: TDBGrid;
Edit4: TEdit;
Button6: TButton;
Button7: TButton;
N8: TMenuItem;
Label13: TLabel;
Label14: TLabel;
Button8: TButton;
DBGrid6: TDBGrid;
Edit5: TEdit;
Button9: TButton;
Panel6: TPanel;
DBGrid7: TDBGrid;
Label15: TLabel;
Button10: TButton;
Edit6: TEdit;
Button11: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure DBLookupComboBox1Click(Sender: TObject);
procedure DBLookupComboBox2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
dbgrid1.visible:=true;
dbgrid2.visible:=false;
Edit1.Text:='';
DBLookupComboBox1.KeyValue:=null;
DBLookupComboBox2.KeyValue:=null;
//DBLookupComboBox3.KeyValue:=null;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT фирма,страна_фирмы ');
ADOQuery1.SQL.Add(' FROM фирма,страна where Фирма.странафирмы=страна.код');
ADOQuery1.Active:=True;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
dbgrid1.visible:=true;
dbgrid2.visible:=false;
Edit1.Text:='';
DBLookupComboBox1.KeyValue:=null;
DBLookupComboBox2.KeyValue:=null;
//DBLookupComboBox3.KeyValue:=null;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT деталь,марка,узел,Агрегат ');
ADOQuery1.SQL.Add(' FROM деталь,марка,узел,Агрегат where деталь.марка_=марка.код and');
ADOQuery1.SQL.Add('деталь.узел_=узел.код and');
ADOQuery1.SQL.Add(' деталь.агрегат_=агрегат.код ');
ADOQuery1.Active:=True;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
dbgrid1.visible:=true;
dbgrid2.visible:=false;
Edit1.Text:='';
DBLookupComboBox1.KeyValue:=null;
DBLookupComboBox2.KeyValue:=null;
//DBLookupComboBox3.KeyValue:=null;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT фирма,страна_фирмы,деталь,марка,узел,Агрегат ');
ADOQuery1.SQL.Add(' FROM фирма,страна,деталь,марка,узел,Агрегат where деталь.марка_=марка.код and');
ADOQuery1.SQL.Add('деталь.узел_=узел.код and деталь.код_фирмы=Фирма.код and');
ADOQuery1.SQL.Add(' деталь.агрегат_=агрегат.код and Фирма.странафирмы=страна.код ');
ADOQuery1.Active:=True;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
DBGrid2.Visible:=true;
DBGrid1.Visible:=false;
DBLookupComboBox1.KeyValue:=null;
DBLookupComboBox2.KeyValue:=null;
if Length(edit1.Text) > 0 then begin
ADOQuery2.Filtered:=false;
end;
try
ADOQuery2.Filtered:=false;
ADOQuery2.Filter:='([деталь] LIKE ''' + '%' + edit1.Text + '%' + ''')';
ADOQuery2.Filtered:=true;
form1.ADOQuery2.Refresh;
except
// ADOQuery4.Filtered:=false;
end;
end;
procedure TForm1.DBLookupComboBox1Click(Sender: TObject);
begin
dbgrid1.visible:=true;
dbgrid2.visible:=false;
//Edit1.Text:='';
DBLookupComboBox2.KeyValue:=null;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT фирма,страна_фирмы,деталь,марка,узел,Агрегат ');
ADOQuery1.SQL.Add(' FROM фирма,страна,деталь,марка,узел,Агрегат where деталь.марка_=марка.код and ');
ADOQuery1.SQL.Add('деталь.узел_=узел.код and Фирма.код=деталь.код_фирмы and');
ADOQuery1.SQL.Add(' деталь.агрегат_=агрегат.код and Фирма.код=страна.код and марка.код='+inttostr(DBLookupComboBox1.KeyValue)+'');
ADOQuery1.Active:=True;
end;
procedure TForm1.DBLookupComboBox2Click(Sender: TObject);
begin
dbgrid1.visible:=true;
dbgrid2.visible:=false;
DBLookupComboBox1.KeyValue:=null;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT фирма,страна_фирмы,деталь,марка,узел,Агрегат ');
ADOQuery1.SQL.Add(' FROM фирма,страна,деталь,марка,узел,Агрегат where деталь.марка_=марка.код and ');
ADOQuery1.SQL.Add('деталь.узел_=узел.код and Фирма.код=деталь.код_фирмы and');
ADOQuery1.SQL.Add(' деталь.агрегат_=агрегат.код and Фирма.код=страна.код and узел.код='+inttostr(DBLookupComboBox2.KeyValue)+'');
ADOQuery1.Active:=True;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
panel5.Visible:=false;
panel4.Visible:=false;
panel2.Visible:=true;
panel1.Visible:=false;
panel3.Visible:=false;
panel6.Visible:=false;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
panel5.Visible:=false;
panel4.Visible:=false;
panel2.Visible:=false;
panel1.Visible:=true;
panel3.Visible:=false;
panel6.Visible:=false;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
panel6.Visible:=false;
panel5.Visible:=false;
panel4.Visible:=false;
panel2.Visible:=false;
panel3.Visible:=true;
panel1.Visible:=false;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
if(Trim(Edit2.Text)='') or
(DBLookupComboBox3.Text='')
then
begin
ShowMessage('Заполните поля');
exit;
end;
try
ADOQuery6.Insert;
ADOQuery6.FieldByName('фирма').AsString:=Edit2.Text;
ADOQuery6.FieldByName('странафирмы').AsInteger:=StrToInt(inttostr(DBLookupComboBox3.KeyValue));
ADOQuery6.ExecSQL;
ADOQuery6.Refresh;
except
end;
ShowMessage('фирма добавлена');
Edit2.Text:='';
DBLookupComboBox3.KeyValue:=null;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
if(Trim(Edit3.Text)='') or
(DBLookupComboBox4.Text='') or
(DBLookupComboBox5.Text='')or
(DBLookupComboBox7.Text='')or
(DBLookupComboBox6.Text='')
then
begin
ShowMessage('Заполните поля');
exit;
end;
try
ADOQuery8.Insert;
ADOQuery8.FieldByName('деталь').AsString:=Edit3.Text;
ADOQuery8.FieldByName('марка_').AsInteger:=StrToInt(inttostr(DBLookupComboBox4.KeyValue));
ADOQuery8.FieldByName('узел_').AsInteger:=StrToInt(inttostr(DBLookupComboBox5.KeyValue));
ADOQuery8.FieldByName('агрегат_').AsInteger:=StrToInt(inttostr(DBLookupComboBox6.KeyValue));
ADOQuery8.FieldByName('код_фирмы').AsInteger:=StrToInt(inttostr(DBLookupComboBox7.KeyValue));
ADOQuery8.ExecSQL;
ADOQuery8.Refresh;
except
end;
ShowMessage('деталь добавлена');
Edit3.Text:='';
DBLookupComboBox4.KeyValue:=null;
DBLookupComboBox5.KeyValue:=null;
DBLookupComboBox6.KeyValue:=null;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
panel5.Visible:=false;
panel3.Visible:=false;
panel2.Visible:=false;
panel4.Visible:=true;
panel1.Visible:=false;
panel6.Visible:=false;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
if(Trim(Edit4.Text)='')
then
begin
ShowMessage('Заполните поле');
exit;
end;
try
ADOQuery5.Insert;
ADOQuery5.FieldByName('страна_фирмы').AsString:=Edit4.Text;
ADOQuery5.ExecSQL;
except
end;
Application.MessageBox(PChar('страна добавлена') , '', MB_OK) ;
edit4.Clear;
panel5.Visible:=false;
panel3.Visible:=false;
panel2.Visible:=false;
panel1.Visible:=true;
panel4.Visible:=false;
panel6.Visible:=false;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
panel5.Visible:=false;
panel3.Visible:=false;
panel2.Visible:=false;
panel1.Visible:=true;
panel4.Visible:=false;
panel6.Visible:=false;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
panel1.Visible:=false;
panel3.Visible:=false;
panel2.Visible:=false;
panel5.Visible:=true;
panel4.Visible:=false;
panel6.Visible:=false;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
panel5.Visible:=false;
panel3.Visible:=false;
panel2.Visible:=false;
panel1.Visible:=true;
panel4.Visible:=false;
panel6.Visible:=false;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
if(Trim(Edit5.Text)='')
then
begin
ShowMessage('Заполните поле');
exit;
end;
try
ADOQuery7.Insert;
ADOQuery7.FieldByName('агрегат').AsString:=Edit5.Text;
ADOQuery7.ExecSQL;
except
end;
Application.MessageBox(PChar('агрегат добавлен') , '', MB_OK) ;
edit4.Clear;
panel5.Visible:=false;
panel3.Visible:=false;
panel2.Visible:=false;
panel1.Visible:=true;
panel4.Visible:=false;
panel6.Visible:=false;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
panel5.Visible:=false;
panel3.Visible:=false;
panel2.Visible:=false;
panel1.Visible:=false;
panel4.Visible:=false;
panel6.Visible:=true;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
panel5.Visible:=false;
panel3.Visible:=false;
panel2.Visible:=false;
panel6.Visible:=false;
panel4.Visible:=false;
panel1.Visible:=true;
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
if(Trim(Edit6.Text)='')
then
begin
ShowMessage('Заполните поле');
exit;
end;
try
ADOQuery3.Insert;
ADOQuery3.FieldByName('марка').AsString:=Edit6.Text;
ADOQuery3.ExecSQL;
except
end;
Application.MessageBox(PChar('марка добавлена') , '', MB_OK) ;
edit4.Clear;
panel5.Visible:=false;
panel3.Visible:=false;
panel2.Visible:=false;
panel1.Visible:=true;
panel4.Visible:=false;
panel6.Visible:=false;end; end.
Приложение 2
Руководство пользователя
Сведенья о программе.
Программа «Каталог автозапчастей» предназначена для управления базой данных каталога автомобильных деталей.
В данной программе выполняются следующие задачи:
· Просмотр всех автомобильных автозапчастей;
· Добавление новых деталей;
· Выполнения различных запросов к БД;
Описание остановки.
Для установки необходимо разместить файлы Project1.exe и BD.mdb в одном каталоге.
Описание запуска программы.
Для запуска программы необходимо запустить файл Project1.exe
Инструкция по работе
Открывается главное окно программы на котором находятся:
· Кнопка для вывода полной информации о фирмах поставщиков;
· Кнопка для вывода краткой информации о деталях;
· Кнопка для вывода полной информации бд;
· Поле для поиска детали;
· Меню для поиска деталей по марке автомобиля;
· Меню для поиска деталей по узлам автомобиля;
· Вкладка добавления информации;
· Кнопка выхода из программы;
· Вкладка информации.
Нажимая на кнопки получаем соответствующие названию кнопок запросы на выборку данных.
Список фирм:
Список деталей:
Вывод полной информации:
Поиск деталей по марке авто(результат запрос на марку авто):
Результат запрос на поиск по узлам авто:
Чтобы добавить нужные данные в БД надо нажать на кнопку «Добавить», далее будет предложен список добавления нужной информации в БД.
Добавление фирмы:
Добавление детали:
Добавление страны поставщика:
Добавление агрегата:
Добавление марки автомобиля:
Заканчивается работа с программой по нажатию кнопки «выход».
Размещено на Allbest.ur
Подобные документы
Обследование предметной области. Концептуальное проектирование сущностей и атрибутов. Инфологическое проектирование базы данных, ее реляционная модель. Разработка представлений для отображения результатов выборки. Экономическое обоснование результатов.
курсовая работа [717,7 K], добавлен 23.06.2011Системный анализ и краткая характеристика предметной области. Функции для работы с буферизованной таблицей. Описание предметной области и инфологическое моделирование. Модель "сущность-связь". Проектирование баз данных на основе принципов нормализации.
курсовая работа [112,9 K], добавлен 27.02.2009Анализ предметной области и создание таблиц базы данных "Фирма по продаже запчастей". Простой выбор данных и обработка группирующих запросов с условием средствами MS SQL Server 2008. Создание хранимых процедур и функций, изменение структуры базы данных.
курсовая работа [6,1 M], добавлен 16.12.2015Назначение базы данных для обеспечения работы автобусного парка. Основные возможности админпанели. Выполняемые базой данных и приложением функции. Инфологическое моделирование данных. Описание разработанного web-приложения. Проектирование базы данных.
курсовая работа [2,2 M], добавлен 01.02.2013Алгоритм работы программы. Анализ предметной области. Структура таблиц БД "Библиотека". Инфологическое и даталогическое проектирование. Запросы для поиска и извлечения только требуемых данных. Формы для просмотра, добавления, изменения данных в таблицах.
курсовая работа [5,1 M], добавлен 14.06.2014Понятие реляционной модели данных, целостность ее сущности и ссылок. Основные этапы создания базы данных, связывание таблиц на схеме данных. Проектирование базы данных книжного каталога "Books" с помощью СУБД Microsoft Access и языка запросов SQL.
курсовая работа [838,9 K], добавлен 25.11.2010Системный анализ и анализ требований к базе данных. Концептуальная и инфологическая модель предметной области. Типы атрибутов в логической модели базы. Физическая модель проектируемой базы данных в методологии IDEF1X. Требования к пользователям системы.
курсовая работа [2,3 M], добавлен 21.11.2013Создание структуры базы данных на примере "Школьного журнала" с использованием метода и принципа нормализации. Понятия базы данных, архитектуры БД и проектирования. Описание предметной области; приложения для работы с базой данных TTable и TQuery.
дипломная работа [996,4 K], добавлен 01.04.2012Анализ предметной области. Показатели качества БД. Нормативные документы в бизнесе. Проектирование отчетов и экранных форм. Разработка таблиц и полей данных. Создание схемы БД. Реляционная модель данных. Запросы на выборку информации, макросы и модули.
курсовая работа [2,0 M], добавлен 08.04.2014Базы данных и их использование в вычислительной технике. Особенности и основная конструктивная единица сетевой модели данных. Иерархическая модель, объекты предметной области. Реляционная модель, ее наглядность, представление данных в табличной форме.
реферат [115,8 K], добавлен 19.12.2011