THiết kế CSDL cho bài toán quản lý Mô tả các tình huống có thể xảy ra, điều chỉnh CSDL để đáp ứng các tình huống đó
Trang 1MỤC LỤC
I.Đặt vấn đề 2
II.Mục đích, phạm vi 3
1.Mục đích 3
III.Sơ đồ tổ chức hệ thống 3
IV.Quy trình nghiệp vụ 3
1.Quản lý học viên 3
2.Quản lý đề tài 3
3.Quản lý giáo viên 4
4.Quản lý hoạt động đăng ký: 4
V.Các bảng dữ liệu của hệ thống 5
1.Bảng HOCVIEN 5
2.Bảng DETAI 5
3.Bảng GIAOVIEN 6
4.Bảng DKDETAI 6
5.Bảng LINHVUC 6
6.Bảng LV-GV 6
VI.Mô hình quan hệ 7
VII.Mô tả chi tiết các bảng 7
1.Bảng HOCVIEN 7
2.Bảng DETAI 7
3.Bảng GIAOVIEN 8
4.Bảng DKDETAI 8
5.Bảng LINHVUC 8
6.Bảng LV-GV 9
VIII.Kiểm tra việc đáp ứng các yêu cầu nghiệp vụ 9
IX.Tài liệu tham khảo 14
THIẾT KẾ CƠ SỞ DỮ LIỆU
Trang 2HỆ THỐNG QUẢN LÝ ĐĂNG KÝ ĐỀ TÀI CAO HỌC
I Đặt vấn đề
Trong thế kỷ XXI, thế kỷ của tự động và tự động hoá thì đẩy mạnh ứng dụng tin học vào công việc hàng ngày là một mục tiêu được nhà nước quan tâm và phát triển
Tin học ngày nay càng trở nên quan trọng và nhất là trong xã hội phát triển hiện nay, nó đã thực sự trở thành nguồn tài nguyên, của cải mang lại ý nghĩa quan trọng và có giá trị to lớn Trong những năm gần đây, đi đôi với sự phát triển mạnh
mẽ kỹ thuật, tin học đã đi sâu ứng dụng vào mọi ngành nghề và mọi lĩnh vực khác nhau trong đời sống xã hội Sự phát triển của những quan hệ kinh tế, sự mở rộng mạng lưới nghiệp vụ và tăng cường quy mô của nó, nhất là Internet ra đời đã làm tăng trưởng vựơt bậc khối lượng các luồng thông tin Các sự kiện đó đang làm cho công việc quản lý trở nên phức tạp Cách quản lý dựa trên kinh nghiệm là chủ yếu không còn đem lại hiệu quả như mong muốn , do đó phải thiết lập một phương thức quản lý mới hiện đại hơn Tin học hoá công tác quản lý các đơn vị kinh tế, hành chính, trường học, bệnh viện…là một trong những lĩnh vực quan trọng của tin học Việc áp dụng tin học vào quản lý không những làm tăng đáng kể năng suất và chất lượng lao động mà còn tạo điều kiện cho việc xây dựng một hệ thống thông tin quản
lý chặt chẽ, có cơ sở khoa học và chính xác
Trong các bài toán quản lý thì việc thiết kế CSDL hết sức quan trọng, nó đóng vai trò chủ yếu đối với việc thành công của bài toán Để đảm bảo hệ thống hoạt động tốt và ít lỗi nhất thì chúng ta phải thiết kế CSDL thật đầy đủ, chính xác, đáp ứng được các tình huống có thể xảy ra Với mục đích tổng hợp những kiến thức đã học để vận dụng giải quyết các bài toán thực tiễn Qua đó giúp em có thể áp dụng tốt sau khi
ra trường Nhằm nâng cao hiệu quả quản lý việc đăng ký đề tài cao học tại Học viện
Kỹ thuật Quân sự em đã lựa chọn đề tài “Thiết kế cơ sở dữ liệu hệ thống quản lý đăng
ký đề tài cao học”.
Mặc dù đã có những cố gắng, cùng với sự hướng dẫn tận tình của thầy Đào Thanh Tĩnh, song vì thời gian còn hạn chế, bước đầu em được làm quen một bài toán thực tế mà kinh nghiệm còn chưa nhiều nên hệ thống của em không tránh khỏi những thiếu sót Em rất mong nhận được sự chỉ dẫn của thầy giáo cùng với sự góp ý của các bạn để hệ thống của em hoàn thiện hơn
Em xin chân thành cảm ơn !
Trang 3II Mục đích, phạm vi
1 Mục đích
Vận dụng các kiến thức đã học để thiết kế CSDL nhằm xây dựng hệ thống quản lý đăng ký đề tài cao học Thông qua đó cũng là rèn luyện kỹ năng lập trình và phương pháp giải quyết một bài toán
Việc thiết kế CSDL nhằm giúp cho hệ thống quản lý đăng ký đề tài cao học hoạt động tốt và hiệu quả hơn
Giám sát, theo dõi quá trình đăng ký đề tài của học viên, khắc phục khi có sự
cố xảy ra
2 Phạm vi
Bài toán được xây dựng trong nội dung chương trình môn học và các kiến thức
đã học
CSDL được sử dụng để xây dựng hệ thống quản lý đăng ký đề tài cao học của Học Viện kỹ thuât Quân sự
III Sơ đồ tổ chức hệ thống
IV Quy trình nghiệp vụ.
1 Quản lý học viên
Sau khi đủ điều kiện được làm đề tài cao học, học viên được yêu cầu làm thẻ học viên chứa đầy đủ thông tin về học viên được lưu trữ trong kho dữ liệu nhằm phục vụ cho công tác quản lý
Việc tra cứu, tìm kiếm thông tin học viên phục vụ cho ban quản lý và học viên
2 Quản lý đề tài
Hàng năm giáo viên gửi danh sách các đề tài lên khoa để xét duyệt, giáo viên cũng có thể sử dụng các đề tài của các năm trước nhưng chưa được sử dụng Mỗi đề tài có một độ khó được giáo viên xác định và thuộc một lĩnh vực nhất
QUẢN LÝ ĐĂNG
KÝ ĐỀ TÀI
Quản lý học
viên
Quản lý hoạt động đăng ký
Quản lý đề tài Quản lý giáo
viên
Trang 4định Mỗi giáo viên có thể gửi số lượng đề tài tùy ý không hạn chế Thông tin
về đề tài được lưu trữ trong kho dữ liệu nhằm phục vụ cho công tác quản lý
Sau khi đề tài đã được xét duyệt có thể sử dụng cho học viên đăng ký nghiên cứu
Danh sách đề tài được phân loại theo từng lĩnh vực để tiện cho việc đăng ký của học viên
Thống kê tìm kiếm đề tài theo tên, theo giáo viên hướng dẫn hoặc theo các lĩnh vực, ngành để phục vụ cho học viên trong quá trình đăng ký
3 Quản lý giáo viên
Hệ thống quản lý, lưu trữ thông tin về các giáo viên tham gia gửi đề tài Các giáo viên phải có học hàm là tiến sĩ trở lên và đã là tiến sĩ 3 năm trở lên mới được tham gia gửi đề tài Thông tin về giáo viên được lưu trữ trong kho dữ liệu nhằm phục vụ cho công tác quản lý
Thống kê, tìm kiếm theo tên giáo viên hoặc theo lĩnh vực, ngành phục vụ cho công tác đăng ký đề tài của học viên
4 Quản lý hoạt động đăng ký:
Sau khi danh sách đề tài đã được đưa lên mạng cho học viên đăng ký Quá trình đăng ký diễn ra trong một khoảng thời gian nhất định
Học viên muốn đăng ký một đề tài phải đăng nhập vào hệ thống bằng tài khoản của mình Sau khi đăng nhập thành công vào hệ thống, học viên chọn đề tài mà mình muốn tham gia nghiên cứu
Mỗi đề tài có không quá một học viên đăng ký và ngược lại một học viên đăng
ký không quá một đề tài
Một giáo viên được phép hướng dẫn số lượng đề tài theo học hàm, học vị của mình Cụ thể :
• TS hướng dẫn không quá 3 đề tài
• PGS hướng đẫn không quá 5 đề tài
• GS hướng dẫn không quá 8 đề tài
Sau khi học viên hoàn tất quá trình đăng ký, hệ thống sẽ trả lời ngay và lưu trữ thông tin đăng ký vào kho dữ liệu nhằm phục vụ cho công tác quản lý
Học viên sau khi hoàn tất quá trình đăng ký được phép đăng ký lại đề tài khác với điều kiện thời gian không quá 2 tháng kể từ khi đăng ký
Trang 5 Khi số lượng đề tài đã được đăng ký của một giáo viên bằng số lượng tối đa cho phép hướng đẫn của giáo viên đó thì học viên không thể đăng ký các đề tài còn lại của giáo viên đó
Khi đăng ký đề tài học viên phải đăng ký thời gian bảo vệ đề tài
• Đối với học viên quân sự, thời gian bảo vệ đề tài đã được quy định, không được đăng ký
• Đối với học viên dân sự, thời gian bảo vệ đề tài được chia làm 4 đợt vào tháng 3, 6, 9 và 12
V Các bảng dữ liệu của hệ thống
1 Bảng HOCVIEN
Bảng này lưu trữ thông tin về học viên tham gia đề tài Mỗi học viên có một mã duy nhất là tài khoản để đăng nhập vào hệ thống, chứa đầy đủ các thông tin về học viên nhằm phục vụ cho công tác quản lý:
2 Bảng DETAI
Bảng này lưu trữ thông tin về đề tài nghiên cứu Mỗi đề tài có một mã duy nhất, tên đề tài, độ khó của đề tài, mô tả nội dung đề tài và mã giáo viên hướng dẫn
Trang 63 Bảng GIAOVIEN
Bảng này lưu trữ thông tin về giáo viên hướng dẫn đề tài Mỗi giáo viên có một
mã duy nhất, học hàm, học vị
4 Bảng DKDETAI
Bảng này lưu trữ thông tin về việc đăng ký đề tài của học viên Sau khi học viên hoàn tất quá trình đăng ký thì thông tin về học viên và đề tài, thời điểm đăng ký và thời gian bảo về được lưu trữ trong bảng DKDETAI
5 Bảng LINHVUC
Bảng này lưu trữ thông tin về các lĩnh vực, ngành trong học viện
6 Bảng LV-GV
Bảng này lưu trữ lĩnh vực của các giáo viên
Trang 7VI Mô hình quan hệ
VII Mô tả chi tiết các bảng
1 Bảng HOCVIEN
1 MaHV Mã học viên, khóa chính varchar(8)
2 Pass Mật khẩu đăng nhập hệ
3 NamNH Năm nhập học của học viên varchar(4)
2 Bảng DETAI
1 MaDT Mã đề tài, khóa chính varchar(8)
4 MaLV Mã lĩnh vực, khóa ngoại của LINHVUC.MaLV varchar(8)
5 MoTa Mô tả nội dung tóm tắt của
Trang 8khóa ngoại của GIAOVIEN.MaGV
7 Chon Chọn Để học viên chọn đề
tài mình cần nghiên cứu bit
3 Bảng GIAOVIEN
1 MaGV Mã giáo viên, khóa chính varchar(8)
2 HocHam Học hàm của giáo viên varchar(3)
3 HocVi Học vị của giáo viên varchar(4)
4 Bảng DKDETAI
Mã học viên, khóa chính, khóa ngoại của
HOCVIEN.MaHV
varchar(8)
2 MaDT Mã đề tài, khóa ngoại của
3 Td/DK Thời điểm đăng ký đề tài date/time
4 TgBVe Thời gian bảo vệ đề tài date/time
5 Bảng LINHVUC
1 MaLV Mã lĩnh vực, khóa chính varchar(8)
3 MaLVchinh Lĩnh vực chính, khóa ngoại của LINHVUC.MaLV varchar(8)
Trang 96 Bảng LV-GV
Mã giáo viên, khóa chính, khóa ngoại của
GIAOVIEN.MaGV
varchar(8)
Mã lĩnh vực, khóa chính, khóa ngoại
LINHVUC.MaLV
varchar(8)
VIII Kiểm tra việc đáp ứng các yêu cầu nghiệp vụ
Xét chi tiết từng bảng, kiểm tra dữ liệu có đáp ứng được các yêu cầu quản lý không?
1 Kiểm tra sự tồn tại của một học viên
Một học viên muốn đăng nhập vào hệ thống, kiểm tra thông tin cá nhân Người quản lý muốn kiểm tra thông tin của một học viên
Khả năng đáp ứng : hệ thống đáp ứng được
2 Bổ sung học viên mới
Khi có học viên mới, người quản lý cần bổ sung thêm vào kho dữ liệu để lưu trữ, quản lý
Khả năng đáp ứng : hệ thống đáp ứng được
Input : MaHV, Pass, Khoa
if !found (HOCVIEN.MaHV = MaHV) and (HOCVIEN.Pass = Pass)
{
Insert into HOCVIEN values (MaHV, Pass, Khoa)
“Thông báo thành công”
Tiếp tục
}
else {“thông báo thất bại”, dừng}
Input : MaHV
if !found (HOCVIEN.MaHV = MaHV)
{“thông báo thất bại”, nhập lại MaHV}
else {“thông báo thành công”, tiếp tục}
Trang 103 Kiểm tra thông tin về giáo viên
Học viên muốn biết thông tin về giáo viên hướng dẫn đề tài trước khi đăng ký đề tài của giáo viên đó
Khả năng đáp ứng : hệ thống đáp ứng được
4 Tìm kiếm đề tài của một giáo viên nào đó
Học viên muốn tìm kiếm các đề tài của một giáo viên nào đó mà mình quan tâm
để tiện cho việc đăng ký
Khả năng đáp ứng : hệ thống đáp ứng được
5 Tìm kiếm đề tài theo lĩnh vực
Mỗi đề tài thuộc một lĩnh vực nhất định, học viên có thể tìm kiếm đề tài theo lĩnh vực mà mình quan tâm
Input : MaLV
if !found (LINHVUC.MaLV = MaLV)
{
“Thông báo thất bại”
Nhập lại MaLV
}
else
{
Select * from DETAI where GIAOVIEN.MaGV in (select MaGV from GIAOVIEN where GIAOVIEN.MaLV = MaLV)
}
Input : MaGV
if ! found (DETAI.MaGV = MaGV)
{
“Thông báo thất bại”
Nhập lại MaGV
}
else
{
Select * from DETAI where DETAI.MaGV = MaGV
}
Input : MaGV
Select * from GIAOVIEN where GIAOVIEN.MaGV = MaGV
Trang 116 Thủ tục đăng ký
Học viên muốn đăng ký một đề tài trước hết phải đăng nhập vào hệ thống, hệ thống sẽ kiểm tra đăng nhập Tiếp theo học viên tiến hành đăng ký đề tài mà mình muốn Nếu học viên này chưa đăng ký đề tài và đề tài chưa có người đăng ký thì hệ thống sẽ cho phép học viên đăng ký và lưu thong tin đăng ký vào bảng DKDETAI
7 Kiểm tra xem một học viên có được phép đăng ký một đề tài hay không
Khi một học viên muốn đăng ký một đề tài, hệ thống sẽ kiểm tra học viên này đã đăng ký đề tài nào chưa và đề tài đó đã có ai đăng ký chưa Nếu mọi điều kiện đều đảm bảo thì hệ thống chấp nhận đăng ký của học viên đó
Khả năng đáp ứng : hệ thống đáp ứng được
i. Input : MaHV, Pass
ii. if !found (HOCVIEN.MaHV = MaHV) and (HOCVIEN.Pass = Pass)
{“thông báo thất bại”, goto i}
else {“thông báo thành công”, goto iii}
iii. Input : MaDT
iv. if !found (MaDT, DETAI)
{“thông báo”, goto iii}
else {“thông báo”, goto v}
v. if found (MaHV, DKDETAI)
{“thông báo”, goto i}
else if found (MaDT, DKDETAI)
{“thông báo”, goto iii}
else {“thông báo”, goto vi}
vi. Create record in DKDETAI
Input : MaHV, MaDT
If found (MaHV, DKDETAI)
{
“thông báo tồn tại”, dừng
}
Else if found (MaDT, DKDETAI)
{
“thông báo tồn tại”, Chọn lại MaDT
}
Else
{
“thông báo thành công”, tiếp tục
}
Trang 128 Khi hai học viên A và B cùng đăng nhập vào hệ thống và đăng ký cùng một đề tài
X nhưng học viên A hoàn tất quá trình đăng ký trước, trong khi đó trên hệ thống của học viên B đề tài X vẫn chưa cập nhât đã có người đăng ký Vậy hệ thống sẽ
xử lý như thế nào?
Khi học viên A hoàn tất quá trình đăng ký thì thông tin đăng ký được lưu trữ vào bảng DKDETAI Khi học viên B hoàn tất đăng ký thì hệ thống sẽ kiểm tra trong bảng dữ liệu DKDETAI, nếu MaDT đã tồn tại trong bảng DKDETAI thì hệ thống gửi thông báo cho học viên B đề tài đã có người đăng ký
9 Học viên có hai loại : học viên quân sự và học viên dân sự với các hình thức quản
lý khác nhau
Với bảng dữ liệu HOCVIEN trên ta không thể biết được đâu là học viên quân sự, đâu là học viên dân sự Để giải quyết vấn đề này ta có 2 cách :
- Thiết kế thuộc tính MaHV chứa thông tin về loại học viên
- Trong bảng HOCVIEN thêm thuộc tính LoaiHV
Để tiện cho công tác tra cứu, quản lý và lưu trữ dữ liệu chúng ta sẽ thiết kế thuộc tính MaHV chứa thông tin về loại học viên
AB-XXXXXX : 8 ký tự
AB : Loại học viên QS : học viên quân sự
DS : học viên dân sự XXXXXX : Mã học viên
10.Khi số lượng đề tài đã được đăng ký của một giáo viên bằng số lượng đề tài tối đa
mà giáo viên đó được phép hướng dẫn thì hệ thống không cho phép học viên đăng
ký các đề tài còn lại của giáo viên đó
- Nếu số lượng đề tài đã được đăng ký của một giáo viên bằng số lượng đề tài tối đa mà giáo viên đó được phép hướng dẫn thì các đề tài còn lại sẽ không hiển thị lên danh sách đề tài khi học viên đăng ký
- Trường hợp số lượng đề tài đăng ký của giáo viên = số lượng tối đa -1 mà cùng lúc có 2 học viên truy cập hệ thống để đăng ký đề tài của giáo viên đó thì
hệ thống sẽ thông báo cho học viên đăng ký sau rằng giáo viên đó không được hướng dẫn đề tài nữa
Input : MaDT
If found (MaDT, DKDETAI)
{
“thông báo tồn tại”,Chọn lại MaDT
}
Trang 1311.Thống kê số lượng đề tài mà một giáo viên gửi lên
Các khoa, ngành muốn kiểm tra, tính số lượng đề tài gửi lên của một giáo viên nào đó để tiện cho công tác thống kê, báo cáo
12.Đếm số lượng đề tài hiện có
Người quản lý muốn tính tổng số đề tài hiện có trong danh sách để phục vụ cho công tác thống kê, báo cáo
13.Đếm số lượng học viên tham gia đăng ký đề tài
Người quản lý muốn tính số học viên tham gia đề tài cũng như số lượng đề tài được đăng ký để phục vụ cho công tác thống kê, báo cáo
14.Xét học viên đăng ký lại đề tài khác
Nếu một học viên muốn thay đổi đề tài của mình thì phải hủy bỏ đề tài đã đăng ký
và đăng ký lại đề tài mới với điều kiện thời gian đăng ký không quá 2 tháng kể từ khi đăng ký
Input : MaDT
Select MaGV from DETAI where DETAI.MaDT = MaDT
Select COUNT(MaDT) from DKDETAI where MaGV=MaGV
If (COUNT(MaDT) = Số lượng tối đa)
{
“thông báo giáo viên không được hướng dẫn đề tài nữa”
Chọn lại MaDT
}
Input : MaVG
Select COUNT(MaDT) from DETAI where DETAI.MaGV = MaGV
Select COUNT(MaDT) from DETAI
Select COUNT(MaHV) from DKDETAI
Input : MaHV, MaDT
If found( MaHV, DKDETAI)
{
If (Td/HT – Td/DK)<2 tháng
{
Update DKDETAI set DKDETAI.MaDT = MaDT Where DKDETAI.MaHV = MaHV
}
}
Trang 14IX Tài liệu tham khảo
1 Bài giảng môn thiết kế cơ sở dữ liệu của PGS.TS Đào Thanh Tĩnh.
2 Phân tích và thiết kế hệ thống quản lý kinh doanh nghiệp vụ – Ngô Trung Việt – NXB Giao Thông Vận Tải.