Создание структуры базы данных и разработка приложения для автоматизации учета кинопродукции

Автор работы: Пользователь скрыл имя, 11 Января 2013 в 09:18, курсовая работа

Краткое описание

В данной работе описано создание и оптимизация бизнес приложения базы данных в Delphi. База данных (database) – это самодокументируемый набор интегрированных записей. База данных самодокументирована, так как она содержит в дополнение к оригинальным данным пользователя, описание собственной структуры. Это описание называется словарем данных, каталог данных или метод данных.

Содержание

Введение 3
1. Исследование предметной области 5
1.1. Постановка проблемы 5
1.2. Описание предметной области 5
1.3. Постановка задачи и обзор методов ее решения 6
2. Проектирование базы данных 8
2.1. Обоснование выбора проектных решений 8
2.2. Концептуальное проектирование: перечень сущностей и атрибутов 9
2.3. Модель «сущность-связь». 9
2.4. Реляционная модель БД 10
2.4.1. Выбор ключей 11
2.4.2. Нормализация отношений 11
2.4.3. Синтез отношений: атрибутивная связь. 13
2.5. Физическое моделирование 14
2.5.1. Таблицы базы данных 14
2.5.2. Разработка приложения доступа к данным в формате MS Acsess в Delphy 16
3. Тестирование базы данных 30
3.1. Тестирование: проверка корректной работы разработанного приложения 30
3.2. Работа с приложением: инструкция для пользователя 32
Заключение 36
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 37

Прикрепленные файлы: 1 файл

kursovaya.docx

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

MDIChildren[i].Show;f:=1;end;

end

                                               else f:=1;

//если форма  еще не создана, то создаем  ее

if f<>1 then Tform_prosm.Create(Application);

end;

Переменные f и I описываем в разделе var:

var

  Form_general: TForm_general;

  f,i:integer; //f:=1 если подчиненная форма уже запущена и f:=0 если нет

В итоге получается следующее (Рис. 13):

Рис. 13 «Форма “Просмотр и добавление”»

Теперь необходимо создать  форму для поиска фильма в базе данных. Для этого нужно добавить новую форму: Caption -> Поиск; FormStyle -> fsMDIChild; Name -> Form_poisk.Пропишем Uses general; после раздела implementation в программном модуле poisk, а в программном модуле unit general главной формы пропишем Uses poisk;.

Далее размещаем на форме следующие компоненты: компонент TDataSource из вкладки Data Access, компонент  TDBGrid и один из вкладки Data Controls,  компонент Memo и TButton из вкладки Standart, компонент TADOQuery из вкладки dbGo.

Для DataSource1 DataSet -> ADOQuery1. В свойстве Connection компонента TADOQuery выберем Form_general.ADOConnection1. Для  DBGrid1 DataSource -> DataSource1. Для Button1 устанавливаем  свойство  Caption  -> Выполнить поиск; и пишем обработчик события для кнопки:

procedure TForm_poisk.Button1Click(Sender: TObject);

begin

//проверим - есть  ли текст в Memo. Если нет, выходим:

if Memo1.Text = '' then begin

ShowMessage('Вначале  введите запрос!');

Memo1.SetFocus ;

Exit;

end;

//текст есть. Очистим предыдущий запрос в наборе данных:

ADOQuery1.SQL.Clear; //добавим  новый запрос из Memo:

ADOQuery1.SQL.Add(Memo1.Text);

//открываем набор  данных, т.е. выполняем запрос:

ADOQuery1.Open;

end;

В  компоненте Memo пишем запрос, который будет выводиться при запуске программы:

SELECT * FROM WHERE LIKE

В инспекторе объектов для Form_poisk событие FormActivate пишем:

procedure TForm_poisk.FormActivate(Sender: TObject);

begin

//установка фокуса  при активации формы

dbgrid1.SetFocus;

end;

В инспекторе объектов для Form_poisk событие FormClose пишем:

procedure TForm_poisk.FormClose(Sender: TObject; var Action: TCloseAction);

begin

//процедура закрытия  формы

  Action:=cafree;

end;

Переходим на главную форму, щелкаем мышкой по компоненту MainMenu1, а затем по пункту Поиск и пишем следующий обработчик события:

procedure TForm_general.N2Click(Sender: TObject);

begin

f:=0;

//проверяем, активна  ли наша форма

if ActiveMDIChild.Caption<>'Поиск' then begin

//если нет то  ищем ее среди неактивных  и  если находим, то показываем  ее

for i:=0 to form_general.MDIChildCount-1 do

if form_general.MDIChildren[i].Caption='Поиск' then begin

MDIChildren[i].Show;f:=1;end;

end

                                               else f:=1;

//если форма  еще не создана, то создаем  ее

if f<>1 then Tform_poisk.Create(Application);

end;

В итоге получается следующее (Рис. 14):

Рис. 14 «Форма “Поиск”»

 

Теперь необходимо создать форму для создания отчета о фильмах. Для этого нужно добавить новую форму: Caption -> Отчет; FormStyle -> fsMDIChild; Name -> Form_otchet.Пропишем Uses general; после раздела implementation в программном модуле otchet, а в программном модуле unit general главной формы пропишем Uses otchet;.

Далее размещаем на форме компонент  QuickRep из вкладки QReport.

Форма примет вид разлинованного листа. Это своего рода холст, на котором  будут собираться различные части отчета. В свойстве Bands переведем  в True полосы HasPageHeader (верхний колонтитул), HasTitle (заголовок отчета), HasColumnHeader (заголовки колонок), HasDetail (детальная информация) и HasPageFooter (нижний колонтитул). He установленной останется только полоса HasSummary. Если дважды щелкнуть мышью по свободному месту холста, появится настроечное окно (Рис. 15):

Рис. 15 «Настроечное окно»

Свойство Options: FirstPageHeader - Разрешает печать заголовков (шапку) первой страницы, если равно True. LastPageFooter - Разрешает печать подвала последней страницы, если равно True. Compression - Разрешает сжатие отчета при формировании из него метафайла (отчет представляет собой изображение), если равно True.

Свойство PrintlfEmpty разрешает (True) или запрещает (False) печатать отчет, если в нем нет никаких данных. Поставим True.

Свойство ShowProgress разрешает  или запрещает показывать индикатор  процесса печати отчета. По умолчанию  индикатор разрешен.

Свойство SnapToGrid разрешает  или запрещает привязывание компонентов к сетке. По умолчанию привязка разрешена.

В левой части полосы Page Header установим компонент QRSysData. Установим для свойства Data значение qrsDateTime  (Вывод текущих даты и времени), чтобы пользователь мог видеть, когда был сформирован отчет. Далее выделим всю полосу Page Header и в свойстве Frame переведем в True параметр DrawBottom. Это свойство позволяет задать обрамление выделенной полосе, а параметр DrawBottom рисует линию в нижней части полосы, т.е. визуально отделяется колонтитул от данных листа.

В Page Footer нужно установить верхнюю линию в свойстве Frame, отделив от данных нижний колонтитул. А по центру полосы установить еще один компонент QRSysData, установив свойство Data в значение qrsPageNumber. Этот компонент будет выводить номер текущей страницы в нижней части листа.

Теперь напишем заголовок  отчета, для этого установим компонент QRLabel в центре полосы Title. В свойстве Caption напишем "Отчет по фильмыам". В Column Header установим рядом пять компонентов QRLabel, в свойстве Caption которых необходимо написать Номер, Название, Автор, Количество, Цена. В Detail,  в самом крайнем положении слева установим компонент QRSysData, в свойстве Data которого выбрать qrsDetailNo - перед каждой строкой будет выходить ее номер. Далее установим пять компонентов QRDBText, в которых будут отражаться данные из соответствующих полей таблицы. Расположим их точно под названиями столбцов, чтобы таблица была красивой. Выделим все QRDBText, и в их свойстве DataSet выберем таблицу Form_general.book, затем поочередно в свойстве DataField этих компонентов выберем соответствующие поля таблицы: Номер, Название, Автор, Количество, Цена.

В свойстве DataSet  компонента QuickRep1 также выберем таблицу Form_general.book.  В итоге получается следующее (Рис. 15):

Рис. 16 «Форма “Отчет”»

 

В инспекторе объектов для Form_otchet событий FormActivate и FormClose пишем как и в предыдущих формах аналогичные обработчики событий. Переходим на главную форму, щелкаем мышкой по компоненту MainMenu1, а затем по пункту Поиск и пишем следующий обработчик события:

procedure TForm_general.N3Click(Sender: TObject);

begin

f:=0;

//проверяем, активна  ли наша форма

if ActiveMDIChild.Caption<>'Отчет' then begin

//если нет то  ищем ее среди неактивных  и  если находим, то показываем  ее

for i:=0 to form_general.MDIChildCount-1 do

if form_general.MDIChildren[i].Caption='Отчет' then begin

MDIChildren[i].Show;f:=1;end;

end

                                               else f:=1;

//если форма  еще не создана, то создаем  ее

if f<>1 then Tform_otchet.QuickRep1.PreviewModal;

end;

Теперь необходимо сделать  запуск форм «Поиск» и «Отчет» из главной формы. Для этого выбираем в меню Project -> Options… Выбираем Forms и перемещаем Form_poisk и Form_otchet из Auto-create forms  в Avalable forms.

На этом разработка приложения для данного проекта заканчивается.

 

  1. Тестирование базы данных

3.1. Тестирование:  проверка корректной работы разработанного приложения

В разработанном приложении при его раскрытии появляется окно с главным меню (Рис. 17):

Рис. 17 «Главное меню»

При нажатии на кнопку «Просмотр и добавление» открывается соответствующее окно, в котором нажатием кнопки «Добавить новый жанр» можно ввести название нового жанра, а нажатием кнопки «Удалить жанр» строка с названием жанра удаляется. При нажатии на кнопку « +» на навигационной панели можно добавить новую фильмыу, а при нажатии  «-» удалить строку с фильмыой. С помощью навигационной панели можно передвигаться по таблице вверх и вниз, при этом в подчиненной таблице будет показана информация о производителе фильма, на которой установлен курсор. Жанр фильма в таблице с фильмыами выбирается из внесенных ранее.  Для наглядности добавлено несколько записей в каждой таблице (Рис. 18). Закрыть форму можно посредством нажатия «X» в правом верхнем углу.

Рис. 18 «Просмотр и добавление»

При нажатии кнопки «Поиск фильмы» появляется окно «Поиск». Для тестирования был введен запрос для поиска фильмы с названием начинающимся на букву «С» : SELECT * FROM Фильма   WHERE Название  LIKE 'С%'. Программа выдала мне три фильма из четырех введенных ранее (Рис. 19). Для закрытии данного окна необходимо нажать «X» в правом верхнем углу.

Рис. 19 «Поиск»

3.2. Работа с приложением:  инструкция для пользователя

Просмотр, добавление и  удаление информации о фильмах.

              1. Для просмотра, добавления или удаления информации о фильмах необходимо щелкнуть левой кнопкой мыши на кнопке «Просмотр и добавление» главного меню ( Рис. 21).

Рис. 21 «Шаг 1: просмотр, добавление и удаление»

              1. В раскрывшемся окне для добавления нового жанра необходимо щелкнуть на кнопке «Добавить новый жанр», а затем ввести в таблице название жанра (Рис. 22).

Рис. 22 «Шаг 2: просмотр, добавление и удаление»

3.       Чтобы удалить жанр необходимо выбрать жанр в таблице для удаления и щелкнуть по нему, а затем нажать на кнопку «Удалить жанр» (Рис. 23).

Рис. 23 «Шаг 3: просмотр, добавление и удаление»

 

  1. Для просмотра информации о фильмах необходимо нажать кнопки на навигационной панели для перемещения по списку вверх или вниз, при этом информация о производителе фильма будет показана в подчиненной таблице – под главной (Рис. 25).

Рис. 25 «Шаг 5: просмотр, добавление и удаление»

    1. Для закрытия данного окна необходимо нажать «Х» в правом верхнем углу( Рис. 26).

Рис. 26 «Шаг 6: просмотр, добавление и удаление»

 

Поиск фильмы.

        1. Для поиска фильмы необходимо нажать кнопку «Поиск фильмы» в главном меню (Рис. 27).

Рис. 27 «Шаг 1: поиск»

        1. В раскрывшемся окне необходимо дописать следующее (Рис. 28):

для поиска фильма после слова FROM пишем Фильма (возможен поиск производителя или жанра, для этого соответственно нужно ввести Производители или Жанры).

Далее после слова WHERE пишем столбец по которому будем искать, например: Название (если ищем производителя или жанр соответственно: Производитель или Жанр).

Затем в одинарных кавычках вводим буквы, по которым будем искать. Для идентификации частичных  соответствий используются два символа  подстановки: «%» заменяет строку состоящую  из любого количества символов (в том числе и нулевого), «_» заменяет любой одиночный символ. Например: ‘С%’, ‘ск_з_а’.

Так например для поиска фильмы с именем автора, содержащим буквы «кин» необходимо написать в коде следующее: SELECT * FROM Фильма WHERE Автор Like ‘%кин%’. Для выполнения запроса необходимо нажать на кнопку «Выполнить поиск» (Рис. 28).

 

Рис. 28 «Шаг 2: поиск»

 

        1. Для закрытия данного окна необходимо нажать «Х» в правом верхнем углу( Рис. 29)

Рис. 29 «Шаг 3: поиск»

 

Просмотр отчета о фильмах.

1. Для просмотра отчета о фильмах необходимо нажать кнопку «Поиск фильмы» в главном меню (Рис. 30).

Рис. 30 «Шаг 1: отчет»

2. Для закрытия данного окна необходимо нажать «Х» в правом верхнем углу( Рис. 31).

Рис. 31 «Шаг 2: отчет»

 

Заключение

Целью данного курсового  проекта являлась разработка эффективной  системы «Книжный магазин»: базы данных и приложения для доступа к данным.

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

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

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

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

 

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

        1. Теория и практика построения баз данных. 8-е изд./Д. Крёнке. – СПб.: Питер, 2003;
        2. Системы управления базами данных. Учебное пособие /Ломтадзе В.В., Шишкина Л.П. – Иркутск: ИрГТУ, 1999. – 116 с.;
        3. Теория реляционных баз данных. Учебное пособие / Мейер М.М. – Москва: Мир, 1999. -610 с.;

Информация о работе Создание структуры базы данных и разработка приложения для автоматизации учета кинопродукции