Hiện nay chương trình Xy Dựng Hệ Thống Trợ Gip Sắp Xếp Lịch Sử Dụng Phịng chưa quản lý tốt cc thơng tin về gio vin, mơn học, học kỳ, học phần, nn thơng tin lưu trữ cịn hạn chế.Ngồi ra chưa sắp xếp lịch sử dụng phịng theo dạng thời khĩa biểu trong tuần.
Trong tương lai, chương trình Xy Dựng Hệ Thống Trợ Gip Sắp Xếp Lịch Sử Dụng Phịng cĩ thể p dụng cho hệ thống quản lý phịng của trường và có thể mở rộng hơn nữa việc sắp xếp lịch giảng dạy, lịch học từng lớp để xây dựng một hệ thống thời khóa biểu hoàn chỉnh.
84 trang |
Chia sẻ: baoanh98 | Lượt xem: 802 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng hệ thống trợ giúp sắp xếp lịch sử dụng phòng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
r đĩ.
MƠ HÌNH HOẠT ĐỘNG
Mơ hình hoạt động cho giáo viên, nhân viên học vụ khoa.
Mơ hình hoạt động cho nhân viên phịng đào tạo.
Mơ hình hoạt động của quản trị hệ thống:
MƠ HÌNH TUẦN TỰ
Mơ hình tuần tự cho use case cập nhật dữ liệu:
Mơ hình tuầu tự cho use case đăng nhập hệ thống:
Mơ hình tuần tự cho use case tra cứu lịch phịng học:
Mơ hình tuầu tự cho use case phân bố phịng:
Mơ hình tuần tự cho use case kiểm tra thơng tin lớp học:
Mơ hình tuần tự cho use case kiểm tra thơng tin mơn học:
Mơ hình tuần tự cho use case kiểm tra thơng tin phịng học:
Mơ hình tuần tự cho use case kiểm tra thơng tin thời gian học:
MƠ HÌNH LỚP
CHƯƠNG 4:
THIẾT KẾ DỮ LIỆU
CHI TIẾT CÁC BẢNG DỮ LIỆU
Loại phịng:
Tên
Kiểu
Ghi chú
MaLP
Chuỗi
Mã loại phịng
TenLP
Chuỗi
Tên loại phịng
DienGiai
Chuỗi
Diễn giải
Mỗi loại phịng cĩ một mã loại phịng riêng để phân biệt với các loại phịng khác, tên loại phịng dùng để mơ tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu loại phịng, phần diễn giải để chú thích thêm những thơng tin phụ về loại phịng đĩ.
Khu vực:
Tên
Kiểu
Ghi chú
MaKV
Chuỗi
Mã khu vực
TenKV
Chuỗi
Tên khu vực
Mỗi khu vực cĩ một mã khu vực riêng để phân biệt với các khu vực khác, tên khu vực dùng để mơ tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu khu vực.
Buổi học:
Tên
Kiểu
Ghi chú
MaBuoi
Chuỗi
Mã buổi học
TenBuoi
Chuỗi
Tên buổi học
Mỗi buổi học cĩ một mã buổi học riêng để phân biệt với các buổi học khác, tên buổi học dùng để mơ tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu buổi học.
Khoa/Phịng ban:
Tên
Kiểu
Ghi chú
MaK_PB
Chuỗi
Mã khoa/phịng ba
TenK_PB
Chuỗi
Tên khoa/Phịng ban
DienGiai
Chuỗi
Diễn giải
Mỗi khoa_phịng ban cĩ một mã khoa_phịng ban riêng để phân biệt với các khoa_phịng ban khác, tên khoa_phịng ban dùng để mơ tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu khoa_phịng ban, phần diễn giải để chú thích thêm những thơng tin phụ về khoa_phịng ban đĩ.
Lớp:
Tên
Kiểu
Ghi chú
MaLop
Chuỗi
Mã lớp
TenLop
Chuỗi
Tên lớp
SoLuongSV
Số
Số lượng sinh viên
MaK_PB
Chuỗi
Khố ngoại
Mỗi lớp học cĩ một mã lớp học riêng để phân biệt với các lớp học khác, tên lớp học ban dùng để mơ tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu lớp học, đồng thời cĩ lưu trữ số lượng sinh viên trong từng lớp và một khĩa ngoại với bảng dữ liệu khoa_phịng ban để nhận biết lớp đĩ trực thuộc khoa_phịng ban nào.
Mơn học:
Tên
Kiểu
Ghi chú
MaMH
Chuỗi
Mã mơn học
TenMH
Chuỗi
Tên mơn học
TenTat
Chuỗi
Tên viết tắt
Mỗi mơn học cĩ một mã mơn học riêng để phân biệt với các mơn học khác, tên mơn học dùng để mơ tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu mơn học và một tên viết tắt của mơn học đĩ(cĩ hoặc khơng cĩ tên viết tắt.
Phịng học:
Tên
Kiểu
Ghi chú
MaPhong
Chuỗi
Mã phịng
TenPhong
Chuỗi
Tên phịng
SucChua
Số
Sức chứa của phịng
IsProjector
Yes/No
Máy chiếu
DienGiai
Chuỗi
Trang thiết bị dạy học
TinhTrang
Yes/No
Tình trạng của phịng
Hinhanh
Hình
Hình ảnh minh hoạ
MaLP
Chuỗi
Khố ngoại
MaKV
Chuỗi
Khố ngoại
MaK_PB
Chuỗi
Khố ngoại
Mỗi phịng cĩ một mã phịng riêng để phân biệt với các phịng khác, tên phịng dùng để mơ tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu phịng học, sức chứa của từng phịng, phịng cĩ trang bị máy chiếu hay khơng, phần diễn giải để chú thích thêm những thơng tin phụ về phịng đĩ, tình trạng mơ tả trạng thái ban đầu của phịng (cố định là trạng thái cho các phịng cĩ thể dung để sắp xếp lịch sử dụng, khơng cố định là trạng thái cho các phịng khơng để sắp xếp lịch sử dụng, hình ảnh minh họa cho từng phịng, liên kết với bảng dữ liệu loại phịng để biết phịng thuộc loại phịng nào, liên kết với bảng dữ liệu khoa_phịng ban để biết phịng thuộc khoa_phịng ban nào, liên kết với bảng dữ liệu khu vực để biết phịng thuộc khu vực nào trong trường.
Tiết học:
Tên
Kiểu
Ghi chú
MaTiet
Chuỗi
Mã tiết học
TenTiet
Chuỗi
Tên tiết học
TGBatDau
Giờ
Thời gian bắt đầu
TGKetThuc
Giờ
Thời gian kết thúc
MaBuoi
Chuỗi
Khố ngoại
Mỗi tiết học cĩ một mã tiết học riêng để phân biệt với các tiết học khác, tên tiết học dùng để mơ tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu tiết học, mỗi tiết học sẽ cĩ một thời gian bắt đầu và một thời gian kết thúc tiết đĩ, liên kết với bảng dữ liệu buổi học để biết tiết học thuộc buổi học nào trong ngày.
Giáo viên:
Tên
Kiểu
Ghi chú
MaGV
Chuỗi
Mã giáo viên
TenGV
Chuỗi
Tên giáo viên
Mỗi giáo viên cĩ một mã giáo viên riêng để phân biệt với các giáo viên khác, tên giáo viên dùng để mơ tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu giáo viên.
Phiếu đăng ký:
Tên
Kiểu
Ghi chú
MaDK
Chuỗi
Mã đăng ký
NgayDK
Ngày
Ngày đăng ký
TuNgay
Ngày
Ngày bắt đầu
DenNgay
Ngày
Ngày kết thúc
MaGV
Chuỗi
Khố ngoại
MaLop
Chuỗi
Khĩa ngoại
MaMH
Chuỗi
Khố ngoại
MaPhong
Chuỗi
Khố ngoại
Khoa
Chuỗi
Khĩa ngoại
TinhTrang
Yes/No
Tình trạng
SucChua
Số
Sức chứa
Mỗi phiếu đăng ký cĩ một mã phiếu đăng ký riêng để phân biệt với các phiếu đăng ký khác, ngày đăng ký phiếu , phiếu đăng ký từ ngày nào đến ngày nào, tình trạng để biết phiếu đăng ký đĩ cịn hiệu lực hay khơng, sức chứa là sức chứa mà người dùng muốn đăng ký, liên kết với bảng dữ liệu giáo viên để biết phiếu đăng ký cho giáo viên nào, liên kết với bảng dữ liệu lớp để biết phiếu đăng ký cho lớp nào, liên kết với bảng dữ liệu mơn học để biết phiếu đăng ký cho mơn học nào, liên kết với bảng dữ liệu phịng học để biết phiếu đăng ký sử dụng phịng nào .
Quyền:
Tên
Kiểu
Ghi chú
MaQuyen
Chuỗi
Mã quyền
TenQuyen
Chuỗi
Tên quyền
DienGiai
Chuỗi
Diễn giải
Mỗi quyền hạn sử dụng chương trình cĩ một mã quyền riêng để phân biệt với các quyền khác, tên quyền hạn dùng để mơ tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu quyền, phần diễn giải để chú thích thêm những thơng tin phụ về quyền hạn đĩ.
Phân quyền:
Tên
Kiểu
Ghi chú
UName
Chuỗi
Tên người dùng
PWord
Chuỗi
Mật khẩu
MaQuyen
Chuỗi
Khĩa ngoại
Mỗi người dùng khi đăng ký sử dụng chương trình sẽ cĩ một tên dùng riêng để phân biệt với các tên dùng khác, mỗi người dùng cĩ thể thay đổi mật khẩu cho riêng mình, liên kết với bảng dữ liệu quyền để biết người sử dụng được cấp quyền hạn nào trong chương trình .
Tham số:
Tên
Kiểu
Ghi chú
Khoa
Chuỗi
Mã bộ dữ liệu
SoTiet
Số
Số tiết học
Bo
Số
Bộ dữ liệu
TietD
Số
Khĩa ngoại
TietK
Số
Khĩa ngoại
DienGiai
Chuỗi
Diễn giải
Bảng tham số dùng để lưu trữ về các bộ dữ liệu liên quan đến các tiết học.Mỗi tham số cĩ một mã tham số (khĩa) riêng để phân biệt với các tham số khác, số tiết của mỗi tham số (cĩ thể là 2,3,4,5 tiết), mỗi tham số cĩ số bộ đế biết bộ dữ liệu thứ mấy, mỗi tham số chỉ rõ từ tiết đầu thứ mấy đến tiết cuối thứ mấy thơng qua liên kết với bảng dữ liệu tiết học, diễn giải dùng để mơ tả cụ thể và làm rõ ý nghĩa cho bảng dữ liệu tham số.
ĐÁNH GIÁ DẠNG CHUẨN
Bảng phụ thuộc hàm:
STT
Mã số
Mơ tả
1
RB1
MaBuoiàTenBuoi
2
RB2
MaGVàTenGV
3
RB3
MaK_PBàTenK_PB,DienGiai
4
RB4
MaKVàTenKV
5
RB5
MaLPàTenLP,DienGiai
6
RB6
MaLopàTenLop,SoLuongSV,MaK_PB
7
RB7
MaMHàTenMH,TenTat
8
RB8
UNamềPWord,MaQuyen
9
RB9
MaQuyenàTenQuyen,DienGiai
10
RB10
MaTietàTenTiet,TGBatDau,TGKetThuc,MaBuoi
11
RB11
KhoầSoTiet,Bo,TietD,TietK,DienGiai
12
RB12
MaPhongàTenPhong,SucChua,IsProjector,DienGiai,
TinhTrang,HinhAnh,MaLP,MaKV,MaK_PB
13
RB13
MaDKàNgayDK,TuNgay,DenNgay,MaGV,MaLop,
TinhTrang,MaMH,MaPhong,Khoa,SucChua
Dạng chuẩn:
Trên đây là liệt kê đầy đủ tất cả các thuộc tính của từng quan hệ trong lược đồ quan hệ và các phụ thuộc hàm ứng với lược đồ.
Không tồn tại các thuộc tính lặp hoặc thuộc tính kép, mỗi thuộc tính đều là nguyên tố
Þ Lược đồ quan hệ trên đạt dạng chuẩn 1.
Lược đồ quan hệ đã đạt dạng chuẩn 1 và các thuộc tính không khóa phụ thuộc đầy đủ vào khóa
Þ Lược đồ quan hệ trên đạt dạng chuẩn 2.
Lược đồ quan hệ đã đạt dạng chuẩn 2 và các thuộc tính không khóa của quan hệ không phụ thuộc bắc cầu vào bất kỳ khóa nào của quan hệ
Lược đồ quan hệ trên đạt dạng chuẩn 3.
Trong mỗi phụ thuộc hàm của từng quan hệ, mỗi khĩa chính trong từng quan hệ là siêu khĩa của quan hệ đĩ.
Þ Lược đồ quan hệ trên đạt dạng chuẩn BC (Boyce_Cold).
RÀNG BUỘC TỒN VẸN
Ràng buộc trên 1 LĐQH :
PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa)
Điều kiện :
"qi Ỵ T(PhieuDangKy)
qi.TuNgay >= qi.NgayDK
qi.DenNgay >= qi.TuNgay
cuối "
Bối cảnh : PhieuDangKy
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
PhieuDangKy
+
-
+/ NgayDK, TuNgay, DenNgay, MaGV, MaLop, MaPhong, MaMH
Ràng buộc trên nhiều LĐQH :
Đối với bảng TietHoc , BuoiHoc :
TietHoc( MaTiet, TenTiet, TGBatDau, TGKetThuc, MaBuoi).
BuoiHoc( MaBuoi, TenBuoi)
Điều kiện :
"qi Ỵ T(TietHoc)
qi.MaBuoi Í BuoiHoc [ MaBuoi ]
cuối "
Bối cảnh : TietHoc , BuoiHoc
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
TietHoc
-
+
+/ MaBuoi
BuoiHoc
+
-
+/ MaBuoi
Đối với bảng Khoa_PhongBan , Lop :
Khoa_PhongBan( MaK_PB, TenK_PB, DienGiai).
Lop( MaLop, TenLop, SoLuongSV, MaK_PB)
Điều kiện :
"qi Ỵ T(Lop)
qi.MaK_PB Í Khoa_PhongBan [ MaK_PB ]
cuối "
Bối cảnh : Khoa_PhongBan , Lop
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
Lop
-
+
+/ MaK_PB
Khoa_PhongBan
+
-
+/ MaK_PB
Đối với bảng Khoa_PhongBan , PhongHoc :
Khoa_PhongBan( MaK_PB, TenK_PB, DienGiai).
PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai,
TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB)
Điều kiện :
"qi Ỵ T(PhongHoc)
qi.MaK_PB Í Khoa_PhongBan [ MaK_PB ]
cuối "
Bối cảnh : Khoa_PhongBan , PhongHoc
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
PhongHoc
-
+
+/ MaK_PB
Khoa_PhongBan
+
-
+/ MaK_PB
Đối với bảng KhuVuc , PhongHoc :
KhuVuc( MaKV, TenKV).
PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai,
TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB)
Điều kiện :
"qi Ỵ T(PhongHoc)
qi.MaKV Í KhuVuc [ MaKV ]
cuối "
Bối cảnh : KhuVuc , PhongHoc
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
PhongHoc
-
+
+/ MaKV
KhuVuc
+
-
+/ MaKV
Đối với bảng LoaiPhong , PhongHoc :
LoaiPhong( MaLP, TenLP, DienGiai).
PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai,
TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB)
Điều kiện :
"qi Ỵ T(PhongHoc)
qi.MaLP Í LoaiPhong [ MaLP ]
cuối "
Bối cảnh : LoaiPhong , PhongHoc
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
PhongHoc
-
+
+/ MaLP
LoaiPhong
+
-
+/ MaLP
Đối với bảng TietHoc , ThamSo :
TietHoc( MaTiet, TenTiet, TGBatDau, TGKetThuc, MaBuoi).
ThamSo( Khoa, SoTiet, Bo, TietD, TietK, DienGiai)
Điều kiện :
"qi Ỵ T(ThamSo)
qi.TietD Í TietHoc [ MaTiet ]
qi.TietK Í TietHoc [ MaTiet ]
cuối "
Bối cảnh : TietHoc , ThamSo
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
ThamSo
-
+
+/ TietD, TietK
TietHoc
+
-
+/ MaTiet
Đối với bảng Quyen , PhanQuyen :
Quyen( MaQuyen, TenQuyen, DienGiai).
PhanQuyen( UName, PWord, MaQuyen)
Điều kiện :
"qi Ỵ T(PhanQuyen)
qi.MaQuyen Í Quyen [ MaQuyen ]
cuối "
Bối cảnh : Quyen , PhanQuyen
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
PhanQuyen
-
+
+/ MaQuyen
Quyen
+
-
+/ MaQuyen
Đối với bảng PhieuDangKy , GiaoVien :
GiaoVien( MaGV, TenGV).
PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa)
Điều kiện :
"qi Ỵ T(PhieuDangKy)
qi.MaGV Í GiaoVien [ MaGV ]
cuối "
Bối cảnh : GiaoVien , PhieuDangKy
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
PhieuDangKy
-
+
+/ MaGV
GiaoVien
+
-
+/ MaGV
Đối với bảng PhieuDangKy , MonHoc :
MonHoc( MaMH, TenMH, TenTat).
PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa)
Điều kiện :
"qi Ỵ T(PhieuDangKy)
qi.MaMH Í MonHoc [ MaMH ]
cuối "
Bối cảnh : MonHoc , PhieuDangKy
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
PhieuDangKy
-
+
+/ MaMH
MonHoc
+
-
+/ MaMH
Đối với bảng PhieuDangKy , Lop :
Lop( MaLop, TenLop, SoLuongSV, MaK_PB).
PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa)
Điều kiện :
"qi Ỵ T(PhieuDangKy)
qi.MaLop Í Lop [ MaLop ]
cuối "
Bối cảnh : Lop , PhieuDangKy
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
PhieuDangKy
-
+
+/ MaLop
Lop
+
-
+/ MaLop
Đối với bảng PhieuDangKy , PhongHoc :
PhongHoc( MaPhong, TenPhong, SucChua, IsProjector, DienGiai,
TinhTrang, HinhAnh, MaLP, MaKV, MaK_PB)
PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa)
Điều kiện :
"qi Ỵ T(PhieuDangKy)
qi.MaPhong Í PhongHoc [ MaPhong ]
cuối "
Bối cảnh : PhongHoc , PhieuDangKy
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
PhieuDangKy
-
+
+/ MaPhong
PhongHoc
+
-
+/ MaPhong
Đối với bảng PhieuDangKy , ThamSo :
ThamSo( Khoa, SoTiet, Bo, TietD, TietK, DienGiai)
PhieuDangKy( MaDK, NgayDK, TuNgay, DenNgay, TinhTrang, SucChua, MaGV, MaMH, MaPhong, MaLop, Khoa)
Điều kiện :
"qi Ỵ T(PhieuDangKy)
qi.Khoa Í ThamSo [ Khoa ]
cuối "
Bối cảnh : ThamSo , PhieuDangKy
Bảng tầm ảnh hưởng :
Thêm
Xĩa
Sửa
PhieuDangKy
-
+
+/ Khoa
ThamSo
+
-
+/ Khoa
CHƯƠNG 5:
THIẾT KẾ GIAO DIỆN
Màn hình chính của chương trình:
Khi khởi động chương trình, màn hình trên sẽ mở ra với giao diện đơn giản, dễ nhìn và trên thanh cơng cụ chỉ xuất hiện 2 thực đơn chính đĩ là thực đơn Hệ thống để người dùng đăng nhập vào hệ thống chương trình và thực đơn Trợ giúp sẽ chỉ dẫn người dùng sử dụng chương trình.
Màn hình đăng nhập:
Màn hình trên để người dùng đăng nhập tên, mật khẩu và chương trình sẽ kiểm tra, nếu đúng sẽ đăng nhập thành cơng, ngược lại khơng sử dụng được chương trình.
Màn hình chính để lưu trữ thơng tin phịng học:
Màn hình trên để nhân viên phịng đào tạo dùng để lưu trữ thơng tin về phịng học.
Màn hình thêm ,sửa dữ liệu về phịng học:
Màn hình dùng cho nhân viên phịng đào tạo thêm hoặc sửa thơng tin chi tiết cho từng phịng học
Màn hình tạo tài khoản mới:
Màn hình dùng cho nhân viên quản trị mạng khi muốn thêm người dùng mới cho chương trình.
Màn hình phiếu đăng ký:
Màn hình dùng cho nhân viên phịng đào tạo khi muốn đăng ký phân bố sử dụng phịng .
Màn hình đăng ký phịng:
Tiếp theo sau màn hình phiếu đăng ký thì nhân viên phịng đào tạo sẽ tiếp tục chọn phịng và số tiết hợp lý để phân bố sử dụng phịng đĩ.
Màn hình tra cứu phịng theo các khoa_phịng ban:
Màn hình dùng cho tất cả người dùng để tra cứu thơng tin phịng học.
Màn hình tra cứu phịng theo các khu vực:
Màn hình dùng cho tất cả người dùng để tra cứu thơng tin phịng học.
Màn hình tra cứu phịng theo từng phịng:
Màn hình lưu dự phịng dữ liệu:
Màn hình dùng để sao lưu dự phịng cơ sở dữ liệu .
Màn hình lưu tập tin:
Sau khi bấm vao nút () thì màn hình trên sẽ mở để người dùng chỉ rõ đường dẫn cho tập tin lưu dự phịng đĩ.
Màn hình phục hồi dữ liệu:
Màn hình dùng để phục hồi cơ sở dữ liệu từ tập tin lưu dự phịng .
Màn hình mở tập tin:
Sau khi bấm vao nút () thì màn hình trên sẽ mở để người dùng chỉ rõ đường dẫn của tập tin lưu dự phịng để mở ra.
Màn hình mở tập tin:
Màn hình dùng để xuất báo cáo danh sách phiếu đăng ký trong khoản thời gian mà người dùng chọn.
Màn hình báo cáo danh sách phiếu đăng ký:
Màn hình kết quả danh sách phiếu đăng ký của màn hình trên.
Màn hình báo cáo lịch sử dụng phịng:
Màn hình xuất báo cáo tồn bộ lịch sử dụng phịng .
PHẦN B:
TÌM HIỂU CƠNG NGHỆ
CHƯƠNG 6:
TÌM HIỂU MICROSOFT C#.NET
1. GIỚI THIỆU NHANH VỀ .NET
Trong cơng nghiệp máy tính, cĩ thể nĩi rằng Microsoft đã mang lại những bước đi quan trọng nhất .Chính hành động can đảm của Bill Gates và Steve Ballmer khi họ nĩi với ơng lớn IBM rằng họ cĩ một hệ điều hành cần bán đã đem lại thành cơng vang dội cho DOS. Họ cũng làm thế với hệ điều hành Windows phổ biến hầu như khắp tồn cầu khi “cầm nhầm” cái phong cách “nhìn và cảm nhận”(Look and Feel) của Apple Macintosh.
Và bây giờ, cĩ thể sẽ là một chuyển biến lớn khi Microsoft phát minh lạI một cách tổng thể phương thức mà chúng ta sẽ làm việc ,sẽ lập trình cho chiếc máy tính thân yêu. Nếu bạn đang là một nhà lập trình C++,hay bạn đang sống nhờ vào hệ điều hành Windows hay bộ thư viện MFC, khơng cịn nghi ngờ chắc chắn bạn cũng sẽ bị đắm chìm trong thế giới .Net.
Trên thực tế ngày nay, Internet đã trở thành phương tiện cho chúng ta làm việc ,thăm bạn bè ,sử dụng tài khoản ngân hàng ,chơi, tán ngẫu, rất thực tế và hiệu quả nhờ vào các phần mềm được viết để thực hiện các kết nốI IP( Internet Protocol) cho WWW (World Wide Web) .Các phần mềm được yêu cầu thực hiện hàng cuộc triệu cuộc giao dịch dữ liệu giữa các máy tính với nhau,và số lượng các cuộc giao dịch này ngày càng tăng theo sự tăng nhanh của khả năng và sự phức tạp của web. Việc sử dụng thư điện tử ,lướt trên các trang web ,trao đổi với các cơ sở dữ liệu và sử dụng các ứng dụng phân tán ngày càng trở nên phức tạp hơn ,vì thế trình độ và kỹ thuật lập trình để tạo và bảo dưỡng các phần mềm cũng ngày càng được yêu cầu cao hơn ,tinh vi hơn. Các nhà lập trình chúng ta hằng ngày phải đối diện với COM,COM+,DCOM,SP,SOAP,XML,XSLcũng như phảI chiến đấu với hàng tá sách hướng dẫn ,các bộ cơng cụ SDK (Software Developer Kit) phức tạp.
Microsoft,cũnh như đa số trong chúng ta, đã tạo nên ngày càng nhiều các cơng cụ chuyên dùng.Hệ điều hành hay các ứng dụng Windows đầy đủ tính năng hơn ,theo yêu cầu kỹ thuật, cơng nghệ, và do đĩ đã thêm vào khơng ít các SDK hay các tiêu chuẩn ở chỗ này ,chỗ nọ.Kết quả là hệ điều hành ,thư viện ,cơng cụtrở nên khơng cịn khả chuyển ,quá nặng nề với biết bao các mỏ rộng (extensions),add-in(phần phụ thêm) .Thế là bộ khung .NET ra đời. .NET thực sự thay đổi điều kể trên .Đĩ khơng chỉ là một bước tiến ,một nâng cấp hay một sự hợp nhất các cơng việc.Mà đĩ chính là một điều vĩ đại ,một sự dũng cảm, một cuộc bức phá ngoạn mục.Nĩ định nghĩa lại tất cả mọi điều bạn đã biết về lập trình cho máy PC về tất cả mọi hình thù lẫn kích thước ,kể cả ngơn ngữ lập trình trong đĩ.
2. QUẢN LÝ BỘ NHỚ .NET
Một đặc điểm đáng bàn cải của .NET là trình quản lý bộ nhớ thưc thi của nĩ hoạt động như một hệ thống thu gom rác (garbage-collected system viết tắt là GC system).Cĩ ngườI thì thích thú, cĩ người lại lo sợ hay chết lặng đi vì nĩ.Cĩ thể các bạn đã là các nhà lập trình từ lâu lắm,nếu thế ,chắc bạn khĩ thể mà quên được những ác mộng trong những ngày của Lisp,lúc đợi chờ người dọn rác đến,mà ơng ta chỉ đến vào thứ 3:cả núi giấy loại ở chung quanh bạn.Cịn bạn là lập trình viên C++ thì hằn bạn sẽ thấy trình quản lý bộ nhớ nhảy loạn xạ và cĩ khi dẫn đến treo máy khi bạn quên đi lời nguyền về sự quản lý việc định vị con trỏ và loại bỏ các vùng nhớ bạn đã cấp.
Trình quản lý bộ nhớ của .NET đã tiếp cận việc định vị theo một cách khác.Một khối bộ nhớ được tự động ghi nhớ thơng tin khi nĩ được yêu cầu cấp phát cho đối tượng và cĩ những tham chiếu đến nĩ.Và chỉ khi tất cả các tham chiếu đến khối nhớ được xố thì đối tượng hay vùng nhớ mới bị huỷ thật sự.Cách giảI quyết như thế đã thật sự giảm nhẹ gánh nặng quản lý bộ nhớ cho lập trình viên.Bạn khơng cịn cần phải nhớ là đã xố vùng nhớ đã cấp hay chưa :đơn giản là từ nay bạn chỉ cần biết là bạn khơng cịn dùng nĩ nữa.Một lớp sẽ khơng cịn phải chú ý theo dõi lượng tham chiếu đến nĩ nữa , nĩ đã biết được khi nào nào nĩ sẽ tự mình huỷ bỏ.
Để giảm sự phân mảnh của vùng nhớ động (heap),trình GC cũng đã hướng mục tiêu vào việc củng cố các vùng bộ nhớ đang sử dụng hay các vùng nhớ chưa dùng đến .Điều này ngăn ngừa bộ nhớ bị mất vơ lý và nâng cao hiệu quả của một bộ máy chủ.Heap được quản lý cũng chắc chắn rằng tất cả các truy xuất bộ nhớ khơng chuẩn ,như tràn bộ nhớ hay treo máy, sẽ khơng thể tác động đến dữ liệu các chương trình khác đang chạy trên cùng máy này.Và như thế nĩ làm cho hệ thống trở nên tin cậy và bảo mật.
Bộ GC thường bị coi là chậm và khơng hiệu quả nhưng Microsoft quả quỵết rằng GC của .NET sẹ khác ,nĩ thật sự hoạt động theo thời gian thực .GC của NET sẽ hoạt động tức thời và khơng tác động đáng kể lên bộ vi xử lý (CPU).Tổng quát trên một máy Windows 2000,GC chỉ cần khoảng 1/1000 tổng thời gia xử lý của CPU.
Cuối cùng, cĩ cả một hệ thống dự phịng cho cái gọi là vùng nhớ hay mã lệnh khơng được quản lý(hay khơng an tồn) mà các lập trình viên dùng con trỏ để định vị vùng nhớ thường gặp phảI .Như thế bạn cĩ thể dùng các cấu trúc cổ xưa của C++ ngay trong bộ khung của .NET.
3. C# -MỘT NGƠN NGỮ LẬP TRÌNH MỚI.
Khởi đầu với tên gọi là Cool vào khoảng năm 2000, C# đã tạo ra vơ số các cuộc tranh luận lớn trên nền .NET .Từ các huyền thoại, các đồn đại và các ước đốn,C# ngày nay đã thật sự trở thành một ngơn ngữ đơn giản ,hồn tồn hướng đối tượng và rất tuyệt vời .Các đặc trưng này của C# cũng gần giống với tuyên bố của Java ?Dù cĩ hay khơng thì rõ ràng các nhà thiết kế của C# đã rất muốn tạo ra một ngơn ngữ cĩ thể làm vừa lịng giớI lập trình C++ .Dĩ nhiên ta cũng khơng thể loại trừ một vài thiếu xĩt nhỏ nào đĩ mà đối với một số người thì chúng trở nên bất cập và khơng tiện lợi.
C# khơng hổ trợ đa thừa kế (multiple inhertance):Một lớp (class) của C# cĩ thể được khai báo là nĩ cĩ thể đựng một hay nhiều các interface(giao diện hay giao tiếp),nhưng tính đa kế thừa của các lớp (classes) cơ bản lại khơng được chấp nhận.Đối với một số lập trình viên,đặc biệt là những ai yêu thích ALT,thì tính chất này được xem là một bất cập.
Hệ thống C# cũng khơng cho phép sự dụng bất kì các kiểu mẫu template nào cả.Dù vậy chúng ta sẽ bàn thêm về vấn đề này ở các chương sau. Đa số các cuộc thảo luận về C# hiện nay đều từ các phản ứng của những ai gạt bỏ C# như là một cố gắng hiển nhiên nhằm vào vịêc xố bỏ Java.Tuy nhiên thật ra C# va Java cĩ thể được xem như những con ngựa trên những đường đua khác nhau,chúng cĩ thể cùng tồn tại và chung sống hồ bình .C# và tồn bộ hệ thống .NET sẽ là cơng cụ tốt hơn cho việc kết hợp các ứng dụng khách và các ứng dụng phía máy chủ ,cịn Java cĩ những khuyết điểm rõ ràng cho phần máy khách.
Chúng ta cĩ thể nĩi thêm về C# là một ngơn ngữ hồn tồn hướng đối tượng (totally object-oriented0.C++ bắt nguồn từ C: trước hết là một sự phức hợp cho C,sau đĩ là một cố gắng thực sự của định hướng đối tượng .Để tốt hơn, C++ phải giữ lại một số đặc điểm của ngơn ngữ khơng-hướng- đối-tượng.Đĩ là những hàm độc lập và các biến tồn cục .C# thì khác ,nĩ tuyệt giao hồn tồn với các đặc tính như thế .Mọi kiểu biến,kể cả kiểu giá trị đơn giản ,đều được xem xét như là một đối tượng .Mọi hàm đều phải thuộc một lớp(class) .Khơng cịn được dùng các biến tồn cục.Tuy thế xin đừng lo lắng vì các lớp chứa các hàm tĩnh hay biến tĩnh cĩ thể được xem và hành động như các hàm độc lập và các biến tồn cục .
4. TƯƠNG TÁC VỚI THẾ GIỚI COM
Tuy .NET là mơ hình mới thay thế cho thế giới COM đang cĩ trong kiến trúc của Windows nhưng việc thay thế khơng diễn ra đến nỗi bạn mất hết khả năng sử dụng đốI tượng COM. Nền .NET cho phép bạn sử dụng và gọi các đối tượng Com ngay từ đối tượng .NET và tạo ra các lớp vỏ bọc cho phép đối tượng .NET cĩ thể biến thành đối tượng COM.
5. WINDOWS FORMS,WEB CONTROLS VÀ GDI+
Nếu bạn đã từng viết chương trình Windows trước đây bạn hẳn đã quen với lớp thư viện đồ hoạ cực kỳ hấp dẫn.Trong .NET bạn cĩ rất nhiều lựa chọn để lập trình giao diện đồ hoạ ,sử dụng lớp Windows Forms, thư viện GDI+ hơặc các điều khiển Web Control để tiếp cận với giao diện dành cho ứng dụng Web.Bạn khơng cịn phảI mệt nhọc vớI các lớp MFC ,thay vào đĩ là những lớp thư viện .NET đơn giản dễ hiểu và hiệu quả hơn rất nhiều.Hàng loạt cơng cụ lập trình hiệu quả được thêm vào mơi trường Visual Studio .NET mà bạn khơng hề tìm thấy trong những mơi trường lập trình trước đây.
Mọi thứ đã sẵn sằng, cĩ lẽ đã đến lúc chúng ta đi sâu và tìm hiểu ngơn ngữ C# và đĩ cũng là mục đích của giáo trình này .
6. MICROSOFT .NET PLATFORM
Ý tưởng đằng sau Microsoft .NET là thay đổi cách nhìn trong lĩnh vực điện tốn ,từ một thế giới mà trong đĩ các thiết bị cá nhân và các website được nối đơn giản với nhau thơng qua Internet sang một thế giới mà trong đĩ các thiết bị ,các dịch vụ và các máy tính làm việc với nhau để cung cấp những giải pháp phong phú cho người tiêu dùng. Một giải pháp (solution) của Microsoft .NET bao gồm 4 thành phần cốt lõi sau:
.NET Building Block Services: hoặc truy cập bằng cách lập trình đến các dịch vụ nào đĩ ,chẳng hạn như file storage (lưu trữ tập tin) ,calendar(lịch) và Passport .Net (một dịch vụ xác nhận ID)
Phần mềm thiết bị .NET ,chạy trên các thiết bị Internet mới.
The .NET user experience ,bao gồm các đặc điểm như giao diện tự nhịên,các thẻ thơng minh, kỹ thuật tự động liên kết tới các thơng tin liên quan đến các từ hoặc các nhĩm từ trong tài liệu được tạo bởi người dùng .
Cơ sở hạ tầng .NET ,bao gồm .NET Framework ,Microsoft Visual Studio.NET, .NET Enterprise Servers ,và Microsoft Windows .NET.
Cơ sở hạ tầng .NET là một phần của .NET mà hầu hết các lập trình viên đều phải nhắc đến khi đề cập đến .NET .Ở đây chúng ta sẽ qui ước là mỗi khi nĩi đến .NET (mà khơng cĩ từ đi trước )là đang nĩi đến cơ sở hạ tầng .NET .Cơ sở hạ tầng .NET đề cập đến tất cả các kỹ thuật tạo nên một mơi trường làm việc mới trong viêc tạo và thi hành các ứng dụng mạnh mẽ ,cĩ thể phát triển và được phận phối. Thành phần .NET cho phép lập trình viên phát triển những ứng ụng này là .NET Framework.
.NET Framework bao gồm Common Language Runtime (CLR) và các thư viện lớp .NET Framework ,đơi khi cịn được gọi là thư viện lớp cơ sở,đơi khi cịn được gọi là thư viện lớp cơ sở(Base Class Library (BCL)).Bạn cĩ thể hiểu CLR như một máy ảo (Virtual Machine) mà các ứng dụng .NET hoạt động trong đĩ .Tất cả các ngơn ngữ .NET đều cĩ các thư viện lớp .NET Framework .Nếu bạn đã từng lập trình vớI MFC (Microsoft Foundation Classes) hoặc OWL (Ojbect Windows Library) của Borland nghĩa là bạn đã quen với thư viện lớp.Các thư viện lớp .NET Framework bao gồm hổ trở về mọi thứ ,từ nhập xuất tập tin,cơ sở dữ liệu đến XML và SOAP.Thực ra các thư viện lớp .NET Framework quá lớm đến nỗi một cuốn sách cũng chỉ cĩ thể nĩi sơ lược về tất cả các lớp mà nĩ hổ trợ.
Bạn cần lưu ý là từ “máy ảo” ở trên khơng cĩ ý nĩi đến kiến trúc máy ảo Java Virtual Machine. Nhiều thập kỷ trước ,trước khi Java ra đờI ,IBM lần đầu tiên đưa ra khái niệm “virtual machine”.Một máy ảo là một sự trừu tượng hố hệ điều hành bậc cao ,trong đĩ hệ điều hành khác cĩ thể hoạt động trong một mơi trường hồn tồn được đĩng gĩi .Khi nĩi CLR là một loại máy ảo nghĩa là code thực thi trong CLR sẽ chạy trong một mơi trường được đĩng gĩi và được quản lý ,tách biệt với các tiến trình khác trên máy.
7. NET FRAMEWORK
Phần này sẽ so sánh .NET và mơi trường phát triển ứng dụng phân phối trước đây ,sau đĩ sẽ liệt kê những khả năng mà .NET cung cấp cho các lập trình viên để tạo ra các ứng dụng phân phối đầy sức mạnh một cách nhanh chĩng.
WINDOWS DNA và .NET
Trong phần trước, chúng ta đã mơ tả .NET là một mơi trường để tạo các ứng dụng mạnh mẽ ,dễ phát triển và phân tán .Lý do là .NET là kết quả của một sự nổ lực trước đĩ để thoả mãn những mục tiêu lớn lao .Đĩ là nền được gọi là Windows DNA .Tuy nhiên .NET cĩ nhiều hơn những gì mà Windows DNA cung cấp.Windows DNA là một nền các giải pháp mà chú trọng đến việc giải quyết các vấn đề thương mại thơng qua việc dùng các sản phẩm phục vụ Microsoft.Ngồi những đặc điểm về kỹ thuật ,Windows DNA khơng cĩ bất kỳ bộ phận xác thực nào. Đây là điểm khác biệt chính giữa Windows DNA và .NET .Microsoft .NET khơng chỉ là một tập các đặc điểm kỹ thuật mà cịn bao gồm nhiều sản phẩm xác thực ,chẳng hạn như trình biên dịch,thư viện lớp, và thậm chí cả những ứng dụng người dùng cuối.
8. Common Language Runtime-CLR
CLR là một phần cốt lỗi của .NET .Như tên gọi của nĩ ,CLR là một mơi trường thực thi trong đĩ các ứng dụng được viết bởi các ngơn ngữ khác nhau cĩ thể hoạt động cùng nhau,đơi khi cịn được biết đến như là khả năng giao tiếp xuỵên ngơn ngữ (cross-language interoperability0).Vậy làm thế nào mà CLR cung cấp được mơi trường như thế cho khả năng giao tiếp xuyên ngơn ngữ ?Đặc tả ngơn ngữ chung (Common Language Specification) là một tập các qui tắc mà một trình biên dịch ngơn ngữ phải tuân theo để tạo một ứng dụng .NET thi hành trong CLR. Khi muốn viết một trình biên dịch tương thích vớI .NET cần phải tuân theo những qui tắc này và ứng dụng được phát sinh từ trình biên dịch đĩ sẽ thi hành cùng với các ứng dụng .Net khác và cĩ cùng giao tiếp giữa các thành phần.
Một khái niệm quan trọng liên quan đến CLR là managed code.Managed code là code thi hành dưới sự bảo trợ của CLR và vì thế, được quản lý bởi CLR .Bạn cĩ thể hiểu như sau :Trong các mơi trường phát triển của Microsoft Windows hiện nay,chúng ta cĩ nhiều tiến trình khác nhau cùng thi hành,qui luật duy nhất mà các ứng dụng địi hỏi chúng phải hoạt động tốt trong mơi trường Windows.Những ứng dụng này được tạo bằng cách dùng một trong nhiều trình biên dịch hồn tồn khác nhau.Nĩi cách khác ,các ứng dụng phải tuân theo một tập duy nhất các qui luật chung để thi hành trong Windows.
Mơi trường Windows cĩ một vài qui luật chung cho biết cách ứng dụng phải hoạt động về các mặt như giao tiếp với các ứng dụng khác ,cấp phát bộ nhớ,thậm chí nhờ hệ điều hành Windows để làm việc thay cho nĩ. Tuy nhiên, trong một mơi trường code được quản lý, một số quy luật được đặt ra để đảm bảo rằng tất cả các ứng dụng hoạt động theo một cách giống nhau,bất chấp chúng được viết bằng ngơn ngữ gì.Cách hoạt động thống nhất của các ứng dụng .NET là bản chất của .NET ,thật may mắn là các quy luật này ảnh hưởng đến những người viết trình biên dịch trước tiên ,cịn bạn thì khơng phải lo gì đến các quy luật này cả.
9. Các thư viện lớp .NET Framework
Các thư viện lớp .NET Framework cực kì quan trọng trong việc cung cấp khả năng giao tiếp giữa các ngơn ngữ vì chúng cho phép lập trình viên dùng một giao diện lập trình đơn đến các chức năng được đưa ra bởi CLR. Nếu bạn đã từng dùng nhiều hơn một ngơn ngữ lập trình được phát triển trên Windows ,bạn sẽ thích đặc điểm này của .NET .Thực ra ,các thư viện lớp .NET Framewwork đang tiến đến một cuộc cách mạng trong việc phát triển các trình biên dịch.Trước .NET ,hầu hết các nhà viết trình biên dịch đã phát triển những ngơn ngữ cĩ khả năng làm tất cả các cơng việc của nĩ.Ngay cả một ngơn ngữ như C++ ,được thiết kế như một nhĩm các chức năng được dùng để kết hợp với một thư viện các lớp ,cũng cĩ tối thiểu một vài chức năng riêng của nĩ.Tuy nhiên, trong thế giới của .NET,các ngơn ngữ trở nên ít code hơn với các thư viện lớp .NET Framework.
10. Ngơn ngữ trung gian Microsoft và JITter
Để làm cho những người viết ngơn ngữ dễ dàng chuyển ngơn ngữ của họ sang .NET, Microsoft phát triển một ngơn ngữ thuộc họ ngơn ngữ bậc thấp gọi là ngơn ngữ trung gian Microsoft (MSIL).Để biên dịch các ứng dụng sang .NET ,các trình biên dịch lấy mã nguồn như đầu vào và tạo ra MSIL như là đầu ra .MSIL tự nĩ đã là một ngơn ngữ hồn chỉnh mà bạn cĩ thể viết các ứng dụng trên nĩ .Tuy nhiên ,như với một ngơn ngữ bậc thấp ,chắc chắn bạn sẽ khơng bao giờ viết các ứng dụng trên nĩ ngoại trừ một vài trường hợp hiếm hoi.Vì MSIL là một ngơn ngữ ,mỗi nhĩm viết trình biên dịch sẽ quyết định nĩ hổ trợ MSIL bao nhiêu. Tuy nhiên, nếu bạn là một nhà viết trình biên dịch và bạn muốn tạo một ngơn ngữ cĩ thể giao tiếp với các ngơn ngữ khác,bạn nên tự hạn chế trong phạm vi các đặc điểm được xác định trong CLS.
Khi biên dịch một ứng dụng C# hoặc bất kỳ một ứng dụng nào được viết bằng một ngơn ngữ tương thích với CLS,ứng dụng đĩ sẽ được biêb dịch sang MSIL ,sau đĩ sẽ được biên dịch sang các chỉ thị CPU khi ứng dụng được thi hành lần đầu bởi CLR( thực ra ,chỉ cĩ các hàm được gọi mới được biên dịch lần đầu khi chúng dược gọi).Xem những gì thực sự đang diễn ra bên dưới:
Viết mã nguồn trong C#.
Sau đĩ biên dịch nĩ thành trình biên dịch C# (csc.exe) sang một tập tin EXE.
Trình biên dịch C# tạo ra mã MSIL và một manifest (tương tự như một bản kê khai) vào phần chỉ đọc của tập tin .EXE cĩ header PE ( Wìn-portable executable) chuẩn.
Khi ứng dụng được thi hành ,hệ điều hành nạp PE và các thư viện liên kết động phụ thuộc khác,chẳng hạn như mscoree.dll (chứa hàm CorExeMain)
Chương trình nạp hệ điều hành sẽ nhảy đến điểm vào bên trong PE,đây là cách mà một PE bất kỳ được thi hành trong Windows.
Tuy nhiên, vì hệ điều hành khơng thể thi hành mã MSIL ,nên điểm vào đĩ chỉ là điểm để nhảy đến hàm _CorExeMain trong mscoree.dll.
6. Hàm _CorExeMain bắt đầu thi hành mã MSIL được đặt trong PE.
7. Vì MSIL khơng thể được thi hành một cách trực tiếp ,CLR dùng trình biên dịch just-in-time để biên dịch MSIL sang chỉ thị CPU, biên dịch just-in-time chỉ xảy ra khi các phương thức trong chương trình được gọi.Code đã được biên dịch và cĩ thể thi hành được lưu giữ trên máy và chỉ được biên dịch lại khi cĩ sự thay đổi mã nguồn.
11. Hệ thống kiểu thống nhất
Một trong những đặc điểm chính của bất kỳ một mơi trường phát triển nào là hệ thống kiểu của nĩ.Sau hết, một mơi trường phát triển với số lượng kiểu bị giới hạn ,hoặc giới hạn khả năng của lập trình viên trong việc mở rộng các kiểu được hệ thống hổ trợ,sẽ khơng phải là một mơi trừơng tồn tại lâu dài ..NET runtime khơng chỉ cung cấp cho lập trình viên một hệ thống kiểu thống nhất ,được dùng cho tất cả ngơn ngữ ,nĩ cịn cho phép những nhà viết ngơn ngữ mở rộng hệ thống kiểu bằng cách thêm các kiểu mới hoạt động như các kiểu cĩ sẵn trong hệ thống. Điều này cĩ nghĩa là các lập trình viên cĩ thể dùng tất cả các kiểu theo cách giống nhau ,bất chấp việc chúng là các kiểu được định nghĩa trước của .NET hay các kiểu do người dùng tạo ra.
12. Sự an tồn
Khía cạnh quan trọng nhất của bất kỳ một mơi trường phát triển các ứng dụng phân phối nào là cách nĩ quản lý sự an tồn.Thực tế,sự an tồn bắt đầu ngay khi một lớp được nạp bởI CLR vì trình nạp lớp là một phần của sự an tồn trong .NET .Thí dụ, khi một lớp nạp vào .NET runtime ,các nhân tố liên quan đến sự an tồn chẳng hạn như các quy tắc truy cập vá các yêu cầu bảo đảm tính nhất quán sẽ được kiểm tra.Ngồi ra , các kiểm tra cho sự an tồn sẽ đảm bảo rằng một đoạn mã được phép truy cập đến các tài nguyên nào đĩ.Đoạn mã an tồn bảo đảm vai trị xác nhận và kiểm tra thơng tin. Các kiểm tra an tồn này cịn mở rộng đến các tiến trình để bảo đảm rằng các dữ liệu nhạy cảm khơng bị làm hại trong các mơi trường phân tán .
CHƯƠNG 7:
TÌM HIỂU SQL SERVER 2000
1. GIỚI THIỆU
SQL Server 7.0 ra đời là một bước nhảy vọt cơng nghệ cơ sở dữ liệu so với cơ sở dữ liệu SQL Server 6.5, SQL Server 2000 ra đời khơng ngừng cung cấp cho người dùng những cơng cụ và những đặc điểm mới phiên bản 7.0 cịn thiếu sĩt.
Ngồi những đặc tính khắc phục thiếu sĩt của SQL Server 7.0, phiên bản SQL Server 2000 cịn thay đổi một số cục diện khác trong các chức năng lập trình cũng giống như trong quan hệ và ràng buộc dữ liệu.
Ngồi ra SQL Server 2000 cịn cung cấp 1 số cơng cụ hỗ trợ khác như Phân tích xử lý trực tuyến (OLAP), chuyển tác trực tuyến (OLTP), English Query
Một đặc điểm mớI chúng ta cần quan tâm trong phiên bản SQL Server 2000, khái niệm Object Oriented Database-OOD, và một số kiểu dữ liệu mới cũng trình bày trong giáo trình này.
SQL Server 2000 tốI uư hơn nhiều mơ hình cơ sở dữ liệu quan hệ. Chúng phát triển để sử dụng trên nhiều ần bản như CE, Personal, Desktop Engine, Standard, Enterprise.Chúng ta sẽ thấy chi tiết về những thành phần này trong những chương sau .
Những thành phần trong SQL Server 2000 bao gồm :
Hệ thống
Diễn giải
SQL Server 2000
Đây là phần chính của hệ thống, là trung tâm điều hành những phần thực thi khác
Với Desktop Engine bạn sẽ tìm thấy các dịch vụ trong hệ thống như SQL Server Agent (Schedule), Distributed Transaction Coordinator ( DTC ), SQL Server Profiler(Trouble Shooting), Enterprise Manager(EM), và một số cơng cụ hỗ trợ khác
Full-Text Search
Đây là phần tự chọn trong lúc cài đặt, nếu bạn muốn chức năng tìm kiếm thì nên chọn hệ thống này vì chúng khơng la phần mặc nhiên
Full-Text Search cung cấp chức năng tìm kiếm từ rất mạnh , nếu sử dụng Internet để tìm kiếm thì đây là giải pháp tuyệt vời. Nếu bạn muốn tìm kiếm một chuỗI con trong 1 đoạn văn bản lớn thì đây là cơng cụ thích hợp cho cơng việc đĩ .
English Query
English Query (EQ) cho phép ngườI sử dụng khơng cĩ kỹ thuật về SQL cũng cĩ thể SQL Server, bằng cách đặt câu hỏi bằng chuỗi English sau đĩ được dịch ra query mà cĩ thể thực thi trên SQL Server. Nhưng cơng cụ này được cài đặt cách biệt SQL Serve r
Analysis Services
Phần này khơng bao gồm mặc định trong phần cài đặt, chúng là dạng sản phẩm tự chọn, và là cơng cụ phân tích OLAP( Online Analytical Processing), sử dụng cho cơ sở dữ liệu lớn
Những phiên bản cĩ OLAP đầy đủ chức năng là Enterprise và Developer, nhưng trong ấn phẩm Standard và Personal cũng cĩ một số chức năng chính của OLAP
Replication
Chức năng này cho phép tái tạo 1 bản sao đến SQL Server khác, thơng thường dùng chức năng này cho các hệ thống Server từ xa hay trong netword, nhằm để làm giảm trao đổidữ liệu giữa các SQL Server với nhau
Data
Transformatuion
Server
Data Transformation Server ( DTS) được mở rộng trong phiên bản SQL Server 2000 , bao gồm những chức năng trao đổi dữ liệu,và giao tiếp dữ liệu giữa các cơ sở dữ liệu khác nhau, đây là những giảI pháp lập trình trên Visual Basic .
2. XÂY DỰNG HỆ THỐNG KẾT NỐI
Cĩ 1 vài mơ hình hình thành trong những năm trước đây,nhưng hiện nay chúng ta thường sử dụng và kiểm sốt theo nhĩm 3 mơ hình sau:
User Services:
Dịch vụ này thiên về giao diện (UI), nĩ dựa trên việc định dạng dữ liệu và sử dụng các nguyên tắc về kiểm tra dữ liệu của trường (field)
Ví dụ như về việc định dạng ngày tháng dịch vụ này đưa ra trường ngày tháng bằng giao diện , và kiểm tra những giá trị user nhập vào trường này.
Business services:
Phần này được sử dụng cho các qui tắc nghiệp vụ ( Business rules ) . Ví dụ điển hình như thao tác kiểm tra Credit Card, những thơng tin này phảI được kiểm chứng khi khấu trừ khách hàng .
Trong hệ thống đa tầng đối tượng Business Services được tập trung trú ngụ tại Server , và cĩ thể tách biệt ra nhiều Server với Data Services
Data Services:
Đây là dịch vụ liên quan đến việc kiểm sốt và hoạt động như 1 chức năng luư trữ truy vấn dữ liệu . Data Services cĩ thể xem và kiểm tra nguyên tắc trọn vẹn của dữ liệu nhưng nĩ khơng quan tâm đến các qui tắc nghiệp vụ ví dụ như Credit Card đã xuất phát từ đâu và cĩ hợp lệ hay khơng .
3. .NET
.Net đánh vần dot net là chiến lược phát triển mới của Microsoft. Sản phẩm cập nhật mớI nhất trong bộ sản phẩm của họ Server là SQL Server 2000 gọI là .Net Servers.
Bên cạnh đĩ Microsoft cũng đang nâng cấp phiên bản Visual Studio vào sản phẩm .Net
.Net vẫn chưa hịan thành, nhưng rõ ràng dịng họ sản phẩm này cĩ thể hỗ trợ XML.
4. MƠ HÌNH TRUY CẬP DỮ LIỆU
Mơ hình truy cập dữ liệu : Chắc chắn 1 điều rằng khi quan tâm đến cơ sở dữ liệu , chúng ta thường muốn biết làm thế nào để kết nốI và truy cập dữ liệu của SQL Server 2000 . Chúng tơi giớI thiệu đến các bạn những mơ hình truy cập cơ sở dữ liệu SQL Server như sau:
ADO( Activ X Data objects) : Khơng giống như RDO dựa trên nền tảng ODBC , ADO dựa trên OLE DB . Chúng cung cấp 1 mức linh động ma ODBC khơng thể thực hiện được . Tuy RDO cũng cĩ những chức năng đặt biệt mà ADO khơng cĩ , nhưng ngược lại ADO cĩ những chức năng thơng dụng , tối ưu hơn như xử lý lọc , sắp xếp mẩu tin mà khơng cần trở lại Server . Điều này khơng cĩ trong RDO.
ODBC(Open Database Connectivity):ODBC mơ hình cho phép các ứng dụng khác cĩ thể truy cập vào dữ liệu SQL server , cho phép sử dụng những câu lệnh SQL thực thi thơng qua chúng . Tuy nhiên ODBC khơng hỗ trợ những kiểu dữ liệu khơng chuẩn hĩa như cấu trúc thư mục hay nhiều bảng liên kết.
OLE DB:
Điểm khác biệt giữa OLE DB và ODBC đĩ là :
OLE DB cĩ thể giao tiếp với cả 2 loại dữ liệu thuộc dạng bảng và khơng dạng bảng bằng trình điều khiển gọi là Provider.
Provider khơng giống như trình điều khiển ODBC . Chúng là phần cơ bản của ADO.
JDBC( Java database connectivity):JDBC là trình điều khiển truy cập dữ liệu của Java . Khi sử dụng Java trong ứng dụng của bạn với SQL Server thi JDBC được làm cầu nối với ODBC của họ sản phẩm Microsoft.
Ngồi những mơ hình kết nối dữ liệu trình bày ở trên , chúng ta cịn 1 số mơ hình khác như RDO( Remote Data Objects), DB-Lib, VB-SQL, DAO( Data Access Objects).
5. CÁC THÀNH PHẦN CẤU THÀNH CỦA SQL SERVER 2000
RDBMS cũng như SQL Server chứa đựng nhiều đốI tượng bao gồm :
Database : cơ sở dữ liệu của SQL Server
Tập tin log : tập tin lưu dữ những chuyển tác cua SQL
Tables: bảng dữ liệu
Filegroups:tập tin nhĩm
Diagrams:sơ đồ quan hệ
Views:khung nhìn ( hay bảng ảo) số liệu dựa trên bảng
Stored Procedure: Thủ tục và hàm nội
Users defined Function:Hàm cho người dùng định nghĩa
Users : NgườI sử dụng cơ sở dữ liệu
Roles : Các qui định vai trị và chức năng trong hệ thống SQL Server
Rules : Những qui tắc
Defaults : Các giá trị mặc nhiên
User-defined data types : Kiểu dữ liệu do người dùng tự định nghĩa
Full-tẽt catalogs : Tập phân loại dữ liệu text .
6. ĐỐI TƯỢNG CƠ SỞ DỮ LIỆU
Cơ sở dữ liệu là đốI tượng cao nhất khi bạn làm việc với SQL Server , tuy nhiên những đối tượng con của cơ sở dữ liệu mới là thành phần chính của cơ sở dữ liệu.Bản thân SQL Server là 1 hệ cơ sở dữ liệu, chúng bao gồm các đốI tượng như database , table , view , stored procedure nêu trên cùng 1 số cơ sở dữ liệu hỗ trợ khác
Cơ sở dữ liệu SQL Server là cơ sở dữ liệu đa người dùng, với mỗi Server bạn chỉ co 1 hệ quản trị cơ sở dữ liệu , . Nếu muốn cĩ nhiều hệ quản trị cơ sở dữ liệu bạn cần cĩ nhiều Server tương ứng
Truy cập cơ sở dữ liệu của SQL Server dựa vào những tài khoản người dùng riêng biệt và ứng vớI quyền truy cập nhất định .
Khi cài đặt SQL Server bạn cĩ 6 cơ sở dữ liệu mặc định như sau:
Master
Model
Msdb
Tempdb
Pubs
Northwind
6. GIỚI THIỆU VỀ ĐỐI TƯỢNG CỦA CƠ SỞ DỮ LIỆU
BẢNG _ TABLE:
Trong cơ sở dữ liệu , bảng (table ) là phần chính của chúng . Do bảng là đối tượng lưu trữ dữ liệu thực , khi cần giao tiếp với cơ sở dữ liệu khác, bảng la đối tượng căn bản nhất trong bất kỳ loại cơ sở dữ liệu nào , chúng được coi như 1 miền dữ liệu
Mỗi bảng được định nghĩa nhiều trường , mỗi trường ( field cịn gọi la column name ) ứng với 1 loại kiểu dữ liệu . Dữ liệu nhập vào cĩ thể chấp nhận hay từ chối tùy thuộc vào nguyên tắc ràng buộc dữ liệu hay loại dữ liệu tương thích do hệ thống hay người dùng định nghĩa .
Khi làm việc trong ngành cơ sở dữ liệu hay lập trình , để đặt tên cho 1 bảng trong cơ sở dữ liệu SQL Server , bạn cần đặt tên đúng chuẩn , điều này giúp cho các bạn làm việc theo nhĩm lập trình , hay cơng ty chuyên nghiệp , bạn nên sử dụng tiếp đầu ngữ “ tbl “ trước kế đến là tên bảng .
CHỈ MỤC – INDEXS
Index hay cịn gọi là chỉ mục, đối tượng này chỉ tồn tại trong bảng hay khung nhìn (View) . Chỉ mục cĩ ảnh hưởng đến tốc độ truy cập số liệu ,nhất là khi cần tìm kiếm thơng tin trên bảng . Chỉ mục giúp tăng tốc cho việc tìm kiếm .
Chỉ mục cĩ 2 loạI sau :
Clustered : Ứng với loại chỉ mục này 1 bảng chỉ cĩ 1 chỉ mục , và số liệu được sắp xếp theo trang .
Non-Clustered : Ứng với loại chỉ mục này 1 bảng chỉ cĩ thể cĩ nhiều chỉ mục và số liệu được sắp xếp theo trường dữ liệu mà bạn trỏ đến
BẪY LỖI – TRIGGERS
Trigger là đối tượng chỉ tồn tại trong bảng , cụ thể là 1 đoạn mã, và tự động thực thi khi cĩ 1 hành động nào đĩ xảy ra đối với dữ liệu trong bảng như Insert, Update, Delete
Trigger cĩ thể sử dụng để bẩy rất nhiều tình huống như copy dữ liệu , xĩa dữ liệu , cập nhật dữ liệu , kiểm tra dữ liệu theo 1 cách nào đĩ
RÀNG BUỘC_ CONSTRAINTS
Constranit là 1 đối tượng , nĩ là 1 phần nhỏ trong bảng , chúng ràng buộc dữ liệu trong bảng hay các bảng khác phảI tuân theo 1 quy tắc nào đĩ
DIAGRAM_ LƯỢC ĐỒ QUAN HỆ
Khi xây dựnng cơ sở dữ liệu cho ứng dụng hay thương mại điện tử , thường phảI dựa trên trình phân tích thiết kế hệ thống . Sau những bước phân tích và thiết kế , bạn sẽ thiết lập quan hệ dữ liệu giữa các thưc thể ERD ( Entity relationship diagram )
Bằng mơ hình quan hệ này bạn đưa chúng vào xây dựng trên cơ sở dữ liệu thực của SQL Server
Diagram là cơng cụ duy nhất giúp bạn thực hiện cơng việc kết nối trên .
KHUNG NHÌN_ VIEWS
View là 1 khung nhìn (hay bảng ảo) của bảng. Cũng giống như bảng nhưng View khơng thể chứa dữ liệu, bản thân View cĩ thể tạo thêm trường mới dựa vào những phép tốn , biểu thức của SQL Server .
Bên cạnh đĩ View cĩ thể kết nối nhiều bảng lại với nhau theo quan hệ nhất định cùng với những tiêu chuẩn , nhằm tạo ra 1 bảng dữ liệu theo nhu cầu của người dùng .
Cho đến nay , trong SQL Server 2000 , mục đích của View là kiểm sốt tất cả những gì mà ngườI sử dụng muốn thấy , nĩ bao gồm 2 ảnh hưởng chính đĩ là tính bảo mật và dễ sử dụng .
THỦ TỤC NỘI_ STORED PROCEDURE
Stored procedure cịn gọi là Spocs , tiếp tục phát triển như 1 phần lập trình SQL trên cơ cở dữ liệu . Stored Procedure cho phép khai báo biến , nhận tham số cũng như thực thi các phát biểu cĩ điều kiện .
Thơng qua Stored Procedure, bạn cĩ thể sử dụng tài nguyên của mỗi chuyển tác trên Server cĩ liên quan đến cơ sở dữ liệu. Các ưu điểm của chúng như sau :
Kế thừa tất cả các phát biểu của SQL , và là 1 đối tượng xử lý số liệu hiệu quả nhất khi dùng SQL Server
Tiết kiệm thời gian thưc thi trên dữ liệu
Cĩ thể gọi Stored Procedure theo cách gọi của thủ tục hay hàm trong các ngơn ngữ lập trình truyền thống , đồng thờI sử dụng lạI khi cĩ yêu cầu
SỬ DỤNG KIỂU DỮ LIỆU CURSOR( CURSOR TYPE )
Khi dùng cơ sở dữ liệu SQL Server , nếu cĩ nhu cầu tính tốn trên bảng số liệu , chuyển tác thực hiện trên từng mẫu tin , bạn hãy nghĩ đến kiểu dữ liệu mang tên CURSOR .
7. TIỆN ÍCH MẠNG CLIENT/SERVER
Khi nĩ đến những tiện ích về mạng , chắc hẳn bạn biết rằng cơng việc cấu trình này do người quản lý mạng đảm nhận . Để các máy PC khác cĩ thể kết nối và sử dụng cơ sở dữ liệu SQL Server trong hệ thống mạng bạn cần cấu hình các tiện ích trên máy trạm giống như cấu hình của Server . Bạn gọi tiện ích cấu hình mạng bằng cách chọn Start ® Programs®Microsoft SQL Server 2000 ®Client Netword Utility
SQL Server cung cấp 1 bộ thư viện Net-Libraries hay cịn gọi là NetLibs.
Thư viện này gồm nhiều nghi thức (cịn gọi là Protocol) kết nối cho phép các máy trạm cĩ thể truy cập cơ sở dữ liệu vào SQL Server :
Named Pipes
TCP/IP
Multiprotocol
NWLink IXP/SPX
AppleTalk
Banyan VINES
Shared Memory
VIA
8. TRÌNH ENTERPRISE MANAGER
Enterprise Manager cịn gọi là EM , là màn hình điều khiển khi quản trị SQL Server . EM cung cấp cho người quản trị nhiều chức năng để quản lý SQL Server bằng giao diện đồ họa
Bắt đầu từ SQL Server 7.0 trình điều khiển này đã cung cấp những tính năng giao diện đồ họa để tạo các lượt đồ quan hệ thực thẻ ERD ( Entity Relationship Diagram ), tạo bảng , view , stored procedure, trigger .
Những chức năng trong Enterprise Manager
Tạo , Cập nhật , Xĩa cơ sở dữ liệu và đối tượng của chúng
Tạo , Cập nhật , Xĩa các gĩi Data Transformation Packages
Quản lý lập trình backup dữ liệu
Quản lý ngườI dùng đang truy cập SQL Server và cơ sở dữ liệu
Cấu hình Job Managerment
Tạo , cập nhật , xĩa , quyền Login user
Thiết lập và quản lý Mail Server
Tạo và quản lý tìm kiếm
Cấu hình cho Server
Tạo và cấu hình cho Replication
Ngồi ra EM cịn cĩ 1 vài chức năng khác như đăng ký nhiều SQL server khác , SQL Server Profiler , Query Analyzer
9. TRÌNH QUERY ANALYZER
Cơng cụ này giúp cho bạn phát triển hay gở rối trong SQL Server , Query Analyzer là cơng cụ cung cấp bởi SQL Server , là trình soạn thảo và thực thi câu lệnh SQL hay Stored Procedure
Để sử dụng trình này bạn cần phải kết nối vào SQL Server . Khi kích hoạt chúng bạn cần cung cấp tên Server của SQL server muốn kêt nối , đồng thời cung cấp Username và Password để đăng nhập
Khi cung cấp Username và Password , chúng phụ thuộc vào sự xác nhận 2 yếu tố , nếu Username và Password của bạn được kế thừa Username và Password của Windows NT/2000 thì Authentication là Windows Authentication, ngược lại bạn chọn SQL Server Authentication
Nếu bạn kíck hoạt Query Analyzer từ EM thì yêu cầu trên khơng cần thiết, nếu bạn kích hoạt từ menu Start/Programs/MS SQL Server 2000/Query Analyzer thì yêu cầu trên được xuất hiện .
Sau khi đăng nhập Query Analyzer , bạn cĩ thể thay đổi cơ sở dữ liệu dể thực thi từ DB combo box hoặc cĩ thể sử dụng phát biểu SQL để chuyển đổi cơ sở dữ liệu làm việc.
TỔNG KẾT
ƯU KHUYẾT ĐIỂM – HƯỚNG PHÁT TRIỂN
Ưu điểm:
Với chương trình Xây Dựng Hệ Thống Trợ Giúp Sắp Xếp Lịch Sử Dụng Phịng sẽ giúp cho Phịng đào tạo quản lý lịch sử dụng phịng trong trường Đại học Dân lập Kỹ thuật Cơng nghệ một cách hiệu quả, nắm bắt được tình hình sử dụng phịng, thống kê được lịch sử dụng phịng.
Chương trình Xây Dựng Hệ Thống Trợ Giúp Sắp Xếp Lịch Sử Dụng Phịng đã được xây dựng khá hồn chỉnh, đáp ứng được nhu cầu truy vấn thơng tin nhanh chĩng và giải quyết được việc tổ chức cơ sở dữ liệu nhất quán và lưu trữ thơng tin.
Khuyết điểm:
Chương trình vì được xây dựng trong một thời gian quá ngắn nên cịn nhiều
khuyết điểm và thiếu sĩt như:
Chưa sắp xếp được lịch sử dụng phân theo ngày trong tuần, theo học kỳ.
Một phịng chỉ cĩ thể cho đăng ký một lớp học duy nhất.
Tơi sẽ cố gắng hồn thiện trong các phiên bản tới.Rất mong sự đĩng gĩp ý
kiến của quý Thấy Cơ và các bạn quan tâm đến vấn đề này.
Hướng phát triển:
Hiện nay chương trình Xây Dựng Hệ Thống Trợ Giúp Sắp Xếp Lịch Sử Dụng Phịng chưa quản lý tốt các thơng tin về giáo viên, mơn học, học kỳ, học phần, nên thơng tin lưu trữ cịn hạn chế.Ngồi ra chưa sắp xếp lịch sử dụng phịng theo dạng thời khĩa biểu trong tuần.
Trong tương lai, chương trình Xây Dựng Hệ Thống Trợ Giúp Sắp Xếp Lịch Sử Dụng Phịng cĩ thể áp dụng cho hệ thống quản lý phịng của trường và cĩ thể mở rộng hơn nữa việc sắp xếp lịch giảng dạy, lịch học từng lớp để xây dựng một hệ thống thời khĩa biểu hồn chỉnh.
TÀI LIỆU THAM KHẢO
-------------------
Lập trình ứng dụng chuyên nghiệp SQL SERVER 2000 tồn tập
Nhà xuất bản Lao động – xã hội.
Phạm Hữu Khang (chủ biên).
Bài tập và bài giải tham khảo SQL SERVER 7.0
DN Sách Thành Nghĩa TP HCM – Nhà sách Nguyễn Văn Cừ.
ThS Nguyễn Gia Tuấn Anh – Trương Châu Long (biên soạn).
Lập trình Windows với C#.NET
Nhà xuất bản Lao động – xã hội.
Phương Lan (chủ biên).
Inside C# - Tập 1
Nhà xuất bản Thống Kê.
Phạm Hồng Tài – Nguyễn Phước Lành – Đỗ Kim Oanh (biên soạn).