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 đó
MỤ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 1 HỆ 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 ! 2 II. 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 3 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 đị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ý. 4 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. 5 3. 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 6 VI. Mô hình quan hệ VII. Mô tả chi tiết các bảng 1. Bảng HOCVIEN STT Tên cột Mô tả Kiểu dữ liệu NULL 1 MaHV Mã học viên, khóa chính varchar(8) 2 Pass Mật khẩu đăng nhập hệ thống varchar(10) 3 NamNH Năm nhập học của học viên varchar(4) 2. Bảng DETAI STT Tên cột Mô tả Kiểu dữ liệu NULL 1 MaDT Mã đề tài, khóa chính varchar(8) 2 TenDT Tên đề tài varchar(200) 3 Dokho Độ khó của đề tài number 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 đề tài varchar(500) 6 MaGV Mã giáo viên hướng dẫn, varchar(8) 7 khó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 STT Tên cột Mô tả Kiểu dữ liệu NULL 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 STT Tên cột Mô tả Kiểu dữ liệu NULL 1 MaHV 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 DETAI.MaDT varchar(8) 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 STT Tên cột Mô tả Kiểu dữ liệu NULL 1 MaLV Mã lĩnh vực, khóa chính varchar(8) 2 TenLV Tên lĩnh vực varchar(30) 3 MaLVchinh Lĩnh vực chính, khóa ngoại của LINHVUC.MaLV varchar(8) 8 6. Bảng LV-GV STT Tên cột Mô tả Kiểu dữ liệu NULL 1 MaGV Mã giáo viên, khóa chính, khóa ngoại của GIAOVIEN.MaGV varchar(8) 2 MaLV 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. 9 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} 3. 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. Khả năng đáp ứng : hệ thống đáp ứng được. 10 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 . 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. 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