Переход к реляционной модели 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Переход к реляционной модели



Содержание

 

Введение…………………………………………………………………………6

Переход к реляционной модели………………………………………………..8

Реляционная модель………………………………………………………….....9

Описание процесса реализации базы данных………………………………..10

Создание таблиц базы данных с помощью DataBase Desktop………………11

Определение ссылочной целостности между таблицами…………………...15

Создание приложения для работы с базой данных в среде Delphi…………16

Компоненты отображение данных……………………………………………18

Создание отчётов………………………………………………………………19

Запросы…………………………………………………………………………20

Внешний вид созданных в приложении форм……………………………….23

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

Список используемой литературы……………………………………………28

 

 


Введение

Восприятие реального мира можно соотнести с последовательностью разных, хотя иногда и взаимосвязанных, явлений. С давних времен люди пытались описать эти явления (даже тогда, когда не могли их понять). Такое описание называют данными.

С самого начала развития вычислительной техники образовались два основных направления ее использования. Первое направление - применение вычислительной техники для выполнения численных расчетов, которые слишком долго или вообще невозможно производить вручную. Становление этого направления способствовало интенсификации методов численного решения сложных математических задач, развитию класса языков программирования, ориентированных на удобную запись численных алгоритмов, становлению обратной связи с разработчиками новых архитектур ЭВМ. Второе направление, которое непосредственно касается темы моего домашнего задания, это использование средств вычислительной техники в автоматических или автоматизированных информационных системах. В самом широком смысле информационная система представляет собой программный комплекс, функции которого состоят в поддержке надежного хранения информации в памяти компьютера, выполнении специфических для данного приложения преобразований информации и/или вычислений, предоставлении пользователям удобного и легко осваиваемого интерфейса. Обычно объемы информации, с которыми приходится иметь дело таким системам, достаточно велики, а сама информация имеет достаточно сложную структуру. Классическими примерами информационных систем являются банковские системы, системы резервирования авиационных или железнодорожных билетов, мест в гостиницах и т.д.

Активная деятельность по отысканию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых " Системы управления базами данных " (СУБД). Основная особенность СУБД – это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Файлы, снабженные описанием хранимых в них данных и находящиеся под управлением СУБД, стали называть банки данных, а затем " Базы данных " (БД).

В моем курсовом проекте реализована базы данных «Иностранных актеров». На первоначальном этапе проектирования базы данных необходимо сначала дать краткое описание предметной области реализуемой базы данных.


Переход к реляционной модели

Для перехода к реляционной модели заменим все сущности соответствующими таблицами:

Актер (ID, ФИ, Дата_рождение, Пол, Рост, ФИ_агента, Годовой_доход, Фото)

Фильм (Название, Год выпуска, Длительность, Цвет, Официальный_постер)

Агент (ФИ, Дата_рождения, Адрес, Телефон, Годовой_доход)

Награда_номинация (ID, Название, Категория, Год, Итог)

Актер_фильм (Название_фильма, ID)

Актер_награда (ID_актера, ID)

 


Реляционная модель

 

 

Агент
ФИ Дата_рождения Адрес Телефон Годовой_доход

 

Актер
ID ФИ Дата_рождения Пол Рост ФИ_агента Годовой_доход Фото

 

 

 


 

 

Актер_фильм
Название_фильма ID

 

Фильм
Название Год_выпуска Длительность Цвет Официальный_постер

 

 


Награда
ID Название Категория Год Итог

 

Актер_награда
ID ID_актера

 

       
   
 
 

 

 


 


Создание отчётов

Генерация выходной документации осуществляется в Delphi с помощью компонентов с закладки QReport. На компонент TQuickRep помещаю ColumnHeaderBand и DetailBand, которые предоставляют собой области отображения информации в отчете. В эти области ставятся компоненты QRLabel и QRDBText. Для компонентов настраиваю шрифт, цвет. В QRDBText указывать DataSet и DataField. Для просмотра отчёта из приложения применяется процедура quickrep1.preview, помещённая в обработчик нажатие кнопки.

 


Запросы

1) Выводит всю информацию из таблицы актер:

Select *

From актер;

 

2) Находит актеров, рост которых лежит в пределе (180-185) и располагает в порядке возрастания:

Select ФИ, Дата_рождения, Рост

From актер

Where (Рост between '180' and '185')

Order BY Рост ASC

3) Находит всех актеров, имена которых начинаются на «Б»:

Select ФИ

From актер

Where ФИ LIKE 'Б%'

 

4) Выводит агентов, работающих на актеров:

Select актер.ФИ, агент.ФИ

From актер INNER JOIN агент ON актер.ФИ_агента =агент.ФИ

 

5) Выводит названия фестивалей, успешных для актеров:

Select Название, итог

From награда_номинация

Where Итог=’True’

 

6) Запрос с параметром: Можно найти актеров по имени.

7) Добавляет в таблицу агент атрибут Рост

ALTER TABLE агент ADD Рост Varchar(3);

8) Удаляет из таблицы агент атрибут Рост

ALTER TABLE агент DROP Рост;

Внешний вид формы «Главная»

 

Внешний «М:М»

Внешний вид формы «Запросы»

 

Внешний вид формы «Отчёт»

Для работы с базой данных созданы кнопки по нажатию на которые вызывают формы содержащие инструменты для работы с базой данных.

 

 


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

unit Unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Menus, jpeg, ExtCtrls, DB, DBTables;

 

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

cgvb1: TMenuItem;

bn2: TMenuItem;

bnm1: TMenuItem;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

Image1: TImage;

Image2: TImage;

N5: TMenuItem;

MM1: TMenuItem;

procedure bn2Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure bnm1Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure MM1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

uses Unit2,unit3,unit4,unit5,unit6,unit7;

 

{$R *.dfm}

 

procedure TForm1.bn2Click(Sender: TObject);

begin

form2.show;

end;

 

procedure TForm1.N4Click(Sender: TObject);

begin

close;

end;

 

procedure TForm1.N2Click(Sender: TObject);

begin

form3.QuickRep1.Preview;

end;

 

procedure TForm1.N3Click(Sender: TObject);

begin

MessageDlg('База данных "Иностранных актеров". Выполнил Белик В.И. ФИТ 3-2а',

mtConfirmation, [mbYES], 0);

end;

 

procedure TForm1.N1Click(Sender: TObject);

begin

form4.Show;

end;

 

procedure TForm1.bnm1Click(Sender: TObject);

begin

form5.Show;

end;

 

procedure TForm1.N5Click(Sender: TObject);

begin

form6.show;

end;

 

procedure TForm1.MM1Click(Sender: TObject);

begin

form7.Show

end;

 

end.

 

unit Unit2;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, DB, DBTables, ExtCtrls, DBCtrls, StdCtrls,

ExtDlgs, ADODB;

 

type

TForm2 = class(TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

DataSource1: TDataSource;

Table1: TTable;

Button1: TButton;

DataSource2: TDataSource;

DBGrid2: TDBGrid;

Table2: TTable;

DBGrid3: TDBGrid;

DataSource3: TDataSource;

Table3: TTable;

DBNavigator2: TDBNavigator;

DBGrid4: TDBGrid;

DBNavigator3: TDBNavigator;

Table4: TTable;

DataSource4: TDataSource;

DataSource5: TDataSource;

DBGrid5: TDBGrid;

Table5: TTable;

Table6: TTable;

DBNavigator4: TDBNavigator;

DBNavigator5: TDBNavigator;

DBGrid6: TDBGrid;

DataSource6: TDataSource;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form2: TForm2;

 

implementation

 

{$R *.dfm}

 

end.

 

unit Unit3;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, QRCtrls, QuickRpt, ExtCtrls;

 

type

TForm3 = class(TForm)

QuickRep1: TQuickRep;

DetailBand1: TQRBand;

TitleBand1: TQRBand;

QRLabel1: TQRLabel;

QRLabel2: TQRLabel;

QRLabel3: TQRLabel;

QRLabel4: TQRLabel;

QRDBText1: TQRDBText;

QRDBText2: TQRDBText;

QRDBText3: TQRDBText;

QRDBImage1: TQRDBImage;

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form3: TForm3;

 

implementation

uses unit2;

{$R *.dfm}

 

end.

 

unit Unit4;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, DbChart, DB,

DBTables, TeeFunci, StdCtrls;

 

type

TForm4 = class(TForm)

Table1: TTable;

DataSource1: TDataSource;

DBChart1: TDBChart;

TeeFunction1: TAddTeeFunction;

Series1: THorizBarSeries;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form4: TForm4;

 

implementation

 

{$R *.dfm}

 

procedure TForm4.Button1Click(Sender: TObject);

begin

Form4.Hide;

end;

 

end.

 

unit Unit5;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls;

 

type

TForm5 = class(TForm)

Bevel1: TBevel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit7: TEdit;

Button1: TButton;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Table1: TTable;

Bevel2: TBevel;

DataSource2: TDataSource;

DBGrid2: TDBGrid;

DBNavigator2: TDBNavigator;

Table2: TTable;

Label9: TLabel;

Edit8: TEdit;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Edit9: TEdit;

Edit10: TEdit;

Edit11: TEdit;

Edit12: TEdit;

Button2: TButton;

Bevel3: TBevel;

DBGrid3: TDBGrid;

DBNavigator3: TDBNavigator;

Edit13: TEdit;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Edit14: TEdit;

Edit15: TEdit;

Edit16: TEdit;

Edit17: TEdit;

DataSource3: TDataSource;

Table3: TTable;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Button3: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form5: TForm5;

 

implementation

 

{$R *.dfm}

 

procedure TForm5.Button1Click(Sender: TObject);

begin

Table1.Insert;

Table1.FieldByName('ID').AsString:=Edit1.Text;

Table1.FieldByName('ФИ').AsString:=Edit2.Text;

Table1.FieldByName('Рост').AsString:=Edit3.Text;

Table1.FieldByName('Дата_рождения').AsString:=Edit4.Text;

Table1.FieldByName('Пол').AsString:=Edit5.Text;

Table1.FieldByName('ФИ_агента').AsString:=Edit6.Text;

Table1.FieldByName('Годовой_доход').AsString:=Edit7.Text;

Table1.Post;

Table1.Refresh;

end;

 

procedure TForm5.Button2Click(Sender: TObject);

begin

Table2.Insert;

Table2.FieldByName('ФИ').AsString:=Edit8.Text;

Table2.FieldByName('Дата_рождения').AsString:=Edit9.Text;

Table2.FieldByName('Адрес').AsString:=Edit10.Text;

Table2.FieldByName('Телефон').AsString:=Edit11.Text;

Table2.FieldByName('Годовой_доход').AsString:=Edit12.Text;

Table2.Post;

Table2.Refresh;

end;

 

procedure TForm5.Button3Click(Sender: TObject);

begin

Table3.Insert;

Table3.FieldByName('Название').AsString:=Edit13.Text;

Table3.FieldByName('ID_актера').AsString:=Edit14.Text;

Table3.FieldByName('Год_выпуска').AsString:=Edit15.Text;

Table3.FieldByName('Длительность').AsString:=Edit16.Text;

Table3.FieldByName('Цвет').AsString:=Edit17.Text;

Table3.Post;

Table3.Refresh;

end;

 

end.

 

unit Unit6;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids;

 

type

TForm6 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Query1: TQuery;

GroupBox1: TGroupBox;

RadioButton1: TRadioButton;

Edit1: TEdit;

Button1: TButton;

Label1: TLabel;

Memo1: TMemo;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button7: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form6: TForm6;

 

implementation

 

{$R *.dfm}

 

procedure TForm6.Button1Click(Sender: TObject);

begin

Query1.SQL.Text:= Memo1.Text;

Query1.Open

end;

 

procedure TForm6.Button2Click(Sender: TObject);

begin

if RadioButton1.Checked=true then begin

Form6.Query1.Close;

Form6.Query1.SQL.Clear;

Form6.Query1.SQL.Add('Select * From актер where актер."ФИ"=:Name1;');

Form6.Query1.Close;

Form6.Query1.Prepare;

Form6.Query1.Params[0].AsString:=Edit1.Text;

Form6.Query1.Open;

if (Form6.Query1.RecordCount <> 0)then ShowMessage('Актер найден') else ShowMessage('Актер не найден');

end

end;

 

procedure TForm6.Button3Click(Sender: TObject);

begin

Form6.Hide;

end;

 

procedure TForm6.Button4Click(Sender: TObject);

begin

Memo1.Clear;

Memo1.Lines.Add('Select *');

Memo1.Lines.Append('From актер');

Button1Click(Self);

 

end;

procedure TForm6.Button7Click(Sender: TObject);

begin

Memo1.Clear;

Memo1.Lines.Add('Select актер.ФИ, агент.ФИ');

Memo1.Lines.Append('From актер INNER JOIN агент ON актер.ФИ_агента =агент.ФИ');

Button1Click(Self);

end;

end.

 

unit Unit7;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids;

 

type

TForm7 = class(TForm)

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

DataSource2: TDataSource;

DBGrid2: TDBGrid;

DBNavigator2: TDBNavigator;

DataSource3: TDataSource;

DBGrid3: TDBGrid;

DBNavigator3: TDBNavigator;

DataSource4: TDataSource;

DBGrid4: TDBGrid;

DBNavigator4: TDBNavigator;

Table1: TTable;

Table2: TTable;

Table3: TTable;

Table4: TTable;

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form7: TForm7;

 

implementation

 

{$R *.dfm}

 

end.


Список используемой литературы

1. Базы данных в Delphi7, Пономарёв Вячеслав, 2003г.

2. Курс лекций по дисциплине «Базы Данных», Георгица Ирина Викторовна

 

3. Программирование в Delphi7, Дарахвилидзе Пётр, 2003г.

 

4. Понимание языка SQL, Груббер Мартин

 

 

Содержание

 

Введение…………………………………………………………………………6

Переход к реляционной модели………………………………………………..8

Реляционная модель………………………………………………………….....9

Описание процесса реализации базы данных………………………………..10

Создание таблиц базы данных с помощью DataBase Desktop………………11

Определение ссылочной целостности между таблицами…………………...15

Создание приложения для работы с базой данных в среде Delphi…………16

Компоненты отображение данных……………………………………………18

Создание отчётов………………………………………………………………19

Запросы…………………………………………………………………………20

Внешний вид созданных в приложении форм……………………………….23

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

Список используемой литературы……………………………………………28

 

 


Введение

Восприятие реального мира можно соотнести с последовательностью разных, хотя иногда и взаимосвязанных, явлений. С давних времен люди пытались описать эти явления (даже тогда, когда не могли их понять). Такое описание называют данными.

С самого начала развития вычислительной техники образовались два основных направления ее использования. Первое направление - применение вычислительной техники для выполнения численных расчетов, которые слишком долго или вообще невозможно производить вручную. Становление этого направления способствовало интенсификации методов численного решения сложных математических задач, развитию класса языков программирования, ориентированных на удобную запись численных алгоритмов, становлению обратной связи с разработчиками новых архитектур ЭВМ. Второе направление, которое непосредственно касается темы моего домашнего задания, это использование средств вычислительной техники в автоматических или автоматизированных информационных системах. В самом широком смысле информационная система представляет собой программный комплекс, функции которого состоят в поддержке надежного хранения информации в памяти компьютера, выполнении специфических для данного приложения преобразований информации и/или вычислений, предоставлении пользователям удобного и легко осваиваемого интерфейса. Обычно объемы информации, с которыми приходится иметь дело таким системам, достаточно велики, а сама информация имеет достаточно сложную структуру. Классическими примерами информационных систем являются банковские системы, системы резервирования авиационных или железнодорожных билетов, мест в гостиницах и т.д.

Активная деятельность по отысканию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых " Системы управления базами данных " (СУБД). Основная особенность СУБД – это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Файлы, снабженные описанием хранимых в них данных и находящиеся под управлением СУБД, стали называть банки данных, а затем " Базы данных " (БД).

В моем курсовом проекте реализована базы данных «Иностранных актеров». На первоначальном этапе проектирования базы данных необходимо сначала дать краткое описание предметной области реализуемой базы данных.


Переход к реляционной модели

Для перехода к реляционной модели заменим все сущности соответствующими таблицами:

Актер (ID, ФИ, Дата_рождение, Пол, Рост, ФИ_агента, Годовой_доход, Фото)

Фильм (Название, Год выпуска, Длительность, Цвет, Официальный_постер)

Агент (ФИ, Дата_рождения, Адрес, Телефон, Годовой_доход)

Награда_номинация (ID, Название, Категория, Год, Итог)

Актер_фильм (Название_фильма, ID)

Актер_награда (ID_актера, ID)

 


Реляционная модель

 

 

Агент
ФИ Дата_рождения Адрес Телефон Годовой_доход

 

Актер
ID ФИ Дата_рождения Пол Рост ФИ_агента Годовой_доход Фото

 

 

 


 

 

Актер_фильм
Название_фильма ID

 

Фильм
Название Год_выпуска Длительность Цвет Официальный_постер

 

 


Награда
ID Название Категория Год Итог

 

Актер_награда
ID ID_актера

 

       
   
 
 

 

 


 



Поделиться:


Последнее изменение этой страницы: 2016-09-17; просмотров: 207; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.190.176.78 (0.272 с.)