1. Trang chủ
  2. » Cao đẳng - Đại học

Bộ môn cơ sở dữ liệu tiểu luận hệ thống quản lý thí sinh và điểm thi

44 37 1

Đ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 đề Hệ Thống Quản Lý Thí Sinh Và Điểm Thi
Tác giả Nguyễn Trung Thu, Đặng Hữu Tùng, Nguyễn Đình Tuấn, Vũ Ngọc Hà, Nguyễn Công Chiến, Khuất Bá Đông
Người hướng dẫn Thầy Nguyễn Hoài Giang
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Cơ Sở Dữ Liệu
Thể loại Báo Cáo Bài Tập Lớn
Năm xuất bản 2005
Thành phố Hà Nội
Định dạng
Số trang 44
Dung lượng 765,81 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Yêu cầu của hệ thống quản lý thí sinh và điểm thi 3 Phần III: Chuần hóa Nhận diện các khóa chính và khóa ứng củ của các bảng 6 Từ điển dữ liệu của hệ thống đã được chuẩn hóa 9 Phần V

Trang 1

BÁO CÁO BÀI TẬP LỚN MÔN CƠ SỞ DỮ LIỆU

HỆ THỐNG QUẢN LÝ THÍ SINH VÀ ĐIỂM THI

Giáo viên hướng dẫn: Thầy Nguyễn Hoài Giang Nhóm : AFC ĐT9 - K47

Các thành viên: Nguyễn Trung Thu (NT)

Đặng Hữu Tùng Nguyễn Đình Tuấn

Vũ Ngọc Hà Nguyễn Công Chiến Khuất Bá Đông

Hà nội, 5/2005

cuu duong than cong com

Trang 2

Yêu cầu của hệ thống quản lý thí sinh và điểm thi 3

Phần III: Chuần hóa

Nhận diện các khóa chính và khóa ứng củ của các bảng 6

Từ điển dữ liệu của hệ thống đã được chuẩn hóa 9 Phần V: Lược đồ khái niệm của hệ thống đã được chuẩn hóa 12

Phần VII: Các thủ tục đảm bảo nguyên tắc toàn vẹn dữ liệu 15 Phần VIII: Chương trình nguồn

Form Nhập thông tin về Thí sinh 17

Form cập nhật Tỉnh/Thành phố 29 Form nhập môn thi cho từng khối 33

Form tìm kiếm điểm thi của thí sinh 41

Thống kê điểm trung bình của thí sinh theo vùng 47 Thống kê thí sinh đỗ của từng Tỉnh/Thành phố 48

cuu duong than cong com

Trang 3

YÊU CẦU CỦA HỆ THỐNG QUẢN LÝ THÍ SINH VÀ

ĐIỂM THI

I Thông tin cần lưu trữ

Thông tin về thí sinh:

- Số báo danh của thí sinh

- Họ và tên của thí sinh

- Ngày tháng năm sinh

- Giới tính

- Địa chỉ (Bao gồm thành phố/tỉnh, quận/huyện, phường/xã, tên phố/xóm, số nhà)

- Mã vùng

- Số phách của từng môn thi

- Điểm của từng môn thi

II Các chức năng của chương trình

- Ngày tháng năm sinh

4 Tìm kiếm điểm thí sinh theo:

- Số báo danh

- Số phách

5 Xem toàn bộ thông tin được sắp xếp:

- Sắp xếp về thí sinh kèm theo các thông tin về điểm từng môn học của thí sinh

- Sắp xếp theo tổng điểm thi kèm theo các thông tin về thí sinh và điểm của từng môn thi

6 Lập báo cáo thống kê điểm trung bình của các thí sinh theo từng vùng gồm thông tin về:

- Số báo danh

- Họ và tên thí sinh

- Ngày tháng năm sinh

- Giới tính

- Điểm trung bình của từng thí sinh

- Điểm trung bình của các thí sinh trong từng vùng

7 Lập báo cáo thống kê tỷ lệ thí sinh đỗ của các tỉnh/thành phố, bao gồm các thông tin về:

- Số báo danh

- Họ và tên thí sinh

- Ngày tháng năm sinh

- Giới tính

- Điểm trung bình của từng thí sinh

- Tỷ lệ thí sinh thi đỗ trong từng thành phố/tỉnh

- Tỷ lệ thí sinh thi đỗ của tất cả các thành phố/tỉnh

cuu duong than cong com

Trang 4

PHẦN I: NHẬN DIỆN THỰC THỂ

I Thực thể THÍ SINH

Để tiện cho việc sắp xếp thí sinh ta tách thuộc tính Họ và tên thí sinh thành Họ đệm thí sinh và Tên thí sinh

Để tiện cho việc quản lý thí sinh, ta đƣa thêm thuôc tính Đối tượng và

Mã đối tượng, Khối thi và Mã Khối thi

Để dễ dàng xác định thí sinh đỗ hay trƣợt ta thêm thuộc tính Điểm

chuẩn của mỗi khối

Tách thuộc tính Địa chỉ thành các thuộc tính nhỏ hơn

Vậy thực thể THÍ SINH bao gồm các thuộc tính sau:

STT Thuộc tính Ký hiệu Kiểu dữ liệu

4 Ngày tháng năm sinh NgaySinh Date/Time

II Thực thể ĐIỂM THI

Để xác định điểm thi của một môn ta đƣa thêm thuộc tính Môn thi và

Mã môn thi Vậy thực thể ĐIỂM THI gồm các thuộc tính sau:

STT Thuộc tính Ký hiệu Kiểu dữ liệu

2 Số phách (của một môn thi) SoPhach Character(15)

5 Điểm thi (của một môn thi) Diem Numeric(4)

cuu duong than cong com

Trang 5

PHẦN II: CÁC GIẢ THIẾT VỀ CÁC PHỤ THUỘC HÀM

1 Giả thiết số báo danh là duy nhất đối với mỗi thí

sinh và mỗi thí sinh chỉ có duy nhất một Họ đệm,

Tên, Ngày sinh, Giới tính, Ghi chú, mỗi thí sinh chỉ

có duy nhất một địa chỉ: Thành phố/Tỉnh,

Quận/Huyện, Phường/Xã, Phố/Xóm Số nhà, Mã

vùng Do vậy các thuộc tính này phụ thuộc hàm vào

thuộc tính Số báo danh

Sbd  Ho Sbd  Ten Sbd  NgaySinh Sbd  GioiTinh Sbd  Gchu Sbd  Tp Sbd  Qh Sbd  Pxa Sbd  Pxom Sbd  SoNha Sbd  Mv

2 Mỗi đối tượng được xác định duy nhất bởi một

Mã đối tượng nên Đối tượng phụ thuộc hàm vào Mã

Đối tượng

MaDt  Dt

3 Giả thiết mỗi Khối thi chỉ có một điểm chuẩn, mà

mỗi khối thi được xác định duy nhất bởi Mã khối

nên Khối thi và Điểm chuẩn phụ thuộc hàm vào Mã

khối

MaKhoi  Khoi MaKhoi  DiemChuan

4 Giả thiết mỗi thí sinh chỉ thuộc duy nhất một loại

đối tượng mà Số báo danh xác định duy nhất một thí

sinh nên Đối tượng và Mã đối tượng phụ thuộc hàm

vào Số báo danh

Sbd  Dt Sbd  MaDt

5 Giả thiết với mỗi số báo danh chỉ dùng cho thí

sinh thi trong một khối nên khối thi và mã khối thi

phụ thuộc hàm vào Số báo danh

Sbd  Khoi Sbd  MaKhoi

6 Giả thiết mã vùng xác định duy nhất một thành

phố, mỗi thành phố cũng chỉ có duy nhất một mã

vùng

Mv  Tp

Tp  Mv

7 Mỗi môn thi được xác định duy nhất bởi Mã môn

thi nên Môn thi phụ thuộc hàm vào Mã môn

MaMon  Mon

9 Giả thiết mỗi bài thi của một môn được đánh số

phách ngẫu nhiên và do đó có thể trùng nhau Vì

vậy mỗi số phách ứng với một môn thi nhất định

xác định một điểm thi môn đó

(SoPhach, Mon)  Diem (SoPhach, Mon)  Sbd

10 Một thí sinh thi nhiều môn thi khác nhau nên

điểm mỗi môn của thí sinh được xác định nhờ Số

báo danh và Tên môn Đồng thời với người quản trị

(Nhập/sửa dữ liệu), số phách của một bài thi hoàn

toàn xác định khi biết Số báo danh và Tên môn thi

(Sbd, Mon)  Diem (Sbd, Mon)  SoPhach

cuu duong than cong com

Trang 6

PHẦN III: CHUẨN HÓA

1 Nhận diện các khóa chính và khóa ứng cử

Từ các thực thể và phụ thuộc hàm đã xác định ở trên ta có các quan hệ sau:

THÍ SINH(*Sbd, Ho, Ten, NgaySinh, GioiTinh, Tp, Qh, Pxa, Pxom,

SoNha, Mv, Dt, MaDt, Khoi, Makhoi, DiemChuan,

GChu)

P_key: Sbd C_key: Sbd

ĐIỂM THI(*Sbd, *Mon, *-MaMon, *-SoPhach, Diem)

P_key: (Sbd, Mon) C_key: (Sophach, Mon) C_key: (Sbd, MaMon) C_key: (SoPhach, MaMon)

ĐIỂM THI(*Sbd, *MaMon, *-SoPhach, Diem)

và MÔN THI(* MaMon, *-Mon)

Trang 7

THÍ SINH(*Sbd, Ho, Ten, NgaySinh, GioiTinh, Qh, Pxa, Pxom,

SoNha, Mv, MaDt, Makhoi, Gchu)

Trang 8

5 Chuẩn hóa BCNF:

Các bảng MÃ VÙNG, ĐỐI TƢỢNG đều đã ở dạng chuẩn BCNF

vì mọi thuộc tính quyết định đều là khóa ứng cử và không còn phụ thuộc hàm bắc cầu

Bảng THÍ SINH đã ở dạng chuẩn vì chỉ có một khóa chính đồng thời là khóa ứng cử

Bảng Khối thi có phụ thuộc hàm bắc cầu MaKhoi  Khoi

Khoi  DiemChuan

 MaKhoi  DiemChuan

Ta tách bảng này thanh 2 bảng sau:

KHỐI THI(*MaKhoi, *-Khoi)

ĐIỂM CHUẨN(*Khoi, DiemChuan)

Bàng ĐIỂM THI có phụ thuộc hàm bắc cầu:

(Sbd, MaMon)  SoPhach (Sbd, Sophach)  Diem

 (Sbd, MaMon)  Diem

Ta tách bảng ĐIỂM THI thành 2 bảng sau:

SỐ PHÁCH(*Sbd, *MaMon, *-SoPhach)

ĐIỂM THI(*Sbd, *MaMon, Diem)

Do hai bảng MÔN THI VÀ KHỐI THI có quan hệ n – n nên ta có bảng mới MÔN KHỐI Bảng này có quan hệ n – 1 với các bảng MÔN THI, KHỐI THI

Trang 9

PHẦN IV: SƠ ĐỒ THỰC THỂ LIÊN KẾT

1 Sơ đồ thực thể liên kết

Sơ đồ trên chỉ được dùng trong lập báo cáo Thực tế khi lập trình, việc chuẩn hóa chỉ dừng lại ở mức 3NF để cho đơn giản

2 Từ điển dữ liệu của hệ thống đã chuẩn hóa

THI SINH Thí sinh Thông tin về thí sinh

DIEM THI Điểm thi Điểm thi của thí sinh ứng với từng môn

MA VUNG Mã vùng Danh sách các thành phố/tỉnh kèm theo mã

vùng tương ứng MON THI Môn thi Danh sách môn thi và mã môn

KHOI THI Khối thi Danh sách khối thi và mã khối

MON KHOI Môn thi –

Khối thi

Danh sách các môn thi tương ứng với các

khối thi DOI TUONG Đối tượng Danh sách các đối tượng tương ứng với mã cuu duong than cong com

Trang 10

2.2 Danh sách các thuộc tính của từng bảng

1 Sbd Số báo danh Character 15 BKA11234 P_key

2 Ho Họ đệm của thí sinh Text 30 Nguyễn Trung

4 NgaySinh Ngày tháng năm sinh Date/time 10 08/10/1984

13 GChu Ghi chú Text 255 Không có gì

1 Sbd Số báo danh Character 15 BKA11234 P_key

4 Diem Điểm thi của môn number 5 8,25

1 Sbd Số báo danh Character 15 BKA11234 P_key

3 SoPhach Số phách Number 10 332114 C_key

2.2.5 Bảng KHỐI THI

TT

Tên viết

tắt Tên đầy đủ Kiểu dữ liệu Khoảng giá trị Giá trị mẫu Khóa

cuu duong than cong com

Trang 11

2.2.6 Bảng ĐIỂM CHUẨN

2.2.7 Bảng MÔN-KHỐI

TT Tên viết tắt Tên đầy đủ Kiểu dữ liệu Khoảng giá trị Giá trị mẫu Khóa

Khoảng giá trị Giá trị mẫu Khóa

Khoảng giá trị Giá trị mẫu Khóa

2 Dt Đối tượng text 30 Con thương binh C_key

TT Tên viết tắt Tên đầy đủ Kiểu dữ liệu Khoảng giá trị Giá trị mẫu Khóa

2 DiemChuan Điểm chuẩn Number 5 24,5

cuu duong than cong com

Trang 12

PHẦN V: MÔ TẢ LƢỢC ĐỒ KHÁI NIỆM CỦA HỆ THỐNG ĐÃ ĐƢỢC CHUẨN HÓA

Domain NgaySinh Date/Time

Domain DiemChuan NUMERIC(5)

RELATION

THI SINH(Sbd, Ho, Ten, NgaySinh, GioiTinh, Mv,

Qh, Pxa, Pxom, SoNha, MaKhoi, MaDt, GChu) P_key: Sbd

RELATION DIEM THI(Sbd, MaMon, Diem)

P_key:(Sbd, MaMon)

RELATION MON(MaMon, Mon)

RELATION DIEM CHUAN(MaKhoi, DiemChuan)

P_key:

MaKhoi

RELATION SO PHACH(Sbd, MaMon, SoPhach)

P_key: (Sbd, MaMon) cuu duong than cong com

Trang 13

PHẦN VI: THIẾT KẾ CHƯƠNG TRÌNH

1 Hệ thống Menu chính của chương trình

T

2 Chức năng của các mục chọn

Menu chính (frmMain) xuất hiện sau màn hình giới thiệu ban đầu (Main)

Thông tin về Thí sinh: frmThisinh cho phép xem, nhập và sửa, xóa các thông

tin về Thí sinh

Nhập Điểm thi : frmDiemThi cho phép xem, nhập và sửa, xóađiểm thi của Thí

sinh

Trở về Windows: Thoát khỏi chương trình

Danh sách Đối tượng: frmDoituong cho phép xem, nhập và sửa, xóa các đối

tượng

cuu duong than cong com

Trang 14

Danh sách Tỉnh/Thành phố: frmMavung cho phép xem, nhập, sửa, xóa các

tỉnh/ thành phố

Tương tự với các lựa chọn Danh sách Khối thi (frmKhoi), Danh sách Môn thi (frmMon), Danh sách Môn thi của các Khối( frmMon_Khoi)

Sắp xếp theo họ tên: RptSapxepten

Sắp xếp theo Tổng điểm: RptsxTong

Tỷ lệ thí sinh đỗ của các Tỉnh/Thành phố: rptTylevung

Thống kê điểm trung bình theo vung: rptDTB

Tìm kiếm thí sinh: frmTimTs cho phép tìm kiếm thí sinh theo SBD, Tên, Ngày

tháng năm sinh và hiển thị tất cả thông tin về thí sinh tìm được

Tìm kiếm Điểm thi của thí sinh: frmTimDiem cho phép tìm kiếm Điểm của thí

sinh theo SBD, Số phách và hiển thị các thông tin về điểm,…

Hướng dẫn: frmTip Hướng dẫn cách sử dụng chương trình, file nguồn là

TIPOFDAY.txt nằm trong cùng thư mục cài đặt chương trình

Tác giả: frmAbout Giới thiệu về nhóm AFC và lời cảm ơn

cuu duong than cong com

Trang 15

PHẦN VII: CÁC THỦ TỤC ĐẢM BẢO NGUYÊN TẮC TOÀN VẸN DỮ LIỆU

1 Quy tắc toàn vẹn thực thể

Để đảm bảo các khóa không được phép NULL, trong quá trình thiết kế CSDL,

ta đặt thuộc tính Required của các khóa chính là Yes Nhờ đó, khi người dùng

không nhập dữ liệu cho khóa chính của các bảng, DBMS sẽ đưa ra thông báo lỗi và không cho phép lưu dữ liệu

2 Quy tắc toàn vẹn quy chiếu:

Các bảng sau có quan hệ 1 – n

Để đảm bào tính toàn vẹn quy chiếu, dữ liệu khóa chinh ở bảng 1 luôn

phải được nhập trước và hiện thị trong mục lựa chọn của khóa ngoại lai của

bảng n Trong chương trình này, ta dùng công cụ DataCombo đuợc hỗ trợ bởi ADO có khả năng ràng buộc dữ liệu để hiển thị dữ liệu trong form nhập của

bảng n từ dữ liệu nguồn của bảng 1 Người dùng không thể nhập dữ liệu ở bảng

n mà bảng 1 chưa có vì chỉ được phép chọn những dữ liệu đã được nhập trước

từ DataCombo

Để sửa dữ liệu tại bảng n, người dùng phải sửa dữ liệu trước ở bảng 1

thông qua form nhập dữ liệu tương ứng

Muốn xóa dữ liệu ở bảng n, người dùng hoàn toàn yên tâm rằng dữ liệu

thuộc về bảng 1 (được chọn lựa từ DataCombo) không hề bị xóa

Sau đây là danh sách các thủ tục/hàm đảm bảo nguyên tắc toàn vẹn dữ liệu:

Tên thủ tục/hàm Mục đích Bảng dữ liệu

Commit() Lấy mã tương ứng của các dữ liệu được chọn ở

các DataCombo từ bảng 1 để lưu vào bảng n

Về mặt giao diện, người dùng lựa chọn các thông tin như bình thường nhưng chương trình chỉ lưu khóa của các thông tin đó bằng việc so sánh thông tin đó với danh mục thông tin trong một bảng 1 khác có quan hệ với bảng n đang được nhập thông tin VD: trong phần Tỉnh/Thành phố, người dùng chọn Hà Nội

ThiSinh, Mon_Khoi

Trang 16

nhưng thực chất thông tin được lưu vào bảng Thí sinh là Mã vùng của Hà Nội vốn được lưu trong bảng Mã vùng

cmdSelect_Click Lấy tất cả các môn thi ứng với khối thi được

chọn để hiển thị lên các button cho phép người

sử dụng nhập điểm cho các môn thi đó Vì vậy người sử dụng không thể nhập điểm cho một môn thi chưa có tên trong bảng Môn thi hoặc không nằm trong khối thi của Thí sinh

DiemThi

cmdOther_Click() Chọn môn thi khác hoặc khối thi khác để nhập

điểm (có chức năng giống hàm Select_Click()

DiemThi

cuu duong than cong com

Trang 17

PHẦN VIII: CHƯƠNG TRÌNH NGUỒN

1 Form nhập thông tin về thí sinh frmThiSinh

Sử dụng ADO Code xây dựng bởi VB ở giao diện Single Record

Option Explicit

Dim WithEvents adoPrimaryRS As Recordset

Dim WithEvents rsMv As Recordset

Dim WithEvents rsMadt As Recordset

Dim WithEvents rsMaKhoi As Recordset

Dim mbChangedByCode As Boolean

Dim mvBookMark As Variant

Dim mbEditFlag As Boolean

Dim mbAddNewFlag As Boolean

Dim mbDataChanged As Boolean

Private Sub Commit() ‘Đảm bảo tính toàn vẹn dữ liệu (xem phần VI)

Set rsMv = New Recordset

Set rsMadt = New Recordset

Set rsMaKhoi = New Recordset

rsMv.Open "select * from Mavung where Tp = '" & dcbMv & "'", db

Set adoPrimaryRS = New Recordset

cuu duong than cong com

Trang 18

adoPrimaryRS.Open "select Gchu, Gioitinh, Ho, MaDt, MaKhoi, Mv, Ngaysinh, Pxa, Pxom, Qh, Sbd, Sonha, Ten from ThiSinh Order by Sbd", db, adOpenStatic,

adLockOptimistic

Dim oText As TextBox

‘Ràng buộc thông tin trên từng textbox với CSDL

For Each oText In Me.txtFields

Set oText.DataSource = adoPrimaryRS

Next

mbDataChanged = False

LockText

End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

‘Thực hiện lệnh khi một số phím quen thuộc đƣợc bấm

If mbEditFlag Or mbAddNewFlag Then Exit Sub

Select Case KeyCode

Case vbKeyUp, vbKeyPageUp

If Shift = vbCtrlMask Then

cmdFirst_Click

Else

cmdPrevious_Click

End If

Case vbKeyDown, vbKeyPageDown

If Shift = vbCtrlMask Then

Private Sub adoPrimaryRS_MoveComplete(ByVal adReason As

ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As

ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)

‘Hiển thị số thứ tự của bản ghi hiện tại

lblStatus.Caption = "Record: " & CStr(adoPrimaryRS.AbsolutePosition)

Trang 19

On Error GoTo DeleteErr

MsgBox " Ban co chac chan xoa thi sinh nay khong?", vbYesNo + vbQuestion,

On Error GoTo EditErr

lblStatus.Caption = "Edit record"

Trang 20

Private Sub cmdCancel_Click() ‘Hủy bỏ

On Error Resume Next

Private Sub cmdUpdate_Click() ‘Lưu dữ liệu

Commit ' xac nhan viec chon Tp doi tuong va khoi thi

On Error GoTo UpdateErr

Private Sub cmdFirst_Click()

On Error GoTo GoFirstError

Private Sub cmdLast_Click()

cuu duong than cong com

Trang 21

On Error GoTo GoLastError

Private Sub cmdNext_Click()

On Error GoTo GoNextError

If Not adoPrimaryRS.EOF Then adoPrimaryRS.MoveNext

If adoPrimaryRS.EOF And adoPrimaryRS.RecordCount > 0 Then

Private Sub cmdPrevious_Click()

On Error GoTo GoPrevError

If Not adoPrimaryRS.BOF Then adoPrimaryRS.MovePrevious

If adoPrimaryRS.BOF And adoPrimaryRS.RecordCount > 0 Then

cmdUpdate.Visible = Not bVal

cmdCancel.Visible = Not bVal

Ngày đăng: 28/07/2021, 11:36

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w