Разработка базы данных «Рыболовецкого колхоза»
Южно-Сахалинский
институт экономики,
права и информатики
Кафедра «КТиС»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по
дисциплине «Теория
разработки программного
обеспечения»
на тему:
Разработка базы данных
«Рыболовецкого колхоза»
Руководитель работы
ст. преподаватель кафедры КТиС
Бобров А.Н.
«____»__________________2009
г.
Исполнитель
студент группы ВТ-41
Тимашов С.В.
«____»__________________2009
г.
Южно-Сахалинск
2009
Южно-Сахалинский
институт экономики, права и информатики
Кафедра
«Компьютерные
технологии и системы»
З А Д А Н И Е
на выполнение курсовой работы студенту Тимашову Станиславу Валерьевичу
1. Тема работы Разработка базы данных «Рыболовецкого Колхоза»
______________________________
2. Срок сдачи
студентом законченного
4. Содержание
пояснительной записки (
Введение
1. Анализ и описание предметной области
2. Анализ и проектирование данных, разработка хранимых процедур
3. Разработка программного обеспечения
Заключение
Задание принял к исполнению 10 сентября 2009 года
(дата, подпись)
Руководитель _________________
(подпись)
ПРИМЕЧАНИЕ:
Студент предупрежден
о том, что при несвоевременном
представлении работы
руководителю студент
считается не выполнившим
график учебного процесса
и не допускается к защите
курсовой работы.
Оглавление
1. Постановка задачи
Предметная область, подлежащая изучению – «Рыболовецкий колхоз». В сферу этой предметной области попадают предприятия, занимающиеся выловом, переработкой и продажей рыбопродукции. Цель функционирования предприятий этой предметной области –получение прибыли, получаемой из продажи рыбопродукции. Для осуществления этой деятельности необходимы лимитированные места лова, перерабатывающие мощности, склады, удовлетворяющих всем требованиям в соответствии с действующим законодательством.
Целью курсовой работы является создание информационно-программной системы для решения следующих задач:
К разрабатываемой системе предъявлены следующие требования:
- наличие централизованного хранилища данных для всех объектов автоматизированного учета;
- ведение операций информационного учета с компьютеров локальной сети;
- создание унифицированного доступа к данным с использованием специализированного интерфейса пользователя, который отражает специфику предметной области.
Для решения поставленных задач планируется выполнение следующих действий:
- проектирование данных для отражения специфики данной предметной области,
- разработка компьютерной программы для выполнения базовых операций над данными предметной области, которая выполняет следующие функции:
- добавление информации о улове, производстве, продажах
- редактирование информации
- разделение интерфейса по отделам
2. Проектирование базы данных
Назначение базы данных определяется целями данной предметной области. Рассмотрев цели можно сделать вывод, что база данных должна обеспечивать следующее:
- учет улова
- учет производства
- учёт расходов
- учет доходов
- учет покупателей и партнеров
- автоматизированную систему управления.
Пользователем создаваемой базы данных может выступать системный администратор. Он может заниматься редактированием.
Результатом проделанной работы являются:
- перечень сущностей предметной области (Таблица 3.1);
- концептуальная модель (Рисунок 3.1);
Таблица
3.1 – Перечень сущностей
предметной области
| № | Название сущности | Описание | Вид | Зависимые сущности |
| 1 | Накладная | документ | Стержневая | нет |
| 2 | Отгрузка партнерам | Партнеры получающие сырец | Стержневая | накладная |
| 3 | покупатель | Покупатель готовой продукции | Стержневая | нет |
| 4 | продажа | Что покупает клиент | Стержневая | Покупатель ,продукция |
| 5 | продукция | Пречень продукции | Стержневая | нет |
| 6 | расходы | Расходы по статьям | Стержневая | нет |
| 7 | смена | Рабочие смены | Стержневая | нет |
| 8 | Выпуск продукции | Процесс выпуска продукции | Стержневая | |
| 9 | На складе | Что храниться на складе | Стержневая | продукция |
Далее
рассматриваются схемы
Для
идентификации отдельного экземпляра
отношения в каждом отношении
создан первичный ключ.
- Среди атрибутов всех отношений нет составных, таким образом, все отношения находятся в 1НФ.
- Так как первичный ключ всех отношений простой и учитывая пункт 1, можно сделать вывод, что все отношения находятся во 2НФ.
- Между неключевыми атрибутами всех отношений не существует функциональных зависимостей и, учитывая пункт 2, можно утверждать, что все отношения находятся в 3НФ.
Таблица
3.2 Схема отношения «Накладная»
| Атрибут | Смысл | Тип |
| Номер_ накладной | Уникальный PK | Числовое целое |
| число | - | дата |
| бригада | Номер бригады | Строка |
| наименование | - | строка |
| Количество | - | Числовое целое |
| транспорт | Гос знак а.м. | строка |
Таблица
3.3 Схема отношения «Отгрузка
партнерам»
| Атрибут | Смысл | Тип |
| организация | Название РК | Строка |
| адрес | - | Строка |
| Руководитель | - | Строка |
| число | - | дата |
| Номер накладной | Ушло клиенту FK | Числовое целое |
| количество | В килограммах | Числовое целое |
Таблица
3.4 Схема отношения «Покупатель»
| Атрибут | Смысл | Тип |
| Ид_покупателя | идентефикатор(PK) | Числовое целое |
| название | Имя фирмы | Строка |
| адрес | - | Строка |
| телефон | - | Строка |
Таблица
3.5 Схема отношения «продажа»
| Атрибут | Смысл | Тип |
| Ид_продажи | идентификатор(PK) | Числовое целое |
| Ид_продукции | Ид клиента из таблицы продукция (FK) | Числовое целое |
| Ид_клиента | Ид_клиента из таблицы клиент (FK) | Числовое целое |
| Количество | Количество товара в заказе | Числовое целое |
| Стоимость | Стоимость всех товаров в заказе | Числовое целое |
| Цена | - | Числовое целое |
| число | - | дата |
Таблица
3.6 Схема отношения «класс
продукции»
| Атрибут | Смысл | Тип |
| Ид_продукции | идентификатор(PK) | Числовое целое |
| наименование | Что именно | Строка |
| цена | - | Числовое целое |
| ГОСТ | Количество товара в заказе | Числовое целое |
| Упаковка | Форма выпуска | Строка |
Таблица 3.7 Схема отношения «смена»
| Атрибут | Смысл | Тип |
| Номер_смены | идентификатор(PK) | Числовое целое |
| приемщик | фио | Строка |
| Мастер_разделки | фио | Строка |
| Мастре_заморозки | фио | Строка |
Таблица
3.8 Схема отношения «расходы_производства»
| Атрибут | Смысл | Тип |
| Ид_расходов | идентификатор(PK) | Числовое целое |
| Тара | На упаковку | Числовое целое |
| Электричество | - | Числовое целое |
| ГСМ | На топливо и смазку | Числовое целое |
| Прочее | На непредвиденные ситуации | Числовое целое |
Таблица 3.9 Схема отношения «выпуск_продукции»
| Атрибут | Смысл | Тип |
| Ид_выпуска | идентификатор(PK) | Числовое целое |
| Номер смены | FK с таблицей смена | Числовое целое |
| Ид_продукции | FK с таблицей продукция | Числовое целое |
| Ид_расходов | FK с таблицей расходы | Числовое целое |
| количество | Кол-во готовой продукции | Числовое целое |
| Номер_накладной | FK с таблицей накладная |
Таблица 3.9 Схема отношения «на складе»
| Атрибут | Смысл | Тип |
| Ид_поступления | идентификатор(PK) | Числовое целое |
| число | - | дата |
| Ид_выпуска | FK с таблицей выпуск_продукции | Числовое целое |
| Ид_продуции | FK с таблицей продукция | Числовое целое |
| количество | Сколько поступило | Числовое целое |
3.
Реализация базы данных
в формате MS Access 2007
На этом этапе следует реализовать созданную ранее структуру всреде сервере БД MS Access 2007 в базе данных. Далее перечислена реализация составленных схем отношений с помощью таблиц базы данных. Типы данных полей спроектированных таблиц указаны в нотации MS Access 2007 . Имена таблиц и полей составлены в соответствии с правилами MS Access 2007.
Рисунок
2.5 – Зависимость таблиц
в БД
4. Проектирование программного обеспечения
Пользователями
данной базы данных будут являться администратор,
начальник добычи, зав производством.
Использованные языки и технологии разработки:
- среда разработки Delphi 2007
- технология доступа к данным Microsoft ActiveX Data Objects;
Функции программы:
- авторизация пользователя;
- возможность редактирование данных всех таблиц администратором.
- Возможность просмотра необходимых данных пользователям
Рисунок 2.6
– Главное окно программы
Ниже приведен
исходный код программы для работы
с БД.
UNIT 1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, XPMan, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
XPManifest1: TXPManifest;
Image1: TImage;
N4: TMenuItem;
N5: TMenuItem;
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4, Unit5, Unit6;
{$R *.dfm}
procedure TForm1.N2Click(Sender: TObject);
begin
Form4.Show;
end;
procedure TForm1.N3Click(Sender: TObject);
begin
Form1.Close;
end;
procedure TForm1.N4Click(Sender: TObject);
begin
Form5.Show;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
Form3.Show;
end;
end.
UNIT 2
unit Unit2;
interface
uses
SysUtils, Classes, XPMan, DB, ADODB;
type
TDM1 = class(TDataModule)
XPManifest1: TXPManifest;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DataSource1: TDataSource;
ADOTable2: TADOTable;
DataSource2: TDataSource;
DataSource3: TDataSource;
ADOTable3: TADOTable;
DataSource4: TDataSource;
ADOTable4: TADOTable;
DataSource5: TDataSource;
ADOTable5: TADOTable;
DataSource6: TDataSource;
ADOTable6: TADOTable;
DataSource7: TDataSource;
ADOTable7: TADOTable;
DataSource8: TDataSource;
ADOTable8: TADOTable;
ADOTable6_: TAutoIncField;
ADOTable6DSDesigner: TWideStringField;
ADOTable6DSDesigner2: TBCDField;
ADOTable6DSDesigner3: TWideStringField;
ADOTable6DSDesigner4: TWideStringField;
ADOTable7_: TAutoIncField;
ADOTable7_2: TIntegerField;
ADOTable7DSDesigner: TIntegerField;
ADOTable7DSDesigner2: TBCDField;
ADOTable7DSDesigner3: TBCDField;
ADOTable7DSDesigner4: TDateTimeField;
ADOTable7_3: TIntegerField;
ADOTable8_: TAutoIncField;
ADOTable8DSDesigner: TWideStringField;
ADOTable8DSDesigner2: TWideStringField;
ADOTable8DSDesigner3: TWideStringField;
ADOTable4_: TAutoIncField;
ADOTable4DSDesigner: TBCDField;
ADOTable4DSDesigner2: TBCDField;
ADOTable4DSDesigner3: TBCDField;
ADOTable4DSDesigner4: TBCDField;
ADOTable3_: TIntegerField;
ADOTable3DSDesigner: TWideStringField;
ADOTable3_2: TWideStringField;
ADOTable3_3: TWideStringField;
ADOTable2DSDesigner: TWideStringField;
ADOTable2DSDesigner2: TWideStringField;
ADOTable2DSDesigner3: TWideStringField;
ADOTable2DSDesigner4: TDateTimeField;
ADOTable2_: TIntegerField;
ADOTable1_: TIntegerField;
ADOTable1DSDesigner: TDateTimeField;
ADOTable1DSDesigner2: TWideStringField;
ADOTable1DSDesigner3: TWideStringField;
ADOTable1DSDesigner4: TIntegerField;
ADOTable1DSDesigner5: TWideStringField;
DataSource9: TDataSource;
ADOTable10: TADOTable;
ADOQuery1: TADOQuery;
ADOTable2DSDesigner5: TIntegerField;
ADOTable5_: TAutoIncField;
ADOTable5_2: TIntegerField;
ADOTable5_3: TIntegerField;
ADOTable5_4: TIntegerField;
ADOTable5_5: TIntegerField;
ADOTable5DSDesigner: TIntegerField;
ADOTable5_6: TIntegerField;
ADOTable10_: TAutoIncField;
ADOTable10DSDesigner: TDateTimeField;
ADOTable10_2: TIntegerField;
ADOTable10_3: TIntegerField;
ADOTable10DSDesigner2: TIntegerField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM1: TDM1;
implementation
uses Unit1, Unit3, Unit4, Unit5, Unit6;
{$R *.dfm}
end.
UNIT3
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls,
DBCtrls, Grids, DBGrids, StdCtrls;
type
TForm3 = class(TForm)
MainMenu1: TMainMenu;
Connect1: TMenuItem;
Enabled1: TMenuItem;
Disabled1: TMenuItem;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
procedure Disabled1Click(Sender: TObject);
procedure Enabled1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1, Unit2, Unit4, Unit5, Unit6;
{$R *.dfm}
procedure TForm3.Disabled1Click(Sender: TObject);
begin
DM1.DataSource3.Enabled:=