̣ ̣

̣

̉ Ợ ĐAI HOC THUY L I KHOA CÔNG NGHÊ THÔNG TIN

̃

Ị Ơ Ở Ư

̣

MÔN H  QU N TR  C  S  D  LIÊU

Ậ Ớ

BÁO CÁO BÀI T P L N

Ự Ầ Ả Ề ề Đ  tài : XÂY D NG PH N M M QU N LÝ

Ế TRUNG TÂM TI NG ANH

ướ ọ ễ ỳ ả Gi ng Viên H ng D n ẫ  : TH.S Nguy n Ng c Qu nh Châu

̣

ệ ố

Trang 1/ 37

ạ ị L p ớ : 61PM1 Nhóm : 19 ự  :          Mã sinh viên : SV th c hiên Hoàng Qu c Hi p         1951060695 ằ Ph m Th  Thúy H ng      1951060690

Trang 2/ 37

ộ Hà N i, ngày 30 tháng 10 năm 2021

Trang 3/ 37

Trang 4/ 37

Ụ Ụ M C L C

Trang 5/ 37

́

̀ ơ

̀ L i noi đâu

ệ ượ ọ ủ ộ ố Hi n nay, công ngh  thông tin đ

́ ể ệ ố

ệ ẽ ủ ự ể c xem là m t ngành mũi nh n c a qu c  ạ t là các qu c gia đang phát tri n, tiên hành công nghi p hóa hi n đ i  ệ c ta. S  bùng n  thông tin và s  phát tri n m nh m  c a công ngh

ự ̀ ể ố ọ ̉ t c  các ngành, các

ệ ệ ặ gia, đ c bi ạ ư ướ ổ hóa nh  n ấ ả ậ ố ỹ k  thu t s , yêu câu mu n phát tri n thì phai tin h c hóa t 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

ớ ự ở ầ ứ ệ ề ỗ ợ ệ

ườ ạ ề i. Các ph n m m hi n nay ngày càng mô ph ng đ

ề ượ ấ c r t nhi u  ử ờ ầ ỗ ợ ệ ử ụ ậ ơ ỏ i dùng thu n ti n s  d ng, th i gian x  lí

ệ ụ ượ ự ộ ộ ố ả 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 ườ ệ ụ nghi p v  khó khăn, h  tr  cho ng nhanh chóng, và m t s  nghi p v  đ đ ng hóa cao. c t

́ ế ̣

ề ề

ố ả ầ ấ ộ ̣ ̉ ̣ ̣ ườ c toàn b  hoc viên( thông tin, điêm s , lô trinh hoc,...), l p

ư ̉ ̣ ̉ ̉

ề ệ ứ

ả ệ ỏ ố ề ủ ấ

ệ ụ ư ự ự ộ ấ ả ờ ằ ỉ ệ ố

ồ ộ ễ ị ấ ạ ố ộ ố ề ư

ọ ể ọ ụ ẽ ở ớ ự ễ ậ ệ ả ơ

ả ề ụ ư ệ ả ự ỗ ợ Ví d  nh  vi c qu n lí môt trung tâm Tiêng Anh. N u không có s  h  tr   ả ệ ọ ủ c a tin h c, vi c qu n lí này ph i c n r t nhi u ng i, chia thành nhi u khâu,  ̀ ớ ượ ả ể ớ m i có th  qu n lí đ ́ ̀ ố ọ h c( sĩ s , giáo viên giang day...), giang viên,... cũng nh  các quy trinh quan ly  trung tâm. 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 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 hóa 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.

ầ ủ ệ ố  yêu c u c a h  th ng, phân  ế ặ ả ả ự c ph n m m qu n lý trung tâm Ti ng Anh trên

Trang 6/ 37

ứ ề ấ ệ ụ ệ ọ ả ơ ấ M c tiêu c a bài báo cáo là nêu rõ các đ c t ượ ế ế ể ệ ề ự ộ ả ỡ ủ ệ ụ ủ ầ t k  đ  xây d ng đ tích, thi ụ ụ ph c v  cho vi c qu n lý hoàn toàn t đ ng trên máy tính.

I.

1.1.

Ệ Ố Ủ Ặ Ầ BÀI TOÁN Đ T RA VÀ YÊU C U C A H  TH NG

ệ ề ề i thi u v  đ  tài: ư ề t, hi n nay r t nhi u trung tâm Ti ng Anh đ

ả ế ườ ủ

ề ả i

ở ượ c m   ộ i. Trong m t trung  ờ ể ả ấ i quy t r t nhi u v n đ  đ ng th i đ  gi ậ ầ ấ ư ế ộ

ề ượ ố ượ ữ ệ ấ ả ặ ọ

t vào nh ng mùa hè l ầ ậ ể ế ượ ả ặ Gi ệ ế ấ Nh  chúng ta đã bi ệ ằ ọ ỹ ạ ế lên nh m đào t o, c i thi n k  năng Ti ng Anh c a m i ng ề ồ ế ấ ầ ế tâm Ti ng Anh chúng ta c n gi ả ề ấ ữ quy t nh ng v n đ  đó chúng ta c n r t nhi u b  ph n qu n lý nh  nhân viên,  ng  ng h c viên tăng r t cao, s  l gi ng viên, …Đ c bi ấ ọ h c viên r t đông. Vì v y yêu c u đ t ra là : Ph i làm sao đ  ti c

ậ ượ ệ ố ả ự ồ ờ ả ệ t ki m đ ứ th i gian, ngu n nhân l c, b o m t đ ủ c h  th ng qu n lý, đáp  ng đ

1.2.

ầ ủ ọ ả nhu c u c a h c viên, gi ng viên,…?

ầ ủ

ặ ả ứ ầ ả ọ ả Yêu c u chung c a bài toán: Đ c t ể  yêu c u, ch c năng: Qu n lý đi m c a h c viên, qu n lý h c phí

ả ả ưở ả ọ ủ ọ ng gi ng viên, qu n lý tài

1.3.

ủ ọ c a h c viên trong các khóa h c, qu n lý khen th ộ ấ ệ li u, c p đ , khóa h c.

ế ứ ọ ả

i quy t bài toán: ắ ủ ề ặ

1.4.

ệ ụ ự ầ ề ể ế ạ

Cách th c gi ể ữ Tìm hi u quy t c nghi p v , các yêu c u đ t ra c a đ  tài. Các ngôn ng   ơ ở ữ ệ ử ầ ậ l p trình và c  s  d  li u. Xây d ng ph n m m. Ti n hành ki m tra và ch y th . ể ệ ụ ủ Phát bi u nghi p v  c a bài toán:

ọ ả ề ế ả ọ : Nhân viên qu n lý trung tâm có quy n tìm ki m h c Qu n lý h c viên

ủ ọ ớ ử ữ ọ ọ

ữ ọ viên, in danh sách h c viên, thêm nh ng h c viên m i, s a thông tin c a h c viên, xóa nh ng h c viên ngh  h c.

ả ứ ả ỗ ưở ỉ ọ ưở ẽ  M i gi ng viên s  có m c khen th ng khác Qu n lý khen th ng:

ữ ề ả ả ổ ượ   c

ưở nhau, nhân viên qu n lý trung tâm có quy n b  sung thêm nh ng gi ng viên đ khen th

ỏ ữ ữ ậ ớ ớ ng. ả ử ớ  Nh p m i thông tin l p, s a ch a thông tin, xóa b  nh ng Qu n lý l p:

ọ ớ l p đã h c xong.

ể ả ề ậ ủ ể ả ậ ọ : Gi ng viên có quy n c p nh t đi m thi c a các h c Qu n lý đi m thi

ứ ọ ấ ộ ế ả ể viên, tìm ki m đi m thi theo h c viên. ọ ậ ớ Nh p m i các m c h c phí tùy theo các c p đ  mà

Qu n lý h c phí: ử trung tâm có, s a ch a thông tin. ấ ả ộ Qu n lý c p đ :

ờ ệ ố ữ ệ ủ ả ấ ồ ọ ẽ ấ ộ Các c p đ  mà trung tâm có dành cho các khóa h c s   ẽ i h  th ng. Đ ng th i h  th ng s  qu n lý d  li u c a các c p c l u l

ượ ư ạ ạ ệ ố đ i t đ .ộ

ả ổ ọ ườ ọ ọ B  sung các khóa h c th ng xuyên. Các khóa h c mà

Trang 7/ 37

ẽ ượ ư ạ ạ ệ ố ẽ ả ồ Qu n lý khóa h c:  c l u l trung tâm có s  đ ữ ờ ệ ố i h  th ng. Đ ng th i h  th ng s  qu n lý d i t

li u.ệ

ậ ố ượ ậ ệ ườ ề ỉ ả ệ C p nh t s  l ng tài li u th ng xuyên và đi u ch nh

II.

Qu n lý tài li u:  ộ ớ ấ ợ ộ n i dung phù h p v i c p đ . Ệ Ố PHÂN TÍCH H  TH NG

ủ ệ ố ứ 2.1. Phân tích ch c năng c a h  th ng

ệ ố ứ Hình 1: Mô hình ch c năng h  th ng

ườ ử ụ ệ ố 2.2. Ng i s  d ng h  th ng

ọ ả ưở ả

ấ ả ủ ệ ố

ậ ớ ề ưở ế ng và l p. C p nh t, s a đ i, b  sung khi c n thi

ầ ố ớ ậ ề ổ ứ

ể ậ

ng và qu n lý   ố   ứ t c  các ch c năng c a h  th ng đ i ậ ử ổ t. ể   ấ : Gi ng viên có quy n truy c p các ch c năng đ i v i đi m ố ậ ề ọ ủ ọ ọ ể ươ ầ ự   ng tác v i ph n m m qua mã h c viên, xem tr c

ế ả       Nhân viên: Nhân viên qu n lý h c viên, qu n lý khen th ớ l p. Nhân viên có quy n truy c p vào t ớ ọ v i h c viên, khen th ả ả       Gi ng viên ử ổ ủ ọ c a h c viên. C p nh t đi m thi, s a đ i và th ng kê đi m c a h c viên. ớ ọ     H c viên : H c viên t ủ ể ti p đi m c a mình.

III.

Ự Ự Ế Ể XÂY D NG MÔ HÌNH TH C TH  LIÊN K T ER

ị ắ

ả ả

ề ấ ỗ ố ệ ạ

ả ả ố

ổ ả ả

Trang 8/ 37

ộ 3.1. Xác đ nh các quy t c và ràng bu c a) Trung tâm có nhi u gi ng viên (GIANGVIEN). M i gi ng viên có mã  ả ả (MaGV) duy nh t và tên gi ng viên (tenGV), s  đi n tho i gi ng viên  ạ ủ (SdtGV) và s  bu i gi ng d y c a gi ng viên đó (SobuoiGD).  ỗ ớ ượ ạ ạ b) M i gi ng viên gi ng d y nhi u l p (LOP). M i l p đ ể ỗ ả ủ ộ ộ ở ề ớ c d y b i nhi u  ế ượ gi ng viên. Thu c tính (NgayGD) là thu c tính c a ki u liên k t đ ề c dùng

ạ ả ạ ủ ả ạ ỗ

ộ ớ ờ ế ớ ở

ả ể đ  ghi l i ngày gi ng d y c a m i gi ng viên khi gi ng d y m t l p nào đó.  ờ ấ ỗ ớ M i l p có mã l p (MaLop) duy nh t, th i gian m  (TgianMo), th i gian k t  ự ế ứ ọ thúc (TgianKetthuc), m c h c viên d  ki n (HVDK).

ộ ớ ỗ ọ ọ

ề ấ ớ i

ọ ố ệ ỗ ọ ọ c) M t l p có nhi u h c viên (HOCVIEN). M i h c viên có mã h c viên  (MaHV) duy nh t, tên h c viên (TenHV), ngày sinh(Ngaysinh), gi ạ tính(Gioitinh) và có s  đi n tho i riêng dành cho m i h c viên (SDTHocvien).

ọ ậ ạ d) M i h c viên h c t p t ọ ỗ ọ ọ ộ ọ ả ọ ỗ   i trung tâm đăng ký m t khóa h c (KHOAHOC). M i  khóa h c

ọ ẽ ể ề ấ e) Trong m i khóa h c s  có nhi u c p đ  (CAPDOKH) đ  phù h p v i

khóa h c có mã khóa h c(MaKH), tên khóa h c (TenKH) và mô t (MotaKH). ỗ ọ ủ ọ ệ

ộ ẽ ượ ộ ỗ ấ ộ ư ộ ấ ỗ ấ ộ ề ạ ả

ấ ộ ớ ợ ụ c ph  trách  nguy n v ng đăng ký c a h c viên, nh ng m i c p đ  s  đ ỗ ớ ồ ở b i nhi u gi ng viên và m i l p d y m t c p đ . M i c p đ  bao g m có  ộ ấ mã c p đ  (MaCD), tên c p đ  (TenCD).

ỗ ộ ớ i thông

ủ ấ

ủ ả ổ ố ố ớ ỗ

ư ạ ả f) M i nhân viên (NHANVIEN) qu n lý m t l p. Trong nhân viên l u l tin c a nhân viên là có mã nhân viên (MaNV) duy nh t, tên nhân viên  ổ (TenNV) và s  bu i đi làm (s  bu i qu n lý l p) c a m i nhân viên  (SobuoiQL).

g) L u l

ườ ề ư ạ i thông tin v  nhân viên qu n lý tr c ti p c a nhân viên. Ng ả i qu n

ự ế ượ ọ ả lý tr c ti p cũng là m t nhân viên đ

h) M i c p đ  có m c h c phí (HOCPHI) khác nhau. M i m c h c phí ta l u

ứ ọ ư ộ

ộ ứ ọ ề ạ l

ự ế ủ c g i là NVQL. ỗ ấ ỗ ộ i thông tin v  t ng ti n (Tongtien) c a m i c p đ . ỗ ượ ộ ề ổ ả i) M i gi ng viên đ

ọ ưở ấ ỗ ấ ế ng (KHENTHUONG) sau khi k t  ng (MaKT) duy nh t và

ả thúc khóa h c. Trong khen th ợ m c đ  khen th

j) V i m i c p đ  s   ng v i nhi u tài li u (TAILIEU). M i tài li u có mã tài

ủ ưở ứ c m t m c khen th ưở ng có mã khen th ớ ừ ng phù h p v i t ng gi ng viên (MucdoKT). ệ ề ỗ ấ ệ ớ ỗ

ưở ộ ẽ ứ ấ ệ

k) M i h c viên s  tham gia nhi u bài thi phù h p v i c p đ  mà h c viên đó

ứ ộ ớ ệ ỗ ọ li u (MaTL) duy nh t và tên tài li u (TenTL). ợ ộ ọ

ủ ể ớ ấ ọ ề ẽ ư ạ ả i đi m c a các h c viên (DiemCD) sau khi

l) B ng đăng nh p (ACCOUNT) đ  l u l

ẽ đăng ký. B ng thi (THI) s  l u l thi. ả ậ ể ư ạ ả i tài kho n.

ị ộ ự

ả ả

ỗ ố ệ ề ấ ạ

ả ả ổ ố

Trang 9/ 37

ế ể 3.2. Xác đ nh th c th , thu c tính và liên k t a) Trung tâm có nhi u gi ng viên (GIANGVIEN). M i gi ng viên có mã  ả ả (MaGV) duy nh t và tên gi ng viên (tenGV), s  đi n tho i gi ng viên  ạ ủ (SdtGV) và s  bu i gi ng d y c a gi ng viên đó (SobuoiGD).   ► GIANGVIEN (MaGV, TenGV, SdtGV, SobuoiGD).

ả ả

ộ ủ ộ ề c dùng

ỗ ớ ượ ạ ạ b) M i gi ng viên gi ng d y nhi u l p (LOP). M i l p đ ể ả ạ ủ ạ ạ ả

ế ớ ở

ỗ ở ề ớ c d y b i nhi u  ế ượ ả gi ng viên. Thu c tính (NgayGD) là thu c tính c a ki u liên k t đ ộ ớ ả ỗ ể i ngày gi ng d y c a m i gi ng viên khi gi ng d y m t l p nào đó.  đ  ghi l ờ ờ ấ ỗ ớ M i l p có mã l p (MaLop) duy nh t, th i gian m  (TgianMo), th i gian k t  ự ế ứ ọ thúc (TgianKetthuc), m c h c viên d  ki n (HVDK).  ► LOP (MaLop, TgianMo, TgianKetthuc, HVDK).

ọ ộ ớ ỗ ọ

ề ấ ớ i

ọ ố ệ ỗ ọ

ọ c) M t l p có nhi u h c viên (HOCVIEN). M i h c viên có mã h c viên  (MaHV) duy nh t, tên h c viên (TenHV), ngày sinh(Ngaysinh), gi ạ tính(Gioitinh) và có s  đi n tho i riêng dành cho m i h c viên (SDTHocvien). ► HOCVIEN (MaHV, TenHV, NgaySinh, Gioitinh, SDTHocvien).

ọ ậ ạ d) M i h c viên h c t p t ọ ỗ ọ ọ ộ ọ ả khóa h c có mã khóa h c(MaKH), tên khóa h c (TenKH) và mô t ỗ   i trung tâm đăng ký m t khóa h c (KHOAHOC). M i  khóa h c ọ Trang 10/ 37

(MotaKH).  ► KHOAHOC (MaKH, TenKH, MotaKH).

ọ ẽ ể ề ấ e) Trong m i khóa h c s  có nhi u c p đ  (CAPDOKH) đ  phù h p v i

ệ ỗ ọ ủ ọ

ộ ẽ ượ ộ ỗ ấ ộ ư ộ ấ ỗ ấ ộ ề ạ ả

ấ ộ

ớ ợ ụ c ph  trách  nguy n v ng đăng ký c a h c viên, nh ng m i c p đ  s  đ ỗ ớ ồ ở b i nhi u gi ng viên và m i l p d y m t c p đ . M i c p đ  bao g m có  ộ ấ mã c p đ  (MaCD), tên c p đ  (TenCD).  ► CAPDOKH (MaCD, TenCD).

ỗ ộ ớ i thông

ủ ấ

ủ ả ố ổ ố ớ ỗ

ư ạ ả f) M i nhân viên (NHANVIEN) qu n lý m t l p. Trong nhân viên l u l tin c a nhân viên là có mã nhân viên (MaNV) duy nh t, tên nhân viên  ổ (TenNV) và s  bu i đi làm (s  bu i qu n lý l p) c a m i nhân viên  (SobuoiQL).

g) L u l

ề ư ạ ườ i thông tin v  nhân viên qu n lý tr c ti p c a nhân viên. Ng ả i qu n

ượ ọ ự ế ộ

Trang 11/ 37

ự ế ủ ả lý tr c ti p cũng là m t nhân viên đ c g i là NVQL.  ► NHANVIEN (MaNV, TenNV, SobuoiQL, NVQL).

̀ ́ ượ ̣ ̉ ́ Nhân viên đo đ c goi la nhân viên quan ly (NVQL).

h) M i c p đ  có m c h c phí (HOCPHI) khác nhau. M i m c h c phí ta l u

ứ ọ ư ộ

ứ ọ ề ỗ ấ ủ ạ l

ỗ ỗ ấ ộ ề ổ i thông tin v  t ng ti n (Tongtien) c a m i c p đ .  ► HOCPHI (Tongtien).

ỗ ượ ộ ả i) M i gi ng viên đ

ứ c m t m c khen th ưở ưở ấ ọ ế ng (KHENTHUONG) sau khi k t  ng (MaKT) duy nh t và

ưở ưở ng có mã khen th ớ ừ ng phù h p v i t ng gi ng viên (MucdoKT). thúc khóa h c. Trong khen th ợ m c đ  khen th

ứ ộ ả  ► KHENTHUONG (MaKT, MucdoKT).

j) V i m i c p đ  s   ng v i nhi u tài li u (TAILIEU). M i tài li u có mã tài  Trang 12/ 37

ớ ộ ẽ ứ ỗ ấ ề ệ ệ ỗ ớ

ệ ệ ấ li u (MaTL) duy nh t và tên tài li u (TenTL).

► TAILIEU (MaTL, TenTL).

k) M i h c viên s  tham gia nhi u bài thi phù h p v i c p đ  mà h c viên đó

ộ ọ ợ ỗ ọ

ủ ể ớ ấ ọ ề ẽ ư ạ ả i đi m c a các h c viên (DiemCD) sau khi

ẽ đăng ký. B ng thi (THI) s  l u l thi.

► THI (DiemCD).

l) B ng đăng nh p (ACCOUNT) đ  l u l

ể ư ạ ậ

ả ả i tài kho n.  ► ACCOUNT (Tendangnhap, Matkhau, Vaitro).

3.3. Xây d ng mô hình th c th  liên k t ER

Trang 13/ 37

ự ự ế ể

ự ể ế Hình 2: Mô hình liên k t th c th  ER

IV.

Ể Ừ Ự Ế Ể CHUY N T  MÔ HÌNH TH C TH  LIÊN K T SANG MÔ HÌNH

ướ ả ự ể ừ ự QUAN HỆ   B ể ế → các b ng /quan h . ệ

c 1: Các th c th  (tr  th c th  y u)  GIANGVIEN (MaGV, TenGV, SdtGV, SobuoiGD). LOP (MaLop, TgianMo, TgianKetthuc, HVDK). HOCVIEN (MaHV, TenHV, NgaySinh, Gioitinh, SDTHocvien). KHOAHOC (MaKH, TenKH, MotaKH). CAPDOKH (MaCD, TenCD). NHANVIEN (MaNV, TenNV, SobuoiQL, NVQL). HOCPHI (Tongtien). KHENTHUONG (MaKT, MucdoKT). TAILIEU (MaTL, TenTL). THI (DiemCD).

ể ế

ướ ướ ế ạ B B c 2: Không có th c th  y u. ủ c 3: Liên k t 1­1

ư ế ự → khóa c a 1 bên sang làm khóa ngo i bên kia. ủ   KHENTHUONG   ­   GIANGVIEN   có   liên   k t   1­1:   Đ a   khóa   chính   c a

ạ ủ

Trang 14/ 37

GIANGVIEN sang làm khóa ngo i c a KHENTHUONG. → KHENTHUONG (MaKT, MucdoKT, MaGV).

ư ủ ế NHANVIEN ­ LOP có liên k t 1­1 : Đ a khóa chính c a NHANVIEN

ạ ủ sang làm khóa ngo i c a LOP.

ư → LOP (MaLop, TgianMo, TgianKetthuc, HVDK, MaNV). ủ ế LOP ­ CAPDOKH có liên k t 1­1 : Đ a khóa chính c a LOP sang làm

ạ ủ khóa ngo i c a CAPDOKH.

ư → CAPDOKH (MaCD, TenCD, MaLop). ủ   ế KHOAHOC   ­   HOCVIEN   có   liên   k t   1­1   :   Đ a   khóa   chính   c a

ạ ủ KHOAHOC sang làm khóa ngo i c a HOCVIEN

→ HOCVIEN (MaHV, TenHV, NgaySinh, Gioitinh, SDTHocvien,

MaKH).

ư ủ ế CAPDOKH ­ HOCPHI có liên k t 1­1 : Đ a khóa chính c a CAPDOKH

sang làm khóa ngo i c a HOCPHI

ạ ủ → HOCPHI (MaCD, TongTien)

ế ủ ả ạ ở ả ở c 4: Liên k t 1­N → khóa c a b ng bên 1 tr  thành khóa ngo i b ng bên

ướ B nhi u.ề

ủ ư ế CAPDOKH ­ GIANGVIEN có liên k t 1­N: Đ a khóa chính c a

CAPDOKH sang thành khóa ngo i c a GIANGVIEN.

ư ủ ạ ủ → GIANGVIEN (MaGV, TenGV, SdtGV, SobuoiGD, MaCD). CAPDOKH ­ TAILIEU có liên k t 1­N: Đ a khóa chính c a CAPDOKH

ế sang thành khóa ngo i c a TAILIEU.

ủ ế ạ ủ → TAILIEU (MaTL, TenTL, MaCD). KHOAHOC ­ CAPDOKH có liên k t 1­N: Đ a khóa chính c a

ạ ủ ư KHOAHOC sang làm khóa ngo i c a CAPDOKH.

ư ủ ế → CAPDOKH (MaCD, TenCD, MaLop, MaKH). LOP ­ HOCVIEN có liên k t 1­N: Đ a khóa chính c a LOP sang làm

ạ ủ khóa ngo i c a HOCVIEN.

→ HOCVIEN (MaHV, TenHV, NgaySinh, Gioitinh, SDTHocvien, MaKH,

MaLop).

ộ ể ỉ ủ ả i qu n lý. NVQL là khóa ngoài c a

ế ườ ** Thu c tính NVQL đ  ch  ra ng ế nhân viên tham chi u đ n NHANVIEN.

ư → NHANVIEN (MaNV, TenNV, SobuoiQL, NVQL).  ủ ế HOCVIEN ­ THI có liên k t 1 ­ N : Đ a khóa chính c a HOCVIEN sang

làm khóa ngo i c a THI.

ư ủ ế ạ ủ → THI (DiemCD, MaHV). CAPDOKH ­ THI có liên k t 1 ­ N : Đ a khóa chính c a CAPDOKH sang

Trang 15/ 37

ạ ủ làm khóa ngo i c a THI.

→ THI (DiemCD, MaHV, MaCD).

ế ướ ệ ớ ủ ể ả c 5: Liên k t M­N

ạ ủ ủ ệ ệ

ạ → Thêm 1 b ng/ quan h  m i R, chuy n khóa chính c a  B hai quan h  phía M và N thành khóa ngo i c a quan h  R. Khóa chính c a R là  ự ế ợ ủ s  k t h p c a 2 khóa ngo i.

ệ ớ ế GIANGVIEN ­ LOP có liên k t M­N: Thêm quan h  m i tên

ớ ủ

ự ế ợ ủ ạ ủ ủ ủ ạ ộ

GIANGDAY v i khóa chính c a GIANGVIEN và LOP là khóa ngo i c a R.  Khóa chính c a R là s  k t h p c a hai khóa ngo i. Và thu c tính c a liên  k t.ế

→ GIANGDAY (MaGV, MaLop, NgayGD).

ế ậ

ướ ướ ướ ị c 6: Không có thu c tính đa tr . c 7: Không có liên k t b c >2. c 8:

Trang 16/ 37

B B B GIANGVIEN (MaGV, TenGV, SdtGV, SobuoiGD, MaCD). LOP (MaLop, TgianMo, TgianKetthuc, HVDK, MaNV). HOCVIEN (MaHV, TenHV, NgaySinh, Gioitinh, SDTHocvien, MaKH, MaLop). KHOAHOC (MaKH, TenKH, MotaKH). CAPDOKH (MaCD, TenCD, MaLop, MaKH). NHANVIEN (MaNV, TenNV, SobuoiQL, NVQL). HOCPHI (MaCD, TongTien). KHENTHUONG (MaKT, MucdoKT, MaGV). TAILIEU (MaTL, TenTL, MaCD). THI (DiemCD, MaHV, MaCD). GIANGDAY (MaGV, MaLop, NgayGD).

Hình 3: Mô hình quan hệ

V.

Ệ Ố MÔ HÌNH H  TH NG

Trang 17/ 37

ả ệ ố Hình 4.1: Mô hình h  th ng qu n lý TTTA

ệ ố ả Hình 4.2: Mô hình h  th ng qu n lý TTTA

Trang 18/ 37

ệ ố ả Hình 4.3: Mô hình h  th ng qu n lý TTTA

ệ ố ả Hình 4.4: Mô hình h  th ng qu n lý TTTA

VI.

Ệ Ấ

CÂU L NH TRUY V N SQL.     ạ ữ ệ ả

5.1. T o và thêm d  li u vào b ng. Create database QLTTTA Use QLTTTA

̣ ̉

­­Tao bang KHOAHOC Create table KHOAHOC( MaKH char (15) not null primary key, TenKH Nvarchar (40), MotaKH Nvarchar (100));

̣ ̉

Trang 19/ 37

­­Tao bang HOCVIEN Create table HOCVIEN( MaHV char(15) not null primary key, TenHV Nvarchar(40), Ngaysinh date, Gioitinh Nvarchar(10), SDTHocVien varchar(20), MaKH char(15), MaLop char(15),

foreign key (MaKH) references KHOAHOC(MaKH), foreign key (MaLop) references LOP(MaLop));

̣ ̉

­­Tao bang LOP Create table LOP( MaLop char (15) not null primary key, TgianMo date, TgianKetthuc date, HVDK float, MaNV char(15), foreign key (MaNV) references NHANVIEN(MaNV));

̣ ̉

­­Tao bang NHANVIEN Create table NHANVIEN( MaNV char(15) not null primary key, TenNV Nvarchar(40), SobuoiQL float, NVQL char(15));

̣ ̉

­­Tao bang HOCPHI Create table HOCPHI( MaCD char(15), Tongtien float, foreign key (MaCD) references CAPDOKH(MaCD));

̣ ̉

­­Tao bang CAPDOKH Create table CAPDOKH( MaCD char(15) not null primary key, TenCD Nvarchar(40), MaLop char(15), MaKH char(15), foreign key (MaLop) references LOP(MaLop), foreign key (MaKH) references KHOAHOC(MaKH));

̣ ̉

Trang 20/ 37

­­Tao bang KHENTHUONG Create table KHENTHUONG( MaKT char(15) not null primary key, MucdoKT float,

MaGV char(15), foreign key (MaGV) references GIANGVIEN(MaGV));

̣ ̉

­­Tao bang GIANGVIEN Create table GIANGVIEN( MaGV char(15) not null primary key, TenGV Nvarchar(40), SdtGV varchar(40), SobuoiGD float, MaCD char(15), foreign key (MaCD) references CAPDOKH(MaCD));

̣ ̉

­­Tao bang TAILIEU Create table TAILIEU( MaTL char(15) not null primary key, TenTL Nvarchar(40), MaCD char(15), foreign key (MaCD) references CAPDOKH(MaCD));

̣ ̉

­­Tao bang GIANGDAY Create table GIANGDAY( MaGV char(15) not null, MaLop char(15) not null, NgayGD date, primary key (MaGV, MaLop), foreign key (MaGV) references GIANGVIEN(MaGV), foreign key (MaLop) references LOP(MaLop));

̣ ̉

­­Tao bang THI Create table THI( MaHV char(15), MaCD char(15), DiemCD float, foreign key (MaHV) references HOCVIEN(MaHV), foreign key (MaCD) references CAPDOKH(MaCD));

ả ạ

Trang 21/ 37

ậ ­­T o b ng đăng nh p Create table Account(

Tendangnhap Nvarchar(30) not null primary key, Matkhau Nvarchar(30), Vaitro Nvarchar(30));

Select * From NHANVIEN

̉

́ư ,5,'NVQL01'),

̣

̉

̃ư ̣ ­­Thêm d  liêu bang NHANVIEN  Insert into NHANVIEN Values ('NV01',N'Đ c Anh' ('NV02',N'Thanh Huyên'̀ ,4,''), ,10,''), ('NV03',N'Diêu Châu' ,8,'NVQL02'), ('NV04',N'Bao Trinh' ('NV05',N'Văn Lâm',6,'NVQL03');

Select * From LOP

̃ư ̣ ̉

­­Thêm d  liêu bang LOP  Insert into LOP Values ('L01','2020/06/14','2020/07/14',30,'NV01'), ('L02','2020/06/14','2020/07/14',35,'NV01'), ('L03','2020/12/5','2021/1/5',30,'NV02'), ('L04','2021/05/14','2021/06/14',40,'NV03'), ('L05','2021/08/11','2021/09/11',30,'NV04'), ('L06','2021/11/12','2021/12/12',35,'NV01');

Select * From HOCVIEN

̉

́ ̀ ,'2010/10/10',N'N 'ữ ,1234,'K01','L01'),

̣ ,'2008/03/07',N'Nam',1235,'K02','L05'),

́ư ̉ ,'2009/12/25',N'Nam',4234,'K03','L02'),

,'2010/02/25',N'Nam',5634,'K04','L01'), ,'2007/11/15',N'Nam',1674,'K05','L02'),

̃ ́ ,'2010/10/04',N'N 'ữ ,1298,'K06','L03'),

̃

̀

Trang 22/ 37

̃ư ̣ ­­Thêm d  liêu bang HOCVIEN  Insert into HOCVIEN Values ('HV01',N'Thuy Hăng' ́ ('HV02',N'Quôc Hiêp' ('HV03',N'Đ c Hai' ('HV04',N'Huy Hoang'̀ ('HV05',N'Văn Thăng' ('HV06',N'My Linh' ('HV07',N'Nguyên Thuy' ('HV08',N'Hoang D ng' ('HV09',N'Nguyên C ng' ́ ,'2008/12/05',N'N 'ữ ,7334,'K07','L04'), ươ ,'2009/02/24',N'Nam',1924,'K08','L05'), ̃ ươ ,'2010/11/17',N'Nam',1934,'K09','L04'),

('HV10',N'Xuân Chiên'́ ,'2008/12/16',N'Nam',1904,'K10','L04');

Select * From KHOAHOC

̉

̀ ),

̉ ̉

́ ượ ́ ng' ), ́ ơ

́ ̀ ́ ̣

́ ̀ ),

̀ ),

̉ ̉

́ ượ ́ ng' ́ ơ

́ ̣ ̃ư ̣ ­­Thêm d  liêu bang KHOAHOC  Insert into KHOAHOC Values ('K01','Ielts 7.5',N'Cam kêt đâu ra' ́ ('K02','Toeic',N'Đam bao chât l ̀ ́ ̉ ư ), ươ ('K03','Communicate',N'Giao tiêp v i ng i ban x ' ở ), ('K04','Listening',N'Hoc phi đi kem sach v ' ('K05','Ielts 6.0',N'Cam kêt đâu ra' ('K06','Speaking',''), ('K07','Ielts 8.0',N'Cam kêt đâu ra' ́ ('K08','',N'Đam bao chât l ), ('K09','Writing',N'Giao tiêp v i ng ̀ ('K10','Ieltes 5.0',N'Hoc phi đi kem sach v ' ̀ ́ ̉ ư ), ươ i ban x ' ́ ở );

Select * From CAPDOKH

̉

̃ư ̣ ­­Thêm d  liêu bang CAPDOKH  Insert into CAPDOKH Values ('Level 1','Start','L01','K01'), ('Level 2','Prepare','L01','K01'),('Level 3','Pepare','L02','K02'), ('Level 4','Finish','L02','K02'),('Level 5','Start','L03','K03'), ('Level 6','Prepare','L04','K03'),('Level 7','Start','L05','K04'), ('Level 8','Finish','L06','K04');

Select * From HOCPHI

̃ư ̣ ̉

­­Thêm d  liêu bang HOCPHI  Insert into HOCPHI Values ('Level 1',4000000),('Level 2',4500000),('Level 3',4750000), ('Level 4',3500000),('Level 5',5000000),('Level 6',3750000), ('Level 7',4800000),('Level 8',3500000);

Select * From GIANGVIEN

Trang 23/ 37

̃ư ̣ ̉ ­­Thêm d  liêu bang GIANGVIEN

ươ ,2343,20,'Level 2'), ng'

̣

̣ ,2347,20,'Level 5'), ,1345,26,'Level 8'),

Insert into GIANGVIEN Values ('GV01','Jully',2345,20,'Level 1'), ('GV02',N'Văn Ph ('GV03','Holly',2349,25,'Level 3'), ('GV04','Jone',2245,20,'Level 1'), ('GV05','Thomas',9345,25,'Level 4'), ('GV06',N'Diêp Linh' ('GV07',N'Ngoc Anh' ('GV08','Alice',2445,20,'Level 6');

Select * From KHENTHUONG

̃ư ̣ ̉

­­Thêm d  liêu bang KHENTHUONG Insert into KHENTHUONG Values ('KT01',1.5,'GV02'),('KT02',1.0,'GV04'),('KT03',1.6,'GV01'), ('KT04',2.0,'GV03'),('KT05',1.55,'GV06');

Select * From TAILIEU

̉

̀ ̣ ̣ ,'Level 1'),

,'Level 1'),('TL02',N'Tai liêu A2' ̀ ̣ ̣

̀ ̣ ̣

̣ ̣

̀ ̀ ̀ ̀ ̀ ̀ ̣ ̣ ̃ư ̣ ­­Thêm d  liêu bang TAILIEU Insert into TAILIEU  ̀ Values ('TL01',N'Tai liêu A1' ('TL03',N'Tai liêu B1' ('TL05',N'Tai liêu C' ('TL07',N'Tai liêu D2' ('TL09',N'Tai liêu F1' ,'Level 2'),('TL04',N'Tai liêu B2' ,'Level 3'),('TL06',N'Tai liêu D1' ,'Level 4'),('TL08',N'Tai liêu E' ,'Level 6'),('TL10',N'Tai liêu F2' ,'Level 2'), ,'Level 4'), ,'Level 5'), ,'Level 6');

Select * From GIANGDAY

̉

̃ư ̣ ­­Thêm d  liêu bang GIANGDAY Insert into GIANGDAY Values ('GV01','L01','2020/06/15'),('GV02','L02','2020/08/14'), ('GV03','L03','2021/04/12'),('GV04','L04','2021/12/02'), ('GV05','L05','2021/12/24'),('GV06','L06','2021/11/11');

Select * From THI

Trang 24/ 37

̉ ̃ư ̣ ­­Thêm d  liêu bang THI

Insert into THI Values ('HV01','Level 1',9),('HV01','Level 2',8.5), ('HV02','Level 7',4), ('HV03','Level 3',8.75),('HV03','Level 4',3), ('HV04','Level 1',7.75),('HV04','Level 2',8), ('HV05','Level 3',6),('HV05','Level 4',3.75), ('HV06','Level 7',9.5),('HV06','Level 8',10), ('HV07','Level 5',9), ('HV08','Level 7',8.75), ('HV09','Level 6',8), ('HV10','Level 6',5);

Select * From Account

ữ ệ

ả ­­Thêm d  li u b ng Account Insert into Account Values ('giangvien','123','giang_vien'),('nhanvien','234','nhan_vien'), ('hocvien','123','hoc_vien');

ự ệ ệ ấ 5.2. Th c hi n các câu l nh truy v n.

ủ ụ

ọ ọ ạ ấ ế ế t danh sách h c viên,tên h c viên thi l ộ i 1 c p đ  nào đó.

5.2.1. Th  t c (Procedure) ủ ụ 1. Vi t 1 th  t c cho bi ộ ề ể Đi m <=5 (tham truy n mã c p đ ) Create proc HV_ThiLai @macd char(10) as begin

if (exists (select * from CAPDOKH where macd = @macd)) select TTHocVien.MaHV, TenHV, DiemCD from TTHocVien,THI where TTHocVien.MaCD = THI.MaCD and TTHocVien.MaHV =

Thi.MaHV and thi.MaCD = @macd and Thi.DiemCD<=5

ấ ộ else print N'Không có c p đ  này'

end

Trang 25/ 37

exec HV_ThiLai 'Level 4'

exec HV_ThiLai 'Level 15'

ư ứ ộ ả ưở ừ ng t 1,5­2

2. Đ a ra danh sách gi ng viên có m c đ  khen th create proc KT_GV as begin

select giangvien.magv,tengv,mucdokt  from giangvien,KHENTHUONG where giangvien.magv=KHENTHUONG.magv and MucdoKT >=1.5 and

mucdokt <=2 end

exec KT_GV

ế ủ ớ ọ t 1 th  t c đ a ra danh sách h c viên c a 1 l p nào đó

ủ ụ ư 3. Vi create proc DS_HV @malop char(10) as begin

if(exists (Select * from LOP where malop=@malop)) select mahv, tenhv, gioitinh, lop.malop from HOCVIEN, LOP where lop.malop=@malop and hocvien.MaLop = lop.MaLop

ồ ạ ớ else  print N'L p đó không t n t i trong CSDL'

end

Trang 26/ 37

exec DS_HV 'L01'

ớ ộ ế t m t th  t c đ a ra danh sách nhân viên v i các thông tin MaNV, TenNV,

ướ ạ ủ ỏ ủ ụ i d ng con tr  OUTPUT c a th  t c

ủ ụ ư 4. Vi ư SobuoiQL, MaLop.Danh sách đ a ra d Create procedure TTNHANVIEN @dsnv CURSOR VARYING OUTPUT as begin

set @dsnv = CURSOR for select NHANVIEN.MaNV, TenNV, SobuoiQL, LOP.MaLop from NHANVIEN, LOP where NHANVIEN.MaNV = LOP.MaNV

open @dsnv end

declare @mycursor CURSOR exec TTNHANVIEN @dsnv = @mycursor output fetch next from @mycursor while (@@FETCH_STATUS=0) fetch next from @mycursor

Trang 27/ 37

close @mycursor deallocate @mycursor

ọ ế ả ề ủ t 1 hàm tr  v  dtb c a 1 h c viên nào đó

5.2.2. Hàm (Function) 1. Vi Create function diemtrungbinh (@mahv char(10)) returns real as begin     declare @dtb real;     select @dtb= avg(DiemCD)     From THI, hocvien, capdokh     where thi.mahv = hocvien.mahv and thi.macd=capdokh.macd and thi.mahv =  @mahv     return @dtb end

select dbo.diemtrungbinh ('HV04')

ọ ộ ạ ế ả ề ữ ỏ ủ ấ ạ t m t hàm tr  v  nh ng h c viên đ t lo i gi ộ ấ i c a c p đ  b t kì (dtb>8)

Trang 28/ 37

2.Vi create function hv_gioi (@macd char(10)) returns table  as return (select tthocvien.mahv, tenhv, tthocvien.macd, tencd, avg(diemcd) as dtb

from tthocvien,thi where @macd = tthocvien.macd and tthocvien.mahv = thi.mahv and

tthocvien.macd = thi.macd

group by tthocvien.mahv, tenhv, tthocvien.macd, tencd having avg(diemcd) >= 8)

select * from hv_gioi ('level 2')

ộ ế ả ề ệ ủ ấ ng tài li u c a c p đ  đó.

ấ ấ

ố ượ ộ ấ t hàm tr  v  danh sách các c p đ  và s  l 3.Vi ệ ố ượ ộ ư đ a ra danh sach các c p đ  có s  l ng tài li u ít nh t  create function soluongTL () returns @bang table (macd char(10), sotl int) as begin

insert into @bang select tailieu.macd, count (matl) from tailieu group by tailieu.macd return

end

select macd, sotl from soluongTL() where sotl = (select min(sotl) from soluongTL())

ề ứ ố ổ ằ ớ ổ ỗ ớ ế

t f_hocphi cua hv nào đó v i f_hocphi b ng t ng s  t ng ti n  ng v i m i  ộ

4.Vi ấ c p đ  mà hv đó đăng kí */ Create function f_hocphi (@mahv char(10)) returns real as begin

Trang 29/ 37

declare @hocphi real

select @hocphi = sum(tongtien)  from HOCPHI, TTHocVien where mahv = @mahv and HOCPHI.MaCD=TTHocVien.macd return @hocphi

end

select dbo.f_hocphi ('HV03')

ở ả ể ọ ậ ọ ọ ự ậ  b ng h c viên thì c p nh t h c viên d

ớ ớ t 1 trigger đ  thêm 1 h c viên   b ng l p(mã l p)

5.2.3. Trigger ế 1.Vi ế ở ả ki n  create trigger insert_HV on HocVien For insert as

if(exists(select * from inserted)) begin

update lop set HVDK =hvdk +1 where malop =(select malop from inserted)

end

select * from lop select * from hocvien

́ ̀ Insert into KHOAHOC Values ('K13','toeic 3',N'Cam kêt đâu ra' )

Trang 30/ 37

Insert into HOCVIEN Values ('HV13',N'Hoàng','2011/12/20',N'Nam',2345,'K12','L05')

ậ ể ế ậ

t 1 trigger đ  không cho c p nh t mahv  2.vi create trigger NO_update on HOCVIEN for update as begin

if(update(mahv)) begin

ượ ậ ộ ậ c phép c p nh t c t mahv'

ạ print N'b n không đ rollback tran;

end

else

ậ ạ ậ ; print N'b n đã c p nh t thành công'

end

update hocvien  set mahv = 'HV14' where tenhv like N'Thúy Lan'

ộ ạ ả

ộ ấ ử ấ ả ằ ả ể ả ử ấ ộ

ớ ử ế ấ ộ

ộ ấ 3.T o Trigger đ  đ m b o r ng khi s a m t c p đ  trong b ng CAPDOKH thì  ộ ướ c khi s a và tên c p đ  sau khi  tên c p đ  sau khi s a ph i khác tên c p đ  tr ạ ả ử s a không trùng v i tên các c p đ  đã có trong b ng. N u vi ph m thì thông báo  i.ỗ l create trigger Update_CapdoKH on CAPDOKH for update as if (((select TenCD from inserted) != (select TenCD from deleted))

and (select count(*) from CAPDOKH where TenCD = (select TenCD

;

Trang 31/ 37

from inserted))<=1) ử         print N'S a thành công'     else begin

ử ậ

print N'S a không thành công, nh p tên khác' ;         rollback tran;     end

UPDATE CAPDOKH SET TENCD = N'Start' WHERE MaCD = 'Level 1'

UPDATE CAPDOKH SET TENCD = N'Begin' WHERE MaCD = 'Level 1'

5.2.4. View  1.T o khung nhìn View­L­HV­CD  create view TTHocVien  as select mahv,tenhv,macd, tencd,lop.malop from hocvien, capdokh, lop where hocvien.MaLop = lop.MaLop and CAPDOKH.MaLop = lop.MaLop

Trang 32/ 37

select * from TTHocVien

ọ ạ

2. T o view thông tin h c viên sau thi Create view TTHV_SAUTHI as select hocvien.mahv, tenhv, capdokh.macd, tencd, dbo.diemtrungbinh(mahv) as dtb from hocvien, capdokh where hocvien.makh = khoahoc.makh

Trang 33/ 37

select * from TTHV_SAUTHI

3. T o view TailieuGD Create view TailieuGD as select magv, tengv, sdtgv, sobuoiGD, capdokh.macd, tencd, malop,makh, matl, tentl from giangvien, capdokh, tailieu where giangvien.MaCD = CAPDOKH.MaCD and CAPDOKH.MaCD =  TAILIEU.MaCD

select * from TailieuGD

ệ ấ ị

5.2.5. Con trỏ ể 1.Hi n th  ra hv có đi m tb cao nh t  declare max_dtb cursor

Trang 34/ 37

dynamic scroll for select hocvien.mahv, tenhv, dbo.diemtrungbinh(mahv) as maxdtb from hocvien

group by hocvien.mahv, tenhv having dbo.diemtrungbinh(mahv) = (SELECT  max(dbo.diemtrungbinh(mahv)) AS maxdtb FROM hocvien) open max_dtb;

declare @mahv char(5) , @tenhv nvarchar (30) , @avgdiemmax float FETCH NEXT FROM max_dtb INTO @mahv,@tenhv,@avgdiemmax ấ PRINT N'Đi m trung bình cao nh t là

ể '+CONVERT(char(4),@avgdiemmax);

WHILE (@@FETCH_STATUS=0)

BEGIN

ữ ể

ể ấ ; PRINT N'Nh ng sinh viên sau có đi m cao nh t: ' PRINT N'Sinh viên '+@tenhv +N' có đi m tb

'+CONVERT(char(4),@avgdiemmax);

FETCH NEXT FROM max_dtb INTO

@mahv,@tenhv,@avgdiemmax     END CLOSE max_dtb; DEALLOCATE max_dtb;

ườ ề i dùng

5.2.6. Phân quy n cho ng ề /* Phân quy n */ ­­T o login sp_addlogin 'giangvien', '123' sp_addlogin 'nhanvien', '234' sp_addlogin 'hocvien', '123'

­­T o database user sp_grantdbaccess 'giangvien', 'GiangVien' sp_grantdbaccess 'nhanvien', 'NhanVien' sp_grantdbaccess 'hocvien', 'HocVien'

ề ­­C p quy n cho role sp_addrole giang_vien  grant insert, select, update, delete on THI to giang_vien

Trang 35/ 37

sp_addrole nhan_vien

grant insert, select, update, delete on HOCVIEN to nhan_vien grant insert, select  on KHENTHUONG to nhan_vien grant insert, select, update, delete on LOP to nhan_vien

sp_addrole hoc_vien  grant select on THI to hoc_vien   ­­Thêm user vào role sp_addrolemember 'giang_vien', 'GiangVien' sp_addrolemember 'nhan_vien', 'Nhanvien' sp_addrolemember 'hoc_vien', 'HocVien'

ế ể ớ ớ

5.2.7. Transaction ể 1.Chuy n hv sang l p HV01 sang l p L02 n u L02 mà có hv >20 thì chuy n sang  ớ l p khác  Begin tran chuyen_hv

declare @x char(15) select @x=malop from HOCVIEN where mahv='HV01' update lop set HVDK=hvdk­1 where malop=@x; update hocvien set malop='L02' where mahv='HV01'; update lop set hvdk=hvdk+1 where malop='L02'; if(not exists (select * from lop where malop='L02'))or(not exists (select *

from hocvien where mahv='HV01'))

or((select hvdk from lop where malop='L02')>=20)

begin

ồ ạ ớ ặ ọ ố ượ ặ i l p ho c h c viên ho c đã quá s  l ọ ng h c viên

print N'không t n t ớ ; ủ c a 1 l p ' rollback tran

end else commit tran

ề ỏ ệ Th a mãn đi u ki n

Trang 36/ 37

ề ỏ ệ Không th a mãn đi u ki n

VII.

Ệ Ả

https://sites.google.com/view/tlucse486

https://www.sudo.vn/blog/mo­

ị ơ ở ữ ệ ế TÀI LI U THAM KH O   ả ệ ✔ Giáo trình H  qu n tr  CSDL :  ✔ Mô Hình c  s  d  li u trung tâm ti ng anh:

hinh­co­so­du­lieu­cho­trung­tam­ngoai­ngu.html

Phân công:

ề ệ ệ ố ỏ SV Hoàng Qu c Hi p: Làm giao di n, phân quy n, con tr , trigger

GIANGVIEN (MaGV, TenGV, SdtGV, SobuoiGD).GIANGVIEN (MaGV, TenGV, SdtGV, SobuoiGD

Trang 37/ 37

ủ ụ ạ ằ ị ị SV Ph m Th  Thúy H ng: Làm hàm, th  t c, view, giao d ch, I ,II, III