Tải bản đầy đủ (.pdf) (17 trang)

Xử lý câu truy vấn bằng phép toán đại số kết hợp thời gian

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (281.12 KB, 17 trang )

LUAÄN VAÊN TOÁT NGHIEÄP

Trang 40













PHẦN 3 :

THUYẾT MINH CHƯƠNG TRÌNH
LUAÄN VAÊN TOÁT NGHIEÄP

Trang 41
1- Thiết kế sơ đồ EER
Ta xây dựng 1 ứng dụng cho công ty theo các chi tiết cụ thể sau :
Tại 1 công ty có nhiều phòng ban, mỗi phòng ban có nhiều nhân viên và 1 nhân viên chỉ
thuộc 1 phòng duy nhất. Mỗi phòng chỉ có 1 người quản lý và người quản lý chỉ quản lý 1
phòng. Mỗi phòng có nhiều dự án và 1 dự án chỉ được quản lý bởi 1 phòng. Nhân viên có thể
tham gia vào nhiều dự án, nhưng chỉ được tham gia vào 1 dự án tại 1 thời điểm duy nhất. Mỗi dự
án có 1 nhà quản lý và nhà quản lý có thể quản lý nhiều dự án nhưng tại 1 thời điểm chỉ được
quản lý 1 dự án.



2- Xây dựng cấu trúc dữ liệu :
Ta có các lớp đối tượng sau dùng nhập xuất dữ liệu :
TEmployeeForm = class(TForm)
EmpID : TLabel;
Msnv : TEdit;
EmpName : TLabel;
Tennv : TEdit;
InDepartment : TButton;
InProject : TButton;
Top : TButton;
LUAÄN VAÊN TOÁT NGHIEÄP

Trang 42
Bottom : TButton;
Next : TButton;
Previous : TButton;
Exit : TButton;
Save : TButton;
procedure ExitClick(Sender: TObject);
procedure InDepartmentClick(Sender: TObject);
procedure InProjectClick(Sender: TObject);
procedure TopClick(Sender: TObject);
procedure BottomClick(Sender: TObject);
procedure NextClick(Sender: TObject);
procedure PreviousClick(Sender: TObject);
procedure SaveClick(Sender: TObject);
procedure Init(var point : TNhan_vien);
procedure Restore(var point : TNhan_vien);
procedure Displayed(point : TNhan_vien);

procedure Emp_Sal;
private
{ Private declarations }
public
{ Public declarations }
end;
TDepartmentForm = class(TForm)
DeptID : TLabel;
Msphong : TEdit;
DeptName : TLabel;
Tenphong : TEdit;
DeptManager : TButton;
Top : TButton;
Bottom : TButton;
Next : TButton;
Previous : TButton;
Save : TButton;
Exit : TButton;
procedure ExitClick(Sender: TObject);
procedure DeptManagerClick(Sender: TObject);
procedure TopClick(Sender: TObject);
procedure BottomClick(Sender: TObject);
procedure NextClick(Sender: TObject);
procedure PreviousClick(Sender: TObject);
procedure SaveClick(Sender: TObject);
procedure Init(var point : T_Phong);
procedure Restore(var point : T_Phong);
procedure Displayed(point : T_Phong);
private
{ Private declarations }

LUAÄN VAÊN TOÁT NGHIEÄP

Trang 43
public
{ Public declarations }
end;
TProject Form = class(TForm)
ProjID : TLabel;
Msda : TEdit;
ProjName : TLabel;
Tenda : TEdit;
ProjManager : TButton;
DeptManageProj : TButton;
Top : TButton;
Bottom : TButton;
Next : TButton;
Previous : TButton;
Save : TButton;
Exit : TButton;
procedure ProjManagerClick(Sender: TObject);
procedure DeptManageProjClick(Sender: TObject);
procedure SaveClick(Sender: TObject);
procedure ExitClick(Sender: TObject);
procedure TopClick(Sender: TObject);
procedure BottomClick(Sender: TObject);
procedure NextClick(Sender: TObject);
procedure PreviousClick(Sender: TObject);
procedure Init(var point : TDu_an);
procedure Restore(var point : TDu_an);
procedure Displayed(point : TDu_an);

private
{ Private declarations }
public
{ Public declarations }
end;
Ngoài ra, để quản lý dữ liệu ta còn xây dựng thêm các cấu trúc sau :
TTime = array[1..2] of TDatetime;
T_EmpRef = ^ TEmpRef;
T_DeptRef = ^ TDeptRef;
T_ProjRef = ^ TProjRef;
T_Salary = ^TSalary;
TSalary = Record
luong : integer;
time : TTime;
next : T_Salary;
pre : T_Salary;
end;
TNhan_vien = ^ TNhanvien;
TNhanvien = Record
LUAÄN VAÊN TOÁT NGHIEÄP

Trang 44
msnv : string;
tennv : string;
p_InDept : T_DeptRef;
p_InProj : T_ProjRef;
p_DeptManager : T_DeptRef;
p_ProjManager : T_ProjRef;
p_luong : T_Salary;
next : TNhan_vien;

pre : TNhan_vien;
end;
T_Phong = ^ TPhong;
TPhong = Record
msphong : string;
tenphong : string;
p_DeptManager : T_EmpRef;
p_Dept_Man_Proj : T_ProjRef;
p_InDept : T_EmpRef;
next : T_Phong;
pre : T_Phong;
end;
TDu_an = ^ TDuan;
TDuan = Record
msda : string;
tenda : string;
p_ProjManager : T_EmpRef;
p_Dept_Man_Proj : T_DeptRef;
p_InProj : T_EmpRef;
next : TDu_an;
pre : TDu_an;
end;
TEmpRef = Record
time : TTime;
next : T_EmpRef;
pre : T_EmpRef;
ref : TNhan_vien;
end;
TDeptRef = Record
time : TTime;

next : T_DeptRef;
pre : T_DeptRef;
ref : T_Phong;
end;
TProjRef = Record
time : TTime;
next : T_ProjRef;
pre : T_ProjRef;
LUAÄN VAÊN TOÁT NGHIEÄP

Trang 45
ref : TDu_an;
end;
Với cấu trúc dữ liệu trên ta có thể mô hình hoá quan hệ của các đối tượng theo hình dưới
đây :

Chú thích :
 [TIME] : là đoạn thời gian, từ thời điểm T1 đến T2 (T1<=T2) tính theo ngày
Ví dụ : T1 = 1/1/99

×