2.2.4 Розробка фізичної схеми бази даних

Таким чином, остаточна схема бази даних „Кафедра” виглядає так, як це зображено на рис.10.

Рис.10.

Схема даних має зв’язки типу „Один-до-багатьох”.


3. .Інтерфейс користувача інформаціїної системи

Інтерфейс користувача – це зручний засіб спілкування з даними який дозволяє швидко зробити певну дію не використовуя ніяких особових команд.

Схема алгоритму доступу до БД і меню наведена на рис.11.

Рис.11. Схема алгоритму.


Інтерфейс за допомогою технології MDI у Windows реалізується наступним чином (рис.12):

Рис.12.

Меню „Файл” має підменю „Знищити об’єкт” (деяку таблицю).

Меню „Редагування” має підменю „Додати новий запис”, „”Знищити запис”, „На останній запис”.

Меню „Сервіс” має підменю „Доступ до даних” (відкриття сторінки доступу до даних через Інтернет).

Меню „Вихід” здійснює вихід з інформаційної системи зі збереженням усіх даних.


4. Програмні додатки, які реалізують пункт меню

Модуль реалізації меню у вікнах MDI наведений у лістингу 1.

Лістинг 1

unit MainFrm;

interface

uses

WinTypes, WinProcs, Classes, Graphics, Forms, Controls, Menus,

StdCtrls, Messages, Dialogs, SysUtils, ComCtrls,

ToolWin, ExtCtrls, Buttons, ImgList;

type

TMainForm = class(TForm)

mmMain: TMainMenu;

OpenDialog: TOpenDialog;

mmiFile: TMenuItem;

mmiExit: TMenuItem;

N3: TMenuItem;

mmiOpen: TMenuItem;

mmiNew: TMenuItem;

mmiWindow: TMenuItem;

mmiArrangeIcons: TMenuItem;

mmiCascade: TMenuItem;

mmiTile: TMenuItem;

mmiCloseAll: TMenuItem;

tlbMain: TToolBar;

ilMain: TImageList;

tbFileOpen: TToolButton;

 { File Event Handlers }

procedure mmiNewClick(Sender: TObject);

procedure mmiOpenClick(Sender: TObject);

procedure mmiExitClick(Sender: TObject);

 { Window Event Handlers }

procedure mmiTileClick(Sender: TObject);

procedure mmiArrangeIconsClick(Sender: TObject);

procedure mmiCascadeClick(Sender: TObject);

procedure mmiCloseAllClick(Sender: TObject);

public

{ User defined methods }

procedure OpenTextFile(EditForm: TForm; Filename: string);

procedure OpenBMPFile(FileName: String);

procedure Open MDBFile(RTFForm: TForm; FileName: string);

procedure SetToolBar(AToolBar: TToolBar);

end;

var

MainForm: TMainForm;

implementation

uses MDIBmpFrm, MdiEditFrm, MdiRtfFrm, FTypForm;

const

{ Define constants to represent file name extensions }

BMPExt = '.BMP'; // Bitmapped file

TextExt  = '.TXT'; // Text file

RTFExt = '.MDB'; // File BD

{$R *.DFM}

procedure TMainForm.mmiNewClick(Sender: TObject);

begin

{ Determine the file type the user wishes to open by calling the

GetFileType function. Call the appropriate method based on the

retrieved file type. }

case GetFileType of

mrTXT: OpenTextFile(nil, ''); // Open a text file.

mrMDB: OpenMDBFile(nil, ''); // Open an MDB file.

mrBMP:

 begin

{ Set the defalt filter for OpenDialog1 for BMP files. }

OpenDialog.FilterIndex := 2;

mmiOpenClick(nil);

 end;

end;

end;

procedure TMainForm.mmiOpenClick(Sender: TObject);

var

Ext: string[4];

begin

{ Call the appropriate method based on the file type of the file

selected from OpenDialog1 }

if OpenDialog.Execute then

begin

{ Get the file's extension and compare it to determine the

file type the user is opening. Call the appropriate method and

pass in the file name. }

Ext := ExtractFileExt(OpenDialog.FileName);

if CompareStr(UpperCase(Ext), TextExt) = 0 then

OpenTextFile(ActiveMDIChild, OpenDialog.FileName)

else if CompareStr(UpperCase(Ext), BMPExt) = 0 then

OpenBMPFile(OpenDialog.FileName)

else if CompareStr(UpperCase(Ext), MDBExt) = 0 then

Open MDBFile(ActiveMDIChild, OpenDialog.FileName);

end;

end;

procedure TMainForm.mmiExitClick(Sender: TObject);

begin

Close;

end;

{ Window Event Handlers }

procedure TMainForm.mmiTileClick(Sender: TObject);

begin

Tile;

end;

procedure TMainForm.mmiArrangeIconsClick(Sender: TObject);

begin

 ArrangeIcons;

end;

procedure TMainForm.mmiCascadeClick(Sender: TObject);

begin

Cascade;

end;

procedure TMainForm.mmiCloseAllClick(Sender: TObject);

var

i: integer;

begin

{ Close all forms in revers order as they appear in the

MDIChildren property. }

for i := MdiChildCount - 1 downto 0 do

MDIChildren[i].Close;

end;

{ User Defined Methods }

procedure TMainForm.OpenTextFile(EditForm: TForm; FileName: string);

begin

{ If EditForm is of a TEditForm type, then give the user the option

 of loading the file contents into this form. Otherwise, create a

 new TEditForm instance and load the file into that instance }

if (EditForm <> nil) and (EditForm is TMdiEditForm) then

if MessageDlg('Load file into current form?', mtConfirmation,

[mbYes, mbNo], 0) = mrYes then

begin

TMdiEditForm(EditForm).OpenFile(FileName);

 Exit;

end;

{ Create a new TEditForm and call its OpenFile() method }

with TMdiEditForm.Create(self) do

if FileName <> '' then

OpenFile(FileName)

end;

procedure TMainForm.OpenMDBFile(MDBForm: TForm; FileName: string);

begin

{ If MDBForm is of a TMDBForm type, then give the user the option

 of loading the file contents into this form. Otherwise, create a

 new TMDBForm instance and load the file into that instance }

if (MDBForm <> nil) and (MDBForm is TMdiMDBForm) then

if MessageDlg('Load file into current form?', mtConfirmation,

[mbYes, mbNo], 0) = mrYes then begin

(MDBForm as TMdiMDBForm).OpenFile(FileName);

Exit;

end;

{ Create a new TMDBForm and call its OpenFile() method }

with TMdiMDBForm.Create(self) do

if FileName <> '' then

OpenFile(FileName);

end;

procedure TMainForm.OpenBMPFile(FileName: String);

begin

{ Create a new TBMPForm instances and load a BMP file into it. }

with TMdiBmpForm.Create(self) do

OpenFile(FileName);

end;

procedure TMainForm.SetToolBar(AToolBar: TToolBar);

begin

if (MDIChildCount = 1) and (AToolBar = nil) then

tlbMain.Parent := self

else begin

tlbMain.Parent := nil;

if not (AToolBar = nil) then

AToolBar.Parent := self;

end;

end;

end.

Контрольний приклад роботи випливаючого меню наведено на рис.13.

Рис.13.

Для доступу до БД в локальній мережі та через інтернет розроблена сторінка доступу до даних, яка може бути розміщена на сервері.

Поперше ниж скористатися пунктами випливаючого меню, необхідно закрити форму (кнопка „Закрити форму”), яка зявляється автоматично при відкритті БД „Кафедра”, так як меню демонструє команди на прикладі цієї форми.


5. Запити на мові SQL. Структура бази даних

5.1 Структура БД „Кафедра” наведена на наступному рис.14.

Рис 14.

5.2 Запити до бази даних і відповіді на них

Запит на вибірку з БД інформації, для заповнення таблиці за №групи1 та №групи5 мовою SQL:

SELECT [Base 1].[№ кафедри], [Base 1].[№ групи 1], [Base 1].[№ групи 5]

FROM [Base 1]

WHERE ((([Base 1].[№ групи 1]) Like "C*#") AND (([Base 1].[№ групи 5]) Like "C*#"));

Запит 1 у режимі таблиці (рис.15):

Рис.15.

Запит 2 з використанням внутрішнього підзапиту мовою SQL:

TRANSFORM First([Base 1].[№ групи 1]) AS [First-№ групи 1]

SELECT [Base 1].[№ кафедри], First([Base 1].[№ групи 1]) AS [Итоговое значение № групи 1]

FROM [Base 1]

GROUP BY [Base 1].[№ кафедри]

PIVOT [Base 1].[№ групи 2];

Запит з використанням внутрішнього підзапиту у режимі таблиці (рис.16):

Рис.16.

Запит 3 про № груп 1 і 5 і відповідних їм шифрів і назв спеціальностей, якщо задані № кафедр 3 і 5 мовою SQL:

SELECT [Спеціальна кафедра].[№ групи], [Спеціальна кафедра].№кафедри, [Спеціальність підготовки].ШифрСпеціальності, [Спеціальність підготовки].НазваСпеціальності

FROM [Спеціальність підготовки] INNER JOIN [Спеціальна кафедра] ON [Спеціальність підготовки].ШифрСпеціальності = [Спеціальна кафедра].ШифрСпеціальності

WHERE ((([Спеціальна кафедра].[№ групи]) Like "C0*") AND (([Спеціальна кафедра].№кафедри)=3 Or ([Спеціальна кафедра].№кафедри)=5)) OR ((([Спеціальна кафедра].[№ групи]) Like "C4*"));

Запит 3 у режимі таблиці (рис.17):

Рис.17.

Четвертий запит про усі записи, що впорядковані по полю - № кафедри мовою SQL:

SELECT [Base 1].[№ кафедри], [Base 1].[№ групи 1], [Base 1].[№ групи 2], [Base 1].[№ групи 3], [Base 1].[№ групи 4], [Base 1].[№ групи 5], [Спеціальна кафедра].НазваКафедри

FROM [Base 1] INNER JOIN [Спеціальна кафедра] ON [Base 1].[№ кафедри] = [Спеціальна кафедра].№кафедри

GROUP BY [Base 1].[№ кафедри], [Base 1].[№ групи 1], [Base 1].[№ групи 2], [Base 1].[№ групи 3], [Base 1].[№ групи 4], [Base 1].[№ групи 5], [Спеціальна кафедра].НазваКафедри

ORDER BY [Base 1].[№ кафедри];

Четвертий запит у режимі таблиці (рис.18):

Рис.18.



Информация о работе «База даних "Кафедра" в Access з меню MDI»
Раздел: Информатика, программирование
Количество знаков с пробелами: 40306
Количество таблиц: 8
Количество изображений: 16

Похожие работы

Скачать
29449
7
4

... , поддержке определенным типом (или типами) операционных систем, по вычислительным платформам (ПК, рабочие Unix-станции) и т д.1. Геоинфармационный рынок популярных ГИС продуктов Стремительный рост количества потребителей ГИС-технологий за счет децентрализации расходования бюджетных средств и приобщения к ним все новых и новых предметных сфер их использования. Если до 1993 года основной рост ...

Скачать
132733
6
24

... адміністратор локальної мережі, який є у штатному розкладі і займається усіма проблемами, зв’язаними з комп’ютерами. Рисунок 1.2 – Функціональна схема автоматизованого робочого місця науково-технічної бібліотеки Метою розробки АРМ є - скорочення часу обробки оперативних даних, зменшення кількості помилок при обробці інформації. Основні функціональні вимоги до розроблюваного автоматизованого ...

Скачать
192103
12
0

... пользователей коммутируемой ТФОП к услугам Интернет с помощью аналоговых модемов. При способе PPPoE для организации одновременного широкополосного доступа нескольких пользователей локальной сети Ethernet принципиально достаточно одного постоянного виртуального канала РVС. Очевидна ограниченность необходимых изменений сети доступа при переходе от традиционного доступа к широкополосному с  ...

Скачать
200225
20
0

... коммуникационного центра. 51 1. Реферат. В целях комплексной автоматизации документооборота, а также повышения качества диагностики и лечения онкологических больных в Мелитопольском межрайонном онкологическом диспансере, разработан проект информационно-диагностической системы, предназначенной для оперативного ввода, анализа и хранения графической, текстовой лечебно-диагностической информации и ...

0 комментариев


Наверх