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.
... , поддержке определенным типом (или типами) операционных систем, по вычислительным платформам (ПК, рабочие Unix-станции) и т д.1. Геоинфармационный рынок популярных ГИС продуктов Стремительный рост количества потребителей ГИС-технологий за счет децентрализации расходования бюджетных средств и приобщения к ним все новых и новых предметных сфер их использования. Если до 1993 года основной рост ...
... адміністратор локальної мережі, який є у штатному розкладі і займається усіма проблемами, зв’язаними з комп’ютерами. Рисунок 1.2 – Функціональна схема автоматизованого робочого місця науково-технічної бібліотеки Метою розробки АРМ є - скорочення часу обробки оперативних даних, зменшення кількості помилок при обробці інформації. Основні функціональні вимоги до розроблюваного автоматизованого ...
... пользователей коммутируемой ТФОП к услугам Интернет с помощью аналоговых модемов. При способе PPPoE для организации одновременного широкополосного доступа нескольких пользователей локальной сети Ethernet принципиально достаточно одного постоянного виртуального канала РVС. Очевидна ограниченность необходимых изменений сети доступа при переходе от традиционного доступа к широкополосному с ...
... коммуникационного центра. 51 1. Реферат. В целях комплексной автоматизации документооборота, а также повышения качества диагностики и лечения онкологических больных в Мелитопольском межрайонном онкологическом диспансере, разработан проект информационно-диагностической системы, предназначенной для оперативного ввода, анализа и хранения графической, текстовой лечебно-диагностической информации и ...
0 комментариев