1. Trang chủ
  2. » Luận Văn - Báo Cáo

đề tài cuối kỳ môn hệ quản trị cơ sở dữ liệu quản lý chuyền bay

38 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Quản lý chuyến bay
Tác giả Nguyễn Hoàng Phi Hung, Nguyễn Nhật Khanh, Nguyễn Phú Khang, Trần Văn Hưng
Người hướng dẫn TS. Nguyễn Thanh Sơn
Trường học Trường Đại học Sư phạm Kỹ thuật TP.HCM
Chuyên ngành Hệ quản trị cơ sở dữ liệu
Thể loại Đề tài cuối kỳ
Năm xuất bản 2023-2024
Thành phố Thủ Đức
Định dạng
Số trang 38
Dung lượng 3,23 MB

Cấu trúc

  • CHUONG 2: CHUONG 2: PHAN TICH THIET KE HE THONG (11)
  • NhanVien Khoa chinh (MaNV) (13)
  • DichVu Khóa chính (MaDV) (13)
  • END; (18)
    • CHUONG 3: CHUONG 3: THIET KE CAC CHUC NANG (28)
      • 3. Chức năng tính tiền 1 Thủ tục tính tiền hành lý (30)
        • 3.2 Ham tinh tién vé (30)
    • CHUONG 4: CHUONG 4: TAO USER VA PHAN QUYEN (34)
    • CHƯƠNG 5: CHƯƠNG 5: THIẾT KẺ GIAO DIỆN HỆ THÓNG (35)

Nội dung

M6 ta bài toán Một hệ thống quản lý chuyến bay đòi hỏi sự tổ chức chỉ tiết và hiệu quả đề phục vụ cả hai đối tượng chính: khách hàng và nhân viên, mỗi người có quyền truy cập vảo các chứ

CHUONG 2: PHAN TICH THIET KE HE THONG

1 Thiết kê cơ sở dữ liệu mức quan niệm

Từ mô tả về dữ liệu cần có ở phần mô tả của bài toán ta hình thành được sơ đề thực thể kết hợp (ERD)

2 Thiết kế cơ sở dữ liệu mức logic Từ sơ đồ thực thê kết hợp (ERD), ta có các lược đồ quan hệ:

MayBay(SoHieuMB, HangMB, NamSX, TenLoai, SoLuongGhe) KhachHang(MakH, CCCD, TenKH, NgaySinh, SDT, DiaChi, GioiTinh)

TheKhachHang(MatThe, TenLoai, DiemTichLuy,MaKH)

VeMayBay(MaVe, MaKH, MaChuyenBay, SoGhe, LoaiVe, NgayMua, TienVe, PhiDV, TongChiPhi, MaNguoiDat, MaNeguoiD1)

ChuyenBay(MaChuyenBay, NoiDi, NoiDen, ThoiGianKhoiHanh, ThoiGianDenDuKien, SoLuongGheTrong, Trang Thai)

NhanVien(MaNV, TenNV, GioiTinh, NgaySinh, SDT, CCCD, DiaChi, LoaiNV, Luong, MaTaiKhoan)

PhanCong(MaChuyenBay, MaNhan Vien, HoanThanh)

3.Các ràng buộc cần có 8 LoaiDV(MaLoaiDV, TenLoaiDV) 9 DichVu(MaDV, TenDV, GiaTien, MaLoaiDV) 10 DonDatDich Vu(MaChuyenBay, MaKH, MaDV, SoLuong)

11 TaiKhoan(TenNguoiDung, MatKhau, LoaiTK, MaTaiKhoan, SoDuKhaDung,

12 DanhGia(MakKH, MaChuyenBay, SoDiem, NhanXet) 13 PhieuChi(MaPhieuChi, MaMB, TenPhi, Ngay XuatPhieu, SoTienChi) 14 ThamGia(SoHieuMB, MaChuyenBay)

15 XuLy Ve(MaYC, MaVe, LoatYC, ThoiGian,GhiChu)

Ràng buộc check (DATEDIFF(year,NamSX, GETDATE())0)

NhanVien Khoa chinh (MaNV)

Khóa ngoại (MaTaiKhoan) tham chiếu đến Bang TaiKhoan(MiaTaiKhoan)

Ràng buộc - check (DATEDIFF(year, NgaySinh, GETDATE())> and

- check (len(SDT)) - check (len(CCCD)) - check(Luong>0)

PhanCong Khoa chinh (MaChuyenBay,MaNhan Vien)

Khoa ngoai (MaChuyenBay) tham chiéu dén Bang ChuyenBay(MaCB)

Khoa ngoai (MaNhan Vien) tham chiéu dén Bang NhanVien(MaNV)

DichVu Khóa chính (MaDV)

Khóa ngoại (MaLoaiDV) tham chiếu đến Bảng LoaiDichVu(MaL- oaiDV)

10 XuLy Ve Khoa chinh (MaYC)

Khoa ngoai (MaVe) tham chiéu téi bang VeMayBay(MaVe) Ràng buộc: -check(dbo.KiemTraXuLy(MavVe)=l)

II ThamGia Khoa chinh (SoHieuMB, MaChuyenBay)

Khoa ngoai (SoHieuMB) tham chiéu dén bang MayBay(So-

Khoa ngoai (MaChuyenBay) tham chiéu dén bang ChuyenBay(MaChuyenBay)

12 DonDatDichVu Khoa chinh (MaChuyenBay,MaKH,MaDV)

Khoa ngoai (MaChuyenBay) tham chiéu dén bang ChuyenBay(MaChuyenBay)

Khóa ngoại (MaKH) tham chiếu đến bảng KhachHang(MaKH) Khóa ngoại (MaDV) tham chiếu đến bảng DichVu(MaDV)

Khóa ngoại(MaKH) tham chiếu đến bảng KhachHans(MaKH) Ràng buộc

- check(len(MatKhau)>=8 and (MatKhau COLLATE Latnl_Gen- eral BIN LIKE N'%[A-Z]%'))

14 DanhGia Khoa chinh (MaKH,MaCB)

Khoa ngoai (MaCB) tham chiéu dén Bang ChuyenBay(MaCB)

Rang bu6éc check(Diem< and Diem>=0)

Khóa ngoại (MaMB) tham chiếu đến Bảng MayBay(SoHieuMB)

4 Cài đặt các CSDL và các ràng buộc 4.1 Tạo bảng và các ràng buộc create table MayBay(

SoHieuMB nvarchar (198) primary key, HangMB nvarchar(1@@) ,

NamSX date , TenLoai nvarchar(1@0) , SoLuongGhe int

MaKH nvarchar(1@@) primary key, TenKH nvarchar(109),

NgaySinh date , SDT nvarchar(10@) unique, DiaChi nvarchar(1@@) , GioiTinh nvarchar (1@@) , CCCD nvarchar(10@) unique, create table TheKhachHang( )3

MaThe nvarchar(1@@) primary key, TenLoai nvarchar(1@0) ,

DiemTichLuy int , MaKH nvarchar(1@@) references KhachHang(MaKH)

ChuyenBay (MaChuyenBay , MaMB, NoiDi, NoiDen, ThoiGianKhoiHanh, ThoiGian- DenDuKien, SoLuongGheTrong, TrangThai) create table ChuyenBay(

MaChuyenBay nvarchar(10@) primary key, NoiDi nvarchar(1@@) ,

NoiDen nvarchar(1@@) , ThoiGianKhoiHanh datetime, ThoiGianDenDuKien datetime, SoLuongGheTrong nvarchar (106), TrangThai nvarchar (198)

VeMayBay (MaVe, MaKH, MaChuyenBay, SoGhe, LoaiVe, NgayMua, PhuongThucTT, Ti enVe, PhiDV, TongChiPhi) create table VeMayBay(

MaVe nvarchar(1@@) primary key, MaNguoiDat nvarchar(1@@) references KhachHang (MaKH), MaNguoiDi nvarchar(1@@) references KhachHang(MaKH), MaChuyenBay nvarchar(1@@) references ChuyenBay(MaChuyenBay ) , SoGhe int,

TienVe int, PhiDV int default 6, TongChiPhi as (TienVe + PhiDV)

TenNguoiDung nvarchar (106), MatKhau nvarchar (106), LoaiTaiKhoan nvarchar (196), MaTaiKhoan nvarchar(108) primary key,

SoDuKhaDung int default 9, MaKH nvarchar(1@@) references KhachHang(MaKH)

NhanVien(MaNV, TenNV, GioiTinh, NgaySinh, SDT, CCCD, DiaChi, LoaiNv, Lu- ong) create table NhanVien(

MaNV nvarchar(1@@) primary key, TenNV nvarchar(1@@) ,

SDT nvarchar(10@) unique, CCCD nvarchar(10@) unique, DiaChi nvarchar(1@@) , LoaiNV nvarchar(1@@), Luong int,

MaTaikhoan nvarchar(10@) references TaiKhoan(MaTaikhoan)

MaKH nvarchar(1@@) references KhachHang(MaKH), MaChuyenBay nvarchar(1@@) references ChuyenBay (MaChuyenBay), SoDiem nvarchar (16),

NhanXet nvarchar (198), Primary key(MaKH, MaChuyenBay ) create table PhieuChi( )3

MaPhieuChi nvarchar(1@@) primary key, MaMB nvarchar(1@@) references MayBay(SoHieuMB) , TenPhi nvarchar (198),

MaChuyenBay nvarchar(1@@) references ChuyenBay(MaChuyenBay ) , MaNhanVien nvarchar(10@) references NhanVien(MaNV) ,

HoanThanh nvarchar(1@@) , primary key (MaChuyenBay , MaNhanVien) create table LoaiDVv()3

MaLoaiDV nvarchar (198) primary key, TenLoaiDV nvarchar(196), create table DichvVu( )3

MaDV nvarchar(1@@) primary key, TenDV nvarchar(1@@) ,

GiaTien int, MaLoaiDV nvarchar(1@@) references LoaiDV(MaLoaiDV) , create table XuLyVe( )3

MaYC nvarchar(1@@) primary key, MaVe nvarchar(10@) references VeMayBay(MaVe) , LoaiYC nvarchar(1@@),

bang quan he create table ThamGia(

SoHieuMB nvarchar(10@) references MayBay(SoHieuMB) , MaChuyenBay nvarchar(1@@) references ChuyenBay(MaChuyenBay ) , primary key(SoHieuMB , MaChuyenBay )

MaChuyenBay nvarchar(108) references ChuyenBay (MaChuyenBay), MaKH nvarchar(1@@) references KhachHang (MaKH),

MaDV nvarchar(10@) references DichVu(MaDV) , SoLuong int, primary key (MaChuyenBay , MaKH, MaDV)

); Kiểm tra tuổi đi làm của nhân viên tối thiểu là 18 và tối đa là 40 tuổi alter table NhanVien add constraint chktuoinv check (DATEDIFF(year, NgaySinh, GETDATE())> and DATEDIFF(year, NgaySinh, GET-

Kiểm tra độ dài hợp lệ của SĐT alter table KhachHang add constraint chksdtkh check (len(SDT)) alter table NhanVien add constraint chksdtnv check (len(SDT))

Kiểm tra độ dài hợp lệ của CCCD alter table KhachHang add constraint chkcccdkh check (1en(CCCD)) alter table NhanVien add constraint chkcccdnv check (len(CCCD))

Kiểm tra tuổi hưu của máy bay alter table MayBay add constraint chktuoimb check (DATED- IFF(year,NamSX, GETDATE())=8 and (MatKhau COLLATE Latini_General_ BIN LIKE N'%[A-Z]%'))

Kiểm tra thời gian khởi hành phải nhỏ hơn thời gian dự kiến alter table ChuyenBay add constraint chkthoigian check (DATED- TFF (minute, ThoiGianKhoiHanh, ThoiGianDenDuKien) >8)

Kiểm tra lương nhân viên phải lớn hơn ô alter table NhanVien add constraint chkluong check(Luong>8)

Kiểm tra loại khách nào có thể đổi hoặc hủy vé CREATE FUNCTION KiemTraXuLy(@mave nvarchar(1@@) ) RETURNS INT

AS BEGIN declare @tenlv nvarchar (108) select @tenlv=LoaiVe from VeMayBay where MaVe=@mave if(@ten1v=N'hạng thương gia' or @tenlv=N'hạng phổ thông đặc biệt ' ) return 1; return 0;

END;

CHUONG 3: THIET KE CAC CHUC NANG

L Kết nối cơ sở đữ liệu

SqlConnection conn=new SqlConnection("Data Source=LAPTOP- Q1B01240\TRANVANHUNG; Initial Catalog=DoAnSapCuoi;Integrated Security=True");

Khi bạn thực hiện các thao tác với cơ sở dữ liệu trong C# sử dụng đối tượng SqlConnection, bạn nên mở kết nối (conn.Open()) trước khi thực hiện các lệnh SQL vả đóng kết nối (conn.Close()) sau khi hoàn thành

2 Các chức năng của khách hàng 2.1 Hàm tìm dịch vụ create function TimDichVu(@LoaiDV nvarchar(1@@),@GiaTien int) returns table as return(select DichVu.* from DichVu join LoaiDV on DichVu.MaLoaiDV=LoaiDV.MaLoaiDV where @LoaiDV=TenLoaiDV and @GiaTien>GiaTien) select * from dbo.TimDichVu(N'Nước giải khát', '59999") Thực thi trên C# public DataTable TimDichVu(string LoaiDV, int GiaTien) { try conn.Open(); string sqlStr = String.Format("Select MaDV,TenDV,GiaTien from TimDichVu(N'{0}','{1}')", LoaiDV, GiaTien);

Sq|DataAdapter adapter = new SqIDataAdapter(sqIStr, conn);

DataTable dt = new DataTable(); adapter.Fill(dt); return dt; catch (Exception ex)

MessageBox.Show(ex.Message); return null; finally { conn.Close(); }

2.2 Ham tim kiém chuyén bay create function TimKiemChuyenBay(@noidi nvarchar(10@),@noiden nvarchar (199) ,@thoigiandi date) returns @table table(MACB nvarchar(199) nu11,NoiDi nvarchar(1@@) null,NoiDen nvarchar(199) null, ThoiGianKhoiHanh datetime null, ThoiGianDenDuKien datetime null,TVPT int null,TVPTDB int null,TVTG int null) begin if (@noidi='Khong' ) begin insert into @table(MACB,NoiDi, NoiDen, ThoiGianKhoiHanh, ThoiGianDenDuKien) se- lect MaChuyenBay, NoiDi, NoiDen, ThoiGianKhoiHanh, ThoiGianDenDuKien from ChuyenBay where

@noiden=NoiDen and TrangThai=N'Chờ cất cánh' and @thoigiandi = CONVERT(DATE, ThoiGianKhoi- Hanh) update @table set TVPT.TinhTienVe (MACB,N'hạng phổ thông" ),TVPTDB Tin- hTienVe(MACB,N'hạng phổ thông đặc biệt" ), TVTG.TinhTienVe (MACB,N'hạng thương gia'}) return end insert into @table(MACB,NoiDi,NoiDen, ThoiGianKhoiHanh, ThoiGianDenDuKien) select MaChuyenBay , NoiDi, NoiDen, ThoiGianKhoiHanh, ThoiGianDenDuKien from ChuyenBay where

@noiden=NoiDen and TrangThai=N'ChO cat canh' and @noidi=NoiDi and @thoigiandi = CON- VERT (DATE, ThoiGianKhoiHanh) update @table set TVPT.TinhTienVe (MACB,N'hạng phổ thông" ),TVPTDB Tin- hTienVe(MACB,N'hạng phổ thông đặc biệt" ), TVTG.TinhTienVe (MACB,N'hạng thương gia'}) return end Thực thi trên C# public DataTable TimChuyenBay(string noidi, string noiden, DateTime thoigian) { try conn.Open(); string sqlStr = String.Format("Select * from TimKiemChuyenBay(N'{0}',N'{1}','{2}')", noidi, noiden, thoigian.ToString("yyyy/MM/dd"));

SqlDataAdapter adapter=new SqlDataAdapter(sqlStr,conn);

DataTable dt = new DataTable(); adapter.Fill(dt); return dt;

MessageBox.Show(ex.Message); return null; finally { conn.Close(); }

2.3 Xem lịch sử mua vé của khách hàng create function XemLichSu(@makhachhang nvarchar (199) ) returns @table table(MaVe nvarchar(199) nu11,SoGhe int null, LoaiVe nvarchar(199) null,Ngay- Mua datetime null,TongCP int null,NoiDi nvarchar(199) nu11,NoiDen nvarchar (199) null, ThoiGianDi datetime null,ThoiGianDen datetime null,MaChuyenBay nvarchar(1@@) null) begin insert @table select MaVe,SoGhe, LoaiVe, NgayMua, TongChiPhi, NoiDi, NoiDen, ThoiGianKhoi- Hanh, ThoiGianDenDuKien, ChuyenBay MaChuyenBay from VeMayBay join ChuyenBay on VeMayBay - MaChuyenBay=ChuyenBay.MaChuyenBay where @makhachhang=MaNguoiDat return end Thực thi trên C# public DataTable LichSuDatVe(string MaNguoiDi) { try conn.Open(); string sqlStr = String.Format("Select * from dbo.XemLichSu('{0}')", MaNguoiDi);

SqlDataAdapter adapter = new SqlDataAdapter(sqlStr, conn);

DataTable dt = new DataTable(); adapter.Fill(dt); return dt; catch (Exception ex)

MessageBox.Show(ex.Message):; return null; finally { conn.Close(); }}

3 Chức năng tính tiền 3.1 Thủ tục tính tiền hành lý

BEGIN declare @loaive nvarchar (199) ,@makh nvarchar (199) ,@machuyenbay nvarchar(1@@) select @loaive=LoaiVe ,@makh=MaNguoiDi ,@machuyenbay=MaChuyenBay from VeMayBay where

@mave=MaVe if (@loaive=N'hang phổ thông đặc biệt' or @loaive=N'hạng thương gia') set @sokg=@sokg-18 else set @sokg=@sokg-12 if (@sokg

Ngày đăng: 13/09/2024, 10:57

w