Mô hình liên kết thực thể

Một phần của tài liệu Đồ án tốt nghiệp lập lịch bảo vệ luận văn tốt nghiệp (Trang 30 - 67)

Chương 3. Thiết kế hệ thống

3.1. Thiết kế dữ liệu

3.1.1. Xác định các bảng dữ liệu

Với mô hình ở mức quan niệm, mặc dù nó khá dễ dàng để cho các thành phần tham gia vào hệ thống cũng như người dùng hiểu được về hệ thống, nhưng nó lại không hề dễ dàng để hệ thống quản lý tập tin và các hệ quản trị dữ liệu hiểu được. Do đó, cần có một quá trình chuyển đổi mô hình quan niệm về mặt dữ liệu thành mô hình dữ liệu logic, một mô hình gần gũi với ngôn ngữ máy tính hơn. Đây cũng chính là giai đoạn phân tích thiết kế dữ liệu mức logic.

Sau khi phân tích, các bảng dữ liệu cơ bản và các thuộc tính tối thiểu cần thiết cho hoạt động của hệ thống trong mô hình quan niệm là các bảng sau:

• Cán bộ(Mã CB, Loại CB, học hàm, học vị, thời gian rảnh, nơi CT) • Chuyên môn(Mã CM, TênCM)

• Hướng CS CB(MãCB, Mã HCS) • Đề tài (MãĐT, TênĐT)

• Hướng CS ĐT (Mã ĐT, Mã HCS)

• Học viên(Mã HV,MãĐT, Giáo viênHD, Khóa, Tình trạng, Thời gianĐKBV)

Những bảng trên mới chỉ là những thuộc tính cơ bản, chứ chưa đầy đủ, còn cần bổ sung thêm những thuộc tính và bảng dữ liệu để hoàn thiện hơn cho hệ thống. Sau khi quá trình tìm hiểu, đưa vào thêm các thuộc tính cho đầy đủ và bổ sung thêm bảng dữ liệu thứ cấp, em xin đưa ra các bảng dữ liệu như sau:

• Cán bộ(Mã CB, Tên CB, Loại CB, học hàm, học vị, Giới tính, Ngày sinh, Số ĐT, Email, nơi CT, trạng thái)

• Thời gian CB (Mã CB, Mã Đợt, Thời gian rảnh, Tham gia) • Đợt BV (Mã Đợt, Ngày BD, Ngay KT)

• Hướng CS(Mã CM, TênHCS)

• Hướng CS Cán bộ(MãCB, MãHCS) • Đề tài(MãĐT, TênĐT, Mã HCS) • Hướng CS Đề tài (Mã ĐT, Mã HCS)

• Học viên(Mã HV, Tên HV, Giới tính, Ngày sinh, địa chỉ, số ĐT, email, Trạng Thái, Ngành, Khoa, Mã ĐT, Mã Giáo viên HD, Đợt ĐK)

• Lịch BV (Mã HV, Mã đợt, CT, TK, PB1, PB2, UV, Phòng, Kíp ) • Công CB(Mã CB, SLCT, SLPB, SLTK, SLUV)

3.1.2. Mô tả các bảng dữ liệu 3.1.2.1.Bảng CanBo

1. Số hiệu : 1 2. Tên bảng: CanBo 3. Bí danh: tblCanBo 4. Mô tả thông tin các cán bộ trong cơ sở đào tạo

5. Mô tả chi tiết các trường STT Tên

trường

Ý nghĩa Kiểu dữ liệu Không null

Mô tả

1. MaCB Mã cán bộ int X Mã cán bộ

2. TenCB Tên cán bộ Nvarchar(50) -Khởi tạo giá trị null

3. LoaiCB LoaiCB bit X Nhận 2 giá trị 0,1

=1: Cán bộ trong cơ sở

=0: Cán bộ ngoài cơ sở

3. HọcHam Học hàm Nvarchar(50) VD: PGS: Phó giáo sư

4. HocVi Học vị Nvarchar(50) VD: THS: Thạc sĩ 5. NgaySinh Ngày sinh Smalldatetime VD: 22/11/1978 6. GioiTinh Giới tính Bit Nhận 2 giá trị 0 và

1 =1: Nam =0: nữ 7. SoDT Số điện thoại Nchar(50) 8. Email Địa chỉ email Nvarchar(50)

9. TrangThai Trạng thái bit X Trạng thái hiện tại của cán bộ, nhận 2 giá trị 0,1

=0: Cán bộ đã nghỉ hưu hoặc thuyên chuyển.

=1: Cán bộ vẫn đang công tác 10. NoiCT Nơi công

tác Nvarchar (max) X Cơ sở cán bộ đang công tác 6.Khóa chính: MaCB 7. Khóa ngoài

3.1.2.2. Bảng TG_CB

1. Số hiệu : 2 2. Tên bảng: TG_CB 3. Bí danh: tblTG_CB 4. Mô tả thông tin về thời gian cán bộ có thể tham gia vào các đợt bảo vệ

5. Mô tả chi tiết các trường

STT Tên trường Ý nghĩa Kiểu dữ liệu Không null Mô tả 1. MaCB Mã cán bộ int X 2. MaDot Mã đợt Nchar(6) VD: 032011: đợt tổ chức tháng 3 năm 2011

3. TG_Ranh Thời gian rảnh

Nvarchar(max) Dữ liệu nhập kiểu chuỗi, là các khoảng thời gian, hoặc ngày riêng lẻ VD: 12-15/2/2012 4 ThamGia Tham gia Nvarchar(max) Mã hóa theo kíp

mà cán bộ có thể tham gia được. VD: Cán bộ có thể tham gia từ kip 1- kip 3 (tính trung bình 1 ngày 6 kíp): 1 2 3

6.Khóa chính: 7.Khóa phụ

Số Tên trường Quan hệ với bảng

1 MaCB CanBo

2 MaDot DotBV

Thiết kế tên tệp:

Vì mỗi một đợt, thời gian tham gia của cán bộ lại thay đổi lại toàn bộ, cho nên tốt nhất là mỗi một đợt lại mở một bảng thời gian cán bộ mới, trong đó có thông

tin của cán bộ có thể tham gia trong đợt đó, như vậy sẽ thuận lợi hơn cho việc lựa chọn cán bộ để xếp vào các hội đồng.

Có thể đặt tên các tệp như sau: TG_CB_32011, TG_CB_52011: Bảng thời gian cán bộ trong đợt tháng 3 năm 2011, tháng 5 năm 2011.

3.1.2.3. Bảng DotBV

1. Số hiệu : 3 2. Tên bảng: DotBV 3. Bí danh: tblDotBV 4. Mô tả thông tin các đợt bảo vệ

5. Mô tả chi tiết các trường

STT Tên trường Ý nghĩa Kiểu dữ liệu Không null

Mô tả

1. MaDot Mã đợt Nchar(6) VD: 032011: đợt tổ

chức tháng 3 năm 2011

2. NgayBD Ngày bắt đầu datetime Ngày bắt đầu của đợt (khoảng thời gian nhà trường dự định sẽ tổ chức bảo vệ trong đó chứ không phải ngày thực sự tổ chức.) 4 NgayKT Ngày kết

thúc

datetime Ngày kết thúc của đợt

6.Khóa chính: MaDot 7.Khóa phụ

3.1.2.4. Bảng HCS

1. Số hiệu : 4 2. Tên bảng: HCS 3. Bí danh: tblHCS 4. Mô tả thông tin các hướng chuyên sâu

5. Mô tả chi tiết các trường

STT Tên trường Ý nghĩa Kiểu dữ liệu Không null

Mô tả 1. MaHCS Mã hướng

chuyên sâu

int X

2. TenHCS Tên hướng chuyên sâu

Nvarchar(50) X VD: xử lý ảnh 6.Khóa chính: MaHCS

7. Khóa ngoài

3.1.2.5. Bảng HCS_CB

1. Số hiệu : 5 2. Tên bảng: HCS_CB 3. Bí danh: tblHCS_CB

4. Mô tả thông tin các hướng chuyên sâu của cán bộ khoa học 5. Mô tả chi tiết các trường

STT Tên trường Ý nghĩa Kiểu dữ liệu Không null

Mô tả

1. MaCB Mã cán bộ int X -Tương ứng với

MaCB bên bảng CB - Một cán bộ có thể có nhiều hướng chuyên sâu 2. MaHCS Mã hướng chuyên sâu

int X -Tương ứng với

MaHCS bên bảng CM

6.Khóa chính: MaCB, MaCM

Số Tên trường Quan hệ với bảng

1 MaCB CanBo

3.1.2.6. Bảng DeTai

1. Số hiệu : 6 2. Tên bảng: DeTai 3. Bí danh: tblDeTai 4. Mô tả thông tin các chuyên môn cũng như hướng chuyên sâu của cán bộ khoa học

5. Mô tả chi tiết các trường STT Tên

trường

Ý nghĩa Kiểu dữ liệu Không null

Mô tả

1. MaDT Mã đề tài int X

2. TenDT Tên đề tài Nvarchar(max) 6.Khóa chính: MaDT

7.Khóa phụ

Số Tên trường Quan hệ với bảng

3.1.2.7. Bảng HCS_DT

1. Số hiệu : 7 2. Tên bảng: HCS_DT 3. Bí danh: tblHCS_DT 4. Mô tả thông tin các hướng chuyên sâu của các đề tài

5. Mô tả chi tiết các trường

STT Tên trường Ý nghĩa Kiểu dữ liệu Không null

Mô tả

1. MaDT Mã đề tài int X Một đề tài có thể có

nhiều hướng chuyên sâu

2. MaHCS Mã hướng chuyên sâu

int X

6.Khóa chính: MaDT, MaHCS

Số Tên trường Quan hệ với bảng

3.1.2.8. Bảng HocVien

1. Số hiệu : 8 2. Tên bảng: HocVien 3. Bí danh: tblHocVien 4. Mô tả thông tin Học viên

5. Mô tả chi tiết các trường

null 1. MaHV Mã Học viên int X 2. TenSV Tên Học viên Nvarchar(50) VD: Nguyễn Thị Phượng

3. MaDT Mã đề tài Nchar(5) -Tương ứng với

MaDT trong bảng DeTai -VD: DT001 4. MaGVHD Mã giáo viên hướng dẫn

Nchar(6) -Tương ứng với MaCB trong bảng CanBo

-VD: CB0001 5. NgaySinh Ngày sinh Smalldatetime VD: 22/11/1989 6. GioiTinh Giới tính Bit Nhận 2 giá trị 0 và 1

=1: Nam =0: nữ 7. SoDT Số điện thoại Nchar(20) VD: 043938474 8. Email Địa chỉ email Nvarchar(50) VD: bonghoa@yahoo.com

9. Khoa Khóa Nchar(10) X Khóa của Học viên

khi vào trường VD: K06

10. TrangThai Trạng thái int X Trạng thái của Học viên, nhận các giá trị 0,1,2. =1: Học viên đã tốt nghiệp =0: Học viên còn trong trường =2: Học viên không

đủ điều kiện tốt

nghiệp, hoặc học viên quá thời gian bảo vệ cho phép. 11. Dot_DK Đợt đăng ký bảo vệ Nchar(10) Mã đợt đăng ký 6.Khóa chính: MaHV 7. Khóa ngoài

Số Tên trường Quan hệ với bảng

1 MaDT DeTai

2 MaGVHD CanBo

Thiết kế tệp Học viên:

Học viên khi vào trường sẽ có hồ sơ học viên riêng cho mỗi học viên, sau một quá trình lâu dài học tập để đủ điều kiện mới được nhận đề tài luận văn tốt nghiệp và giáo viên hướng dẫn để làm và đăng ký bảo vệ. Chỉ có những học viên có đủ điều kiện mới được nhận đề tài, và phải hoàn thành đề tài đúng thời gian quy định và đáp ứng yêu cầu mới được bảo vệ luận văn. Do đó, chỉ có những Học viên này mới có ý nghĩa trong hệ thống lập lịch.

Mặt khác, do không phải Học viên nào đăng ký cũng được bảo vệ mà chỉ có những Học viên đáp ứng đủ điều kiện mới được bảo vệ. Do đó, sẽ có những Học viên đã quá hạn nộp mà vẫn chưa xong luận văn, và không được phép bảo vệ. Như vậy, những Học viên này cần được đưa sang một bảng dữ liệu khác và nếu như Học viên đó đăng ký bảo vệ trong đợt sau và trong giới hạn Học viên được phép ở lại trường thì những Học viên này lại trở nên có ý nghĩa trở lại với hệ thống xếp lịch.

Ý nghĩa các bảng:

• Bảng Học viên 1: Chứa thông tin chung của các Học viên, những Học viên này đang vẫn đang học tập tại trường và chưa học xong các môn để có thể nhận luận văn tốt nghiệp.

• Bảng Học viên 2: Sau khi Học viên nhận đề tài, giáo viên hướng dẫn và đăng ký đợt bảo vệ xong thì có thể chuyển Học viên sang bảng HocVien2. Việc xếp lịch sẽ được thực hiện ở trên bảng HocVien2 này.

• Bảng Học viên 3: Bảng này không chỉ chứa thông tin của học viên đã bảo vệ xong mà còn chứa thông tin của Học viên đã tốt nghiệp rồi nhưng chưa hết thời gian khiếu nại và các học viên đã bảo vệ nhưng không đủ điểm để được tốt nghiệp hoặc là học viên đã đăng ký bảo vệ nhưng không đủ điều kiện để bảo vệ. Nếu những học viên này đăng ký bảo vệ lại thì sẽ được chuyển trở lại bảng HocVien2 để xếp lịch bảo vệ.

3.1.1.9. Bảng Lịch BV

1. Số hiệu : 9 2. Tên bảng: LichBV 3. Bí danh: tblLichBV 4. Bảng dữ liệu thứ cấp mô tả thông tin lịch bảo vệ của Học viên 5. Mô tả chi tiết các trường

STT Tên trường

Ý nghĩa Kiểu dữ liệu Không null

Mô tả

1. MaHV Mã Học

viên

int X -Tương ứng với

MaHV bên bảng HV

2. MaDot Mã đợt Nchar(5) X -Tướng ứng với MaDot trong bảng Dot_BV 3. CT Chủ tịch int -Là mã cán bộ trong bảng cán bộ 4. TK Thư ký int -Là mã cán bộ trong bảng cán bộ 5. PB1 Phản biện 1 int -Là mã cán bộ trong bảng cán bộ 6. PB2 Phản biện 2 int -Là mã cán bộ trong bảng cán bộ

7. UV Ủy viên int -Là mã cán bộ

trong bảng cán bộ 8. Phong Phòng Nchar(5) X -Phòng tổ chức bảo

vệ

VD: H7301

9. Kip Kíp int X Mã hóa 1 ngày 6

kíp, 3 ngày 18 kíp, kí hiệu thành 1-18 6.Khóa chính:

7. Khóa ngoài

Số Tên trường Quan hệ với bảng

2. MaDot Dot_BV 3. CT CanBo 4. TK CanBo 5. PB1 CanBo 6. PB2 CanBo 7. UV CanBo

Thiết kế tệp lịch: Mỗi một đợt bảo vệ thì mở một file lịch mới, tiến hành

xếp lịch trên file này.

Đặt tên: Lịch +Dot+Tháng tổ chức

3.1.1.10. Bảng CongCB

1. Số hiệu : 10 2. Tên bảng: CongCB 3. Bí danh: tblCongCB 4.Bảng dữ liệu thứ cấp mô tả công cán bộ

5. Mô tả chi tiết các trường STT Tên

trường

Ý nghĩa Kiểu dữ liệu Không null

Mô tả

1. MaCB Mã cán bộ int X -Tương ứng với

Mã cán bộ của bảng Cán bộ 2. SLCT Số lần phản biện int -Số lần cán bộ làm chủ tịch 3. SLPB Số lần phản biện int -Số lần cán bộ làm phản biện 4. SLTK Số lần thư ký int Số lần cán bộ làm thư ký 5 SLUV Số lần ủy viên int Số lần cán bộ làm ủy viên

6 MaDot Mã đợt Nchar(6) Mã của đợt bảo vệ

6.Khóa phụ: MaCB

Số Tên trường Quan hệ với bảng

1 MaCB CanBo

Thiết kế tệp CongCB: Mỗi một đợt bảo vệ thì mở một file công cán bộ mới, để

tính công cho cán bộ trong đợt đó này. Đặt tên: Cong +Dot+Tháng tổ chức

VD: Cong_Dot012012, Cong_Dot022012, Cong_Dot032012…

3.2. Thiết kế các tiến trình

3.2.1. Tiến trình tính thời gian tổ chức

Đầu vào:

- Đợt.Mã đợt

Đầu ra: 3 ngày liên tiếp nằm trong khoảng thời gian ngày bắt đầu và ngày kết thúc của đợt mà có nhiều cán bộ tham gia được nhất.

Cách thực hiện:

• Xây dựng hàm tách chuỗi đưa thời gian rảnh dạng chuỗi (khoảng thời gian, ví dụ: 12-15/12/2012) về dạng ngày tháng (12/12/2012, 13/12/2012, 14/12/2012, 15/122012).

• Tạo mảng chứa các bộ đếm cho các ngày, số lượng phần tử của mảng =ngày kết thúc - ngày bắt đầu + 1

• Duyệt lần lượt qua từng bản ghi của giáo viên, với mỗi bản ghi có trường thời gian rảnh khác rỗng.

Duyệt qua từng ngày trong khoảng thời gian đó.

Xét xem ngày đó có nằm trong khoảng từ ngày bắt đầu đến ngày kết thúc không, nếu có, tăng biến đếm lên 1.

• Quét từ ngày bắt đầu đến ngày kết thúc bộ 3 ngày liên tiếp sao cho tổng bộ đếm là lớn nhất.

Dim date_range As Integer

date_range = DateDiff("d", begin_date, end_date) Dim date_count() As Integer

ReDim date_count(0 To date_range) For i = 0 To date_range

date_count(i) = 0 Next i

Dim date_coll As New Collection If Not IsEmpty(c) Then

Dim free_time As Collection

Set free_time = GetDatesMutiline(c.text) For Each t In free_time

If begin_date <= t And t <= end_date Then Dim index As Integer

index = DateDiff("d", begin_date, t)

date_count(index) = date_count(index) + 1 End If

Next End If Next i

Dim max, pos As Integer max = 0

pos = -1

For i = 0 To date_range - 2 Step 2

If date_count(i) + date_count(i + 1) + date_count(i + 2) > max Then max = date_count(i) + date_count(i + 1) + date_count(i + 2) pos = i

End If Next i

3.2.2.Tiến trình xếp lịch

Đầu vào: Lịch.Mã Học viên, Cán bộ. Mã cán bộ, Cán bộ. hướng chuyên sâu, kíp Đầu ra: Sau khi lựa chọn Học viên, hệ thống hiện ra danh sách các cán bộ thỏa mãn các ràng buộc:

• Có một trong những kíp đăng ký trùng với kíp bảo vệ của Học viên đó. • Có hướng chuyên sâu phù hợp với hướng chuyên sâu của đề tài.

• Không phải giáo viên hướng dẫn của Học viên Cách thực hiện:

Select * from Cán bộ where Mã CB in

( select SV_ Hướng CS. Mã HV , GV_ Hướng CS. Mã CB from HV_Hướng CS, CB_Hướng CS

Where HV_ Hướng CS.MaHCS = CB_ Hướng CS.MaHCS & kip like %+ ‘kip’ +%

)

3.2.3.Kiểm tra trùng lịch

Đầu vào: Lịch, Mã HV, Lịch.Mã CB, kíp

Đầu ra: Kiểm tra xem với những cán bộ cùng kíp có bị trùng lịch không? Cách thực hiện:

• Sau khi chọn Học viên, chọn tiếp cán bộ như tiến trình số 2, để ra danh sách các cán bộ có thể chọn.

• Nếu giá trị chọn trong list trùng với giá trị cán bộ của cùng kíp đã được chọn trước đó, hiện thông báo bị trùng.

For i=0 to 4 Dim j as integer For j=0 to 3

Set curcell = startcell.offset(i, j*3) If curcell.text = listbox2.text Msgbox “Giatribitrung” End

3.2.4. Tiến trình tính công cán bộ

Đầu vào: Cán bộ. Mã CB, nhiệm vụ (chủ tịch, phản biện, thư ký, ủy viên)

Đầu ra: Công của từng cán bộ, cán bộ đó đã làm chủ tịch, phản biện, thư ký, ủy viên của bao nhiêu hội đồng.

Cách thực hiện:

- Duyệt các tên cán bộ trên lịch được xếp, lấy thông tin về mã cán bộ. - Từ vị trí (dòng, cột) của cán bộ trên giao diện lịch, tìm ra nhiệm vụ của

cán bộ đó trong hội đồng (chủ tịch, phản biện, thư ký, ủy viên) - Với mỗi lần cán bộ xuất hiện trên lịch, tăng biến đếm của nhiệm vụ

3.3.Xây dựng chương trình

3.3.1.Công cụ

Hệ thống được phát triển trên Microsoft excel và sử dụng ngôn ngữ lập trình VBA.

3.3.1.1.Giới thiệu về ngôn ngữ lập trình VBA Tổng quan về VBA

VBA là ngôn ngữ viết tắt của Visual Basic for Application.

Một phần của tài liệu Đồ án tốt nghiệp lập lịch bảo vệ luận văn tốt nghiệp (Trang 30 - 67)

Tải bản đầy đủ (DOC)

(67 trang)
w