1. Trang chủ
  2. » Công Nghệ Thông Tin

Giáo trình Cơ sở dữ liệu (Nghề: Lập trình máy tính-CĐ) - CĐ Cơ Giới Ninh Bình

88 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 88
Dung lượng 1,05 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

(NB) Giáo trình Cơ sở dữ liệu hệ thống kiến thức chuyên ngành trang bị cho sinh viên nghề Lập trình máy tính, môn học góp phần cung cấp những nội dung liên quan đến việc xây dựng các ứng dụng về cơ sở dữ liệu. Nội dung của giáo trình gồm có: Tổng quan về cơ sở dữ liệu; Mô hình cơ sở dữ liệu quan hệ; Ngôn ngữ truy vấn dữ liệu; Ràng buộc toàn vẹn; Lý thuyết thiết kế cơ sở dữ liệu.

Trang 1

B  NÔNG NGHI P VÀ PHÁT TRI N NÔNG THÔNGỘ Ệ Ể

TRƯỜNG CAO Đ NG C  GI I NINH BÌNHẲ Ơ Ớ

GIÁO TRÌNHMÔN H C:  C  S  D  LI UƠ Ở Ữ ỆNGH : Ề L P TRÌNH MÁY TÍNHẬTRÌNH Đ : CAO Đ NG NGHỘ Ẳ Ề

Ban hành kèm theo Quy t đ nh s :        /QĐ­…   ngày…….tháng….năm  ế ị ố  

c a Tr ủ ườ ng Cao đ ng ngh  C  gi i Ninh Bình ẳ ề ơ ớ

Trang 2

Ninh Bình, năm 2018

Trang 3

TUYÊN B  B N QUY NỐ Ả Ề

Tài li u này thu c lo i sách giáo trình nên các ngu n thông tin có thệ ộ ạ ồ ể 

được phép dùng nguyên b n ho c trích dùng cho các m c đích v  đào t o vàả ặ ụ ề ạ  tham kh o.ả

M i m c đích khác mang tính l ch l c ho c s  d ng v i m c đích kinhọ ụ ệ ạ ặ ử ụ ớ ụ  doanh thi u lành m nh s  b  nghiêm c m.ế ạ ẽ ị ấ

Trang 4

L I GI I THI UỜ Ớ Ệ

Giáo  trình  đư cợ   nhóm  tác  giả  biên  soạn  nhằm  t oạ   điều  ki nệ   thu nậ  

l iợ  cho sinh viên ti pế  thu t tố  ki nế  thức liên quan đ nế  môn học. Đây là tài li uệ  tham  kh o chínhả   dành  cho  sinh  viên  ngành l p trình máy tính,ậ   trư ngờ   Cao đẳng C  gi i Ninh Bìnhơ ớ  h cọ  t pậ  và nghiên cứu môn h c C  s  d  li u.ọ ơ ở ữ ệ

Trong h  th ng ki n th c chuyên ngành trang b  cho sinh viên ngh  L pệ ố ế ứ ị ề ậ  trình máy tính, môn h c góp ph n cung c p nh ng n i dung liên quan đ nọ ầ ấ ữ ộ ế  

vi c xây d ng các  ng d ng v  c  s  d  li u.ệ ự ứ ụ ề ơ ở ữ ệ

Các n i dung chính độ ược trình bày trong tài li u này  g m các chệ ồ ương:

Chương 1: T ng quan v  c  s  d  li uổ ề ơ ở ữ ệ

Chương 2: Mô hình c  s  d  li u quan hơ ở ữ ệ ệ

Chương 3: Ngôn ng  truy v n d  li uữ ấ ữ ệ

Chương 4: Ràng bu c toàn v nộ ẹ

Chương 5: Lý thuy t thi t k  c  s  d  li uế ế ế ơ ở ữ ệ

M c d u có r t nhi u c  g ng, nh ng không tránh kh i nh ng khi mặ ầ ấ ề ố ắ ư ỏ ữ ế  khuy t,  r t mong nh n đế ấ ậ ược s  đóng góp ý ki n c a đ c gi  đ  giáo trìnhự ế ủ ộ ả ể  

Trang 5

M C L CỤ Ụ

Trang 6

TÀI LI U THAM KH OỆ Ả

[1]. Lê Ti n Vế ương, nh p môn c  s  d  li u quan h , 2000ậ ơ ở ữ ệ ệ

[2]. Vũ Đ c Thi, C  s  d  li u ki n th c và th c hành, Nhà xu t b n th ngứ ơ ở ữ ệ ế ứ ự ấ ả ố  

kê 1997

[3]   Nguy n   An   T ,   Giáo   trình   nh p   môn   c   s   d   li u,   ĐHKHTN­ễ ế ậ ơ ở ữ ệ  ĐHQGTPHCM 1996

[5] Đ  Trung Tu n, C  s  d  li u, Nhà xu t b n giáo d c 1998ỗ ấ ơ ở ữ ệ ấ ả ụ

[6]. Nguy n Xuân Huy, lê Hoài B c, Bài t p c  s  d  li u, Nhà xu t b nễ ắ ậ ơ ở ữ ệ ấ ả  

th ng kê, 2003ố

Trang 7

GIÁO TRÌNH MÔN H C  Tên môn h c: C  s  d  li u ọ ơ ở ữ ệ

Mã s  môn h c: MH 14ố ọ

V  trí, tính ch t, ý nghĩa và vai trò c a môn h c:ị ấ ủ ọ

­ V  trí:  ị Là môn h c sau các môn h c lý thuy t c  s ọ ọ ế ơ ở

­ Tính ch t:  ấ Là môn h c chuyên môn ngh  l p trình máy tínhọ ề ậ

­ Ý nghĩa và vai trò c a môn h c ch a đ ng nh ng ki n th c c  b n v  c  sủ ọ ứ ự ữ ế ứ ơ ả ề ơ ở 

d  li u nh : mô hình c  s  d  li u, đ i s  quan h , ngôn ng  truy v n SQL,ữ ệ ư ơ ở ữ ệ ạ ố ệ ữ ấ  ràng bu c toàn v n,  ; Là môn h c h  tr  cho mô đun H  qu n tr  c  s  dộ ẹ ọ ỗ ợ ệ ả ị ơ ở ữ 

li u.ệ

M c tiên  c a môn h cụ ủ ọ

­ Ki n th c:ế ứ

+ Trình bày được các khái ni m c  b n trong c  s  d  li u;ệ ơ ả ơ ở ữ ệ

+ Đ nh nghĩa đị ược khái ni m v  quan h , thu c tính, các lo i khóa, ệ ề ệ ộ ạ

lược đ  quan h , b  giá tr  và ph  thu c hàm;ồ ệ ộ ị ụ ộ

+ Trình bày được các l nh c  b n c a ngôn ng  SQL: đ nh nghĩa dệ ơ ả ủ ữ ị ữ 

+ Chu n hóa đẩ ượ ơ ở ữ ệc c  s  d  li u

­ Năng l c t  ch  và trách nhi mự ự ủ ệ :  Rèn luy n tính c n th n, chính xác khi thaoệ ẩ ậ  tác v i c  s  d  li u. ớ ơ ở ữ ệ

Khái ni m đệ ược các mô hình d  li u m ng, phân c p, quan h , th c th  liênữ ệ ạ ấ ệ ự ể  

k t và mô hình hế ướng đ i tố ượng

Trang 8

1. M t s  khái ni m c  b n     ộ ố ệ ơ ả

1.1. Đ nh nghĩa c  s  d  li u  ị ơ ở ữ ệ

Cơ  sở  dữ  li uệ   (CSDL)  là  m tộ   hệ  th ngố   các  thông  tin  có  c uấ   trúc 

đượ   l uc ư  trữ trên các thi tế  bị như băng t ,ừ  đĩa t ,…ừ  để có thể thoả mãn yêu 

c uầ   khai  thác đ ngồ   th iờ   c aủ   nhi uề   ngườ   sử  d ng. CSDLi ụ  g nắ   li nề   v iớ   đ iạ  

s ,ố  logic toán và m tộ  số lĩnh v cự  khác

1.2.  u đi m c a c  s  d  li u  Ư ể ủ ơ ở ữ ệ

­ Gi mả   sự  trùng  l pặ   thông  tin  xu ngố   m cứ   th pấ   nh tấ   và  do  đó  b oả   đ mả  

đượ  tính nh tc ấ  quán và toàn v nẹ  dữ li u.ệ

­ Đ mả  b oả  dữ li uệ  có thể truy xu tấ  theo nhi uề  cách khác nhau

­ Khả năng chia sẻ thông tin cho nhi uề  ngườ  sử d ng.i ụ

1.3. Nh ng v n đ  mà CSDL c n ph i gi i quy t ữ ấ ề ầ ả ả ế

­ Tính chủ quy n ề  c a ủ  dữ li u ệ

Tính  chủ  quy nề   c aủ   dữ  li uệ   đượ   thể  hi nc ệ   ở  phươ   di nng ệ   an  toàn  dữ 

li u,ệ  khả năng bi uể  di nễ  các m iố  liên hệ ngữ nghĩa c aủ  dữ li uệ  và tính chính xác  c aủ  dữ li u.ệ  Đi uề  này có nghĩa là ngườ  khai thác CSDL ph ii ả  có nhi mệ  

vụ c pặ   nh tậ  các thông tin m iớ  nh tấ  c aủ  CSDL

­ Tính b o ả  m t ậ  và quy n ề  khai thác thông tin c a ủ  ng ườ  sử d ng i ụ

Do có nhi uề  ngườ  đi ượ  phép khai thác dữ li uc ệ  m tộ  cách đ ngồ  th i,ờ  nên  c nầ  thi tế  ph iả  có m tộ  cơ chế b oả  m tậ  và phân quy nề  h nạ  khai thác CSDL. Các 

hệ đi uề  hành nhi uề  ngườ  sử d ngi ụ  hay hệ đi uề  hành m ngạ  c cụ  bộ  đ uề   có cung  c pấ  cơ chế này

­ Tranh ch p ấ  dữ li u ệ

Nhi uề   ngườ   đi ượ   phép  truy  nh pc ậ   cùng  m tộ   lúc  vào  tài  nguyên  dữ  li uệ  

c aủ   CSDL  v iớ   nh ngữ  m cụ   đích  khác  nhau,  do  đó  c nầ   thi tế   ph iả   có  m tộ   cơ chế  uư   tiên  khi  truy  nh pậ   dữ  li u.ệ   Cơ  chế  uư   tiên  có  thể  đượ   th cc ự   hi nệ  

b ngằ  vi cệ   c pấ  quy nề   uư  tiên cho t ngừ  ngườ  khai thác.i

­ Đ m ả  b o ả  an toàn dữ li u ệ  khi có sự cố

Vi cệ  qu nả  lý dữ li uệ   t pậ  trung có thể làm tăng khả năng m tấ  mát ho cặ  sai 

l chệ   thông  tin  khi  có  sự  cố  như  m tấ   đi nệ   đ tộ   xu t,ấ   hay  m tộ   ph nầ   đĩa  l uư  trữ  CSDL bị h ,…ư  m tộ  số hệ đi uề  hành m ngạ  có cung c pấ  d chị  vụ sao l uư  nh

ả   đĩa  c ng,ứ   tự  đ ngộ   ki mể   tra  và  kh cắ   ph cụ   l iỗ   khi  có  sự  c ố   Tuy  nhiên, 

Trang 9

bên  c nhạ   d chị   vụ c aủ  hệ đi uề  hành, để  đ mả  b oả   CSDL luôn  nổ  đ nh,ị  m tộ  CSDL nh tấ  thi tế  ph iả   có m tộ  cơ chế khôi ph cụ  dữ li uệ  khi có các sự cố b tấ  ngờ x yả  ra.

1.4. Các đ i t ố ượ ng s  d ng CSDL ử ụ

­ Nh ngữ   ngườ   sử  d ngi ụ   CSDL  không  chuyên  về  lĩnh  v cự   tin  h c ọ  vàCSDL

­ Các  chuyên  viên  CSDL  bi tế   khai  thác  CSDL  Nh ngữ   ngườ   này  có  th  xâyi ể  

d ngự   các  ngứ   d ngụ   khác  nhau,  ph cụ   vụ  cho  các  m cụ   đích  khác  nhau  trên CSDL

­ Nh ngữ  ngườ   qu ni ả   trị  CSDL, đó là  nh ngữ   ngườ   hi ui ể  bi tế  về  tin h c,ọ  về các hệ qu nả  trị CSDL và hệ th ngố  máy tính. Họ là ngườ  tổ ch ci ứ  CSDL, do 

đó  họ  ph iả   n mắ   rõ  các  v nấ   đề  kỹ  thu tậ   về  CSDL  để  có  thể  ph cụ   h iồ  CSDL  khi  có  sự c ố  Họ là nh ngữ  ngườ  c pi ấ  quy nề  h nạ  khai thác CSDL, do 

v yậ  họ có thể gi iả   quy tế  đượ  các v nc ấ  đề tranh ch pấ  dữ li uệ  n uế  có

1.5. H  qu n tr  c  s  d  li u  ệ ả ị ơ ở ữ ệ

Để gi iả  quy tế  t tố  nh ngữ  v nấ  đề mà cách tổ ch cứ  CSDL đ tặ  ra như đã nói  ở trên,  c nầ   thi tế   ph iả   có  nh ngữ   ph nầ   m mề   chuyên  dùng  để  khai  thác  chúng. 

Nh ngữ   ph nầ   m mề   này  đượ   g ic ọ   là  các  hệ  qu nả   trị  CSDL.  Các hệ  qu nả   trị CSDL  có  nhi mệ   vụ  hỗ  trợ  cho  các  nhà  phân  tích  thi tế   kế  CSDL  cũng như  nh ngữ   ngườ   khai  thác  CSDL.  Hi ni ệ   nay  trên  thị  trườ   ph nng ầ   m mề  

đã  có  nh ngữ   hệ  qu nả   trị  CSDL  hỗ  trợ  đượ   nhi uc ề   ti nệ   ích  nh :ư   MS Access, Visual Foxpro, SQL  Server Oracle, …

M iỗ   hệ  qu nả   trị  CSDL  đ uề  đượ  cài  đ tc ặ  d aự   trên  m tộ   mô  hình  dữ  li uệ   cụ 

th ể   Dù  là  d aự   trên  mô  hình  dữ  li uệ   nào,  m tộ   hệ  qu nả   trị  CSDL  cũng  ph iả  

h iộ  đủ  các y uế  tố sau:

­ Ngôn ngữ giao ti p ế  gi a  ng ườ i  sử d ng ụ   và CSDL, bao g mồ  :

+ Ngôn  ngữ  mô tả   dữ  li u: ệ   Để  cho  phép  khai  báo c uấ  trúc  c aủ   CSDL, khai báo các m iố  liên hệ c aủ  dữ li uệ  và các quy t cắ  qu nả  lý áp đ tặ   lên các 

dữ li uệ  đó

 + Ngôn  ngữ  thao  tác  dữ  li u: ệ   Cho  phép  ngườ   sử  d ngi ụ   có  thể  c pậ   nh tậ  

dữ li uệ  (thêm/s a/xoá)ử

+ Ngôn  ngữ  truy  v n ấ   dữ  li u: ệ   Cho  phép  ngườ   khai  thác  sử  d ngi ụ   đ  ể truy 

v nấ  các thông tin c nầ  thi tế  trong CSDL

Trang 10

+ Ngôn  ngữ  qu n ả   lý  dữ  li u: ệ   Cho  phép  nh ngữ   ngườ   qu ni ả   trị  hệ  th ngố  thay đ iổ   c uấ  trúc c aủ  các b ngả  dữ li u,ệ  khai  báo b oả  m tậ  thông  tin  và c pấ  quy nề  h nạ  khai thác CSDL cho ngườ  sử d ng.,…i ụ

­ Từ đi n ể  dữ li u: ệ

Dùng  để  mô  tả  các  ánh  xạ  liên  k t,ế   ghi  nh nậ   các  thành  ph nầ   c uấ   trúc  c aủ  CSDL, các chươ  trình  ngng ứ  d ng,ụ  m tậ  mã, quy nề  h nạ  sử d ng,…ụ

­ Cơ chế gi i ả  quy t ế  v n ấ  đề tranh ch p ấ  dữ li u: ệ

M iỗ  hệ qu nả  trị CSDL cũng có thể cài đ tặ  m tộ  cơ chế riêng để gi iả  quy tế  các v nấ  đề này. M tộ  số bi nệ  pháp sau đây thườ  đng ượ  sử d ng:c ụ  thứ nh t:ấ  

c pấ   quy nề   uư  tiên cho t ngừ  ngườ  sử d ng;i ụ  thứ hai: Đánh d uấ  yêu c uầ  truy 

xu tấ  dữ  li u,ệ  phân chia th iờ  gian, ngườ  nào có yêu c ui ầ  trướ  thì có quy nc ề  truy xu tấ  dữ  li uệ  trước,…

­Hệ  qu n ả   trị  CSDL  cũng  ph i ả   có  cơ  chế  sao  l u ư   (backup)  và  ph c   h i  

(restore) dữ li u ệ  khi có sự cố x y ả  ra.

Đi uề  này có thể th cự  hi nệ  sau m tộ  th iờ  gian nh tấ  đ nhị  hệ qu nả  trị CSDL  sẽ 

tự  đ ngộ   t oạ   ra  m tộ   b nả   sao  CSDL,  cách  này  h iơ   t nố   kém,  nh tấ   là  đ iố   v iớ  CSDL l n.ớ

­Hệ qu n ả  trị CSDL ph i ả  cung c p  m t  giao di n  thân thi n, ệ  dễ s   ử d ng

1.6. Các  ng d ng c a c  s  d  li u ứ ụ ủ ơ ở ữ ệ

Hi nệ  nay, h uầ  như CSDL g nắ  li nề  v iớ  m iọ   ngứ  d ngụ  c aủ  tin h c;ọ  ch ngẳ

h nạ  như vi cệ  qu nả  lý hệ th ngố  thông tin trong các  cơ quan nhà nướ   vi cc, ệ  

l uư   trữ  và  xử  lý  thông  tin  trong  các  doanh  nghi p,ệ   trong  các  lĩnh  v cự  nghiên  c uứ

khoa  h c,ọ   trong  công  tác  gi ngả   d y,ạ   cũng  như  trong  vi cệ   tổ  ch cứ   thông  tin 

đa  phươ  ti n,…ng ệ

2. Các mô hình c  s  d  li u ơ ở ữ ệ

Mô  hình  dữ  li uệ   là  sự  tr uừ   tượ   hoá  môi  trng ườ   th c.ng ự   M iỗ   lo iạ   mô hình  dữ li uệ  đ cặ  tr ngư  cho m tộ  cách ti pế  c nậ  dữ li uệ  khác nhau c aủ  nh ngữ  nhà phân  tích  thi tế   kế  CSDL.  M iỗ   lo iạ   mô  hình  dữ  li uệ   đ uề   có  nh ngữ   uư  

đi mể   và  nh ngữ   m tặ   h nạ   chế  c aủ   nó,  nh ngư   v nẫ   có  nh ngữ   mô  hình  dữ 

li uệ   n iổ   tr iộ   và  đượ   nhi uc ề  ngườ  quan tâm nghiên c u.i ứ

Sau đây chúng ta sẽ đi mể  qua l chị  sử phát tri nể  c aủ  các mô hình dữ li u.ệVào nh ng  năm sáu mươ , thế hệ đ ui ầ  tiên c aủ  CSDL ra đ iờ  dướ  d ngi ạ  

mô hình th cự  thể k tế  h p,ợ  mô hình m ngạ  và mô hình phân c p.ấ

Trang 11

Vào nh ng  năm b y  mươ , thế hệ thứ hai c ai ủ  CSDL ra đ i.ờ  Đó là mô hình  dữ  li uệ   quan  hệ  do  EF.  Codd  phát  minh.  Mô  hình  này  có  c uấ   trúc logic  ch tặ   ch ẽ   Đây  là  mô  hình  đã  và  đang  đượ   sử  d ngc ụ   r ngộ   kh pắ   trong công  tác  qu nả   lý  trên  ph mạ   vi  toàn  c u.ầ   Vi cệ   nghiên  c uứ   mô  hình  dữ  li uệ  quan  hệ  nh mằ   vào  lý  thuy tế   chu nẩ   hoá  các  quan  hệ  và  là  m tộ   công  cụ quan  tr ngọ   trong  vi cệ   phân  tích  thi tế   kế  các  hệ  CSDL  hi nệ   nay.  M cụ   đích 

c aủ   nghiên  c uứ   này  nh mằ   bỏ  đi  các  ph nầ   tử  không  bình  thườ   c ang ủ   quan 

hệ khi th cự  hi nệ  các phép c pậ   nh t,ậ  lo iạ  bỏ các ph nầ  tử dư th a.ừ

Sang th pậ  kỷ tám m ươi, mô hình CSDL thứ ba ra đ i,ờ  đó là mô hình cơ 

sở  dữ  li uệ   hướ   đ ing ố   tượng,  mô  hình  cơ  sở  dữ  li uệ   phân  tán,  mô  hình  cơ 

m tộ   trong nh ngữ   mô  hình  ở  d ngạ   đó  là  mô  hình  th cự   thể  k tế   h pợ   (sau  đó 

m iớ   dùng  m tộ   số  quy t cắ  để  chuy nể   hệ  th ngố   từ  mô hình này  về  mô hình 

dữ li uệ  quan hệ –  các quy t cắ  này sẽ đượ  nói đ nc ế  trong m cụ  2 c a chủ ươ  ng2)

Các đ cặ  đi mể  riêng c aủ  th cự  thể g iọ  là các thu c ộ  tính.

Ch ngẳ   h nạ   các  thu cộ   tính  c aủ   sinh  viên  Nguy nễ   Văn  Thành  là:mã  số  sinh viên, gi iớ  tính, ngày sinh, hộ kh uẩ  thườ  trú, l png ớ  đang theo h c,ọ  …

Trang 12

(Trong giáo trình này, tên thu cộ  tính đượ  vi tc ế  b ngằ  chữ in hoa)

Tươ   tự  trong  ngng ứ   d ngụ   qu nả   lý  đi mể   c aủ   sinh  viên  (sẽ  đượ   trình  bày cngay sau đây) ta có các lo iạ  th cự  thể như Monhoc, Lop, Khoa,…

(Trong giáo trình này, tên c aủ  lo iạ  th cự  thể đượ  in hoa ký tự đ uc ầ  tiên,  các 

dướ   li ni ề   nét. N uế   m tộ  hệ  th ngố   có  nhi uề  lo iạ   th cự   th ,ể  để đ nơ   gi nả   hoá 

mô hình, ngườ   ta  có  thể  chỉ  nêu  tên  các  lo ii ạ   th cự   th ;ể   còn  các  thu cộ   tính 

c aủ   lo iạ   th cự   thể  đượ  li tc ệ  kê riêng

Ví dụ 1.1:

Bài toán qu nả  lý đi mể  c aủ  sinh viên đượ  phát bi uc ể  sơ bộ như sau:

M iỗ   sinh  viên  c nầ   qu nả   lý  các  thông  tin  nh :ư   họ  và  tên  (HOTENSV),ngày tháng  năm  sinh(NGAYSINH),  gi iớ   tính  (NU),  n iơ   sinh(N ISINH),Ơ   hộ  kh uẩ  

Trang 13

thườ   trú  (TINH).  M ing ỗ   sinh  viên  đượ   c pc ấ   m tộ   mã  số  sinh  viên  duy 

nh tấ   (MASV) để phân bi tệ  v iớ  m iọ  sinh viên khác c aủ  trường, m iỗ  sinh viên chỉ thu cộ   về m tộ  l pớ  nào đó. M iỗ   l pớ   h cọ   có  m tộ   mã  số  l pớ   (MALOP)duy 

nh tấ  để phân bi tệ  v iớ  t tấ  cả  các l pớ  h cọ  khác trong trường: có m tộ  tên g iọ  (TENLOP)  c aủ   l p,ớ   m iỗ   l pớ   chỉ  thu cộ   về  m tộ   khoa. M iỗ   khoa  có  m tộ   tên 

g iọ   (TENKHOA)  và  m tộ   mã  số  duy  nh tấ   (MAKHOA) để phân bi tệ  v iớ  các khoa  khác  M iỗ   môn  h cọ   có  m tộ   tên  g iọ   (TENMH)  cụ  th ,ể   đượ   h cc ọ  trong  m tộ   số  đ nơ   vị h cọ   trình  (DONVIHT)  )và  ng  ứ v iớ   môn h cọ   là m tộ  

mã  s   duyố   nh tấ   (MAMH) để phân  bi tệ  v iớ   các môn  h cọ   khác. M iỗ   gi ngả  viên c nầ  qu nả  lý các thông tin: họ và tên(HOTENGV), c pấ  h cọ   vị (HOCVI), thu cộ   m tộ   chuyên  ngành  (CHUYENNGANH)  và  đượ   gán  cho  m tc ộ   mã  số duy  nh tấ   g iọ   là  mã  gi ngả   viên(MAGV)  để  phân  bi tệ   v iớ   các  gi ngả   viên khác.  M iỗ   gi ngả   viên  có  thể  d yạ   nhi uề   môn  ở  nhi uề   khoa,  nh ngư   chỉ thu cộ   về  sự qu nả  lý hành chính c aủ  m tộ  khoa. M iỗ   sinh  viên  v iớ   m tộ   môn 

h cọ   đượ   phép  thi  t ic ố   đa  3  l n,ầ   m iỗ   l nầ   thi  (LANTHI),  đi mể   thi (DIEMTHI). M iỗ   môn  h cọ   ở  m iỗ   l pớ   h cọ   chỉ  phân  công  cho  m tộ   gi ngả  viên d yạ  (t tấ   nhiên là m tộ  gi ngả  viên thì có thể d yạ  nhi uề  môn ở m tộ  l p).ớ

V iớ    bài   toán   trên   thì  các  lo iạ   th cự    thể  c nầ    qu nả    lý   nh : ư   Sinhviên, Mônh c,ọ  Khoa, L p,ớ  Gi ngviên.ả

Ví  dụ  v iớ   lo iạ   th cự   thể  Sinhviên  thì  c nầ   qu nả   lý  các  thu cộ   tính  nh :ư  MASV,HOTENSV, NGAYSINH,… và ta có thể bi uể  di nễ  như sau:

Trang 14

g nắ   k tế   v iớ   các  lo iạ   th cự   thể (ho cặ   m iố   k tế   h p)ợ   liên  quan,  tên  m iố   k tế  

h pợ   thườ  là: thu c,ng ộ  g m ồ  , ch a, ứ

Ch ng h n gi a hai lo i th c th  L p và Khoa có m i k t h p “thu c” nh   ẳ ạ ữ ạ ự ể ớ ố ế ợ ộ ư sau:

B nả   số  c aủ   m tộ   nhánh  R  trong  m iố   k tế   h pợ   thể  hi nệ   số  lượ   các  th cng ự  thể  thu cộ   th cự   thể    ở  nhánh  “bên  kia”  có  liên  hệ  v iớ   m tộ   th cự   thể    c aủ  nhánh R

M iỗ  b nả  số là m tộ  c pặ  số (min,max), chỉ số lượ  t ing ố  thi uể  và số lượ  ng

t iố  đa  c aủ  th cự  thể khi tham gia vào m iố  k tế  h pợ  đó

Ví d :ụ

Có  nghĩa  là:  “m iỗ   sinh  viên  thu cộ   m tộ   và  chỉ  m tộ   l pớ   nên  b nả   số  bên nhánh  Sinhviên là (1,1), m iỗ  l pớ  có 1 đ nế   n  sinh viên nên b nả  số bên nhánh Lop là  (1,n)”

Trong m tộ  số trườ  h png ợ  đ cặ  bi t,ệ  m iố  k tế  h pợ  có thể có các thu cộ  tính đi kèm  và do đó chúng thườ  đng ượ  đ tc ặ  tên ý v iớ  nghĩa đ yầ  đủ h n.ơ

Ví  dụ  gi aữ   hai  lo iạ   th cự   thể  Monhoc  và  Sinhvien  có  m iố   k tế   h pợ   ketqua 

v iớ   ý  nghĩa:  “m iỗ   sinh  viên  ngứ   v iớ   m iỗ   l nầ   thi  c aủ   m iỗ   môn  h cọ   có  m tộ  

k tế  quả đi mể   thi duy nh t”.ấ

Khoá c aủ  m iố  k tế  h p:ợ  là h pợ  c aủ  các khoá c aủ  các lo iạ  th cự  thể liên quan. 

Ch ngẳ   h nạ   như  thu cộ   tính  MAGV  là  khoá  c aủ   lo iạ   th cự   thể  Giangvien, MALOP  là thu cộ  tính khoá c aủ  lo iạ  th cự  thể Lop, MAMH là thu cộ  tính khoá 

c aủ  lo iạ  th cự   thể   Monhoc,   do   đó   m i  ố  k tế    h pợ    phancong   (gi aữ    các 

Trang 15

lo iạ      th cự      thể  Giangvien,Lop,Monhoc)  có  khoá  là {MAGV,MAMH,MALOP}  ­  phancong  là  m iố   k tế  h pợ  3 ngôi.

(Trong giáo trình này, tên c aủ  m iố  k tế  h pợ  đượ  vi tc ế  toàn b ngằ  chữ thường). 

Vi cệ  thành l pậ  mô hình th cự  thể k tế  h pợ  cho m tộ   ngứ  d ngụ  tin h cọ  có thể 

ti nế   hành theo các bướ  sau:c

b1.Xác đ nhị  danh sách các lo iạ  th cự  thể

b2.Xác  đ nhị   các  m iố   k tế   h pợ   gi aữ   các  lo iạ   th cự   thể  để  phác  th oả   mô hình

c a ủ lo iạ  th cự  thể ) cho m iỗ  bài  toán qu nả  lý sau:

1. QU NẢ  LÝ SỐ L ƯỢNG NGÀY CÔNG C A  CÁC NHÂN VIÊN

Để qu nả  lý vi cệ  phân công các nhân viên tham gia vào xây d ngự  các công trình. Công  ty xây d ngự  ABC tổ ch cứ  qu nả  lý như sau:

Trang 16

Cùng lúc công ty có thể tham gia xây d ngự  nhi uề  công trình, m iỗ  công trình có 

m tộ  mã  số công trình duy nh tấ  (MACT), m iỗ  mã số công trình xác đ nhị  các thông tin nh :ư  Tên g iọ  công  trình  (TENCT),  đ aị   đi m(ĐIAĐIEM),ể   ngày  công trình  đượ   c pc ấ   gi yấ   phép  xây  d ngự   (NGAYCAPGP),  ngày  kh iở   công (NGAYKC), ngày hoàn thành (NGAYHT)

M iỗ  nhân viên c aủ  công ty ABC có m tộ  mã số nhân viên(MANV) duy nh t,ấ  

m tộ   mã  số  nhân  viên  xác  đ nhị   các  thông  tin  nh :ư   Họ  tên  (HOTEN),  ngày sinh(NGSINH), phái (PHAI), đ aị   chỉ (ĐIACHI),phòng ban, …

Công ty phân công các nhân viên tham gia vào các công trình, m iỗ  công trình 

có  thể  đượ   phân  cho  nhi uc ề   nhân  viên  và  m iỗ   nhân  viên  cùng  lúc  cũng  có thể tham gia vào nhi uề   công trình. V iớ  m iỗ  công trình m tộ  nhân viên có m tộ  

số lượ  ngày công (SLNGAYCONG) đã  tham gia vào công trình đó.ng

Công  ty  có  nhi uề   phòng  ban(Phòng  kế  toán,  phòng  kinh  doanh,  phòng  kỹ thu t,ậ  phòng  t  ổ ch c,ứ  phòng  chuyên môn, Phòng ph cụ  v ,…).ụ  M iỗ  phòng ban 

có m tộ  mã s   ố phòng  ban(MAPB) duy nh t,ấ  m tộ  phòng ban  ngứ  v iớ  m tộ  tên phòng ban(TENPB)

2. QU N  LÝ VI C  MƯỢN/TRẢ  SÁCH Ở M T Ộ  THƯ VI N Ệ

M tộ  thư vi nệ  tổ ch cứ  vi cệ  cho mượ  sách như sau:n

M iỗ   quy nể   sách  đượ   đánh  m tc ộ   mã  sách  (MASH)  dùng  để  phân  bi tệ   v iớ  các  quy nể   sách  khác  (giả  sử  n uế   m tộ   tác  ph mẩ   có  nhi uề   b nả   gi ngố   nhau 

ho cặ  có nhi uề  t pậ  thì cũng xem  là có mã sách khác nhau), m iỗ  mã sách xác 

đ nhị  các thông tin khác như : tên sách  (TENSACH), tên tác giả (TACGIA), nhà 

Trang 17

xu tấ  b nả  (NHAXB), năm xu tấ  b nả  (NAMXB).

M iỗ   đ cộ   giả  đượ   thư  vi nc ệ   c pấ   cho  m tộ   thẻ  thư  vi n,ệ   trong  đó  có  ghi  rõ 

mã  đ cộ   giả  (MAĐG),  cùng  v iớ   các  thông  tin  khác  như  :  họ  tên  (HOTEN), ngày sinh (NGAYSINH), đ aị  chỉ  (ĐIACHI), nghề nghi p(NGHENGHIEP).ệ

Cứ  m iỗ   lượ   mt ượ   sách,  đ cn ộ   giả  ph iả   đăng  ký  các  quy nể   sách  c nầ   mượ  nvào m tộ   phi uế  mượ  m i phi un, ỗ ế  mượ có m tn  ộ  số phi u mế ượn (SOPM) khác nhau,   m iỗ   phi u   mế ượn   xác  đ nhị   các  thông  tin  nh :ư   ngày  mượ   sách n(NGAYMUON),  mã  đ cộ   gi ả   Các  các  quy nể   sách  trong  cùng  m tộ   phi uế  

mượ   không  nh tn ấ   thi tế   ph iả   trả  trong  m tộ   l n.ầ   M iỗ   quy nể   sách  có  thể thu cộ   nhi uề   phi uế   mượ   khác  nhau  (t tn ấ   nhiên  là  t iạ   các  th iờ   đi mể   khác nhau)

3. QU N  LÝ L CH  D Y  C A  GIÁO VIÊN

Để qu nả  lý l chị  d yạ  c aủ  các giáo viên và l chị  h cọ  c aủ  các l p,ớ  m tộ  trườ  tổ ng

ch cứ  như  sau:

M iỗ   giáo  viên  có  m tộ   mã  s  ố giáo viên  (MAGV)  duy  nh t,ấ   m iỗ   MAGV  xác 

đ nhị  các thông  tin nh :ư  họ và tên giáo viên (HOTEN), số đi nệ  tho iạ  (DTGV). 

M iỗ   giáo  viên  có  thể  d yạ   nhi uề   môn  cho  nhi uề   khoa  nh ngư   chỉ  thu cộ   sự 

qu nả  lý hành chánh c aủ  m tộ  khoa nào đó

M iỗ  môn h cọ  có m tộ  mã số môn h cọ  (MAMH) duy nh t,ấ  m iỗ  môn h cọ  xác 

đ nhị  tên môn  h c(TENMH).ọ   ngỨ  v iớ  m iỗ  l pớ  thì m iỗ  môn h cọ  chỉ đượ  phân ccho m tộ  giáo viên

M iỗ  phòng h cọ  có m tộ  số phòng h cọ  (PHONG) duy nh t,ấ  m iỗ  phòng có m tộ  

Trang 18

ch cứ  năng  (CHUCNANG); ch ngẳ  h nạ  như phòng lý thuy t,ế  phòng th cự  hành máy tính, phòng nghe nhìn,  xưở  th cng ự  t pậ  cơ khí,…

M iỗ   khoa  có  m tộ   mã  khoa  (MAKHOA)  duy  nh t,ấ   m iỗ   khoa  xác  đ nhị   các thông tin nh :ư   tên khoa (TENKHOA), đi nệ  tho iạ  khoa(DTKHOA)

M iỗ   l pớ   có  m tộ   mã  l p  ớ (MALOP)  duy  nh t,ấ   m iỗ   l p   có  ớ m tộ   tên  l pớ  (TENLOP), sĩ số l pớ   (SISO). M iỗ  l pớ  có thể h cọ  nhi uề  môn c aủ  nhi uề  khoa 

nh ngư  chỉ thu cộ  sự qu nả  lý hành chính  c aủ  m tộ  khoa nào đó

Hàng tu n,ầ  m iỗ  giáo viên ph iả  l pậ  l chị  báo gi ngả  cho bi tế  giáo viên đó sẽ d yạ  

nh ngữ  l pớ   nào,  ngày  nào   (NGAYDAY),   môn  gì?, t iạ   phòng  nào,  từ  ti tế  nào  (TUTIET)  đ nế   ti tế    nào  (ĐENTIET),t aự  đề bài d yạ  (BAIDAY), nh ngữ  ghi  chú  (GHICHU)  về  các  ti tế   d yạ   này,  đây  là  giờ  d yạ   lý  thuy tế  (LYTHUYET) hay th cự   hành ­ giả sử n uế  LYTHUYET=1 thì đó là giờ d yạ  

th cự   hành và n uế  LYTHUYET=2 thì đó là giờ lý thuy t,ế  m tộ  ngày có 16 ti t,ế  sáng từ ti tế  1 đ nế  ti tế  6,  chi uề  từ ti tế  7 đ nế  ti tế  12, t iố  từ ti tế  13 đ nế  16

M tộ  số yêu c uầ  c aủ  hệ th ngố  này nh :: L pư ậ  l chị  d yạ  trong tu nầ  c aủ  các giáo viên. T ngổ   số d yạ  c aủ  các giáo viên theo t ngừ  môn cho t ngừ  l p,ớ  …

4. QU N  LÝ H CỌ  VIÊN Ở M T Ộ  TRUNG TÂM TIN H C

Trung tâm tin h cọ  KTCT thườ  xuyên mở các l png ớ  tin h cọ  ng nắ  h nạ  và dài 

h n.ạ   M iỗ   l pớ   ng nắ   h nạ   có  m tộ   ho cặ   nhi uề   môn  h cọ   (ch ngẳ   h nạ   như  l pớ  Tin  h cọ   văn  phòng  thì  có  các  môn  :  Word,  Power  Point,  Excel,  còn  l pớ   l pậ  trình Pascal thì chỉ h cọ  m tộ  môn Pascal). Các l pớ   dài h nạ  (ch ngẳ  h nạ  như l pớ  

kỹ  thu tậ   viên  đồ  hoạ  đa  truy nề   thông,  l pớ   kỹ  thu tậ   viên  l pậ   trình,  l pớ  kỹ 

Trang 19

thu tậ  viên ph nầ  c ngứ  và m ng,…ạ  ) thì có thể h cọ  nhi uề  h cọ  ph nầ  và m iỗ  h cọ  

ph nầ  có thể  có nhi uề  môn h c.ọ

M iỗ   h cọ   viên  có  m tộ   mã  h cọ   viên(MAHV)  duy  nh tấ   và  chỉ  thu cộ   về  m tộ  

l pớ   duy  nh tấ   (n uế   h cọ   viên  cùng  lúc  h cọ   nhi uề   l pớ   thì  ngứ   v iớ   m iỗ   l p,ớ  

h cọ   viên  đó  có  m tộ   MAHV  khác  nhau).  M iỗ   h cọ   viên  xác  đ nhị   họ  tên (HOTEN),  ngày  sinh  (NGAYSINH),n iơ   sinh  (NOISINH),  phái  nam  hay  nữ (PHAI), nghề nghi pệ  (NGHENGHIEP) ­ nghề  nghi pệ   là  SINH VIÊN, GIÁO VIÊN, KỸ S ,Ư  H CỌ  SINH, BUÔN BÁN,…

Trung tâm KTCT có nhi uề  l p,ớ  m iỗ  l pớ  có m tộ  mã l pớ  duy nh tấ  (MALOP), 

m iỗ   l pớ   xác  đ nhị   các  thông  tin:  tên  l pớ   (TENLOP),  th iờ   khoá  bi u,ể   ngày khai gi ngả  (NGAYKG), h cọ  phí  (HOCPHI)

Chú ý r ngằ  t iạ  m tộ  th iờ  đi m,ể  trung tâm có thể mở nhi uề  l pớ  cho cùng m tộ  

chươ   trình h c.ng ọ  V i ớ các l pớ  dài h nạ  thì ngày khai gi ngả  đượ  xem là ngày c

b tắ  đ uầ  c aủ  m iỗ  h cọ  ph nầ   và H CỌ  PHÍ là h cọ  phí  c aủ  m iỗ  h cọ  ph n,ầ  v iớ  

l pớ  ng nắ  h nạ  thì H CỌ  PHÍ là h cọ  phí c aủ  toàn khoá h cọ  đó

Trung  tâm  có  nhi uề   môn  h c,ọ   m i môn h cỗ ọ   có  mã  môn h c (MAMH)ọ   duy 

nh t,ấ   m iỗ   môn  h cọ   xác  đ nhị   tên  môn  h c(TENMH),ọ   số  ti tế   lý  thuy tế  (SOTIETLT), số ti tế  th cự  hành  (SOTIETTH)

M iỗ   h cọ   viên  ngứ   v iớ   m iỗ   môn  h cọ   có  m tộ   đi mể   thi(DIEMTHI)  duy  nh t.ấ  

M iỗ  l nầ  đóng  h cọ  phí, h cọ  viên sẽ đượ  trung tâm giao cho m tc ộ  phi uế  biên lai thu ti n,ề  m iỗ  biên lai có m tộ  số  biên lai duy nh tấ  để qu nả  lý

M tộ  số yêu c uầ  c aủ  hệ th ngố  này nh ::L pư ậ  danh sách nh ngữ  h cọ  viên khai 

Trang 20

gi ngả  khoá  ngày nào đó. L pậ  danh sách các h cọ  viên c aủ  m tộ  l pớ  ? Cho bi tế  

số lượ  h cng ọ  viên c aủ  m iỗ   l pớ  khai gi ngả  khoá ngày nào đó ?

5. QU N  LÝ COI THI TUY N  SINH

M tộ  h iộ  đ ngồ  coi thi tuy nể  sinh có nhi uề  đi mể  thi, m iỗ  đi mể  thi đượ  đ tc ặ  t iạ  

m tộ  trườ   nào đó. Các đi mng ể  thi (7

DIEMTHISO) đượ  đánh số là đi mc ể  thi số 1, đi mể  thi số 2, đi mể  thi số  3,…

M iỗ  đi mể  thi xác đ nhị  đ aị  chỉ (DIACHIDIEMTHI). Ví d :ụ  đi mể  thi số 1, đ tặ  

t iạ  trườ  PTTH  Nguy nng ễ  Thị Minh Khai, đi mể  thi số 2 đ tặ  t iạ  trườ  PTTH ngBùi Thị Xuân,…

M iỗ  thí sinh có m tộ  số báo danh (SOBD) duy nh t,ấ  m iỗ  số báo danh xác đ nhị  các thông tin: họ  và tên (HOTEN), ngày sinh (NGAYSINH), phái (PHAI), hộ 

kh uẩ  thườ  trú (TINH), đ ing ố  tượ   dự thi (DOITUONG), ngành đăng ký thi, ngkhu v cự  c aủ  thí sinh (KHUVUC), số hi uệ  phòng thi. Ví  d :ụ  thí sinh Vũ M nhạ  

Cường,  có  số  báo  danh  là  02978,  sinh  ngày  12/12/1984,  phái  nam,  hộ  kh uẩ  

thườ   trú  t ing ạ   Chợ  G oạ   ­  Ti nề   Giang,  thu cộ   khu  v cự   1,  đ iố   tượ   là  5B, ngđăng ký dự thi  vào ngành có mã ngành là 01, thi t iạ  phòng thi 0178, đi mể  thi số 1

Trang 21

(GHICHU) ­ ghi thêm các thông tin c n thi tầ ế  nh  phòngư  thi đó n mằ  t iạ  dãy nhà nào. Ví dụ phòng thi 0060 n mằ  ở dãy nhà H l uầ  2 ­ đi mể  thi số 1 ­ trườ  ngPTTH Bùi Thị Xuân.

M iỗ  môn thi có m tộ  mã môn thi duy nh tấ  (MAMT), m iỗ  mã môn thi bi tế  các thông  tin  như  :   tên  môn  thi  (TENMT),  ngày  thi  (NGAYTHI),  bu iổ   thi (BUOITHI), th i gianờ  làm bài thi đượ   tính b ngc ằ  phút (PHUT). Th iờ  gian làm bài  thi  c aủ   các  môn  t iố   thi uể   là  90  phút  và  t iố   đa  là  180  phút (tuỳ theo  kỳ tuy nể  sinh công nhân, trung c p,ấ  cao đ ngẳ  hay đ iạ  h c)ọ

M iỗ  ngành có m tộ  mã ngành, ch ngẳ  h nạ  ngành Công Nghệ Thông Tin có mã ngành là  01, ngành Công Nghệ Hoá Th cự  Ph mẩ  có mã ngành là 10,…

M iỗ   đ nơ   vị  có  cán  bộ  tham  gia  vào  kỳ  thi  có  m tộ   mã  đ nơ   vị  duy  nh tấ  (MADONVI),  mã  đ nơ   vị  xác  đ nhị   tên  đ nơ   vị  (TENDONVI).  N uế   là  cán  b ,ộ  công nhân viên c aủ  trườ  thì đ nng ơ  vị là  khoa/phòng qu nả  lý cán bộ đó, n uế  là giáo  viên  từ  các  trườ   khác  thì  ghi  rõ  tên  đ nng ơ   vị  đó.  Ch ngẳ   h nạ   cán  bộ Nguy nễ   Thanh  Liêm  đ nơ   vị  Khoa  Công  Nghệ  Thông  Tin,  cán  bộ  coi  thi Nguy nễ  Thị Tuy tế  Mai, đ nơ  vị trườ  PTTH Ngôi Sao ­ Qu nng ậ  1,…

M iỗ  cán bộ coi thi chỉ làm vi cệ  t iạ  m tộ  đi mể  thi nào đó. M iỗ  cán bộ có m tộ  

mã số duy  nh tấ  (MACANBO), m iỗ  MACANBO  xác đ nhị  các thông tin khác như : họ và tên (HOTENCB),

đ nơ  vị công tác, ch cứ  vụ (CHUCVU) đượ  phân công t ic ạ  đi mể  thi, ch ngẳ  h nạ  

ch cứ  vụ là đi mể   trưởng, đi mể  phó, giám sát, thư ký, cán bộ coi thi, ph cụ  v ,ụ

…  Ví dụ cán bộ Nguyen Van Thanh  đ nơ  vị Khoa Công Nghệ Thông Tin, làm 

Trang 22

nhi mệ  vụ thi t iạ  đi mể  thi số 1, ch cứ  vụ là giám sát  phòng thi.

Chương 2:  Mô hình c  s  d  li u quan hơ ở ữ ệ ệ

Mô hình dữ li uệ  quan hệ (Ralational Data Model)­ g iọ  t tắ  là mô hình quan 

h ,ệ   do  EF.Codd  đề  xu tấ   năm  1970.  N nề   t ngả   lý  thuy tế   c aủ   nó  là  khái 

ni mệ  lý  thuy tế  t pậ  h pợ  trên các quan h ,ệ  t cứ  là t pậ  c aủ  các bộ giá tr ị

Mô  hình  dữ  li uệ   quan  hệ  là  mô  hình  đượ   nghiên  c uc ứ   nhi uề   nh t,ấ   và 

th cự   ti nễ  đã cho  th yấ  r ngằ   nó  có  cơ  sở lý thuy tế  v ngữ  ch cắ  nh t.ấ  Mô  hình 

dữ  li uệ   này  cùng  v iớ   mô  hình  th cứ   thể  k tế   h pợ   đang  đượ   sử  d ngc ụ   r ngộ  rãi trong  vi cệ  phân tích và thi tế  kế CSDL hi nệ  nay

Sau đây là các khái ni mệ  c aủ  mô hình dữ li uệ  quan h ệ

1.1. Thu cTính(attribte) ộ

Thu cộ   tính  là  các  đ cặ   đi mể   riêng  c aủ   m tộ   đ iố   tượ   (đ ing ố   t ượ   đ ng ượ  c

hi uể   như  là  m tộ   lo iạ   th cự   thể  ở  mô  hình  th cự   thể  k tế   h p),ợ   m iỗ   thu cộ  tính có  m tộ  tên g i ọ  và ph iả  thu cộ  về m tộ  ki u ể  dữ li u ệ  nh tấ  đ nh.ị

Ki uể  dữ li u ệ  (data type)

Các  thu cộ   tính  đượ   phân  bi tc ệ   qua  tên  g iọ   và  ph iả   thu cộ   m tộ   ki uể   dữ 

li uệ   nh tấ   đ nhị   (s ,ố   chu i,ỗ   ngày  tháng,  logic,  hình  nh,…).ả   Ki uể   dữ  li uệ   ở đây  có  thể  là  ki uể   vô  hướ   ho cng ặ   là  ki uể   có  c uấ   trúc.  N uế   thu cộ   tính  có 

ki uể  dữ li uệ  là vô  hướ   thì  nó  đng ượ   g ic ọ   là  thu cộ   tính  đ nơ   hay  thu cộ   tính nguyên  t ,ố   n uế   thu cộ   tính  có  ki uể   dữ  li uệ   có  c uấ   trúc  thì  ta  nói  r ngằ   nó không  ph iả   là  thu cộ   tính  nguyên  t  Ch ngố ẳ  h nạ  v iớ  sinh viên Nguy nễ  Văn 

Trang 23

Thành thì các thu cộ  tính họ và tên,  mã  số  sinh  viên  thu cộ   ki uể   chu i,ỗ   thu cộ  tính  ngày  sinh  thu cộ   ki uể   ngày  tháng,  hộ kh uẩ  thườ  trú ki ung ể  chu i,ỗ  thu cộ  tính hình  nhả  ki uể  hình  nh,…ả

Mi nề  giá trị (domain of values)

Thông  thườ  m ing ỗ   thu cộ  tính chỉ  ch nọ  l yấ  giá trị trong m tộ  t pậ  con  c aủ  

ki uể  dữ li uệ  và t pậ  h pợ  con đó g iọ  là mi nề  giá trị c aủ  thu cộ  tính đó. Ch ngẳ  

h nạ   thu cộ  tính NỮ có mi nề  giá trị là {nam,n },ữ  thu cộ  tính màu da có mi nề  giá  trị  là{da  tr ng,ắ   da  vàng,  da  đen,  da  đ },ỏ   thu cộ   tính  đi mể   thi  là  các  số thu cộ  t pậ  {0;  1; 2;…,10]

L uư   ý  r ngằ   n uế   không  l uư   ý  đ nế   ngữ  nghĩa  thì  tên  c aủ   các  thu cộ   tính 

thườ   đng ượ   ký  hi uc ệ   b ngằ   các  chữ  cái  in  hoa  đ uầ   tiên  trong  b ngả   chữ  cái 

la  tinh:  A,B,C,D,…  Nh ngữ   chữ  cái  in  hoa  X,Y,Z,W,…  thườ   dùng  thay ngcho m tộ   nhóm  nhi uề   thu cộ   tính.  Đôi  khi  còn  dùng  các  ký  hi uệ   chữ  cái  v iớ  các  chỉ  số  A

1,A2,…,An để  chỉ  các  thu cộ   tính  trong  trườ   h png ợ   t ngổ   quát hay  mu nố   đề  c pậ   đ nế   số  lượ   các  thu cng ộ   tính.  Tên  thu cộ   tính  ph iả   đượ  c

đ tặ   m tộ   cách  g iợ   nh ,ớ   không  nên  đ tặ   tên  thu cộ   tính  quá  dài  (vì  như  thế  sẽ làm  cho  vi cệ   vi tế   các  câu  l nhệ   truy  v nấ   trở  nên  v tấ   vả  h n),ơ   nh ngư   cũng không nên đ tặ  tên thu cộ  tính quá  ng nắ   (vì  nó  sẽ  không  cho  th yấ   ngữ  nghĩa 

c aủ   thu cộ   tính),  đ cặ   bi tệ   không  đ tặ   trùng  tên  hai  thu cộ   tính  mang  ngữ nghĩa khác nhau  thu cộ  hai  đ iố  tượ  khác  nhau.ng

Trong  nhi uề  hệ  qu nả   trị  cơ  sở  dữ  li u,ệ   ngườ   ta  thi ườ   đ ang ư   thêm  vào 

mi nề  giá trị c aủ  các thu cộ  tính m tộ  giá trị đ cặ  bi tệ  g iọ  là giá trị r ngỗ  

(NULL). Tuỳ  theo ngữ  c nhả   mà  giá  trị  này  có  thể  đ cặ   tr ngư   cho  m tộ   giá trị  không  thể  xác  đ nhị  đượ  ho cc ặ  m tộ  giá trị ch aư  đượ  xác đ nhc ị  ở vào th iờ  

đi mể  nh pậ  tin nh ngư   có thể đượ  xác đ nhc ị  vào m tộ  th iờ  đi mể  khác

1.2. L ượ c đ  quan h  (Relation schema) ồ ệ

Ch ngẳ   h nạ   lượ   đồ  quan  hệ  Sinhviên  v ic ớ   các  thu cộ   tính  như  đã  đượ   li tc ệ  

kê trong ví dụ 1.1 đượ  vi tc ế  như sau:

Sinhvien(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH, MALOP)

Thườ  thì khi thành l png ậ  m tộ  lượ  đồ quan h ,c ệ  ngườ  thi ti ế  kế g nắ  cho  nó 

Trang 24

m tộ  ý nghĩa nh tấ  đ nh,ị  g iọ  là tân từ c a ủ  l ượ  đồ quan hệ c  ch ngẳ  h nạ  tân từ 

c aủ   lượ   đồ  quan  hệ  Sinhvien  là:  ”M ic ỗ   sinh  viên  có  m iỗ   MASV  duy  nh t.ấ  

M i  ỗ MASV  xác  đ nhị   các  thu cộ   tính  còn  l iạ   c aủ   sinh  viên  đó  như HOTENSV,NU,  NGAYSINH,  NOISINH,TINH,MALOP”

Khi  phát  bi uể   tân  từ  cho  m tộ   lượ   đồ  quan  h ,c ệ   ngườ   thi ti ế   kế  c nầ   ph iả  

mô  tả  đ yầ   đủ  ý  nghĩa  để  ngườ   khác  tránh  hi ui ể   nh m.ầ   D aự   vào  tân  từ này,  ngườ   ta  xác  đ nhi ị   đượ   t pc ậ   khoá,  siêu  khoá  c aủ   lượ   đồ  quan  hệ  (sẽ c

đượ   trình bày trong nh ngc ữ  m cụ  kế ti p). Nhi uế ề  lượ  đồ quan hệ cùng n mc ằ  trong  m tộ   hệ  th ngố  thông  tin  đượ   g ic ọ   là m tộ  l ượ  đồ cơ sở dữ li u.  c ệ Khái 

ni mệ  lượ  đồ quan hệ  ngc ứ  v iớ  khái ni mệ  lo iạ  th cự  thể ở mô hình  th cự  thể 

k tế  h p.ợ

1.3. Quan h  (Relation) ệ

Sự  thể  hi nệ   c aủ   lượ   đồ  quan  hệ  ở  m tc ộ   th iờ   đi mể   nào  đó  đượ   g ic ọ   là 

quan  hệ,  rõ  ràng  là  trên  m tộ   lượ   đồ  quan  hệ  có  thể  xác  đ nhc ị   nhi uề   quan 

h ệ   Thườ   ta  dùng  các  ký  hi ung ệ   như  R,S,Q  để  chỉ  các  lượ   đồ  quan  h ,c ệ  còn quan  hệ thườ  đng ượ  dùng b ic ở  các ký hi uệ  là r, s,q,… Về tr cự  quan thì quan  hệ  (hay  b ngả   quan  h )ệ   như  là  m tộ   b ngả   hai  chi uề   g mồ   các  dòng  và các c t. ộ M tộ  quan hệ có n thu cộ  tính đượ  g ic ọ  là quan hệ n ngôi. Để chỉ quan 

hệ r xác đ nhị  trên lượ  đồ quan hệ Q  ta có thể vi tc ế  r(Q)

1.4. B  (Tuple)  ộ

M iỗ  bộ là nh ngữ  thông tin về m tộ  đ iố  tượ  thu cng ộ  m tộ  quan h ,ệ  bộ cũng  còn đượ  g ic ọ  là m uẫ  tin. Thườ  ngng ườ  ta dùng các chữ cái thi ườ  ng(như t,µ,…) để bi uể  di nễ  b  ộ trong quan h ,ệ  ch ngẳ  h nạ  để nói t là m tộ  bộ 

c aủ  quan hệ r thì ta vi tế  t €r

1.5. Siêu khoá ­ Khoá chính 

S là siêu khoá (super key) c aủ  Q n uế  v iớ  r là quan hệ b tấ  kỳ trên Q, t

1,t2 là hai bộ b tấ  kỳ thu cộ  r  thì t

1.S ≠ t2.S.

M tộ  lượ  đồ quan hệ có thể có m tc ộ  ho cặ  nhi uề  siêu khoá

Ch ngẳ   h nạ   lượ   đ  c ồ  quan  h  ệ  Sinhvien    ở  trên  có  các  siêu  khoá  là:

{MASV,HOTENSV},{MASV,HOTENSV,NU},{MASV,HOTENSV,NU, 

TINH},…

Siêu  khoá  không  ch aứ   m tộ   siêu  khoá  nào  khác  đượ   g ic ọ   là  khoá  chỉ  đ nh ị , 

trong  trườ   h png ợ   lượ   đồ  quan  hệ  có  nhi uc ề   khoá  chỉ  đ nhị   (hay  khoá  n i),ộ  thì  khoá  đượ   ch nc ọ   để  cài  đ tặ   g iọ   là  khoá  chính  (trong  các  ph nầ   sau  khoá chính  đượ  g ic ọ  t tắ  là  khoá). Ch ngẳ  h nạ  v iớ  lượ   đồ quan hệ Sinhvien trên c

Trang 25

{MASV}. Thườ  các thu cng ộ  tính khoá đượ  g chc ạ  dướ  theo ki ui ể  li nề  nét

M tộ   thu cộ   tính  đượ   g ic ọ   là  thu cộ   tính  khoá  ngo iạ   n uế   nó  không  là  thu cộ  tính  khoá  c aủ   m tộ   lượ   đồ  quan  hệ  này  nh ngc ư   l iạ   là  thu cộ   tính  khoá  c aủ  

m tộ   lượ  đồ quan hệ khác, ch ngc ẳ  h nạ  như MALOP là khoá ngo iạ  c aủ  lượ  c

đồ quan  hệ  Sinhvien.  Thườ   các  thu cng ộ   tính  khoá  ngo iạ   đượ   g chc ạ   dướ  itheo  ki uể   không li nề  nét

Sinhvien(MASV, HOTENSV, NU, NGAYSINH, TINH, MALOP) 

Lop(MALOP,TENLOP,MAKHOA)

Ý  nghĩa  th cự   tế  c aủ   khoá  là  dùng  để  nh nậ   di nệ   m tộ   bộ  trong  m tộ   quan 

h ,ệ   nghĩa  là,  khi  c nầ   tìm  m tộ   bộ  t  nào  đó,  ta  chỉ  c nầ   bi tế   giá  trị  c aủ   thành 

ph nầ   khoá c aủ  t là đủ để dò tìm và hoàn toàn xác đ nhị   đượ  nó trong quan c

h ệ

Trong  th cự   tế  đ iố   v iớ   các  lo iạ   th cự   thể  t nồ   t iạ   khách  quan  (ví  d :ụ   Sinh viên,  Gi ngả   viên,  Nhân  viên,  Hàng  hoá,…)  ngườ   thi ti ế   kế  cơ  sở  dữ  li uệ  

thườ   gán thêm cho các lng ượ  đồ quan hệ này m tc ộ  thu cộ  tính giả g iọ  là mã 

số để làm khoá (ví d :ụ  mã số sinh viên, mã số gi ngả  viên, mã số nhân viên, 

mã  số  hàng  hoá,…).  Trong  khi  đó  các  lượ   đồ  quan  hệ  bi uc ể   di nễ   cho  sự 

tr uừ   tượ   hoá  thng ườ  có khoá là m tng ộ  tổ h pợ  c aủ  hai hay nhi uề  thu cộ  tính 

c aủ  nó

M tộ   số  hệ  qu nả   trị  cơ  sở  dữ  li uệ   hi nệ   nay  có  tự  đ ngộ   ki mể   tra  tính  duy 

nh tấ   trên  khoá  chính.  T cứ   là  n uế   thêm  m tộ   bộ  m iớ   q2  có  giá  trị  khoá chính  trùng  v iớ   giá  trị  khoá  chính  c aủ   m tộ   bộ  q1  nào  đó  đã  có  trong  quan 

hệ thì hệ  th ngố  sẽ báo l iỗ  và yêu c uầ  nh pậ  l iạ  m tộ  giá trị khác

Ngườ  ta cũng quy i ướ  r ng:c ằ

­Trong m tộ  bộ c aủ  quan hệ các thu cộ  tính khoá không ch aứ  giá trị r ng.ỗ

­Không  đượ   phép  s ac ử   đ iổ   giá  trị  thu cộ   tính  khoá  c aủ   m tộ   bộ  q.  N uế  

mu nố  s aử  đ iổ  giá trị thu cộ  tính khoá c aủ  m tộ  bộ q, ngườ  sử d ngi ụ  ph iả  huỷ 

bỏ  bộ q và sau đó thêm m tộ  bộ q’ v iớ  giá trị khoá đã đượ  s ac ử  đ i.ổ

2. Chuy n t  mô hình th c th  k t h p sang mô hình d  li u quan hể ừ ừ ể ế ợ ữ ệ ệ

Sau  đây  là  m tộ   số  quy  t cắ   đượ   sử  d ngc ụ   trong  vi cệ   chuy nể   đ iổ   mô  hình 

th cự  thể k tế  h pợ  sang mô hình dữ li uệ  quan h ệ

Quy t c  1:

Chuy nể   đ iổ   m iỗ   lo iạ   th cự   thể  thành  m tộ   lượ   đồ  quan  h ,c ệ   các  thu cộ   tính 

c aủ   lo iạ   th cự   thể  thành  các  thu cộ   tính  c aủ   lượ   đồ  quan  h ,c ệ   thu cộ   tính khoá  c aủ  lo iạ  th cự  thể là thu cộ  tính khoá c aủ  lượ  đồ quan h c ệ

Trang 26

Ch ngẳ  h nạ  lo iạ  th cự  thể Sinhvien ở ví dụ 1.2 khi áp d ngụ   quy t cắ  1 thì  sẽ 

đượ  chuy nc ể  thành lượ  đồ quan hệ Sinhvien như sau:c

và B

Ch ngẳ  h nạ  m iố  k tế  h pợ  Phancong gi aữ  ba lo iạ  th cự  thể Giangvien,  Monhoc 

và  Lop  đượ   chuy nc ể   thành  lượ   đồ  quan  hệ  Phancong  và  có  t pc ậ   khoá  là {MAGV,MAMH,MALOP} như sau:

Trang 27

Phancong(MALOP,MAMH,MAGV)

3. Các phép toán đ i s  trên các quan hạ ố ệ

3.1. Phép h p (Union)   ợ

Ta  nói  hai  quan  hệ  r

1  và  r2  là  tươ   thích  n ung ế   chúng  đượ   đ nhc ị   nghĩa trên cùng m tộ  lượ  đồ quan h c ệ

Cho  hai  quan  hệ  tươ   thích  rng

Trang 28

Cho lượ  đồ quan hệ Q(Ac

1,A2, ,An  ). r1  và r2  là hai quan hệ tươ  thích ngtrên Q

Giao c aủ  hai quan hệ r

1 và r2 ký hi uệ  là r1 * r2 là m tộ  quan hệ trên Q g mồ  các ph nầ  tử v aừ  thu cộ  r

Cho  hai  quan  hệ  tươ   thích  rng

1 và  r2 có  t pậ   thu cộ   tính  Q(A1,A2, ,An ). 

Trang 30

3.6. Phép chi u( Projection) ế

Cho lượ  đồ quan hệ Q(Ac

1,A2, ,An), r là quan hệ trên Q và X  Q

+.Phép  chi uế   c aủ   r  lên  t pậ   thu cộ   tính  X,  ký  hi uệ   là  r[X]  (ho cặ   r.X)  sẽ  t oạ  thành lượ  đồ quan hệ r’, trong đó t pc ậ  thu cộ  tính c aủ  r’ chính là X và quan 

hệ r’  đượ  trích từ r b ngc ằ  cách chỉ l yấ  các thu cộ  tính có trong X

Phép chi uế  chính là phép rút trích dữ li uệ  theo c t.ộ  Ch ngẳ  h nạ  v iớ  r

1 ở

ví dụ 2.2 thì khi đó ta có quan hệ con c aủ  r

1 chi uế  lên X={A,C} là:  r1[X]

3.7. Phép ch n (Selection) ọ

Cho  lượ   đồ  quan  hệ  Q(Ac

1,A2, ,An),  r  là  m tộ   quan  hệ  trên  lượ   đồ  quan c

hệ Q. X là m tộ  t pậ  con c aủ  Q+ và E là m tộ  m nhệ  đề logic đượ  phát bi uc ể  trên  t pậ  X. Ph nầ  tử t  r thoả  mãn đi uề  ki nệ  E ký hi uệ  là t(E). Phép ch nọ  từ quan hệ  r  theo  đi uề   ki nệ   E  (ký  hi uệ   là  r :  E  )sẽ  t oạ   thành  m tộ   quan  hệ 

m iớ  ký hi uệ  là  r(E), trong đó r(E) = {t: t  r và t(E)}

Phép ch nọ  chính là phép rút trích dữ li uệ  theo dòng. Ch ngẳ  h nạ  v iớ  r

2 ở  ví 

dụ 2.3 và đi uề  ki nệ  E là: “F >= 6” thì k tế  quả r

2(E) hay   r2: “F >= 6” có n iộ  

Trang 31

3.8. Phép   ­ k t θ ế

Cho hai lượ  đồ quan h  c ệ  Q

1 và Q2 như sau Q1(A1,A2, ,An)Q

2(B1,B2, ,Bm)

r và s l nầ  lượ  là hai quan hệ trên Qt

1 và Q2.A

i và Bj l nầ  lượ  là thu ct ộ  tính c aủ  Q1 , Q2 sao cho MGT(AI)= MGT(BJ). 

12Ai  t12.Bj }

A

i là thu cộ  tính B, Bj là thu cộ  tính F và  là phép so sánh “>=”. Ta đượ   k tc ế  quả là quan hệ sau:

Trang 32

3.9. Phép k t t  nhiên ế ự   

N uế   đượ  sử d ngc ụ  trong phép k tế  trên là phép so sánh b ngằ  (=) thì g iọ   là 

phép  k t ế   b ng ằ   H nơ   n aữ   n uế   A

I  Bj thì  phép  k tế   b ngằ   này  đượ   g ic ọ   là 

phép  k t ế   tự  nhiên.  Phép  k tế   tự  nhiên  là  phép  k tế   thườ   dùng  nh tng ấ   trong 

2. L pậ  danh sách sinh viên nữ và có mã khoa là “CNTT”, danh sách c nầ  MASV,  HOTENSV

3. L pậ  b ngả  đi mể  thi l nầ  1 c aủ  t tấ  cả các môn cho sinh viên l pớ  CDTH2A, danh sách c nầ  MASV, HOTENSV, TENMH, DIEMTHI

4. L pậ  phi uế  đi mể  thi l nầ  1 các môn cho sinh viên có  MASV=”00CDTH189”. danh sách c nầ  MAMH,TENMH, DONVIHT,  DIEMTHI

Gi i:ả

1. Sinhvien:  MALOP=”CDTH2A”  [MASV,HOTENSV]

MALOP

2. (Sinhvien|><|   Lop: NU and MAKHOA=”CNTT”) [MASV,HOTENSV]

Trang 33

Giangvien(MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA) 

Ketqua(MASV, MAMH, LANTHI, DIEMTHI) 

Phancong(MALOP,MAMH,MAGV)

Th cự  hi nệ  các yêu c uầ  sau b ngằ  ngôn ngữ đ iạ  số quan h :ệ

a. L pậ  danh sách nh ngữ  sinh viên có hộ kh uẩ  thườ  trú ở t nhng ỉ  “LONG AN”, danh sách c nầ  các  thông tin: MASV, HOTENSV, NGAYSINH, TENLOP

b. L pậ  danh sách các sinh viên c aủ  l pớ  có MALOP là CDTH2A, danh sách c nầ  các thông tin:  MASV, HOTENSV, NGAYSINH, TINH

c. L pậ  danh sách các gi ngả  viên có c pấ  h cọ  vị là THAC SY c aủ  khoa có MAKHOA là “CNTT”,  danh sách c n:ầ  MAGV,HOTENGV, 

CHUYENNGANH

Trang 34

d. L pậ  b ngả  đi mể  thi l nầ  1 môn h cọ  “869” cho t tấ  cả sinh viên thu cộ  hai   

Trang 35

Chương 3: Ngôn ng  truy v n d  li uữ ấ ữ ệ

Mã chương: MH14­C03

Gi i thi u: ớ ệ Trong chương này chúng ta s  nghiên c u v  l nh truy v n d  ẽ ứ ề ệ ấ ữ

li u SELECT   FROM   WHERE   GROUP BY   HAVING    ORDER ệBY  

M iỗ   hệ  qu nả   trị  CSDL  đ uề   ph iả   có  ngôn  ngữ  giao  ti pế   gi aữ   ngườ   sử i

d ngụ  v iớ  cơ sở dữ li u.ệ  Ngôn ngữ giao ti pế  CSDL g mồ  các lo iạ  sau:

khai  báo  c uấ   trúc  các  b ngả   c aủ   CSDL,  khai  báo  các  m iố   liên  hệ  c aủ   dữ 

v nấ   các thông tin c nầ  thi tế  trong CSDL

Ngôn  ng   ữ qu n ả  lý  dữ  li u ệ  (Data  Control  Language­ DCL): Cho  phép  nh ngữ  

ngườ   qu ni ả   trị  hệ  th ngố   thay  đ iổ   c uấ   trúc  c aủ   các  b ngả   dữ  li u,ệ   khai  báo 

b oả  m tậ  thông tin và c pấ  quy nề  khai thác CSDL cho ngườ  sử d ng.i ụ

Nh ngữ   năm  1975­1976,  IBM  l nầ   đ uầ   tiên  đ aư   ra  hệ  qu nả   trị  CSDL  ki uể  quan  hệ  mang  tên  SYSTEM–R  v iớ   ngôn  ngữ  giao  ti pế   CSDL  là  SEQUEL (Structured  English  Query  Language).  Năm  1976  ngôn  ngữ  SEQUEL  đượ  c

c iả   ti nế  thành SEQUEL­2, kho ngả  năm 1978­1979 SEQUEL­2 đượ  c ic ả  ti nế  

và  đ iổ   tên  thành  ngôn  ngữ  truy  v nấ   có  c uấ   trúc  (Structured  Query Language).  Cu iố   năm  1979  hệ  qu nả   trị  CSDL  đượ   c ic ả   ti nế   thành SYSTEM­R*.  Năm  1986  vi nệ   tiêu  chu nẩ   qu cố   gia  Mỹ  (American  National Standards  Institute  –ANSI)  đã  công  nh nậ   và  chu nẩ   hoá  ngôn  ngữ  SQL và sau  đó  tổ  ch cứ   tiêu  chu nẩ    thế   gi iớ   (International  Standards  Organization 

Trang 36

­ISO)  cũng  đã  công  nhân  ngôn  ngữ  này.  Đó  là  chu nẩ   SQL­86.  t iớ   này  SQL 

đã qua 3 l nầ  chu nẩ  hoá (1989,1992,1996) đ  mể ở  r ngộ   các  phép  toán  và  tăng 

cườ  khả năng b ong ả  m tậ  và tính toàn v nẹ  dữ  li u.ệ

Trong chươ  này chúng ta chỉ nghiên c ung ứ  về ngôn ngữ SQL

Ngôn  ngữ  truy  v nấ   SQL  có  t pậ   l nhệ   khá  phong  phú  để  thao  tác  trên  cơ  sở 

dữ  li u.ệ   Ch ngẳ   h nạ   l nhệ   create  để  t oạ   các  b ngả   quan  h ,ệ   l nhệ   update  để 

c pậ   nh tậ   dữ  li u,ệ   l nhệ   delete  để  xoá  dữ  li u,ệ   l nhệ   insert  để  thêm  dữ 

li u,…ệ   Trong  chươ   này,  chúng  tôi  chỉ  trình  bày  v ing ớ   b nạ   đ cọ   câu  l nhệ  quan  tr ngọ   nh tấ   c aủ   SQL  đó  là  câu  l nhệ   h iỏ   ­  tìm  ki mế   dữ  li uệ   SELECT. 

K tế   quả  c aủ   l nhệ   select  là  m tộ   quan  h ,ệ   quan  hệ  k tế   quả  này  có  thể  k tế  

xu tấ  ra màn hình, máy in,  ho cặ   là  trên  các  thi tế   bị  l uư   trữ  thông  tin  khác. 

Để  đ nơ   gi nả   trong  cách  trình  bày,  ta  xem  quan  hệ  để  th cự   hi nệ   câu  truy 

v nấ  là quan hệ ngu nồ  và quan hệ  k tế  quả c aủ  truy v nấ  là quan hệ đích

M iỗ   câu  l nhệ   SQL  có  thể  đượ   vi tc ế   trên  nhi uề   dòng  và  k tế   thúc  l nhệ   b iở  

d uấ  ch mấ  ph yẩ  (;), tuy nhiên từ khoá, tên hàm, tên thu cộ  tính, tên b ng,ả  tên 

đ iố   tượ  thì không đng ượ  phép vi tc ế  tách xu ngố  hàng. Trong v nậ  d ngụ  th cự  

t ,ế   từ  khoá,  tên  thu cộ   tính,  tên  b ng,ả   tên  đ iố   tượ   đng ượ   vi tc ế   in  hoa  hay chữ thườ   là như nhau.ng

Cú pháp t ngổ  quát c aủ  câu l nhệ  select như sau:

Select     distinct /*/danh sách thu cộ  tính/ <bi uể  th c>, ứ

from <danh sách các quan h >ệ

where <bi uể  th cứ  đi uề  ki n>ệ

group by <danh sách thu cộ  tính> having <đi uề  ki nệ  nhóm>order by <danh sách các thu cộ  tính [desc]>

  Trong đó: <bi uể  th c>ứ  (expression) là sự k tế  h pợ  m tộ  cách h pợ  lệ gi aữ  các thu cộ   tính,  các  toán  tử  và  các hàm.  Sau  đây  sẽ  là  các  toán  tử  và  hàm  thông 

d ngụ  nh t.ấ  (c nầ  chú ý r ngằ  cách sử d ngụ  các toán tử và các hàm này còn tuỳ thu cộ  vào câu l nhệ  SELECT c aủ  ngôn ngữ đượ  sử d ng).c ụ

Trang 37

year(bi uể  th cứ  ngày): Trả về năm c aủ  bi uể  th cứ  ngày

len(bi uể  th cứ  chu i): ỗ Trả về chi uề  dài c aủ  chu iỗ

Các hàm tính toán theo nhóm

sum <thu cộ  tính>tính t ngổ  giá trị c aủ  các bộ theo thu cộ  tính đã chỉ ra

max<thu cộ  tính>:cho bi tế  giá trị l nớ  nh tấ  c aủ  các bộ theo thu cộ  tính đã ch  ỉra

min<thu cộ  tính>:cho bi tế  giá trị nhỏ  nh tấ  c aủ  các bộ theo thu cộ  tính đã ch  ỉra

avg<thu cộ  tính>:Cho bi tế  giá trị trung bình c aủ  các bộ theo thu cộ  tính đã ch  ỉra

Chỉ  đ mế   nh ngữ   bộ  mà  giá  trị  c aủ   thu cộ   tính  là  khác  NULL.  h nơ   n a,ữ  

nh ngữ   bộ  mà  giá  trị  trùng  nhau  trên  thu cộ   tính  chỉ  đượ   đ mc ế   là  m tộ   (đ iạ  

di nệ  cho cả nhóm)

Sau  đây  ta  s   l nẽ ầ   lượ   tìm  hi ut ể   kỹ  h nơ   các  m nhệ   đ  ề  c aủ   câu  l nhệSELECT

Để minh h aọ  cho các ví dụ trong chươ  này, chúng ta sẽ dùng l ing ạ  lược

đồ cơ sở dữ li uệ  đã đượ  đề c pc ậ  trong chươ  2.ng

Trang 38

2. Tìm thông tin t  các c t c a b ng – m nh đ  Select ừ ộ ủ ả ệ ề

select distinct /*/danh sách thu cộ  tính/ <bi uể  th c>, ứ  from

­M nhệ  đề from:

Nh ngữ   quan  hệ  liên  quan  đ nế   câu  truy  v nấ   đượ   li tc ệ   kê  sau  m nhệ   đề from,  các  quan  hệ  này  cách  nhau  b iở   d uấ   ph y,ẩ   thứ  tự  c aủ   các  quan  hệ 

đượ   chỉ ra ở đây là không quan tr ng.c ọ

C nầ   chú  ý  r ngằ   khi  m nhệ   đề  From  chỉ  ra  từ  hai  quan  hệ  trở  lên,  n uế   có 

m tộ   thu cộ   tính  ở  m nhệ   đề  select  là  thu cộ   tính  c aủ   nhi uề   h nơ   m tộ   quan  hệ thì  c nầ   ph iả   chỉ  rõ  thu cộ   tính  đó  thu cộ   về  quan  hệ  nào  theo  cú  pháp 

tênquanh tênthu ctính ệ ộ   (sinh  viên  thườ   m cng ắ   l iỗ   này  khi  th cự   hành  v iớ  câu  l nhệ  truy v nấ  SQL)

(Do  sinh  viên  khi  h cọ   môn  này  ch aư   h cọ   SQL  server,  nên  n uế   khi  th cự  hành  bài  t pậ   chươ   này  v ing ớ   Access  thì  cu iố   m iỗ   dòng  không  có  d uấ  

Khi c nầ  l yấ  thông tin về t tấ  cả các c tộ  c aủ  b ng,ả  chúng ta có thể sử d ngụ  

d uấ   sao  (*)  thay  cho  vi cệ   li tệ   kê  các  tên  c tộ   c aủ   b ng.ả   N uế   áp  d ngụ   cách 

vi tế   này thì câu l nhệ  trên tươ  đng ươ  v ing ớ  câu l nhệ  sau:

Trang 39

L pậ   danh  sách  bao  g mồ   các  thông  tin  về  gi ngả   viên  như  mã  số  gi ngả  viên, họ và tên gi ngả  viên, h cọ  v ,ị chuyên ngành.

SELECT  MAGV,HOTENGV,HOCVI,  CHUYENNGANH

FROM  giangvien;

Câu  l nhệ   tìm  ki mế   thông  tin  từ  các  c tộ   c aủ   b ngả   ở  trên  là  cài  đ tặ   c aủ  

MAGV,HOTENGV,HOCVI,CHUYENNGANH c aủ  quan  hệ Giangvien

N uế   chúng  ta  mu nố   đ tặ   tên  khác  cho  tên  c aủ   các  c tộ   c aủ   b ngả   (còn  g iọ   là 

bí  danh­  ALIAS),  vi cệ   này  đượ   th cc ự   hi nệ   b ngằ   cách thêm  từ  khóa  AS  và theo  sau  là  m tộ   tên  m i.ớ   N uế   tên  có  ch aứ   các  ký  tự  đ cặ   bi tệ   và/ho cặ  kho ngả  tr ngắ  thì vi tế  tên đó trong c pặ  d uấ  ngo cặ  vuông ( [ ] )

Ch ngẳ  h nạ  ví dụ 3.2 có thể vi tế  l iạ  là:

SELECT  MAGV AS [MàSỐ GI NGẢ  VIÊN] ,HOTENGV AS [HỌ VÀ 

TÊN]   HOCVI  [TRÌNH Đ ]Ộ  CHUYENNGANH AS  [ CHUYÊN NGÀNH]FROM Giangvien;

Câu l nhệ  SELECT không chỉ th cự  hi nệ  vi cệ  trích thông tin từ các c tộ  đ nơ   lẽ 

c aủ   b ngả   mà  còn  có  thể  th cự   hi nệ   các  tính  toán  theo  công  th cứ   hay  bi uể  

th cứ  b tấ  kỳ d aự  trên giá trị c aủ  các c tộ  trên t ngừ  b nả  ghi c aủ  b ng.ả

Từ  khóa  DISTINCT  nh mằ   lo iạ   bỏ  b tớ   các  bộ  trùng  nhau  trong  b ngả   k tế  quả c aủ  l nhệ  truy v nấ  (chỉ giữ l iạ  m tộ  bộ đ iạ  di nệ  cho các bộ gi ngố  nhau)

Ví dụ 3.3:

Hãy cho bi tế  các gi ngả  viên c aủ  trườ  thu cng ộ  nh ngữ  chuyên ngành nào? 

WHERE <bi uể  th cứ  đi uề  ki n>ệ

Trong  đó  <bi uể   th cứ   đi uề   ki n>ệ   có  giá  trị  là  ho cặ   đúng  (true)  ho cặ   sai (false). Đây là sự cài đ tặ  c aủ  phép ch nọ  trong ngôn ngữ đ iạ  số quan h ệ

N uế   đi uề   ki nệ   này  chỉ  liên  quan  đ nế   m tộ   quan  hệ  thì  g iọ   là  đi u ề   ki n ệ  

ch n ọ , n uế  đi uề  ki nệ  liên quan đ nế  từ hai quan hệ trở lên thì g iọ  là đi u ề  ki n ệ  

k t ế   Các  đi uề   ki nệ   ch nọ   và  đi uề   ki nệ   k tế   có  thể  ph iố   h pợ   v iớ   nhau  b iở  

Trang 40

các  toán  tử  logic  (and,or,not)  để  t oạ   nên  nh ngữ   bi uể   th cứ   logic  ph cứ   t pạ  

h n.ơ   C nầ   chú  ý  r ngằ  thứ tự c aủ  các đi uề  ki nệ  ở đây là quan tr ng:ọ  N uế  có thể  thì  nên  th cự   hi nệ   đi u ề   ki n ệ   ch n ọ   trướ   khi  th cc ự   hi nệ   đi u ề   ki n ệ   k t ế  

(đây  là  v nấ   đề  t iố   uư   hoá  câu  truy v n,ấ  chúng tôi không đi sâu về v nấ  đề này[3])

SELECT  masv,diemthi FROM ketqua

WHERE diemthi between 6 and 8 and mamh=”csdl”

Toán tử so sánh tươ  đ ing ố  : like

M uẫ  so sánh trong phép toán like là m tộ  giá trị ki uể  text, đó là m tộ  dãy ký  tự 

b tấ  k ,ỳ  trong đó có hai ký tự có ý nghĩa đ cặ  bi tệ  sau đây:

Ngày đăng: 28/05/2021, 11:24

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w