M C L C

2       L I NÓI Đ U ..........................................................................................................................................................

1

L I NÓI Đ U

Hiện nay, công nghệ  thông tin được xem là một ngành mũi nhọn của  các quốc gia, đặc biệt là các quốc gia đang phát triển, tiến hành công nghiệp  hóa và hiện đại hoá như nước ta. Sự bùng nổ thông tin và sự phát triển mạnh  mẽ của công nghệ kỹ thuật số, yêu cầu muốn phát triển thì phải tin học hoá  tất cả các ngành, các lĩnh vực.

ả ụ ố ọ ư ệ Cùng với sự phát triển nhanh chóng về phần cứng máy tính, các phần  mềm ngày càng trở nên đa dạng, phong phú, hoàn thiện hơn và hỗ trợ hiệu  quả cho con người. Các phần mềm hiện nay ngày càng mô phỏng được rất  nhiều nghiệp vụ khó khăn, hỗ trợ cho người dùng thuận tiện sử dụng, thời  gian xử lý nhanh chóng, và một số nghiệp vụ được tự động hoá cao. ể Ví d  nh  vi c qu n lý đi m s  h c sinh trong tr

ủ ệ

2

ạ ọ   ường trung đ i h c. Nếu không có sự  hỗ  trợ  của tin học, việc quản lý này phải cần khá nhiều  người, chia thành nhiều khâu, mới có thể  quản lý được toàn bộ  hồ  sơ  học  sinh (thông tin, điểm số, học bạ,…), lớp học (sỉ số, giáo viên ch  nhi m,…),   ểm trung bình, xếp loại học lực  giáo viên,… cũng như các nghiệp v  tính đi cho học sinh toàn trường (số lượng học sinh có thể lên đến hàng ngàn). Các  công việc này đòi hỏi nhiều thời gian và công sức, mà sự chính xác và hiệu  quả không cao, vì đa số đều làm bằng thủ công rất ít tự động. Một số nghiệp  vụ như tra cứu, thống kê, và hiệu chỉnh thông tin khá vất vả. Ngoài ra còn có  một số  khó khăn về  vấn đề  lưu trữ  khá đồ  sộ, dễ  bị  thất lạc, tốn kém,…  Trong khi đó, các nghiệp vụ  này hoàn toàn có thể  tin học hoá một cách dễ  dàng. Với sự giúp đỡ của tin học, việc quản lý học vụ sẽ trở nên đơn giản,  thuận tiện, nhanh chóng và hiệu quả hơn rất nhiều.

ươ

Ế Ệ Ố

Ch

ng 1: PHÂN TÍCH VÀ THI T K  H  TH NG

Ớ Ệ Ờ 1.1 L I GI I THI U

ự ủ ữ ể ầ ạ Trong nh ng năm g n đây s  phát tri n c a ngành IT đã đem l ữ   i nh ng

ự ệ ể ớ ế ươ thành t u to l n trong vi c phát tri n kinh t ữ .   Nh ng ch ọ   ng trình tin h c

ứ ủ ụ ề ề ệ ướ ấ ng d ng ngày càng nhi u, r t nhi u công vi c th  công tr c đây nay đã

ượ ử ụ ề ể ằ ầ ả đ ứ   c s  ly b ng các ph n m m chuyên d ng đã gi m đáng k  công s c,

ề ứ ụ ứ ể ầ ộ nhanh chóng và chính xác.   Đ  có m t ph n m m  ng d ng đáp  ng đ ượ   c

ữ ầ ườ ả ế ệ ặ yêu c u công vi c đ t ra thì nh ng ng ọ i làm tin h c ph i bi t phân tích thi ế   t

ệ ủ ủ ươ ể ừ ự ộ ế ệ ố k  h  th ng làm vi c c a c a ch ng trình đ  t ầ    đó xây d ng nên m t ph n

ề ứ ụ ả ươ ữ ậ ằ m n  ng  d ng qu n lý ch ng  trình  đó b ng ngôn ng  l p trình nào  đó

ữ ươ ề ứ ụ ầ ọ nh ng ch ng trình, ph n m m  ng d ng đóng vai trò quan tr ng trong lĩnh

ụ ỗ ợ ắ ự ư ữ ể ả ầ ế   ự v c qu n lý, nó là nh ng công c  h  tr  đ c l c và h u nh  không th  thi u

ậ ợ ứ ủ ấ ằ ữ ệ ấ ầ nh m đáp  ng đ y đ  nh t thu n l ả   ỏ ủ i nh t nh ng đòi h i c a công vi c qu n

ụ ợ ữ ữ ẵ ờ ầ   lý nh  nh ng công c  tr  giúp có s n, access hay SQL sever la nh ng ph n

ề ượ ứ ụ ả ộ ư ậ m m nh  v y nó đ ữ   c  ng d ng r ng rãi trong công tác qu n lý không nh ng

ữ ậ ế ạ ả ộ ộ th  nó con là m t ngôn ng  l p trình khá m nh giúp cán b  qu n lý có th ể

ế ươ ơ ơ ữ ệ ể ử ụ ả ế ộ vi ữ t nh ng ch ng trình đ  s  s ng c  s  d  li u hay gi i quy t m t yêu

ụ ữ ầ ầ ợ ề ứ ầ c u nào đó, nh ng ph n m n  ng d ng này đã ph n nào tr giúp các nhà

ậ ợ ả ở ờ ớ ữ ị qu n lý tr  lên nhanh chóng, thu n l i, chính xác và k p th i v i nh ng tính

ự ế ẵ ớ năng có s n sát v i th c t ả  qu n lý .

ươ ể ả ộ ươ ượ Ch ng trình qu n lý đi m sinh viên là m t ch ng trình đ c xây

ỏ ặ ủ ư ứ ữ ằ ả ậ   ự d ng nh m đáp  ng nh ng đòi h i đ t ra c a quá trình qu n lý nh    nh p

ế ề ệ ấ ố thong tin sinh viên, tìm ki m, th ng kê, in báo cáo và r t nhi u công vi c khác

ệ ố ệ ậ ộ ộ m t cách nhanh chóng và thu n ti n, chính xác m t cách h  th ng. Trong

ươ ề ứ ụ ầ ươ ứ ch ng trình ph n m n  ng d ng này thì ch ng trình nghiên c u phân tích

ế ế ệ ố ệ ọ thi ấ t k  h  th ng đóng vai trò r t quan tr ng trong vi c thi ế ế ươ t k  ch

ng trình 3

ể ể ề ả ầ ượ ườ ậ ph n m n, nhìn vào b n phân tích ta có th  hi u đ c ng ố   i l p trình mu n

ể ượ ự ạ ộ ủ ệ ố làm gì, hi u đ c s  ho t đ ng c a h  th ng.

ọ ậ ứ ạ ườ ờ ứ ằ Trong th i gian h c t p, nghiên c u t i tr ồ   ế ng, b ng ki n th c đ ng

ờ ượ ự ỡ ệ ầ ặ ệ th i đ c s  giúp đ  nhi t tình th y cô giáo trong khoa CNTT đ c bi t là Cô

ỡ ố ậ ọ giáo  đã giúp đ  nhóm sinh viên chúng em hoàn thành t t bài t p môn h c, bài

ộ ươ ề ứ ế ể ầ ả ự ậ t p xây d ng m t ch ụ ng trình ph n m n  ng d ng “qu n lý k t đi m sinh

ứ ư ệ ộ ế viên khoa CNTT”. Nh ng do trình đ  ki n th c và kinh nghi m còn non kém

ế ề ệ ả ạ ố ế   tài li u tham kh o còn thi u th n cho nên trong bài còn có nhi u h n ch ,

ế ầ ạ chúng em mong th y cô giáo cùng các b n đóng góp ý ki n. Chúng em xin

ả ơ chân thành c m  n!

Ả Ọ Ậ Ệ Ố Ế Ả 1.2 PHÂN TÍCH H  TH NG QU N LÝ K T QU  H C T P SINH

VIÊN

ủ ệ ố ự ạ ể ả 1.2.1 Th c tr ng c a h  th ng qu n lý đi m (qld)

ượ ự ả ươ ủ c qu n lý d a trên ph ng pháp th  công. Đi mể  thi đ

ủ ừ ể ượ ư ữ ằ ổ c ghi chép và l u d  b ng s  sách. + Đi m thi c a t ng sinh viên đ

ể ề ệ ả ả ằ + Qu n lý đi m, thông tin v  sinh viên qu n lý b ng vi c ghi chép và

ể      ki m kê.

ủ ể ể ả ậ ấ ằ       + Qu n lý nh p đi m, xu t đi m b ng cách ghi chép th  công, sinh viên

ệ ố ủ ể ế ằ ố mu n xem đi m b ng vi c đ i chi u th  công

ư ạ ọ ơ ế ể       + Ch a có c  ch  ki m tra b n đ c

ượ Nh ể c đi m:

ố ấ ứ ề ờ + T n r t nhi u th i gian và công s c.

ễ ầ ẫ + D  nh m l n, sai sót .

ể ả + Khó ki m tra qu n lý.

ệ ả ấ ấ + Hi u qu  năng su t th p.

ả ử ổ ạ ơ ấ ệ ố ả ả ầ ế Do đó h  th ng qu n lý k t qu  thi c n ph i s a đ i l ạ   ả i c  c u qu n lý ho t

ế ừ ệ ằ ả ọ ả ể ễ ộ đ ng nh m nâng cao hi u qu  đ  d  qu n lý đ n t ng h c sinh.

4

ả Gi i pháp:

ầ ổ ứ ạ ơ ấ ủ ả ạ + C n t ằ   ế ộ ố i c  c u qu n lý, thay th  m t s  công đo n th  công b ng ch c l

ự ợ ủ ọ ươ ề ứ ụ ầ ờ “tin h c hoá hoá” nh  có   s  tr  c a các ch ng trình, ph n m m  ng d ng

ữ ệ ể ế ậ ầ ố ượ ử    + Vi c nh p đi m, tìm ki m, s a ch a, báo cáo, th ng kê c n đ ử   c x  lý

ờ nh  máy tính

ư ầ + Đ a ra máy in khi có yêu c u

ữ ệ ồ ượ ư ể ử ồ   c đ a vào máy tính đ  x  lý, bao g m

ề ể ữ ệ Các d  li u đ u vào: ầ  D  li u đ u vào là ngu n thông tin đ các thông tin sau :   + thông tin sinh viên, thông tin v  đi m

ế ầ   + Các yêu c u tìm ki m

ữ ệ ữ ệ ầ ầ ử ồ D  li u đ u ra:  D  li u đ u ra là các thông tin sau khi x  lý bao g m các thông tin sau:

ể ả + B ng danh sách đi m

ả ố + B ng th ng kê báo cáo.

H  sồ ơ

ừ ự ơ ồ ể ạ T  th c tr ng trên, chúng ta có s  đ  luân chuy n thông tin:

Đi m thi

ư ồ ơ Sinh viên L u h  s

B ng đi m

ệ ố H  th ng  ọ ả qu n lý h c  ậ t p sinh viên

ư ể L u đi m

ọ ậ ơ ồ ể ả ủ ệ ố S  đ  luân chuy n thông tin c a h  th ng qu n lý h c t p sinh viên

ồ ơ ư ể ớ ọ Sau khi l u h  s  sinh viên v i các môn h c và có đi m các môn thi,

ủ ừ ụ ế ể ọ phòng giáo v  ti n hành vào đi m c a t ng môn h c.

5

ẽ ươ ị ể ế ỗ Sinh viên s  đ ố ớ ng nhiên b  đi m 0 đ i v i m i môn thi n u:

ự + Không d  thi, xin hoãn thi.

ệ ộ ượ ọ ườ ượ ộ ố ỉ ọ + Không thu c di n đ c h c hai tr ng, đ c ngh  h c m t s  môn mà

ố ờ ủ ọ ầ ỉ ngh  quá 25% s  gi c a h c ph n (dù có phép hay không có phép).

ể ể ẽ Đi m thi s  tính theo thang đi m 10.

ế ẽ ượ ể ổ ớ ố ơ ể ằ Đi m t ng k t s  đ ị ọ   c tính b ng đi m các môn nhân v i s  đ n v  h c

ươ ứ ố ơ ị ọ ổ trình t ng  ng và chia cho t ng s  đ n v  h c trình.

ể ự ể ể ầ ọ ơ ữ   Sinh viên có th  d  thi các h c ph n tích đ  có đi m cao h n vào nh ng

ọ ạ ứ ạ ặ ế ỳ k  thi chính th c ti p theo.  Sau khi h c l i hay thi l ể   i ho c thi nâng đi m,

ớ ẽ ượ ể ổ ấ ủ ừ ể ế đi m t ng k t m i s  đ c tính theo đi m cao nh t c a t ng môn.

ả ọ ạ ữ ể ạ ạ Sinh viên ph i h c l i nh ng môn có đi m thi l i < 5 và thi l ữ   i nh ng

ấ ủ ể ể ầ ầ ớ ờ ườ môn có đi m thi l n đ u < 5 vào th i đi m s m nh t c a nhà tr ng.

ả ọ ạ ế ộ ọ ơ ở ế ầ ầ ọ N u ph i h c l i m t h c ph n làm c  s  cho các h c ph n ti p theo

ượ ọ ự ế ế ầ ọ sau, sinh viên không đ c h c và d  thi các h c ph n ti p sau n u nhà tr ườ   ng

không cho phép.

ỗ ọ ỳ ẽ ế ưở ỷ ậ ế Sau m i h c k  các khoa s  ti n hành xét khen th ạ   ng/ k  lu t, x p lo i

cho sinh viên.

ạ ọ ậ ế ­ X p lo i h c t p:

ạ ấ ắ ế 9. 00 ­> 10. 00 x p lo i Xu t s c

ế ạ ỏ 8. 00 ­> 8. 99 x p lo i Gi i

ế ạ 7. 00 ­> 7. 99 x p lo i Khá

ế ạ 6. 00 ­> 6. 99 x p lo i Trung bình ­ Khá

ạ ế 5. 00 ­> 5. 99 x p lo i Trung bình

ế ế ạ < 5  x p lo i Y u

ạ ọ ổ ­ Xét lo i h c b ng:

ể ạ ạ ừ ở + Lo i 1: Đ t đi m trung bình t 8. 00 tr  lên và không có môn nào có

6

ướ ể đi m d i 7.

ể ạ ạ ừ + Lo i 2: Đ t đi m trung bình t 7. 00 ­> 7. 99 và không có môn nào có

7

ướ ể đi m d i 6.

ể ồ ứ ấ 1.2.2 Bi u đ  phân c p ch c năng:

ể Qu n lý đi m sinh viên

QL Môn h cọ

QL Sinh viên

QL Đi mể

ố Th ng kê,  báo cáo

Thêm môn h cọ

Thêm sinh viên

Nh p đi m

ỗ ầ ọ

DSSV đ  l n 1  ớ theo l p, h c  ỳ k , môn

S a đi m

ỗ ầ ọ

ử S a thông tin môn h cọ

ử S a thông tin sinh viên

DSSV đ  l n 2  ớ theo l p, h c  ỳ k , môn

Xóa môn h cọ

Xóa sinh viên

Tính đi mể

ư DSSV l u ban  ớ theo l p, theo  năm h cọ

ọ ỳ

c ượ DSSV đ ọ ổ h c b ng theo  ớ l p, h c k

ệ ố

ủ ừ ả ứ Ý nghĩa c a t ng ch c năng trong h  th ng:  Qu n lý môn h c ọ

­  Có các ch c năng thêm, s a,xoá các môn h c theo yêu c u c a nhà

ầ ủ ử ứ ọ

ả qu n lý.

ỗ ỳ ọ ề ấ ọ ả   ­  Cung c p thông tin  v  các môn  h c trong m i k  h c cho nhà qu n

lý, giáo viên và sinh viên khi có yêu c u .ầ

   Qu n lý sinh viên

ử ứ ầ   ­   Có các ch c năng thêm, s a, xoá thông tin sinh viên theo yêu c u

ả ủ c a nhà qu n lý

ề ấ ả ­ Cung c p thông tin v   sinh viên cho nhà qu n lý,giáo viên và sinh

8

viên khi có yêu c u.ầ

   Qu n lý đi m

ể ả

­ Có ch c năng c p nh t đi m cho sinh viên sau m i k  h c.

ỗ ỳ ọ ứ ể ậ ậ

ự ể ệ ả ầ ­ Th c hi n phúc kh o đi m cho sinh viên khi sinh viên yêu c u.

­ Báo cáo, th ng kê  đi m c a sinh viên cho nhà qu n lý, giáo viên và

ủ ể ả ố

sinh viên khi có yêu c u.ầ

   Th ng kê,báo cáo

­  Th ng kê danh sách sinh viên đ  l n 1, l n 2, t

ỗ ầ ầ ố ỷ ệ  l ỗ ầ    sinh viên đ  l n

ỗ ỳ ọ ừ ầ ớ ọ ọ 1, l n 2 theo t ng l p h c, môn h c sau m i k  h c.

­  Th ng kê danh sách sinh viên tr

ố ượ ầ ầ t l n 1, l n 2(h c l ọ ạ ỷ ệ i),t l sinh

ượ ầ ỗ ỳ ọ ừ ầ ớ ọ viên tr ọ t l n 1, l n 2 theo t ng l p h c, môn h c sau m i k  h c.

­  Th ng kê danh sách  sinh viên b  l u ban, t

ị ư ố ị ư ỷ ệ  l sinh viên b  l u ban

ỗ ọ sau m i năm h c.

­  Th ng kê danh sách sinh viên đ t h c b ng, t

ạ ọ ố ổ ỷ ệ  l ạ ọ    sinh viên đ t h c

ỗ ỳ ọ ổ b ng sau m i k  h c.

ẽ ử ụ ứ ủ ể ố ả   ­  Trong quá trình th ng kê s  s  d ng ch c năng tính đi m c a qu n

9

lý đi m.ể

ể ồ ồ ữ ệ 1.2.3 Bi u đ  lu ng d  li u:

ơ ồ ồ ứ ả ữ ệ 1: S  đ  lu ng d  li u m c khung c nh

Giáo viên

ả Qu n lý  ể đi m sinh viên Nhà qu n ả lý

10

Sinh viên

ộ ậ ự ộ ạ ể 1.2.4 Phân lo i các thu c tính vào m t t p th c th

ể ế ự ồ ệ ố ế ầ

ể ồ ể t cho h  th ng ,các ki u  ộ ộ  các tác nhân ngoài , các lu ng thông tin n i b

ự ặ

ể   Ki u th c th  liên k t là ngu n thông tin c n thi ể ệ ở ấ th c th  có th  xu t  hi n  ữ ệ ho c các kho d  li u ể ọ ồ ự ể Ki u th c th  Môn H c g m MaMH, TenMH, So Trinh.

ự ể ể ể Ki u Th c Th  Đi m: MaSV, MaMH, Hoc Ky,Diem lan 1, Diem lan 2,

Hoc lai.

ự ể ể Ki u th c th  HeDT: Ma HDT, Ten HDT.

ể ớ ự ể ồ Ki u th c th  L p g m Ma Lop, Ten Lop,Ma Khoa, Ma HDT, Ma Khoa

Hoc.

ự ể ể ồ ớ Ki u th c th  Sinh Viên g m MaSV, TenSV, Ngày Sinh, gi i tính, Que

quan, ma lop.

ể ọ ự ể ỳ Ki u th c th  H c K : Ma HK, Ten HK.

ự ể ể ọ Ki u th c th  Khóa H c: Ma Khoa Hoc, Ten Khoa Hoc.

11

ự ể ể ồ Ki u th c th  Khoa g m: Ma Khoa,Ten Khoa, Dia Chi, Dien Thoai.

ĐI MỂ

MÔN H CỌ

mã MH tên MH ố s  trình

mã sinh viên mã MH  h c kọ ỳ ầ ể đi m l n 1 ầ ể đi m l n 2

SINH VIÊN

L PỚ

mã sinh viên tên sinh viên gi i tính ngày sinh Que Quan mã l pớ

KHOA

Khóa h c ọ

mã l pớ tên l pớ mã khoa mã khóa h cọ ệ mã h  đào  t oạ

mã khoa tên khoa ỉ ị đ a ch ạ ệ đi n tho i

mã khóa h cọ tên khóa h cọ

H  ĐÀO T O

ệ mã h  đào  t oạ

ệ tên h  đào  t oạ

12

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

ể ồ ấ ệ ữ ệ 1.2.6  Bi u đ  c u trúc d  li u theo mô hình quan h  :

(cid:0) Danh   sách   các   thu c   tính:   MaHDT,   TenHDT,   MaKhoa,   TenKhoa,

MaKhoaHoc, TenKhoaHoc, MaLop, TenLop, MaSV, TenSV, MaMH, TenMH,

MaHocKy, TenHocKy, Diem.

ặ ộ (cid:0) Danh sách các thu c tính l p: MaSV, TenSV, Diem.

ụ ộ (cid:0) Danh sách các ph  thu c hàm:

→ MaSV TenSV, MaLop.

→ MaLop TenLop, MaKhoa, MaKhoaHoc, MaHDT.

→ MaSV, MaMH  Diem.

→ MaKhoa TenKhoa.

→ MaKhoaHoc TenKhoaHoc.

→ MaHDT TenHDT.

13

→ MaMH TenMH.

ướ Các B ẩ c chu n hóa

ạ ạ ạ D ng 1NF D ng 2NF D ng 3NF Tên b ngả

DS các thu cộ   tính

MaLop MaLop MaLop MaLop

TenLop TenLop TenLop TenLop

MaHDT MaHDT MaHDT MaHDT Lop

TenHDT TenHDT TenHDT MaKhoa

MaKhoaHoc MaKhoaHoc MaKhoaHoc

MaKhoaHoc MaHDT HeDT TenKhoaHoc TenKhoaHoc TenKhoaHoc

TenHDT MaKhoa MaKhoa MaKhoa

MaKhoa Khoa TenKhoa TenKhoa TenKhoa

MaMH MaMH MaMH TenKhoa MaKhoaHoc KhoaHoc TenMH TenMH TenMH

* MaSV TenKhoaHoc MaSV * TenSV TenSV SinhVien *  Diem

MaLop MaMH MonHoc

MaSV MaSV TenMH MaSV

TenSV MaMH

TenSV MaSV MaMH DiemLan1

MaMH DiemLan1 DiemLan2 Diem

DiemLan1 DiemLan2

14

DiemLan2

ử ụ ư ể ậ ẩ ạ S  d ng thu t toán phân rã đ  chu n hóa thành d ng 3NF nh  sau:

ượ ồ ụ ệ ộ Ta có l c đ  quan h  R(ABCDEFGHIJKLM) có các ph  thu c hàm là

F(K→AL, A→BCEF, IK→M, G→H, E→F, C→D, I→J)

ủ ố ể ủ B1: Tìm ph  t i ti u c a F

F= { K→AL, A→BCEF, IK→M, G→H, E→F, C→D, I→J}

ỉ ứ ụ ế ặ ả ộ ộ ủ Đ t G=F, Tách các ph  thu c hàm c a G có v  ph i ch  ch a 1 thu c tính.

G={ K→A, K→L, A→B, A→C, A→E, A→F, IK→M, G→H, E→F, C→D,

I→J }

G là t ố ể i ti u

ượ ồ B2: Tách thành các l c đ  con

F=G

→ → → ụ ằ ạ ộ ế Xét K A, K L có 2 ph  thu c hàm v  trái b ng K ta có R1(KAL) lo i K A,

→ ỏ K L kh i F

→ → → → ụ ế ằ ộ Xét  A B, A C, A E, A F có 2 ph  thu c hàm v  trái b ng A ta có

→ → → → ạ ỏ R2(ABCEF) lo i A B, A C, A E, A F kh i F

→ → ụ ế ằ ạ ộ Xét IK M có 1 ph  thu c hàm v  trái b ng IK ta có R3(IKM) lo i IK M

kh i Fỏ

(cid:0) ậ ự xét đ n khi F= d ng thu t toán

ượ ượ ồ ươ ế c tách thành 7 l c đ  con

ế ừ ượ ồ c đ  R(ABCDEFGHIJKLM) đ ư ẩ

15

ng t T ậ K t lu n: L chu n 3NF nh  sau:  R1(KAL) khóa K R2(ABCEF) khóa A R3(IKM) khóa IK R4( GH) khóa G R5(EF) khóa E R6(CD) khóa C R7(IJ) khóa I

ươ

Ế Ơ Ở Ữ Ệ

Ch

ng 2: THI T K  C  S  D  LI U

16

ế ế ơ ở ữ ệ 2.1. Thi t k  c  s  d  li u:

Miêu tả

Tên c tộ

Thu c tính Tên b ngả

Ki u dể ữ  li uệ char

Độ  r ngộ 5

Mã môn h cọ

MaMH

nvarchar

30

Tên môn h cọ

TenMH

MONHOC (Môn h c)ọ

S  trình

SoTrinh

int

15

Mã sinh viên

MaSV

Char

5

Mã môn h cọ

MaMH

HocKy

char       Int

ọ ỳ H c k

DIEM (Đi m)ể

DiemLan1

Int

Đi m tk l n 1

DiemLan2

Int

Đi m tk l n 2

MaHeDT

Char

5

Mã h  đào t o

TenHeDT

nvarchar

30

Tên h  đào t o

HEDT ệ (H  đào t o)

MaLop

char

5

Mã l pớ

TenLop

nvarchar

50

Tên l pớ

MaKhoa

char

5

Mã khoa

LOP (L p)ớ

MaHDT

char

5

MaHDT

MaKhoaHoc

char

5

Mã khóa h cọ

MaSV

char

15

Mã sinh viên

TenSV

nvarchar

30

Tên sinh viên

GioiTinh

Bit

Gi

i tính

SINHVIEN     (Sinh viên)

NgaySinh

Datetime

Ngày sinh

MaLop

char

5

Mã l pớ

Que Quan

nvarchar

100

Que Quan

KHOAHOC

MaKhoaHoc TenKhoaHoc MaKhoa

Char nvarchar Char

5 30 5

Mã khóa h cọ Tên khóa h cọ Mã khoa

TenKhoa

nvarchar

50

Tên khoa

Khoa

DiaChi

Nvarchar

100

ị Đ a ch

DienThoai

varchar

15

ạ Đi n tho i

17

ừ ể ữ ệ 2.2. T  đi n d  li u

Create Database BTLSQL go Use QLDiemSV go -- Tao Bang Mon Hoc -- Create Table MonHoc ( MaMH char(5) primary key, TenMH nvarchar(30) not null, SoTrinh int not null check ( (SoTrinh>0)and (SoTrinh<7) ) ) --- Tao Bang He Dao Tao --- Create Table HeDT ( MaHeDT char(5) primary key, TenHeDT nvarchar(40) not null )

--- Tao Bang Khoa Hoc --- Create Table KhoaHoc ( MaKhoaHoc char(5) primary key, TenKhoaHoc nvarchar(20) not null ) --- Tao Bang Khoa -- Create Table Khoa ( MaKhoa char(5) primary key, TenKhoa nvarchar(30) not null, DiaChi nvarchar(100) not null, DienThoai varchar(20) not null ) -- Tao Bang Lop --- Create Table Lop ( MaLop char(5) primary key, TenLop nvarchar(30) not null, MaKhoa char(5) foreign key references Khoa (MaKhoa), MaHeDT char(5) foreign key references HeDT (MaHeDT), MaKhoaHoc char(5) foreign key references KhoaHoc (MaKhoaHoc), ) --- Tao Bang Sinh Vien --- Create Table SinhVien ( MaSV char(15) primary key, TenSV nvarchar(20) , GioiTinh bit , NgaySinh datetime , QueQuan nvarchar(50) , MaLop char(5) foreign key references Lop(MaLop) ) --- Tao Bang Diem --- Create Table Diem ( MaSV char(15) foreign key references SinhVien(MaSV), MaMH char(5) foreign key references MonHoc (MaMH),

18

ộ ố ấ 2.3. M t s  truy v n SQL

HocKy int check(HocKy>0) not null, DiemLan1 int , DiemLan2 int )

---Nhap Du Lieu Cho Bang He Dao Tao -- insert into HeDT values('A01',N'Ðại Học') insert into HeDT values('B01',N'Cao Ðẳng') insert into HeDT values('C01',N'Trung Cấp') insert into HeDT values('D01',N'Công nhân')

Select * from HeDT

-- Nhap Du Lieu Bang Ma Khoa Hoc --- insert into KhoaHoc values('K1',N'Ðại học khóa 1') insert into KhoaHoc values('K2',N'Ðại học khóa 2') insert into KhoaHoc values('K3',N'Ðại học khóa 3') insert into KhoaHoc values('K9',N'Ðại học khóa 4') insert into KhoaHoc values('K10',N'Ðại học khóa 5') insert into KhoaHoc values('K11',N'Ðại học khóa 6')

Select * from KhoaHoc

-- Nhap Du Lieu bang Khoa -- insert into Khoa values('CNTT',N'Công nghệ thông tin',N'Tầng 4 nhà B','043768888') insert into Khoa values('CK',N'Cõ Khí',N'Tầng 5 nhà B','043768888') insert into Khoa values('DT',N'Ðiện tử',N'Tằng 6 nhà B','043768888') insert into Khoa values('KT',N'Kinh Tế',N'Tầng 2 nhà C','043768888') Select * from Khoa

--- Nhap Du Lieu Cho Bang Lop -- insert into Lop values('MT1',N'MÁy Tính 1','CNTT','A01','K2') insert into Lop values('MT2',N'MÁy Tính 2','CNTT','A01','K2') insert into Lop values('MT3',N'MÁy Tính 3','CNTT','A01','K2') insert into Lop values('MT4',N'MÁy Tính 4','CNTT','A01','K2') insert into Lop values('KT1',N'Kinh tế 1','KT','A01','K2')

select * from Lop

-- Nhap Du Lieu Bang Sinh Vien -- insert into SinhVien values('0241060218',N'Nguyễn Minh Một',1,'08/27/1989','Hải Dýõng','MT3') insert into SinhVien values('0241060318',N'Nguyễn Minh Hai',1,'2/08/1989','Nam Dinh','MT1') insert into SinhVien values('0241060418',N'Nguyễn Minh Ba',1,'7/04/1989','Ninh Binh','MT2') insert into SinhVien values('0241060518',N'Nguyễn Minh Bốn',1,'7/08/1989','Ninh Binh','MT1') insert into SinhVien values('0241060618',N'Nguyễn Minh Nãm',0,'7/08/1989','Nam Dinh','MT3') insert into SinhVien values('0241060718',N'Nguyễn Minh Sáu',1,'7/08/1989','Ha Noi','MT3') insert into SinhVien values('0241060818',N'Nguyễn Minh Bảy',1,'7/08/1989','Ha Noi','MT3') insert into SinhVien values('0241060918',N'Nguyễn Minh Tám',1,'7/08/1989','Hai Duong','MT2') insert into SinhVien values('0241060128',N'Nguyễn Minh Chín',1,'7/08/1989','Hai Duong','MT2') insert into SinhVien values('0241060138',N'Nguyễn Minh Mýời',1,'7/08/1989','Ha Nam','MT2')

19

insert into SinhVien values('0241060148',N'Nguyễn Minh Mýời Một',0,'7/08/1989','Bac Giang','MT4') insert into SinhVien values('0241060158',N'Nguyễn Minh Mýời Hai',0,'7/08/1989','Ha Noi','MT4') insert into SinhVien values('0241060168',N'Nguyễn Minh Mýời Ba',1,'7/08/1989','Hai Duong','MT4') insert into SinhVien values('0241060178',N'Nguyễn Minh Mýời Bốn',1,'7/08/1989','Nam Dinh','MT1') insert into SinhVien values('0241060978',N'Nguyễn Minh Mýời Nãm',1,'7/08/1989','Nam Dinh','KT1')

select * from SinhVien

-- Nhap Du Lieu Bang Mon Hoc -- insert into MonHoc values('SQL','SQL',5) insert into MonHoc values('JV','Java',6) insert into MonHoc values('CNPM','Công Nghệ phần mềm',4) insert into MonHoc values('PTHT','Phân tích hệ thống',4) insert into MonHoc values('Mang','Mạng máy tính',5) select * from MonHoc -- Nhap Du Lieu Bang Diem -- insert into Diem(MaSV,MaMH,HocKy,DiemLan1) values('0241060218','SQL',5,7) insert into Diem(MaSV,MaMH,HocKy,DiemLan1) values('0241060418','SQL',5,6) insert into Diem(MaSV,MaMH,HocKy,DiemLan1) values('0241060218','CNPM',5,8) insert into Diem values('0241060518','SQL',5,4,6) insert into Diem values('0241060218','Mang',5,4,5) insert into Diem values('0241060218','JV',5,4,4) insert into Diem values('0241060518','JV',5,4,6) insert into Diem values('0241060218','PTHT',4,2,5) insert into Diem(MaSV,MaMH,HocKy,DiemLan1) values('0241060318','SQL',4,9) insert into Diem(MaSV,MaMH,HocKy,DiemLan1) values('0241060618','SQL',4,8) insert into Diem values('0241060318','Mang',5,3,4) insert into Diem values('0241060418','Mang',5,4,4) insert into Diem(MaSV,MaMH,HocKy,DiemLan1) values('0241060518','Mang',5,8)

select * from Diem

----- Cac Cau Lenh -- 1.Hiển thị danh sách sinh viên gồm các thông tin sau:MaSV,TenSV, NgaySinh, GioiTinh,Ten Lop create proc show_sv as Select MaSV,TenSV,NgaySinh,GioiTinh,TenLop From SinhVien,Lop Where SinhVien.MaLop=Lop.MaLop

-- 2.Hien Thi Top 3 sinh vien lop may tinh 3 co diem mon SQL >=7 create proc show_top3sv as Select Top 3 TenSV,TenLop,DiemLan1,TenMH From SinhVien,Diem,Lop,MonHoc Where TenLop='MÁy tính 3' and DiemLan1>=7 and TenMH='SQL' And SinhVien.MaLop=Lop.MaLop And Diem.MaSV=SinhVien.MaSV And Diem.MaMH=MonHoc.MaMH

-- 3.Hien Thi MaSV,TenSV,Ngay Sinh,Que Quan cua cac sinh vien ten la Ba va co tuoi lon hon 19. create proc show_svba19

20

as Select MaSV,TenSV,NgaySinh,QueQuan From SinhVien Where (TenSV like '%Ba') And (Year(getdate()) - Year(NgaySinh) >19)

-- 4. Hien Thi Tat Ca Nhung Sinh Vien Khoa Cong Nghe Thong Tin create proc show_svcntt as Select TenSV,TenLop,NgaySinh,QueQuan From (SinhVien Inner join Lop on SinhVien.MaLop=Lop.MaLop) Inner join Khoa on Khoa.MaKhoa=Lop.MaKhoa Where TenKhoa=N'Công nghệ thông tin'

-- 5. Hien Thi Diem cua sinh vien lop May Tinh 3 Khoa 2 Sap Xep Diem Giam Dan create proc show_diemsvmt3 as Select TenSV,TenLop,DiemLan1 From SinhVien,Lop,KhoaHoc,Diem Where SinhVien.MaLop=Lop.MaLop And Lop.MaKhoaHoc=KhoaHoc.MaKhoaHoc And Diem.MaSV=SinhVien.MaSV And TenKhoaHoc='dai hoc khoa 2' And TenLop='may tinh 3' Order By DiemLan1 DESC --6. Tinh Trung Binh Diem Cac Mon Hoc Cua Cac Sinh Vien Lop May tinh 3 create proc show_diemtbsvmt3 as Select SinhVien.MaSV,TenSV,Lop.TenLop, SUM(DiemLan1*SoTrinh)/SUM(SoTrinh) as DiemTrungBinh From SinhVien,Diem,MonHoc,Lop Where SinhVien.MaLop=Lop.MaLop And Diem.MaSV=SinhVien.MaSV And Diem.MaMH=MonHoc.MaMH And TenLop=N'MÁy Tính 3' Group By SinhVien.MaSV,TenSV,Lop.TenLop

--7.Hien Thi Tat Ca Sinh Vien Phai Hoc Lai Mon Mang May Tinh create proc show_svhlmt3 as Select TenSV,TenMH,DiemLan1,DiemLan2 From SinhVien,Diem,MonHoc Where SinhVien.MaSV=Diem.MaSV And Diem.MaMH=MonHoc.MaMH And (DiemLan1<5) And (DiemLan2<5) And TenMH='Mạng máy tính' --SV phai thi lai create proc show_svthilai as Select TenSV,DiemLan1 From SinhVien,Diem Where SinhVien.MaSV=Diem.MaSV And (DiemLan1<5) --SV thi lai mang may tinh

create proc show_svthilaimmt as Select TenSV,DiemLan1,TenMH From SinhVien,Diem,MonHoc Where SinhVien.MaSV=Diem.MaSV And Diem.MaMH=MonHoc.MaMH And (DiemLan1<5) And TenMH='Mạng máy tính'

--8. Dem So Luong Sinh Vien Cua Khoa Cong Nghe Thong Tin create proc show_demsvcntt as select count(*) as CNTT from SINHVIEN,KHOA,LOP

21

where SINHVIEN.MALOP=LOP.MALOP and LOP.MAKHOA=KHOA.MAKHOA and TENKHOA=N'Công nghệ thông tin'

--9. Dem So Luong Sinh Vien Cua Tung Khoa create proc show_demsvkhoa as select KHOA.MAKHOA, count(*) as SoLuong from SINHVIEN,LOP,KHOA where SINHVIEN.MALOP=LOP.MALOP and LOP.MAKHOA=KHOA.MAKHOA group by KHOA.MAKHOA

--10. Cho biet diem thap nhat cua moi mon hoc create proc show_diemthapnhat as select MonHoc.MAMH,min(diemlan1) as [Min diem] from MonHoc inner join diem on MonHoc.MAMH=diem.MAMH group by MonHoc.MAMH

---11. Tao cac Thu Tuc Sau: -- 11.1 Hien Thi Chi Tiet Sinh Vien Va Diem create proc hienthisv_diem as SELECT SinhVien.MaSV,TenSV,QueQuan,MaMH,DiemLan1 from SinhVien join diem on Sinhvien.masv=diem.masv --11.4 Tao thu tuc nhap them sinh vien moi create procedure nhapmoiSV @Masv char(15), @Tensv nvarchar(20), @gioitinh bit, @ngaysinh datetime, @quequan nvarchar(50), @malop char(5) as begin insert into sinhvien values(@Masv,@Tensv,@gioitinh,@ngaysinh,@quequan,@malop) end --test nhapmoiSV '0241060898','my love',0,'5/5/1987','vung tau','KT1' go select * from sinhvien --12. CAC THAO TAC DU LIEU VOI CAC BANG -- 12.1 BANG SINH VIEN --A. THEM DU LIEU create PROCEDURE sp_insSINHVIEN ( @MASV char(15), @TENSV nvarchar(20), @GIOITINH bit, @NGAYSINH DATETIME, @QueQuan nvarchar(50), @MALOP char(5) ) AS BEGIN insert into SINHVIEN (

MASV, TENSV, GIOITINH,

22

NGAYSINH,

QueQuan, MALOP

)

values (@MASV,@TENSV,@GIOITINH,@NGAYSINH,@QUEQUAN,@MALOP)

END --TEST sp_insSINHVIEN '0241061298','BANG KIEU',1,'5/5/1987','HA NOI','MT3' SELECT * FROM SINHVIEN

--B. XOA DU LIEU create procedure sp_delSINHVIEN @MASV char(15) as

delete from SINHVIEN where MASV=@MASV

-- TEST sp_delSINHVIEN '0241060218' select * from sinhvien --C. HIEN THI DU LIEU create proc sp_showSINHVIEN as

select * from SINHVIEN

--TEST sp_showSINHVIEN --D. SUA DU LIEU create procedure sp_updateSINHVIEN ( @MASV char(15), @TENSV nvarchar(20), @GIOITINH bit, @NGAYSINH DATETIME, @QUEQUAN nvarchar(50), @MALOP char(5) ) as

update SINHVIEN

set

MASV=@MASV, TENSV=@TENSV,

GIOITINH=@GIOITINH,

NGAYSINH=@NGAYSINH, QUEQUAN=@QUEQUAN, MALOP=@MALOP

where MASV=@MASV

--- KIEM TRA sp_updateSINHVIEN '0241060218','BANG KIEU',1,'5/5/1987','HA NOI','MT3' select * from SINHVIEN -- 12.2 BANG LOP --A. THEM DU LIEU create PROCEDURE sp_insLOP ( @MALOP char(5), @TENLOP nvarchar(30),

23

@MAKHOA CHAR(5), @MaHeDT CHAR(5), @MaKhoaHoc CHAR(5) ) AS BEGIN insert into LOP (

MALOP, TENLOP, MAKHOA,

MaHeDT,

MaKhoaHoc )

values (@MALOP,@TENLOP,@MAKHOA,@MaHeDT,@MaKhoaHoc) END

--TEST sp_insLOP 'KT4','KINH TE 4','KT','A01','K2' select * from lop --B. XOA DU LIEU create procedure sp_delLOP @MALOP char(5) as

delete from LOP where MALOP=@MALOP

-- TEST sp_delLOP 'KT4' --C. HIEN THI DU LIEU create proc sp_showLOP as

select * from LOP

--D. SUA DU LIEU create procedure sp_updateLOP ( @MALOP char(5), @TENLOP nvarchar(30), @MAKHOA CHAR(5), @MaHeDT CHAR(5), @MaKhoaHoc CHAR(5) ) as

update LOP set

MALOP=@MALOP, TENLOP=@TENLOP,

MAKHOA=@MAKHOA,

MaHeDT=@MaHeDT, MaKhoaHoc=@MaKhoaHoc

where MALOP=@MALOP

-- 12.3 BANG MON HOC --A. THEM DU LIEU create PROCEDURE sp_insMONHOC (

24

@MaMH char(5), @TenMH nvarchar(30), @SoTrinh INT ) AS BEGIN insert into MONHOC (

MAMH, TENMH, SOTRINH

)

values (@MAMH,@TENMH,@SOTRINH) END --B. XOA DU LIEU create procedure sp_delMONHOC @MAMH char(5) as

delete from MonHoc where MAMH=@MAMH

--C. HIEN THI DU LIEU create proc sp_showMONHOC as

select * from MONHOC

--D. SUA DU LIEU create procedure sp_updateMONHOC ( @MaMH char(5), @TenMH nvarchar(30), @SoTrinh INT ) as

update MONHOC

set

MAMH=@MAMH, TENMH=@TENMH,

SOTRINH=@SOTRINH

where MAMH=@MAMH

--- 12.4 BANG KHOA HOC --A. THEM DU LIEU create PROCEDURE sp_insKHOAHOC ( @MaKhoaHoc char(5), @TenKhoaHoc nvarchar(20) ) AS BEGIN insert into KHOAHOC (

MaKhoaHoc, TenKhoaHoc )

values (@MaKhoaHoc,@TenKhoaHoc) END --B. XOA DU LIEU

25

create procedure sp_delKHOAHOC @MaKhoaHoc char(5) as

delete from KHOAHOC where MaKhoaHoc=@MaKhoaHoc

--C. HIEN THI DU LIEU create proc sp_showKHOAHOC as

select * from KHOAHOC

--D. SUA DU LIEU create procedure sp_updateKHOAHOC ( @MaKhoaHoc char(5), @TenKhoaHoc nvarchar(20) ) as

update KHOAHOC

set

MaKhoaHoc=@MaKhoaHoc, TenKhoaHoc=@TenKhoaHoc

where MaKhoaHoc=@MaKhoaHoc

--- 12.5 BANG KHOA --A. THEM DU LIEU create PROCEDURE sp_insKHOA ( @MaKhoa char(5), @TenKhoa nvarchar(30), @DiaChi nvarchar(100), @DienThoai varchar(20) ) AS BEGIN insert into KHOA (

MaKhoa, TenKhoa, DiaChi, DienThoai )

values (@MaKhoa,@TenKhoa,@DiaChi,@DienThoai) END --B. XOA DU LIEU create procedure sp_delKHOA @MAKHOA char(5) as

delete from KHOA where MAKHOA=@MAKHOA

--C. HIEN THI DU LIEU create proc sp_showKHOA as

select * from KHOA

--D. SUA DU LIEU create procedure sp_updateKHOA (

26

@MaKhoa char(5), @TenKhoa nvarchar(30), @DiaChi nvarchar(100), @DienThoai varchar(20) ) as

update KHOA set

MaKhoa=@MaKhoa, TenKhoa=@TenKhoa,

DiaChi=@DiaChi,

DienThoai=@DienThoai

where MaKhoa=@MaKhoa

-- 12.6 BANG HE DAO TAO --A. THEM DU LIEU create PROCEDURE sp_HEDT ( @MaHeDT char(5), @TenHeDT nvarchar(40) ) AS BEGIN insert into HEDT (

MaHeDT, TenHeDT )

values (@MaHeDT,@TenHeDT) END --B. XOA DU LIEU create procedure sp_delHEDT @MaHeDT char(5) as

delete from HEDT where MaHeDT=@MaHeDT

--C. HIEN THI DU LIEU create proc sp_showHEDT as

select * from HEDT

--D. SUA DU LIEU create procedure sp_updateHEDT ( @MaHeDT char(5), @TenHeDT nvarchar(40) ) as

update HEDT set

MaHeDT=@MaHeDT, TenHeDT=@TenHeDT

where MaHeDT=@MaHeDT

-- 12.7 BANG DIEM --A. THEM DU LIEU create PROCEDURE sp_insDIEM

27

( @MaSV char(15), @MaMH CHAR(5), @HocKy INT, @DiemLan1 INT, @DiemLan2 INT ) AS BEGIN insert into DIEM (

MASV, MAMH, HOCKY,

DIEMLAN1,

DIEmLAN2 )

values (@MaSV,@MaMH,@HocKy,@DiemLan1,@DiemLan2) END --B. XOA DU LIEU create procedure sp_delDIEM @MASV char(15) as

delete from DIEM where MASV=@MASV

--C. HIEN THI DU LIEU create proc sp_showDIEM as

select * from DIEM

--D. SUA DU LIEU create procedure sp_updateDIEM ( @MaSV char(15), @MaMH CHAR(5), @HocKy INT, @DiemLan1 INT, @DiemLan2 INT ) as

update DIEM set

MaSV=@MaSV, MaMH=@MaMH,

HocKy=@HocKy,

DiemLan1=@DiemLan1, DiemLan2=@DiemLan2

where MaSV=@MaSV

--- TAO TRIGGER

---13. Tao trigger khong cho phep xoa mon hoc

--- Tao Trigger insert Bang Diem CREATE TRIGGER trginsert_Diem ON Diem

28

For insert as DECLARE @DiemLan1 int DECLARE @DiemLan2 int SELECT @DiemLan1=DiemLan1,@DiemLan2=DiemLan2 FROM Inserted IF (@DiemLan1 <0 ) or (@DiemLan1 >10) or (@DiemLan2 <0) or (@DiemLan2 >10) begin print 'Sai gia tri diem' Rollback transaction end else begin Print 'qua trinh chen dl thanh cong' end Go -- check INSERT INTO Diem VALUES ('0241060148','SQL',5,14,8) INSERT INTO Diem VALUES ('0241060158','SQL',5,-2,8) INSERT INTO Diem VALUES ('0241060168','SQL',5,8,8) INSERT INTO Diem VALUES ('0241060178','SQL',5,12,24) INSERT INTO Diem VALUES ('0241060918','JV',5,12,24) Go SELECT * FROM Diem -- Tao trigger de tat cac truong trong bang sv phai nhap

create trigger trginsert_Sinhvien on Sinhvien for insert as begin -- khai bao 4 bien luu tru Declare @tensv nvarchar(20) Declare @quequan nvarchar(50) Declare @gioitinh bit Declare @ngaysinh datetime -- lay du lieu ra cac bien tu bang inserterd select @tensv=inserted.tensv, @quequan=inserted.quequan, @gioitinh=inserted.gioitinh, @ngaysinh=inserted.ngaysinh From Inserted if((@tensv is null) or (@quequan is null) or (@gioitinh is null) or (@ngaysinh is null)) begin print'Ban phai day du cac thong' print'qua trinh them dl khong thanh cong' rollback tran end else begin print'ban da them du lieu thanh cong' end end -- kiem tra select* from sinhvien

29

30

K T LU N

ề ươ ươ ọ ượ ể ư ế ớ ng trình qu n lý đi m, em đã h c thêm đ ng trình trên l p ch a ti p thu đ

ế ọ ỏ ấ ề ượ   c c. Ngoài ra,   ộ

ả ồ ưỡ ệ ề ế ậ ấ ầ Sau khi hoàn thành ch ứ nhi u ki n th c mà trong ch em đã h c h i r t nhi u kinh nghi m quý báu cho b n thân, nâng cao trình đ chuyên môn và nh n th y còn nhi u thi u xót c n b i d ng thêm.

ả ơ ự ầ

ạ ẽ ươ ề ạ Em xin c m  n s  góp ý c a th y cô và các b n đã giúp em hoàn thành   ế   ng trình này. Em mong th y cô và các b n s  cho thêm nhi u ý ki n

31

ể ươ ệ ơ ủ ầ ng trình thêm hoàn thi n h n. ch đóng góp đ  ch

TÀI LI U THAM KH O

ộ 1. Giáo trình SQL Server 2000­NXB Lao Đ ng Xã H i ả 2. M t s  Website tham kh o:

ộ ố         http://www.ddth.com/showthread.php?p=715513                   http://www.ddth.com/archive/index.php/t­87794.html                   http://forum.csharpvn.com/default.aspx?g=posts&t=203                   http://www.hocit.com/forum/tong­hop­cac­cau­truy­van­trong­

32

sql­sever­2000­a­27724.html