База данных книжного магазина
Курсовая работа, 03 Октября 2013, автор: пользователь скрыл имя
Описание работы
В данной курсовой работе была разработана база данных книжного магазина.
В проекте были исследованы три основных составляющих проектирования и создания БД, а именно:
1. Анализ предметной области. 2. Проектирование логической модели. 3. Реализация Базы Данных.
Содержание работы
Введение 5
1. Исследовательская часть 7
1.1 Постановка задачи 7
1.2 Анализ предметной области 8
1.3 Описание предметной области 8
1.4 Сбор данных по выбранной теме 9
1.5 Средства реализации 10
2. Конструкторская часть 16
2.1 Основные этапы разработки 16
2.2 Создание структуры базы данных 16
2.3 Создание таблиц 19
2.4 Создание приложения в Delphi 2010 22
2.5 Создание отчётов по базе данных 30
2.6 Тестирование разработанного продукта 32
3. Технологическая часть 35
Заключение 35
Список литературы 37
Приложение А 38
Приложение Б 39
Приложение В 42
Файлы: 1 файл
Курсак БД копия.docx
— 817.83 Кб (Скачать файл)
Рис. 2.4 Таблица «Города»
Рис. 2.5 Таблица «Страны»
Рис. 2.6 Таблица «Покупатели»
Рис. 2.7 Таблица «Покупки»
Рис. 2.8 Таблица «Издательство»
Рис. 2.9 Таблица «Индекс»
2.4 Создание приложения в Delphi 2010
Запускаем Delphi 2010 и создаем главную форму Form1(Рис. 2.10), которая буде служить для доступа ко всем таблицам нашей базы данных. На ней размещаем кнопки для от работы с таблицами и создаем обработчики события OnButtonClick, в которых будет реализована логика работы приложения.
Рис. 2.10 Главная форма
Для кнопки «Книги» создаем следующий обработчик, выполнение которого привод к созданию формы для работы с таблицей «Книги»
procedure TForm1.bbtnBooksClick(Sender: TObject);
begin
frmBooks := TfrmBooks.Create(Application);
frmBooks.Show;
end;
Для загрузки данных из БД в компонент BDGrid необходимо добавить компоненты ADOQuery и DataSource. В ADOQuery свойство Connection устанавливаем на ADOConntion, в свойстве SQL пишем следующий SQL запрос :
select books.isbn, books.name, author.name_a, ganri.name_ganr,
publishers.name, books.count_page,books.price, books.imprint_date
from Books,Ganri,Publishers, Author
where
Ganri.id_ganr = Books.ganr and Publishers.ID_PUPISHER = books.publishers
And Books.author = Author.id_author
Для того чтобы добавлять данные в таблицу «Книги» добавим кнопку «Добавить книгу», которая отображает форму для ввода/редактирования данных.
Следующая процедура добавляет данные в таблицу «Книги»
procedure TfrmModifyBooks.
begin
if (edtISBN.Text = '') or (edtNameBook.Text = '') or
(DBLookupComboBoxGanri.Text = '') or (DBLookupComboBoxPublishers.
begin ShowMessage('Заполнены не все поля!'); exit; end;
try
DataModule1.ADOConnection1.
with DataModule1.spInsertBooks do
begin
Parameters.ParamByName('@isbn'
Parameters.ParamByName('@name'
Parameters.ParamByName('@ganr'
//ShowMessage(
Parameters.ParamByName('@
Parameters.ParamByName('@
Parameters.ParamByName('@
Parameters.ParamByName('@
Parameters.ParamByName('@
ExecProc;
end;
DataModule1.ADOConnection1.
frmModifyBooks.Close;
except
DataModule1.ADOConnection1.
ShowMessage('Невозможно выполнить. Повторите.');
end;
end;
Далее напишем код, который изменяет данные в таблице
procedure TfrmBooks.
var
isb,sql : string;
edit : Boolean;
begin
try
isb := ADOQueryBooks.FieldByName('
//ShowMessage(isb);
frmModifyBooks := TfrmModifyBooks.Create(
frmModifyBooks.bbtnAddBooks.
frmModifyBooks.bbtnEditBooks.
frmModifyBooks.edtISBN.Text := ADOQueryBooks.FieldByName('
frmModifyBooks.edtNameBook.
frmModifyBooks.edtCountPages.
frmModifyBooks.edtPrice.Text := ADOQueryBooks.FieldByName('
frmModifyBooks.edtImprittDate.
//frmModifyBooks.ShowModal;
if frmModifyBooks.ShowModal = mrOk then
begin
if (frmModifyBooks.edtISBN.Text
= '') or (frmModifyBooks.edtNameBook.
(frmModifyBooks.
(frmModifyBooks.
or ( frmModifyBooks.
(frmModifyBooks.edtCountPages.
or ( frmModifyBooks.edtImprittDate.
then
begin
ShowMessage('Заполнены не все поля!'); exit;
end;
with frmModifyBooks, DataModule1.spUpdateBooks.
begin
ParamByName('@id').Value := edtISBN.Text;
ParamByName('@name').Value := edtNameBook.Text;
ParamByName('@ganr').Value
:= DBLookupComboBoxGanri.
ParamByName('@publish').Value
:= DBLookupComboBoxPublishers.
ParamByName('@c_page').Value := StrToInt(edtCountPages.Text);
ParamByName('@price').Value := StrToFloat(edtPrice.Text);
ParamByName('@date').Value := StrToInt(edtImprittDate.Text);
ParamByName('@author').Value := DBLookupComboBox1.KeyValue;
DataModule1.spUpdateBooks.
end;
ADOQueryBooks.Requery();
ADOQueryBooks.Last;
end;
except
ShowMessage('Произошла ошибка! Повторите еще раз.');
end;
ADOQueryBooks.Requery();
ADOQueryBooks.Last;
end;
Далее реализуем процедуры, которые будут выполнять фильтрацию данных. Фильтрацию будем выполнять по следующим полям: № книги (ISBN), «Жанр», «Автор», «Кол-во стр.», «Цена», «Год издания»
Процедуры TfrmBooks.edtMaxPriceChange и TfrmBooks.edtMinPrice-
Change фильтруют данные по полю «Цена»
procedure TfrmBooks.edtMaxPriceChange(
var min : string;
begin
min :='10.0';
if(Length(edtMinPrice.Text) >0) and (StrToFloat(edtMinPrice.Text) > 0) then
min := edtMinPrice.Text;
if(Length(edtMaxPrice.Text) > 0) then begin
ADOQueryBooks.Filtered:= false;
ADOQueryBooks.Filter:='price >= '+ min +
' and price <= '+ edtMaxPrice.Text;
ADOQueryBooks.Filtered:=true;
end
else ADOQueryBooks.Filtered:=false;
end;
procedure TfrmBooks.edtMinPriceChange(
var max : string;
begin
max :='1000.0';
if(Length(edtMaxPrice.Text) >0) and (StrToFloat(edtMaxPrice.Text) > 0) then
max := edtMaxPrice.Text;
if(Length(edtMinPrice.Text) >0) then begin
ADOQueryBooks.Filtered:= false;
ADOQueryBooks.Filter:='price >= '+ edtMinPrice.Text+
' and price <= '+ max;
ADOQueryBooks.Filtered:=true;
end
else ADOQueryBooks.Filtered:=false;
end;
Процедура TfrmBooks.Edit4Change фильтрует данные по полю «Автор»
procedure TfrmBooks.Edit4Change(Sender: TObject);
begin
if(Length(Edit4.Text) > 0) then
begin
ADOQueryBooks.Filtered := false;
ADOQueryBooks.Filter := 'name_a LIKE ' + #39 + '%'+ Edit4.Text + '%' +#39;
ADOQueryBooks.Filtered := true;
end
else ADOQueryBooks.Filtered := false;
end;
Процедура TfrmBooks.Edit3Change фильтрует данные по полю «Жанр»
procedure TfrmBooks.Edit3Change(Sender: TObject);
begin
if(Length(Edit3.Text) > 0) then
begin
ADOQueryBooks.Filtered := false;
ADOQueryBooks.Filter := 'name_ganr LIKE ' + #39 + '%'+Edit3.Text '%'+#39;
ADOQueryBooks.Filtered := true;
end
else ADOQueryBooks.Filtered := false; end;
Для остальных таблиц аналогичным способом создаем обработчики добавления/изменения данных в БД
2.5 Создание отчётов по базе данных
Для того
чтобы приложение Delphi могло выполнять
функции печати отчетов, разработчик должен
выполнить следующий набор операций.
Создадим отчет аналогичный рассмотренному
ранее, используя набор компонентов Rave
Reports.
Порядок
создания отчета следующий:
1. Разместить на главной форме приложения
следующие компоненты: TRvProject, TRvSystem, TRvDataSetConnection,
TADOConnection и TADOQuery,. С помощью свойства Engine
связать компонент RvProject с компонентом
RvSystem. Настроить компонент RvDataSetConnection,
подключив его к компоненту TADOQuery с помощью
свойства DataSet. Связать компоненты TADOQuery
и ADOConnection, подключить компонент ADOConnection
к требуемой БД. Для компонента TADOQuery задать
следующий текст запроса:
select books.isbn, books.name, author.name_a, ganri.name_ganr,
publishers.name, books.count_page,books.price, books.imprint_date
from Books,Ganri,Publishers, Author
where Ganri.id_ganr = Books.ganr and Publishers.ID_PUPISHER = books.publishers and Books.author = Author.id_author
2. При помощи визуальной среды разработки Rave Reports создать проект отчета. Для этого выполнить двойной щелчок по компоненту RvProject или выбрать пункт меню Tools–Rave Designer. В открывшемся редакторе отчетов выполним пункт меню File–New Data Objects, чтобы настроить соединение с БД. В открывшемся окне выберем пункт меню Direct Data View (Рис 2.11)
Рис. 2.11 Выбор драйвера поставщика данных
В следующем
окне выберем ранее созданный
компонент соединения
Далее для упрощения создания отчета воспользуемся мастером построения отчетов. Для этого выполним пункт меню Tools–Report Wizards–Simple Table. В ходе выполнения мастера потребуется выбрать поля, включаемые в отчет, и порядок следования полей, а также задать текст заголовка отчета. Пример отчета, созданного с помощью мастера, представлен на Рис. 2.12
Рис. 2.12 Форма отчета в Rave Reports.
Теперь
можно отредактировать
3. В компоненте RvProject задать свойство
ProjectFile, указав в нем имя ранее созданного
файла проекта отчета.
Теперь добавим кнопку и написав для нее обработчик, вызывающий предварительный просмотр отчета или выполняющий его печать:
procedure TfrmBooks.Button1Click(Sender: TObject);
begin
RvProject1.Execute;
end;
- Тестирование разработанного продукта
Запускаем наше приложение , на главной форме (см. Рис. 2.10) жмем кнопку «Книги» и перед нами открывается форма для работы с данными таблицы «Книги»(Рис. 2.13)
Рис. 2.13 Форма для работы с таблицей «Книги»
Для того чтобы добавить информацию о книге жмем кнопку «Добавить книгу» откроется следующее окно (Рис. 2.14). Вводим информацию и жмем «Добавить». После чего в таблицу добавиться новая запись.
Рис. 2.14 Добавление данных о книге
Аналогичным образом можно изменить выделенную запись в таблице, нажав на кнопку «Изменить данные»
Чтобы отфильтровать данные в таблице по определенным критерия нужно воспользоваться панелью «Фильтрация»(Рис. 2.15).
Рис. 2.15 Панель для фильтрации данных в таблице
При вводе данных в соответствующие поля автоматически происходит фильтрация записей по заданным на текущий момент данным. Вводить можно как и фразы целиком, так и их часть. Для отмены фильтрации просто очистите соответствующее поле.
Для просмотра отчета необходимо нажать на кнопку «Отчет ‘Все книги’» и получим отчет по книгам всей таблицы или по отфильтрованным данным (Рис. 2.16)
Рис. 2.16 Отчет по книгам
3. Технологическая часть
3.1 Требования
к составу и параметрам
Системные требования:
- ОС Windows XP SP2 и старше
- Процессор Pentium 4 2000 MHz.
- Оперативную память 256 Mb.
- Видеа directx совместимая с размером памяти не менее 128Mb.
- Клавиатура.
- Мышь.
- Монитор c поддержкой разрешения 800х600.
Функциональное назначение
Данная программа представляет собой конечную БД по теме «Книжный магазин».
Выполнение программы
Программа запускается при помощи файла «Project1.exe».
Заключение
В данной курсовой работе была разработана база данных книжного магазина.
В проекте были исследованы три основных составляющих проектирования и создания БД, а именно:
1. Анализ предметной области.
В ходе анализа предметной области библиотеки, стало выявление цели суть, которой является автоматизация информационной деятельности библиотеки, постановка и достижение следующих задач:
- устранение рутинных ручных операций, неизбежных при обработке информации;
- существенное ускорение процессов обработки и преобразование данных;
- повышение точности учетных и отчетных данных;
- расширение возможностей организации и разностороннего использования информационных ресурсов за счет, использования высокоорганизованных структур данных и систем управления ими.
2. Проектирование логической модели.
В данной главе описаны основные принципы и требования построения логической модели БД. В виду анализа предметной области было решено выбрать реляционный вид логической модели. Основной задачей на данном этапе исследования является разработка, и определение первичных и альтернативных ключей, разработка индексов, установка вида связей между таблицами, а также приведение модели к требуемому уровню нормальной формы – в данной модели отношения заданы в третьей нормальной форме.