BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU CHƯƠNG 6

72 407 0
BÀI GIẢNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU  CHƯƠNG 6

Đ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

Silde bài giảng môn HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU rất sinh động và dễ hiểu của Giảng viên Nguyễn Trường Sơn, Khoa CNTT HCMUS. Đây là chương 6: Xử lý câu truy vấnSilde bài giảng môn HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU rất sinh động và dễ hiểu của Giảng viên Nguyễn Trường Sơn, Khoa CNTT HCMUS. Đây là chương 6: Xử lý câu truy vấn

LOGO !"#$%&'#()*#+,# #/0#12"%## !"#$%&Nguyễn'Trường'Sơn' 1" & Chương'5:& '(&#)&*+,&$-,.& "/0# Nội dung chi tiết !  !121&34156& !  7489&3:;4&;<&=4>=&?&9@A&9@4BC& !  D1E9&FG1&HC9@&IJ1&HK&L6C9&45& !  $K1&M6&4NC&;8O&3P6O&QR9& !  S2;&TMU9@&V:;4&34M2;&;8O&3P6O&QR9& !  74>3&H194&QW&34X;&341&YZ&T594& [& Giới thiệu !  '\3&4C1&]6C9&45&-&QW&^&946&HC6&%& _  -`ab&Db&*c& _  ^`*b&db&ec& !  '\3&;86&3P6O&QR9&HC6&F8O&3Pf9&-&QC&^& & !  04g9&h\3&& _  ij3&;86&3P6O&QR9&;N&PR3&941k6&;>;4&34X;&4159& _  $lO&3PMm9@&4U=&YW&;>;&;>;4&34X;&4159&FMU;&F>94&@1>&TW&3K3&4CO&no& p& ^e#e*$&-qDb&^qd& r-si&-b&^& tue-e&-qav‘;’&a9n&^qev[&a9n&-q*v^q*& Giới thiệu (tt) !  'w&Tx&;yC&dDi^& _  *>;4&z%& _  *>;4&[%& _  *>;4&p%&^w&n{9@&;4|&Y{;&3Pf9&-qa&QW&^q*& }  $~Y&;>;&•j&3P€9@&-&34•C&-qav‘;’& }  "21&Y‚1&•j&3~Y&34ROb&3~Y&31E=&;>;&•j&3P€9@&^&34•C&-q*v^q*& }  D•&F1&94A9@&•j&^qe&≠&[& }  *41E6&3Pf9&346j;&3:94&D&QW&d& !  dDi^&;4ƒ9&;>;4&9W€&„& …& Mục'tiêu'chương%&& (34#56789#:;<#=>#?@#567A#:B8#CDE# )/FG-&& Π FH/ #I#σ )JKL‘C’#∧#-JMLN#∧#)J+#L#-J+ #`-=^cO# Π FH/ #I#σ )JKL‘C’ #P)Q######σ -JMLN #P^QO# Giới thiệu (tt) !  L6O&3P~94&hw&Tx&;86&3P6O&QR9& †& RST8#5UCS#CV#4SW4# XYZ[#56E#89\#89S]E# ^_E#:`#ab89# FYZ7#aYc8#56<89# (dY#_7#SeE# RSW5#fY8S#[g# (ShC#5SY#[g# Câu truy vấn Kết quả truy vấn Nội dung chi tiết !  !121&34156& !  RST8#5UCS#CV#4SW4#i#89\#89S]E# !  D1E9&FG1&HC9@&IJ1&HK&L6C9&45& !  $K1&M6&4NC&;8O&3P6O&QR9& !  S2;&TMU9@&V:;4&34M2;&;8O&3P6O&QR9& !  74>3&H194&QW&34X;&341&YZ&T594& ‡& Phân tích cú pháp và ngữ nghĩa RST8#5UCS#CV#4SW4# XYZ[#56E#89\#89S]E# ^_E#:`#ab89# FYZ7#aYc8#56<89# (dY#_7#SeE# RSW5#fY8S#[g# (ShC#5SY#[g# Câu truy vấn Kết quả truy vấn Kiểm'tra'câu'truy' vấn'có'đúng'cú'pháp' hay'không' Kết'quả'cho'ra'là'1' Cây'phân'tích' (parse'tree)' ˆ& Phân tích cú pháp và ngữ nghĩa (tt) !  *8O&;<&=4>=%& ‰& <Query> <SFW> SELECT <SelectList> FROM <FromList> WHERE <Condition> <Attribute> <AttributeName> <Relation> <TableName> <Condition> AND <Condition> <Attribute> = <Attribute> <Tuple> IN <Query> <Attribute> LIKE <pattern> … … … Ví dụ 1 !  '\3&4C1&]6C9&45&HC6&%& _  *6H3€YŠP`;6H‹db&;6H0Yb&;6H^3PŠŠ3b&;6H*13Oc& _  a;;€693`C;;‹db&;6H‹db&•CTC9;Šc& !  "W&;86&3P6O&QR9& Œ& ^e#e*$&;6H0Y& r-si&*6H3€YŠP& tue-e&;6H‹d&‹0&`& &^e#e*$&;6H‹d& &r-si&a;;€693&& &tue-e&•CTC9;Š&v&z••c& Ví dụ 1 (tt) z•& j$7k6Al# j-mnl# -M1M+(# Ž^ŠTŠ;3#1H3•& m)oG# ŽrP€Y#1H3•& n!M)M# Ž*€9n131€9•& Ža33P1•63Š•& Ž-ŠTC31€9•& ;6H0Y& *6H3€YŠP& Ž$6=TŠ•& ‹0& j$7k6Al# Ža33P1•63Š•& ;6H‹d& j-mnl# -M1M+(# Ž^ŠTŠ;3#1H3•& m)oG# ŽrP€Y#1H3•& n!M)M# Ž*€9n131€9•& Ža33P1•63Š•& ;6H‹d& Ž-ŠTC31€9•& a;;€693& Ža33P1•63Š•& •CTC9;Š& v& Ž=C33ŠP9•& z••& [...]... Account.cusID   balance     =     100   12   Phân tích cú pháp và ngữ nghĩa Câu truy vấn Kiểm tra ngữ nghĩa giữa Quan hệ trong mệnh đề From với Thuộc tính trong các mệnh đề khác Kết quả truy vấn Thực  thi  mã   Kiểm  tra  ngữ  nghĩa   Kiểm tra kiểu dữ liệu có phù hợp với thuộc tính hay không Tên thuộc tính có nhập nhằng không Phân  tích  cú  pháp   Phát  sinh  mã   Đưa  về  dạng   Biểu...  pháp  -­‐  ngữ  nghĩa   Biến  đổi  sang  Đại  số  Quan hệ   Tối  ưu  hóa  cây  truy  vấn   Ước  lượng  kích  thước  cây  truy  vấn   Phát  sinh  và  thực  thi  mã  lệnh   14   Biến đổi sang ĐSQH Câu truy vấn Kết quả truy vấn Phân  tích  cú  pháp   Dạng biểu diễn trong : Chính là Biểu thức Đại số Quan hệ Biểu diễn dưới dạng Cây : Cây Đại số Quan hệ (logical query plan) Thực  thi  mã   Kiểm  tra  ngữ...  biểu  diễn  sang  dạng  ĐSQH  dạng  biểu  thức   hoặc  cây  truy  vấn  (query  tree)   16   Biến đổi sang ĐSQH (tt) §  Truy  vấn  đơn:     –  Xét  câu  trúc  ,  sử  dụng  quy  tắc     •  Thay  thế    thành  các  biến  quan hệ   –  Sử  dụng  phép  tích  cartesian  (X)  cho  các  biến  quan hệ   •  Thay  thế    thành  phép  chọn  σC   •  Thay  thế    thành...  mã   Kiểm  tra  ngữ  nghĩa   Phát  sinh  mã   Đưa  về  dạng   Biểu  diễn  trong   Tối  ưu  hóa   15   §  Câu  truy  vấn  được  phân  rã  thành  các  query  block  (QB)   –  Query  Block  là  đơn  vị cơ  bản  để  có  thể  chuyển  sang  các  biểu  thức   ĐSQH  và  tối  ưu  hoá   –  Một  QB  chứa  một  biểu  thức  đơn  SELECT-­‐  FROM-­‐WHERE-­‐GROUP   BY  –  HAVING   –  Các  câu  truy  vấn  lồng  trong...Ví dụ 2 §  Xét  hai  quan hệ  sau  đây  :   –  Customer(cusID,  cusNm,  cusStreet,  cusCity)   –  Account(accID,  cusID,  balance)   §  Và  câu  truy  vấn  sau:   SELECT  cusNm   FROM  Customer,  Account   WHERE  Customer.cusID... –  Áp  dụng  qui  tắc    cho  truy  vấn  con  S   –  Sử  dụng  phép  chọn  2  biến  (two-­‐argument  selection)   •  Nút  là  phép  chọn  không  có  tham  số   •  Nhánh  con  trái  là  biến  quan hệ  R   •  Nhánh  con  phải  là    áp  dụng  cho  mỗi  bộ  trong  R   σ   Câu  truy  vấn  con   R     Tuple   Operator   S   19   Xét ví dụ 1 (Lồng phân cấp) πcusNm   σ   Customer...  đương   distinct)   σbalance=100   Account   23   Xét ví dụ 1 (tt) πcusNm Customer.cusID=Account.cusID   Customer   δ   πcusID   σbalance=100   Account   24   Ví dụ 3 (Lồng tương quan) §  Xét  hai  quan hệ  sau  đây  :   –  Customer(cusID,  cusNm,  cusStreet,  cusCity)   –  Account(accID,  cusID,  balance)   §  Xét  câu  truy  vấn  sau  đây  :   SELECT  c.cusNm   FROM  Customer  c   WHERE  10000  >=...    WHERE  a.cusID=c.cusID)   25   Ví dụ 3 (tt) πcusNm   Phép  chọn  2  biến   σ   Customer  c     Hằng  số     10000   ≥   ℑSUM(a.balance)   S   σc.custID=a.cusID   Account  a   26   Ví dụ 3 (tt) πcusNm   σ   Customer  c       10000   Điều  kiện  liên   kết  R  và  S   ≥   ℑSUM(a.balance)   S   σc.custID=a.cusID   Account  a   27   Ví dụ 3 (tt) πcusNm σc.custID=a.cusID... 10000≥Total X Customer c ρ [ ℑSUM(a.balance)] Total cusID Account a S 30   Nội dung chi tiết §  §  §  §  §  §  Giới  thiệu   Phân  tích  cú  pháp  -­‐  ngữ  nghĩa   Biến  đổi  sang  Đại  số  Quan hệ   Tối  ưu  hóa  cây  truy  vấn   Ước  lượng  kích  thước  cây  truy  vấn   Phát  sinh  và  thực  thi  mã  lệnh   31   Tối ưu hóa cây truy vấn Câu truy vấn Kết quả truy vấn Phân  tích  cú  pháp   Thực...  vấn  chiếm  dụng  bộ  nhớ  ít  nhất  có  thể   –  Nhận  xét   •  Hai  yêu  cầu  trên  mâu  thuẫn  nhau   •  Cần  phải  dung  hòa,  thỏa  hiệp   §  Chiến  thuật   –  Thực  hiện  các  phép  toán  quan hệ  1  ngôi  trước  (nếu  có  thể)   –  Sau  đó  thực  hiện  các  phép  toán  2  ngôi  và  các  phép  toán  1  ngôi  còn   lại   –  Áp  dụng  các  quy  tắc  để  tối  ưu     33   Áp dụng quy tắc §  1 . *6H3€YŠP`;6H‹db&;6H0Yb&;6H^3PŠŠ3b&;6H*13Oc& _  a;; 69 3`C;;‹db&;6H‹db&•CTC9;Šc& !  "W&; 86& amp;3P6O&QR9&HC6%& zz& ^e#e*$&;6H0Y& r-si&*6H3€YŠPb&a;; 69 3& tue-e&*6H3€YŠPq;6H‹d&v&a;; 69 3q;6H‹d& a0d&•CTC9;Š&v&z••& Ví. z‰& π;6H0Y& σ*6H3€YŠPq;6H‹dva;; 69 3q;6H‹d&∧&•CTC9;Švz••& *6H3€YŠP& a;; 69 3& h& Biến đổi sang ĐSQH (tt) !  (67 A#:B8#?u89%&& $•9&3J1&; 86& amp;3P6O&QR9&;€9&^&3P€9@&Ž*€9n131€9•& _ . <Attribute> LIKE <pattern> … … … Ví dụ 1 !  '3&4C1&]6C9&45&HC6&%& _  *6H3€YŠP`;6H‹db&;6H0Yb&;6H^3PŠŠ3b&;6H*13Oc& _  a;; 69 3`C;;‹db&;6H‹db&•CTC9;Šc& ! 

Ngày đăng: 09/04/2015, 22:29

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan