Автоматизированная информационная система "Учет животных, птиц, рептилий в зоопарке"

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

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

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

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

Размещено на http://www.allbest.ru/

Министерство образования и науки Российской Федерации

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Факультет информационных технологий

Кафедра программного обеспечения вычислительной техники и автоматизированных систем

КУРСОВАЯ РАБОТА

по дисциплине “Базы данных”

Автоматизированная информационная система «Учёт животных, птиц, рептилий в зоопарке»

Руководитель

___________________Щелоков С.А.

« ___ » ________________ 2013 г.

Исполнитель

студент группы З-11ПИнж(б)РПиС(у)

___________________Барбашин Д.А

« ___ » ________________ 2013 г.

Оренбург 2013

Министерство образования и науки Российской Федерации

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ОРЕНБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Факультет информационных технологий

Кафедра программного обеспечения вычислительной техники

и автоматизированных систем

Задание

Автоматизированная информационная система

«Учёт животных, птиц, рептилий в зоопарке»

Описание предметной области:

Предприятие - крупный зоопарк.

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

Каждому питомцу назначается рацион кормления, который характеризуется номером, названием, типом (детский, диетический, усиленный и т.п.) Каждый тип рациона может содержать несколько названий рационов. Рацион может со временем меняться. Необходимо также учитывать зону обитания животного (название, характеристика). Каждое животное относится к одной зоне обитания. Так же необходимо хранить информацию о том, к какому смотрителю на текущий момент прикреплен питомец. За каждым животным закреплён обязательно один смотритель, а каждый смотритель одновременно может обслуживать нескольких. Так же в зоопарке есть ветеринары, которые тоже закреплены за животными. Каждый сотрудник имеет свой личный номер, имя дату рождения, также необходимо знать номер телефона, и семейное положение сотрудника. Если кто-то из одной семьи работает вместе(супруги), необходимо об этом знать.

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

Полная информация по типу и имени питомца зоопарка;

Список сотрудников, работающих семейными парами - ФИО, дата рождения, телефон;

Перечень всех животных на текущую дату и номера их рационов.

Содержание

Введение
1. Анализ данных предметной области
2. Информационно-логическая модель базы данных
3. Даталогическая модель базы данных
4. Физическое проектирование
5. Мероприятия по защите и обеспечению целостности базы данных
6. Приложение интерфейса для SQL-сервера базы данных на языке программирования Delphi в программной среде Embarcadero RAD Studio
Заключение
Список используемых источников
Приложение А Листинг программы
Приложение Б Скрипты SQL-запросов
Введение
Целью данной курсовой работы является разработка и создание базы данных предметной области «Индивидуальный план преподавателя» в СУБД SQL Server 2008 по новым информационным технологиям на платформе Visual Studio 2010 с использованием языка программирования высокого уровня C# 4.0.
Для достижения цели поставлены инженерные задачи разработать:
Информационно-логическую модель предметной области по нотациям Ричарда Баркера;
Даталогическую модель реляционной БД, нормализованную до НФБК в СУБД SQL Server 2008 в виде диаграммы схемы отношений;
Запросы к БД на уровне представлений и функций в СУБД SQL Server 2008;
Мероприятия по защите и обеспечению целостности базы данных;
Приложение интерфейса для SQL-сервера базы данных на языке программирования С# в программной среде Visual Studio 2010;
Инструкцию по администрированию и пользованию БД.
Система SQL Server 2008 отталкивается от концепции платформы данных Майкрософт: она упрощает управление любыми данными в любой момент времени. Она позволяет хранить в базах данных информацию, полученную из структурированных, полу-структурированных и неструктурированных источников.
В SQL Server 2008 имеется большой набор интегрированных служб, расширяющих возможности использования данных, а именно: составлять запросы, выполнять поиск, проводить синхронизацию, делать отчеты, анализировать данные.
Система SQL Server 2008 позволяет обращаться к данным из любого приложения, разработанного с применением технологий Microsoft .NET и Visual Studio.
1. Анализ данных предметной области
База данных предназначена для хранения информации об обитателях зоопарка, обслуживающем персонале, характеристические особенности животных, рацион питания, проживания. В базе есть полная информация о животном такая как: зона обитания, вид, происхождение, дата рождения, имя.

Размещено на http://www.allbest.ru/

1- типы животных
2- происхождение
3- условия обитания
Рисунок 1 - Схема информационных потоков
В ходе анализа данных предметной области были выделены следующие сущности и характеризующие их атрибуты:
1) Сотрудник: Номер, Фамилия, Имя, Отчество, Дата рождения, Пол, Телефон, Семейное положение, Должность, Код супруга;
2) Зона обитания: Код, Название, Характеристика;
3) Вид млекопитающего: Наименование, Происхождение, Группа;
4) Питомец: Номер питомца, Имя, Дата рождения, Пол, Вид млекопитающего, Зона обитания, Номер сотрудника, Номер Типа рациона;
5) Сведения о животном: Код, Название страны, Дата улёта /начала спячки, Дата прилёта/конец спячки, Температура, Номер питомца.
6) Тип рациона: Номер типа, Название;
7) Рацион: Номер рациона, Наименование, Список продуктов, Номертипа.
Все необходимые действия для ведения данных, различные правила и стандарты, механизмы, выполняющие обработку, представлены на контекстной диаграмме на рисунке 2.
Рисунок 2 - Контекстная диаграмма предметной области
Более подробно описание работ показано на диаграмме декомпозиции на рисунке 3.
Рисунок 3 - Диаграмма декомпозиции предметной области
Как каждый процесс преобразует свои входные данные в выходные, и отношения между этими процессами приведены на диаграмме потоков данных на рисунке 4.
Рисунок 4 - Диаграмма DFD
Дополняющая диаграмма, описывающая логику взаимодействия информационных потоков, представлена на рисунке 5.
база данные программирование delphi
Рисунок 5 - Диаграмма IDEF3
2. Информационно-логическая модель базы данных
Информационно-логическая модель предметной области по нотациям Ричарда Баркера приведена на рисунке 6.
Сотрудник Зона обитания Вид млекопитающих
Питомец Сведения о животном
Рацион Тип рациона
Рисунок 6 - Информационно-логическая модель базы данных
3. Даталогическая модель базы данных
Отношение находится в ЗНФ в том случае, если оно находится во 2НФ, не ключевые атрибуты взаимно независимы (исключены так называемые транзитивные зависимости) и каждый не ключевой атрибут неприводимо зависит от первичного ключа (то есть, возможно изменять значение атрибутов без изменения первичного ключа и других не ключевых атрибутов).
Таким образом, даталогическая модель реляционной БД, нормализованная до 3НФ в СУБД SQL Server 2008 в виде диаграммы схемы отношений имеет вид, представленный на рисунке 7.
Рисунок 7 - Диаграмма схемы отношений
4. Физическое проектирование
При физическом проектировании были получены таблицы 1-7.
Вид млекопитающих
Зона обитания
Питомец
Рацион
Сведения о животном
Сотрудник
Тип рациона
5. Мероприятия по защите и обеспечению целостности базы данных
При создании соединения с базой данных используется проверка подлинности Windows. Контроль уровней доступа пользователей осуществляется средствами базы данных - используются роли базы данных.
Обеспечение целостности базы данных осуществляется путём каскадного обновления и каскадного удаления данных. Так же для каждой таблицы созданы триггеры на операции «INSERT» и «DELETE». В ходе анализа предметной области были выявлены уникальные ключи для каждой таблицы, представленной в базе данных, что обеспечивает целостность таблиц.
6. Приложение интерфейса для SQL-сервера базы данных на языке программирования Delphi в программной среде Embarcadero RAD Studio XE2
Интерфейс пользователя основан на применении форм Windows Forms.
Для каждой таблицы создаётся форма, через которую пользователь будет иметь возможность просматривать, создавать, редактировать и удалять записи в таблицах базы данных.
Рисунок 8 - Создание формы для представления таблиц
1) Поместить на форму компонент TADOConnection (например ADOConnection1) .
В инспекторе объектов требуется выбрать ConnectionString=> UseConnectionString=>MicrosoftOleDBProvider for SQL-server. В резултате появится окно……(рисунки 9 - 10).
2) После этого нажать “далее” и выбрать имя сервера, аутентификацию WinNT или SQL-Server, и наконец выбрать базу данных на сервере (к этому моменту она уже должна быть создана, либо произвольную) и нажать “Проверить подключение” (рисунок 11).
3) Далее активировать ADOConnection1, в свойстве Connected поставить True (рисунок 12).
Рисунок 3.1 - Подключение к базе данных
Рисунок 9 - Организация подключения
Рисунок 10 - Выбор подключаемых данных
Рисунок 11 - Настройки соединения
Рисунок 12 - Активация подключения
1) Затем добавить компонент ADO Table (рисунок 13).
Рисунок 13 - ADOTable
6) После добавить компонент TDataSource (с закладки Data Access). Свойство DataSet этого DataSource должно быть равным ADOTable1 (рисунок 14).
Рисунок 14 - DataSource

7) Затем перенести на форму компонент TDBGrid с закладки DataControls. Установить его свойство DataSource в DataSource1. Данные должны отобразится в сетке DBGrid (рисунки 15 - 16).

Рисунок 15 - Компонент DBGrid

Рисунок 16 - Конечная реализация подключения

8) Затем в данном окне произвести запрос через ADOQuery (рисунок 17).

Рисунок 17 - Запросы

Подключение Query осуществляется по схеме рассмотренной выше. В данной реализации компонент Table не нужен, сам текст запроса находится в свойстве SQL, без наличия текста запроса объект не может быть активирован. После активации запроса, данные выборки отобразятся в DBGrid (рисунок 18).

Рисунок 18 - Реализации запроса SQL через среду Delphi

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

Заключение

В результате выполнения курсовой работы была разработана база данных «Индивидуальный план преподавателя» и были решены поставленные инженерные задачи. База данных отвечает современным требованиям, таким как: простота обновления данных, высокое быстродействие, независимость данных, безопасность данных и т.д. База данных разработана с применением технологий SQL Server Native Client10 , что позволяет использовать её широкому кругу пользователей. Возможности хранения данных в базе могут быть расширены на основе достигнутого, например, введением дополнительных параметров безопасности или добавлением новых таблиц, дающих более подробную информацию о том или ином аспекте предметной области. Таким образом, есть перспективы дальнейшего развития представленной базы данных.

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

1. Роберт Виейра Программирование баз данных Microsoft SQL Server 2005. Базовый курс. М.: ООО «И.Д. Вильямс», 2007. - 832 с.

2. Владислав Пирогов SQL Server 2005. Программирование клиент-серверных приложений. Изд-во: БХВ-Петербург, СПб, 2006. - 336 с.

3. Библиотека MSDN - http://msdn.microsoft.com/ru-ru/library/ms123401.aspx

4. Алан Бьюли Изучаем SQL. Изд-во: «Символ-Плюс», 2007. - 312 с.

5. Дунаев В.В. Базы данных. Язык SQL. Изд-во: СПб.: БХВ-Петербург, 2006. - 288 с.

6. Алексей Жилинский Самоучитель Microsoft SQL Server 2005. Изд-во: БХВ-Петербург, 2007. - 224 с.

Приложение А

Листинг программы

unit Unit1_glavn;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, DBConnAdmin, Data.DBXMSSQL, Data.FMTBcd,

Vcl.StdCtrls, Data.DB, Data.SqlExpr, inifiles, Vcl.Buttons, Data.DBXSybaseASA,

Data.DBXMySQL, Data.Win.ADODB, comobj;

type

TForm_nast = class(TForm)

Label1: TLabel;

Edit_Host: TEdit;

Label3: TLabel;

Edit_nameBD: TEdit;

Label4: TLabel;

Edit_user: TEdit;

Label5: TLabel;

Label6: TLabel;

Edit_pass: TEdit;

Label7: TLabel;

ListBox1: TListBox;

Label8: TLabel;

BitBtn_proverka: TBitBtn;

BitBtn_save: TBitBtn;

ADOConnection1: TADOConnection;

ComboBox1: TComboBox;

CheckBox1: TCheckBox;

Memo1: TMemo;

Procedure SaveInifiles;

Procedure LoadInifiles;

procedure FormCreate(Sender: TObject);

procedure CheckBox1Click(Sender: TObject);

procedure BitBtn_proverkaClick(Sender: TObject);

procedure BitBtn_saveClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form_nast: TForm_nast;

ConnAdm: IConnectionAdmin;

Ini: Tinifile;

stroka:string;

implementation

{$R *.dfm}

procedure TForm_nast.BitBtn_proverkaClick(Sender: TObject);

begin

if CheckBox1.Checked then

stroka:='Integrated Security=SSPI;User ID="";'else

stroka:='';

ADOConnection1.Connected:=false;

ADOConnection1.ConnectionString:='';

stroka:=stroka+'User ID='+Edit_user.Text+'; Password='+Edit_pass.Text+';';

ADOConnection1.ConnectionString:=ADOConnection1.ConnectionString+'Provider='+ComboBox1.Text+';Persist Security Info=False; Initial Catalog='+Edit_nameBD.Text+';Data Source='+Edit_Host.Text+';'+ stroka+Memo1.Lines.Text;

ADOConnection1.Connected:=true;

ADOConnection1.GetTableNames(ListBox1.Items,false);

end;

procedure TForm_nast.BitBtn_saveClick(Sender: TObject);

begin

SaveInifiles;

end;

procedure TForm_nast.CheckBox1Click(Sender: TObject);

begin

if CheckBox1.Checked then begin

Edit_pass.Enabled:=false;

Edit_user.Enabled:=false;

end else begin

Edit_pass.Enabled:=true;

Edit_user.Enabled:=true;

end;

end;

procedure TForm_nast.FormCreate(Sender: TObject);

var FDMOApplication : Variant;

Names : Variant;

i : integer;

begin

GetProviderNames(ComboBox1.Items);

stroka:='Integrated Security="";';

LoadInifiles;

end;

procedure TForm_nast.LoadInifiles;

begin

if FileExists(ExtractFilePath(Application.ExeName)+'Nastroika.ini') then begin

ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Nastroika.ini');

ComboBox1.Text:=ini.ReadString('SQL','Драйвер','');

Edit_Host.Text:=ini.ReadString('SQL','Сервер','');

Edit_nameBD.Text:=ini.ReadString('SQL','БД','');

Edit_user.Text:=ini.ReadString('SQL','Логин','');

Edit_pass.Text:=ini.ReadString('SQL','Пароль','');

Memo1.Lines.Text:=ini.ReadString('SQL','Параметры','');

if Ini.ReadString('SQL','Авторизация','')='True' then CheckBox1.Checked:=true else

CheckBox1.Checked:=false;

if CheckBox1.Checked then

stroka:='Integrated Security=SSPI;User ID="";'else

stroka:='';

ADOConnection1.Connected:=false;

ADOConnection1.ConnectionString:='';

stroka:=stroka+'User ID='+Edit_user.Text+'; Password='+Edit_pass.Text+';';

ADOConnection1.ConnectionString:=ADOConnection1.ConnectionString+'Provider='+ComboBox1.Text+';Persist Security Info=False; Initial Catalog='+Edit_nameBD.Text+';Data Source='+Edit_Host.Text+';'+ stroka+Memo1.Lines.Text;

ADOConnection1.Connected:=true;

end else begin

Form_nast.Show;

MessageDlg('Задайте параметры подключения к БД', mtInformation,[mbok],0);

end;

end;

Procedure TForm_nast.SaveInifiles;

begin

ini:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Nastroika.ini');

ini.WriteString('SQL','Драйвер',ComboBox1.Text);

ini.WriteString('SQL','Сервер', Edit_Host.Text);

ini.WriteString('SQL','БД',Edit_nameBD.Text);

ini.WriteString('SQL','Логин',Edit_user.Text);

ini.WriteString('SQL','Пароль',Edit_pass.Text);

ini.WriteString('SQL','Параметры',Memo1.Lines.Text);

if CheckBox1.Checked then Ini.WriteString('SQL','Авторизация','True') else

Ini.WriteString('SQL','Авторизация','False');

ini.Free;

MessageDlg('Данные сохранены',mtInformation,[mbok],0);

end;

end.

unit Unit_zona_obit;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Datasnap.DBClient, SimpleDS,

Vcl.Grids, Vcl.DBGrids, Vcl.DBCtrls, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Buttons,

Vcl.Menus, Data.Win.ADODB;

type

TForm_Zona_obit = class(TForm)

Panel1: TPanel;

DBNavigator1: TDBNavigator;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

BitBtn_ok: TBitBtn;

PopupMenu1: TPopupMenu;

Excel1: TMenuItem;

ADOQuery1: TADOQuery;

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

procedure BitBtn_okClick(Sender: TObject);

procedure Excel1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form_Zona_obit: TForm_Zona_obit;

implementation

uses unit1_glavn, unit_pitom, unit_main;

{$R *.dfm}

procedure TForm_Zona_obit.BitBtn_okClick(Sender: TObject);

begin

BitBtn_ok.Visible:=False;

Form_pitom.DBEdit_zona.Field.AsVariant:=DBGrid1.Fields[0].Value;

close;

end;

procedure TForm_Zona_obit.Excel1Click(Sender: TObject);

begin

Form_glavn.ExportToExcel(DBGrid1);

end;

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

begin

Action := caFree;

BitBtn_ok.Visible:=false;

end;

end.

unit Unit_zapros;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Buttons;

type

TForm_zapros = class(TForm)

BitBtn1: TBitBtn;

Memo1: TMemo;

Panel1: TPanel;

procedure BitBtn1Click(Sender: TObject);

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

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form_zapros: TForm_zapros;

implementation

uses unit_main, unit1_glavn;

{$R *.dfm}

procedure TForm_zapros.BitBtn1Click(Sender: TObject);

begin

try

Form_glavn.ADOQuery1.Active:=false;

Form_glavn.ADOQuery1.SQL.Clear;

Form_glavn.ADOQuery1.SQL.Text:=Memo1.Lines.Text;

Form_glavn.ADOQuery1.Open;

except

on E:Exception do

MessageDlg('Не удалось выполнить запрос: '+E.Message,mtError,[mbok],0);

end;

end;

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

begin

Form_glavn.CheckBox1.Checked:=false;

end;

end.

unit Unit_vid_mlek;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Datasnap.DBClient, SimpleDS,

Vcl.Grids, Vcl.DBGrids, Vcl.DBCtrls, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Buttons,

Vcl.Menus, Data.Win.ADODB;

type

TForm_vid_mlek = class(TForm)

Panel1: TPanel;

DBNavigator1: TDBNavigator;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

BitBtn_ok: TBitBtn;

PopupMenu1: TPopupMenu;

Excel1: TMenuItem;

ADOQuery1: TADOQuery;

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

procedure BitBtn_okClick(Sender: TObject);

procedure Excel1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form_vid_mlek: TForm_vid_mlek;

implementation

uses unit1_glavn, unit_pitom, unit_main;

{$R *.dfm}

procedure TForm_vid_mlek.BitBtn_okClick(Sender: TObject);

begin

BitBtn_ok.Visible:=False;

Form_pitom.DBEdit_vid_mlek.Field.AsVariant:=DBGrid1.Fields[0].Value;

close;

end;

procedure TForm_vid_mlek.Excel1Click(Sender: TObject);

begin

Form_glavn.ExportToExcel(DBGrid1);

end;

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

begin

Action := caFree;

BitBtn_ok.Visible:=false;

end;

end.

unit Unit_tip_ras;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Datasnap.DBClient, SimpleDS,

Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.StdCtrls, Vcl.Buttons,

Vcl.Mask, Vcl.Menus, Data.Win.ADODB;

type

TForm_tip_ras = class(TForm)

Panel1: TPanel;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

DBNavigator1: TDBNavigator;

BitBtn_ok: TBitBtn;

PopupMenu1: TPopupMenu;

Excel1: TMenuItem;

ADOQuery1: TADOQuery;

procedure BitBtn_nom_pitClick(Sender: TObject);

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

procedure BitBtn_okClick(Sender: TObject);

procedure Excel1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form_tip_ras: TForm_tip_ras;

implementation

uses unit1_glavn,unit_main, unit_rasion, unit_pitom;

{$R *.dfm}

procedure TForm_tip_ras.BitBtn_nom_pitClick(Sender: TObject);

begin

Form_pitom:=TForm_pitom.Create(Application);

Form_pitom.Show;

Form_pitom.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_pitom.ADOQuery1.Open;

Form_pitom.BitBtn_ok.Visible:=true;

Form_glavn.id:='t';

end;

procedure TForm_tip_ras.BitBtn_okClick(Sender: TObject);

begin

if Form_glavn.id='r' then

Form_ratsion.DBEdit_pitom.Field.Value:=DBGrid1.Fields[0].Value;

if Form_glavn.id='p' then

Form_pitom.DBEdit2.Field.Value:=DBGrid1.Fields[0].Value;

close;

end;

procedure TForm_tip_ras.Excel1Click(Sender: TObject);

begin

Form_glavn.ExportToExcel(DBGrid1);

end;

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

begin

BitBtn_ok.Visible:=false;

Action := caFree;

end;

end.

unit Unit_sved;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, Vcl.DBCtrls,

Vcl.ExtCtrls, Vcl.Grids, Vcl.DBGrids, Data.DB, Datasnap.DBClient, SimpleDS,

Vcl.Menus, Data.Win.ADODB;

type

TForm_sved = class(TForm)

Panel1: TPanel;

DBNavigator1: TDBNavigator;

DBEdit_pitom: TDBEdit;

Label1: TLabel;

Button_pitom: TButton;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

PopupMenu1: TPopupMenu;

Excel1: TMenuItem;

ADOQuery1: TADOQuery;

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

procedure Button_pitomClick(Sender: TObject);

procedure Excel1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form_sved: TForm_sved;

implementation

uses unit_pitom, unit1_glavn, unit_main;

{$R *.dfm}

procedure TForm_sved.Button_pitomClick(Sender: TObject);

begin

Form_pitom:=TForm_pitom.Create(Application);

Form_pitom.Show;

Form_pitom.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_pitom.ADOQuery1.Open;

Form_pitom.BitBtn_ok.Visible:=true;

Form_glavn.id:='s';

end;

procedure TForm_sved.Excel1Click(Sender: TObject);

begin

Form_glavn.ExportToExcel(DBGrid1);

end;

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

begin

Action := caFree;

end;

end.

unit Unit_sotr;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.FMTBcd, Vcl.ExtCtrls, Vcl.Grids,

Vcl.DBGrids, Data.DB, Data.SqlExpr, Datasnap.DBClient, Datasnap.Provider,

Vcl.DBCtrls, Vcl.StdCtrls, SimpleDS, Vcl.Buttons, Vcl.Menus, Data.Win.ADODB;

type

TForm_sotr = class(TForm)

DBGrid1: TDBGrid;

Panel1: TPanel;

DataSource1: TDataSource;

DBNavigator1: TDBNavigator;

BitBtn_ok: TBitBtn;

PopupMenu1: TPopupMenu;

Excel1: TMenuItem;

ADOQuery1: TADOQuery;

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

procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

procedure BitBtn_okClick(Sender: TObject);

procedure Excel1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form_sotr: TForm_sotr;

implementation

uses unit1_glavn, unit_pitom, unit_main;

{$R *.dfm}

procedure TForm_sotr.BitBtn_okClick(Sender: TObject);

begin

BitBtn_ok.Visible:=False;

Form_pitom.DBEdit_sotr.Field.AsVariant:=DBGrid1.Fields[0].Value;

close;

end;

procedure TForm_sotr.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

var TD: TTransactionDesc;

begin

end;

procedure TForm_sotr.Excel1Click(Sender: TObject);

begin

Form_glavn.ExportToExcel(DBGrid1);

end;

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

begin

Action := caFree;

BitBtn_ok.Visible:=false;

end;

end.

unit Unit_rasion;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Datasnap.DBClient, SimpleDS,

Vcl.Grids, Vcl.DBGrids, Vcl.DBCtrls, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Mask,

Vcl.Menus, Data.Win.ADODB;

type

TForm_ratsion = class(TForm)

Panel1: TPanel;

DBNavigator1: TDBNavigator;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

Label1: TLabel;

DBEdit_pitom: TDBEdit;

Button_pitom: TButton;

PopupMenu1: TPopupMenu;

Excel1: TMenuItem;

ADOQuery1: TADOQuery;

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

procedure Button_pitomClick(Sender: TObject);

procedure Excel1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form_ratsion: TForm_ratsion;

implementation

uses unit_tip_ras, unit1_glavn,unit_main;

{$R *.dfm}

procedure TForm_ratsion.Button_pitomClick(Sender: TObject);

begin

Form_tip_ras:=TForm_tip_ras.Create(Application);

Form_tip_ras.Show;

Form_tip_ras.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_tip_ras.ADOQuery1.Open;

Form_glavn.id:='r';

Form_tip_ras.BitBtn_ok.Visible:=true;

end;

procedure TForm_ratsion.Excel1Click(Sender: TObject);

begin

Form_glavn.ExportToExcel(DBGrid1);

end;

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

begin

Action := caFree;

end;

end.

unit Unit_pitom;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Datasnap.DBClient, SimpleDS,

Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.StdCtrls, Vcl.ComCtrls, Vcl.Mask, Vcl.Grids,

Vcl.DBGrids, Vcl.Buttons, Vcl.Menus, Data.Win.ADODB;

type

TForm_pitom = class(TForm)

Panel1: TPanel;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBEdit_nom: TDBEdit;

Label1: TLabel;

Label2: TLabel;

DateTimePicker_roj: TDateTimePicker;

Label3: TLabel;

ComboBox_pol: TComboBox;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

DBNavigator1: TDBNavigator;

BitBtn_sotr: TBitBtn;

BitBtn_Zona: TBitBtn;

BitBtn1: TBitBtn;

DBEdit_zona: TDBEdit;

DBEdit_sotr: TDBEdit;

DBEdit_vid_mlek: TDBEdit;

BitBtn_ok: TBitBtn;

PopupMenu1: TPopupMenu;

Excel1: TMenuItem;

ADOQuery1: TADOQuery;

DBEdit1: TDBEdit;

Label8: TLabel;

DBEdit2: TDBEdit;

BitBtn2: TBitBtn;

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

procedure BitBtn_ZonaClick(Sender: TObject);

procedure BitBtn_sotrClick(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn_okClick(Sender: TObject);

procedure Excel1Click(Sender: TObject);

procedure DateTimePicker_rojChange(Sender: TObject);

procedure ComboBox_polClick(Sender: TObject);

procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form_pitom: TForm_pitom;

implementation

uses unit1_glavn, unit_sotr, unit_zona_obit, unit_vid_mlek, unit_sved, unit_main,unit_tip_ras;

{$R *.dfm}

procedure TForm_pitom.BitBtn1Click(Sender: TObject);

begin

Form_vid_mlek:=TForm_vid_mlek.Create(Application);

Form_vid_mlek.Show;

Form_vid_mlek.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_vid_mlek.ADOQuery1.Open;

Form_vid_mlek.BitBtn_ok.Visible:=true;

end;

procedure TForm_pitom.BitBtn2Click(Sender: TObject);

begin

Form_glavn.id:='p';

Form_tip_ras:=TForm_tip_ras.Create(Application);

Form_tip_ras.Show;

Form_tip_ras.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_tip_ras.ADOQuery1.Open;

Form_tip_ras.BitBtn_ok.Visible:=true;

end;

procedure TForm_pitom.BitBtn_okClick(Sender: TObject);

begin

if Form_glavn.id='s' then

Form_sved.DBEdit_pitom.Field.Value:=DBGrid1.Fields[0].Value;

close;

end;

procedure TForm_pitom.BitBtn_sotrClick(Sender: TObject);

begin

Form_sotr:=TForm_sotr.Create(Application);

Form_sotr.Show;

Form_sotr.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_sotr.ADOQuery1.Open;

Form_sotr.BitBtn_ok.Visible:=true;

end;

procedure TForm_pitom.BitBtn_ZonaClick(Sender: TObject);

begin

Form_Zona_obit:=TForm_Zona_obit.Create(Application);

Form_Zona_obit.Show;

Form_Zona_obit.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_Zona_obit.ADOQuery1.Open;

Form_Zona_obit.BitBtn_ok.Visible:=true;

end;

procedure TForm_pitom.ComboBox_polClick(Sender: TObject);

begin

DBGrid1.Fields[3].Value:=ComboBox_pol.Text;

end;

procedure TForm_pitom.DateTimePicker_rojChange(Sender: TObject);

begin

DBGrid1.Fields[2].Value:=DateTimePicker_roj.Date;

end;

procedure TForm_pitom.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

begin

case Button of

nbInsert: begin

DBGrid1.Fields[2].Value:=DateTimePicker_roj.Date;

DBGrid1.Fields[3].Value:=ComboBox_pol.Text;

end;

end;

end;

procedure TForm_pitom.Excel1Click(Sender: TObject);

begin

Form_glavn.ExportToExcel(DBGrid1);

end;

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

begin

BitBtn_ok.Visible:=false;

Action := caFree;

end;

end.

unit Unit_main;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, Vcl.ExtCtrls, Vcl.StdCtrls,

Vcl.ComCtrls, Vcl.Grids, Vcl.DBGrids, Data.DB, Datasnap.DBClient, SimpleDS,ComObj,

Data.Win.ADODB;

type

TForm_glavn = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

Panel1: TPanel;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

Panel2: TPanel;

DBGrid1: TDBGrid;

CheckBox1: TCheckBox;

DataSource1: TDataSource;

PopupMenu1: TPopupMenu;

Excel1: TMenuItem;

ADOQuery1: TADOQuery;

procedure N2Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure CheckBox1Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure Excel1Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure N3Click(Sender: TObject);

// Procedure ExportToExcel(DBgrid:TDBGrid);

private

{ Private declarations }

public

id:Variant;

Procedure ExportToExcel(DBgrid:TDBGrid);

{ Public declarations }

end;

var

Form_glavn: TForm_glavn;

implementation

uses Unit1_glavn, unit_sotr, unit_zona_obit, unit_vid_mlek, unit_pitom, unit_sved, unit_rasion, unit_tip_ras, unit_zapros;

{$R *.dfm}

procedure TForm_glavn.Excel1Click(Sender: TObject);

begin

ExportToExcel(DBGrid1);

end;

procedure TForm_glavn.ExportToExcel(DBgrid: TDBGrid);

var

i,j,index,z: Integer;

ExcelApp,sheet: Variant;

begin

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

ExcelApp.Visible := False;

ExcelApp.WorkBooks.Add(-4167);

ExcelApp.WorkBooks[1].WorkSheets[1].name := 'Export';

sheet:=ExcelApp.WorkBooks[1].WorkSheets['Export'];

index:=2; //Загоняем с первой строки

DBGrid.DataSource.DataSet.First;

for z := 0 to DBGrid.FieldCount-1 do

sheet.cells[index-1,z+1]:=dbgrid.Columns[z].Title.caption;

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

begin

for j:=1 to DBGrid.FieldCount do

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

inc(index);

DBGrid.DataSource.DataSet.Next;

end;

ExcelApp.Range[ sheet.cells[1,1], sheet.cells[ExcelApp.ActiveSheet.UsedRange.Rows.Count,ExcelApp.ActiveSheet.UsedRange.Columns.Count]].Columns.AutoFit;

ExcelApp.Visible := true;

end;

procedure TForm_glavn.CheckBox1Click(Sender: TObject);

begin

if CheckBox1.Checked then begin

Form_zapros.Show;

end else Form_zapros.Close;

end;

procedure TForm_glavn.N10Click(Sender: TObject);

begin

Form_tip_ras:=TForm_tip_ras.Create(Application);

Form_tip_ras.Show;

Form_tip_ras.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_tip_ras.ADOQuery1.Open;

end;

procedure TForm_glavn.N11Click(Sender: TObject);

begin

Panel1.Visible:=true;

end;

procedure TForm_glavn.N12Click(Sender: TObject);

begin

Form_zapros.Memo1.Clear;

Form_zapros.Memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'1.txt');

Form_zapros.BitBtn1.Click;

end;

procedure TForm_glavn.N13Click(Sender: TObject);

begin

Form_zapros.Memo1.Clear;

Form_zapros.Memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'2.txt');

Form_zapros.BitBtn1.Click;

end;

procedure TForm_glavn.N14Click(Sender: TObject);

begin

Form_zapros.Memo1.Clear;

Form_zapros.Memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'3.txt');

Form_zapros.BitBtn1.Click;

end;

procedure TForm_glavn.N1Click(Sender: TObject);

begin

Panel1.Visible:=false;

end;

procedure TForm_glavn.N2Click(Sender: TObject);

begin

Form_nast.Show;

end;

procedure TForm_glavn.N3Click(Sender: TObject);

begin

MessageDlg('Группа З09 ПОВТ(у) Шарафиев Р.Н.', mtInformation, [mbok],0);

end;

procedure TForm_glavn.N4Click(Sender: TObject);

begin

Form_sotr:=TForm_sotr.Create(Application);

Form_sotr.Show;

Form_sotr.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_sotr.ADOQuery1.Open;

end;

procedure TForm_glavn.N5Click(Sender: TObject);

begin

Form_pitom:=TForm_pitom.Create(Application);

Form_pitom.Show;

Form_pitom.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_pitom.ADOQuery1.Open;

end;

procedure TForm_glavn.N6Click(Sender: TObject);

begin

Form_Zona_obit:=TForm_Zona_obit.Create(Application);

Form_Zona_obit.Show;

Form_Zona_obit.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_Zona_obit.ADOQuery1.Open;

end;

procedure TForm_glavn.N7Click(Sender: TObject);

begin

Form_vid_mlek:=TForm_vid_mlek.Create(Application);

Form_vid_mlek.Show;

Form_vid_mlek.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_vid_mlek.ADOQuery1.Open;

end;

procedure TForm_glavn.N8Click(Sender: TObject);

begin

Form_sved:=TForm_sved.Create(Application);

Form_sved.Show;

Form_sved.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_sved.ADOQuery1.Open;

end;

procedure TForm_glavn.N9Click(Sender: TObject);

begin

Form_ratsion:=TForm_ratsion.Create(Application);

Form_ratsion.Show;

Form_ratsion.ADOQuery1.Connection:=Form_nast.ADOConnection1;

Form_ratsion.ADOQuery1.Open;

end;

end.

Приложение Б

Скрипты SQL-запросов

Полная информация по типу и имени питомца зоопарка;

select Вид_млекопитающих.Наименование as Вид_млекопитающих, Питомец.Имя, Питомец.Дата_рождения, Питомец.Пол, Сотрудник.Имя as Имя_ответственного_сотрудника, Тип_рациона.Название as Название_Типа_рациона, Рацион.Список_продуктов from Вид_млекопитающих,Питомец,Сотрудник, Рацион, Тип_рациона where Вид_млекопитающих.Наименование='Слон' and Питомец.Имя='Пышка' and Питомец.Вид_млекопитающего=Вид_млекопитающих.Наименование and Питомец.Номер_сотрудника=Сотрудник.Номер and Питомец.Номер_Типа_рациона=Тип_рациона.Номер_типа and Рацион.Номер_типа=Тип_рациона.Номер_типа;

Список сотрудников, работающих семейными парами - ФИО, дата рождения, телефон;

select Сотрудник.Имя, Сотрудник.Отчество, Сотрудник.Фамилия, Сотрудник.Телефон, Сотрудник.Дата_рождения from Сотрудник where Сотрудник.Код_супруга<>'';

Перечень всех животных на текущую дату и номера их рационов.

select Питомец.Имя, Питомец.Дата_рождения, Питомец.Пол, Рацион.Наименование, Рацион.Список_продуктов from Питомец, Рацион, Тип_рациона, Седения_о_животном where Питомец.Номер_питомца=Седения_о_животном.Номер_питомца and Тип_рациона.Номер_типа=Питомец.Номер_Типа_рациона and Рацион.Номер_типа=Тип_рациона.Номер_типа;

Размещено на Allbest.ru


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

  • Информационно-логическая модель предметной области по нотациям Ричарда Баркера. Даталогическая модель реляционной базы данных в виде диаграммы схемы отношений. Приложение интерфейса для базы данных на языке программирования С# в среде Visual Studio.

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

  • Разработка приложения, позволяющего автоматизировать документооборот предприятия по списанию основных средств. Мероприятия по защите и обеспечению целостности базы данных. Разработка клиентского приложения. Запросы к базе данных, руководство пользователя.

    курсовая работа [700,0 K], добавлен 14.01.2015

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

    курсовая работа [318,6 K], добавлен 24.12.2014

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

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

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

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

  • Информационная система компьютерной фирмы, описание предметной области, модель системы. Создание базы данных: постановка задачи, перечень объектов базы данных, инфологическая и датологическая модели, физическое моделирование. Формы, запросы и отчёты.

    курсовая работа [463,7 K], добавлен 12.12.2009

  • Описание предметной области разрабатываемой базы данных для теннисного клуба. Обоснование выбора CASE-средства Erwin 8 и MS Access для проектирования базы данных. Построение инфологической модели и логической структуры базы данных, разработка интерфейса.

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

  • Цель инфологического моделирования предметной области. Источники данных, базы данных и система управления, разработка модели. Принципы проектирования базы данных, концептуальная, логическая, материальная разработка. Типы сущностей, атрибутов и связей.

    курсовая работа [188,6 K], добавлен 15.07.2012

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

    дипломная работа [2,2 M], добавлен 24.07.2014

  • Концептуальное и инфологическое проектирование базы данных в системе управления базами данных Microsoft Access. Физическое проектирование базы данных "Магазин спорттоваров". Тестирование и отладка базы данных, составление руководства пользователя.

    курсовая работа [6,7 M], добавлен 22.11.2022

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