1. Trang chủ
  2. » Giáo Dục - Đào Tạo

SQL 2 nhập môn lập trình

35 43 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 35
Dung lượng 3,37 MB

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

Nội dung

viôc qu ả n lý các lồi vh các giao dịch... PHẦN ITIẾP CẬN.

Trang 1

I

Trang 3

ĐAI H O C Q U Ố C GIA H À NÔ!

Trang 7

LỜI NÓI ĐẦU

N g ô n ngữ SQL làm c h o việc q u ả n lý các dữ liệu tin học trở nên th u ận tiện một cách k h ô n g thể chối cãi được Nó c h o ph ép viết một cách đcrn giản các yê u cầu rất tinh vi Cùn g một yêu cãu n h ư vạy Ircng m ộ l n g ó n ngữ cổ điển ( ch ăng hriii nh ư c ,

X b a s e , C O B O L , ) sẽ đòi hỏi nhiéu chụ c, thậiri chí nhiều trăm d ò n g lệnh

L à m ộ t cô ng cụ m ạ n h m ẽ có lính ng u y ê n bản, SQL cũ n g c h o ph ép k h á m phá lâì n h a n h những điều bất ihườiig trong c ác dữ liệu, vạch ra n g u y ê n nhân c ủ a m ộ t ỉỗi xuất hiệ n do k h ác h hà ng th ôn g báo, và cũ ng thực hiện dược n h ữ n g lính loán Ihống

kê tinh vi

N g a v cả đối vói một nh à lập trình k h ô n g triển khai c ô n g việc n h ờ sự trợ giúp của vSQL thì việc bảo trì cá c b ả n g và các irình ứng dụng c ũ n g thuận lợi rất nhiều nếu biết q u ả n lý các dữ liệu b ằ n g cácli Irao đổi tương lác vói SQL

M ọ i hệ thống qu ản lý các dữ liệu, ne ay cả các dữ liệu k h ô n g phải d ạ n g quan

hệ, g i ò đây cũng có dược một c ô n g cụ cho c ác yêu cầu và các b á o c á o d ự a trôn vSQL C ũ n g vây, mọi c ô n g cụ để phát u i ể n các Ir'mh ứng dụ n g , là cổ điển h a v hư ón g đối tượng, cũn g đề nghị có n h ữ ng điểu kiện thuận liện cần ihiếl để truy n h ậ p các dữ liệu th ô n g qu a SQL

S Q L đ ã Irở nên cổn (hiết k h ô n g lliể bỏ qua được dối với m ộ t nh à phát triển

c h ư ơ n g trình chuy ên nghiệp

Tấ t nhiên, k h ổ n g phải vì thế m à tất cả đã hoàn toàn là mhu hồng N g ô n ngữ

SQ L lúc đầu được phát triển vào giữa Iiliữiig n ãm 1970, chỉ mới được chuẢn hoá vào

n ăm 1986 Tu y còn chưa Cu'iv đủ, nh ư n g ch uẩn đầu tiên nàv đã tạo thuận lợi ch o sự phát Iriổn vô vàn p hư ơn g Iigữ, Í1 nhiều k h ô n c tương Ihích với nhau, k hi ến c h o việc

m a n g một tiìnỉi ứng d.ụng sang ch ạy trên một nẻn k h ác trở nên k h ó kh ăn Chu ẩn yếu ỚI S QL -8 9 đã k h ô n g cải thiện được íình hình này

T u y nhiên, thế giới lin học đã có nhu cầu lo lớn về inột ngô n n g ữ c h ắ c chắn

và vạn n ă n g để Iruy nhộ]-) các dư liệu Các khái niệm cũng quan trọng n h ư việc để lâm tới c ác ràng bu ộc, tính loồn vẹn quv cliiếu, các giao dịch và cá c con trỏ có thể

c u ộ n được cò n chưa dược xem xél trong c ác chuíỉn 1986 và 1989 Mặl k h á c , người

ta đ a n g c h u ẩn bị cho sự lêii ngôi của cá c hệ thống có cấu trúc k h á c h h à n g - Ihiết bị dịch vụ (client-serveur) c h o ph ép sự trao dổi thông lin giũa các k h á c h h à n g và các

ihiêi bị dịch vụ phức lạp ĩiìù í n f ớ c Ììếí áó là sự k h ô n g tương thích Chỉ có mỌt ngôn

n g ữ S Q L duy nhấl, một ch u ẩ n thực sự mới c h o ph ép phát triển c á c hệ t h ố n g như vậy

V ậ y là trong những n ăm gán đâ y, c h ú n g la đã IhaiTi d ự vho hai sự kiện nổi bạt trong i h ế giới tin học cá c cơ sở dư liệu Trước hết là cuối n ăm 1992, sự th ô n g qua

c h u ẩ n SQL -92 , m ộ t tham k h ả o thực sự đã đưa n gô n ng ữ này vượt lên h ẳ n trình độ cùa c á c p hư ơng ng ữ k h ác nhau đ a n g được sử d ụ ng khi đó Sau đó, việc được thị trưòmg c h ấ p nhận vào n ăm 1993 và 1994 củ a các API (viết tắt của Application

P r o g r a m m i n g Interface - Giao diện lộp trình ứng dụ n g ) đã được c h u ẩ n hoá như là

O D B C và IDAP, đã cho p h é p kết nối với c ác thiết bị dịch vụ nào đó m à k h ô n g yêu cầu sự phù hợp với c h uẩ n mới của c h ú n a

Trang 8

C h u á n 2ần dâv, S Q L - 9 2 , de m lại m(M cuộc cách m ạ n e thủt sự cho sự phất iriểr

i m ô n n g ữ nàv từ ỉ 0 0 trang ván bàn cùa ch u ẩ n dã lên tới 60 0 trang.!

S Q L mới Irước tiên rõ ràng là m é m d ẻo hơn cho viộc sử dụỉig, ch ả n g hạn chc

p h é p thưc hiện c á c vêu cẩu lỗng gh é p ừ inọi mứ c dộ cù a lệnh S EL EC T Đặc biệt nó

p h o n g p hú hơn rất nh iều , nhất là ve các loại dữ liệu, vicc mò tả íheo cách khai b;ì0

đ á y d ù c á c r àn g DUỘC v ề lí nh toàn vẹn ( in t é g r i t é ) , v i ệ c q uà n lý n g h i ệ p vụ c á c 2Ìắ

d ịc h ( tr an s ac ti o n) và một sư c h u ẩ n ho á ch o S Q L năng động

Đi th eo sư liến triển c ủ a n a ô n n a ữ SQL, lẩn xuất bản Iiàv cù a cuốn sách đã dòi hỏi n h i ề u hoàn c h ỉ n h sâu sắc so với lán xuất bản tmớc K h ô n g cầu toàn, ch ú n g tôi m u ố n thực hiện m ộ t c ổ n g trình trước hết dể dạy học T h e o quan điểm nàỵ

c h ú n g tôi luôn luôn ưu tiên việc aiải thích đầv đủ một khái n iệ m bằnR một thí dụ,

h ơ n là đi s â u vào c á c chi tiết phức tạp củ a cú pháp C h ú n s tồi m o n g rằng cuốn sách

n à v trờ t h à n h c u ố n s á c h b ổ su n g c h o các tài liẻu tra cứu cấn thiết vẻ hệ Gu’ip l'i co’

sờ d ữ liệu ( H Q T C S D L ) c ủ a q u v vị

C ô n g trình c ủ a c h ú n g tôi dược chia làm năm phẩn kh á rõ rệt Mỗi người liohn

lo àn c ó th ể tiếp c ậ n c u ố n s á c h nàv tuỳ theo m ứ c dồ tươna ứ ng vói nhu cdu của

m ì n h Đ ộ c giả n ao đ à q u á q u e n với S Q L tương tác (interaciif) có thể chu y ển n gay

s a n g p h á n thứ tư liên q u a n đ ến việc lộp trình m à k hô n g cả m thấv có k h ó khăn gì

N g ư ợ c lạị m ộ t n h à lộp trình mới làm quen với ngón nRỮ SQ L sỗ c ả m thấỵ íhoài mái

t r o n e p h á n n h ậ p m ô n (initiation), vì phần này k h ỏ n e đòi hỏi phải biết trước diều sì cả

P h á n ĩ T i ế p c ậ n n gô n n g ữ S Q í

Đ ể c ó thể d à n h n hi ều hơn cho việc ng h iên cứu c h ín h SQL, ch ú n g lôi dã rút

g ọ n p h ấ n n à y s o với lần xuất b ản dầu tiên

Đ ắ u tiên, c h ú n g tôi m u ố n định vị ng ôn ng ữ SQ L đối với c a c hệ qunn !ý các (lữ liệu hi ện Ihòi n h ằ m m ụ c đ íc h vạch ra cá c n e u y ê n lý vạ triếr lÝ của na,ôn ngữ mới này K h i chỉ ra sự p h à n c h i a m ộ t hệ qu ản trị c ơ sờ dữ liệu q u a n hệ ( H Q T C S D L )

th à n h ba m ứ c , c h ú n g tôi Ipm nổi bật tính cliất k h ỏ n g thủ tục củ a các yêu cầu S Q L , lợi ích c ơ b ả n c ủ a c á c k h u n g nhìn (vue/vievv) và việc tối ưu hoá cần thiết các céíu trúc b è n tr o n g b ằ n g c h ư ơ n g trình qu ản trị (th òn g qua SQL) Khi mò tả các k h á i niệin và c á c ưu đ i ể m nh iều m ặ t củ a cấu trúc k h á c h hàng - thiết bị dịch vụ, chún g tôi chỉ ra vai trò c h ủ c h ố t m à S Q L ch iế m giữ với tư cách là mộ t còng cụ van n ă n s và (ỉã

đ ư ợc tói im 'noá dà n h ch o th ô n g tin

Sau d ó c h ú n a tôi n h ắ c lại m ộ t cá ch ngắn gọn vài khá; ni ệm vể q uan hậ cíìn thiốt c h o việc khai thác n e ỏ n ngữ này có hiệu quà (khái r.iệm vô kh o á sơ cốp -

p r im a r y k e y , và k h o á n s o ạ i - foreign key, về các ràng bu ộ c, '-é từ điển .)

Ciiòi c ù n g c h ú n g lỏi đưa ra lập liợp cấ c n g u ổ n eỏc củ a ngỏii Iigữ và hình ihàiih

m ộ t lịch s ử tóm tắt nôu rõ q u á trình ch u ẩ n hoá và sự hAm r r , h i ệ n nay đối vói c á c

k ỹ thuàl iliuoc loại APỊ

Trang 9

L ơ ! n o ỉ U ì u V

Ị’ hàn i l N h â p mòn

Sư bận tâm thứ nhất cu a c h ú n g tôi ià làm sao c h o việc tiếp cộn trờ nên có tính

> hnt giảng day nhiòu iiiiOt Moi khái niỌin déii (Urơc đề c â p th ổ n g qu a nhiều 1Ỉ1Í (lụ phứe tạp d ầ n 'lirơc (hực hiện trên một c ơ sở dữ liệu ihực tê m à tlộc giả có thể thiè! âị) và thao tác '<heo cách Ihức lương lấc trên H Q T C S D L c ủ a mình Troiig giai đo ạn làv, c h ú n g tôi dã iniiốn hỏ qua cá c chức năng đa d ạ n g tiéii tiến (các c hứ c n ă n s nàv

;ẽ tlirưc dưa ra Irona phần sau) dế tập trung vào c ác n g u y è n Iv c ơ bản c ủ a n g ô n ngữ

' ĩ r ư ớ c tiên m ò tà cấu trúc c ù a c ơ SỪ d ư liệu “ E x e m p l e ” c ủ a c h ú n g tôi, sau đ ó là

I rì nil bay c á c hàni vlc tao lAp vì\ điền (ỉữ liệu vno ch ú n g T i ế p Ihco c h ú n g tôi đ ề cfip

Ilieo c á c h ihức thẻin dfln các phấn tử k h ác nhau củ a m ộ t yêu cá u S E L E C T , có chú V lách riồns cá ch truv nh ập đoíii bản g (tức là truy nh âp tới m ộ t b ả n g d ữ liệu) từ các vẽu cáu d a bản g và cnc yêu cáu được lổng g h ép (tức là c á c yêu cầu đư ợc kêt nôi

P h á n III H oà n thiện

Khi đã có đư ợc các khái niệm cơ bản củ a ngôn n s ữ , bAy gi ờ cliúng ta có thể đồ

c á p tới c á c chứ c năn g m ạnh hơn của SQL

vSau khi đã m ò tả một c á c h nh an h c h ó n g ở c h ư ơ n g 8 c ấ c c h ứ c nă n g c ủ a s ơ dồ,

cù a kết nối và về phiên làin việc - gọi lắt là phiôn (ses sion) - với S Q L và hệ qu ả n trị

c ơ .sở dữ liệu, chúnR tôi dề cộp tới một Irong Iihữns c h ư ơ n g then chốt: cliương liôn

qu an tới c á c ràng buộc (contrainte) Các ràng bu ộc này được inô tả m ộ t c á c h rất ti

m i và đ ư ợ c m i n h ho a b ằ n g Iihiểu llií dụ, k h ô n g q u ê n c n c t r i g ư và c á c thù tục tin

được lưu trong bộ nliớ còn chư a dược dự kiến trong c h uẩ n C h ư ơ n g 10 đưa ra một vni biểu Ihức mới rất m ạnh củ a ch u ẩ n SQ L-9 2 C h ư ơ n g 1 1 đ ề na h ị giải qu yết cá c yèu cẩu ử m ứ c cao Chư ơng này dặc hiệt có ích Iiếu qu ý vị m u ố n ihành lộp inộl tộp hợp các tính loan th ống kê Cịuan trọng trên c á c dữ liệu c ủ a q u ý vị C h ư ơ n g 12 dồ cộp tới kh.ii niệm q uan trong về k h u n g nhìn (vue) và nh iều ưu đ i ể m c ủ a nó C ác thí clụ phức tạp ờ cuối chương hoàii utl một cá ch tôt d ẹp cá c thí dụ trình bòy ở c h ư ơ n g Irước, vì c á c k h u n g nhìn đã ciiiig cấ p inột trạng thái đ ộ n g c h o cá c h ả n g còn tĩnỉi ở

c h ư ơ n g 1 1 C h ư ơ n g 13 bàn ve c á c giao (lịch, khái ni ệm này đư ợc khni Iriển với một

sư chii ý đ ậ c biệt vì ch ú n g tôi c h o rằng, nó đã bị hiểu lầm và (hường là khôiiR được

sừ (lụng hết mức C h ư ơ n e 14 (iổ cộp tới các h àm q u a n trọng nià n h à qu ả n trị ỈIỘ tliông phải q u a n lâm tới c h ú n g nhiồu hơn (các q u y ể n truv nhộp liiệu năng vh từ diổn các d ữ liôu)

Ph ầ n IV I-,ảp trình

Đ;ìy !à giai đoạn cuôi cìing cùa viỌc học SQL 15 kết q u ả c ủ a việc tiếp lliu inoi khái niệm c ho tới lúc nồv C h ú n g lỏi dã l.ìiig clííng kể phÀn Iihy so với lán Kuấl b;’iii trưíýc vì mọi nhà Iriểii khai viẹc ứng tlụng dồii qu an tf\m tnrc liếp tới phÀii Iiày và là

piiủii Irưc liỏp b ồ ích hơn cn ở đAy c f i n g vẠy, c h ú n g tôi Iiioiig m u ỏ i i là nlũriig n g ư ờ i

giaiiií '-lụy và liến bộ C h ú n g lOi (lổ cẠp tấl c:i c á c kỹ thiiẠt lẠp Irình h ă n g SQ L mỏl

cá ch tì mỉ qua nhiỏu 111! du Irọn vẹn; ngổ n ngữ S(^L tích liợp, đ(tn ihè SQL S Q L ctỏiií’ và viôc lộp Irnih nliờ API O D B C cu a Microsofl C h ú n g tôi d ặc biệt nhốii mạiih

Trang 10

viôc qu ả n lý các lồi vh các giao dịch Cuối cÌMig c h ú n g lôi kết thúc b ằn g inột inô lả

các lớp S Q L được viết bãiig C++, cá c lớp này đã lộn d ụ n g đ ư ợc clÀy đu cá c ưu (.liổm của cá c h liếp cận định hư ớn g đối urợng

P h ầ n V C á c p hụ lục

T a sẽ tim thấy trong đó:

• M ộ t m ô tả ngấn gọn về cá c m ứ c phù hợp cùa S Q L -9 2 ,

• M ộ t tra cứu chi tiết vể cú p h á p của S Q L -9 2, ciựa trên văn p h ạ m BNF,

• Đ á p án của cá c bài fập dược đưn ra Irong c u ố n sách,

• Một thư m ụ c ng ắ n gọii c á c c ô n g trình vh c á c bài b á o nôn biết,

• Một chỉ inục đầy đỉi (d anh sách đã s ắ p Ihứ tự tlieo ciiữ cái VC các từ cá c chù

đé, c á c dan h từ xuất hiện Irong mội c ô n g Irình m ộ t tu yển tộp, v.v và c ấ c q u y địiih tra cứu để lìm lại chúng)

C u ố n sách nàv ià kếl quả của gán mười n ã m g iả ng finy về c ơ sở d ữ liệu qiinn

hệ trong c á c trường tin học, và c ũ n g là kinh n g h i ệ m đư ợc íích ỉuỹ díìn trên iĩnh virc tin học th ưo ng mại C h ú n g tôi đã có dịp triển khai nhiều ứng d ụ n g k h á c nhnu

t r o n g m ô i Irường k h á c h h à n g - thiết bị d ị c h vụ với n h ữ n g c ơ s ở d ữ liộu m u ô n VC n hư

O R A C L E , I N F O R M I X , I N G R E S , RD B, N E T W A R E S Q L / B T R I E V E và

W A T C O M SQL ở đây c h ú n g lôi c a m ơn nhiều thê hệ sinh viên b ằ n g n h ữ n g c á c h

k h á c nh au, đôi khi còn bị hạn chế đã cuiìg cấ p tư liệu c h o k i n h n g h i ệ m c ủ a c h ú n g tôi

Cuối c ù n e c h ú n s tỏi c ũ n g xin c ả m ơn Ciirisiophe P Ỉ A N N O S S E T , cử nliân Ún học cù a Đại học tổng hợp Liège , người đã gi úp c h ú n g lôi thực hiện n h ữ n g khái

ni ệm vổ c á c lớp S Q L c ủ a sản p h ẩ m C C S Q L đã dược nói tới tro ne c h ư ơ n e 19

Sau lời nói đấu dài d ò n g này, cuối c ù n g c h ú n g tỏi có thể c h ú c qu ý vị đ ọ c lỏì

cu ố n sách này Đ ư ơ n g nhiên, k h ô n g có tliể nói hết và h ọ c được hết mọi thứ vổ SQ L chỉ trong m ộ t cô n g trình n h ỏ b é nh ư th ế này N h ư n g việc thực hàn h n g ô n n g ữ này

c h o m ỗ i yêu cầu, mõi c hư ơ ng tnnli đều là khơi n g u ổ n c h o c á c k h á m phá đ á n g say mê

Christian M A R E E

G u y L E D A N T

Trang 11

1 3 4 C’ltnycn (!ổi c:k' Idíti (iiì iicii

li

s

<)o

nm“i (ỊIKUI ly ino limli (|ii:ui ho1.1 MỞ(1;1||

1.2 S Q i IKinu k iCii 1I IIC CÌK' i('yịi ! I ( ) I ('1 )1

1 2 1 M n c k l i : í i I i i c i i i

1.2.2 M ú c

1 2 3 M i k ' 11 o n ^

1 2 4 ( V k ' l í n h c liAl c u;\ c f i c l i | i h : u ) ii;iN

1 3 2 Ỉ V i ể n ( ỉ i c i ) m o i l i ê n l i ê g i í ì : i ( ' ; i c h í i n g

1.1.3 B i c u flic'H (.-ííc Iiin'j huOc' v r línli I dà n \ ' cn■, •

1.3.7 N j i ô n iio,n l i n y nliAp (V iinVc CÌU1

1.4 Kiên Inic kliiicli hniig Plii.K' vu vii li iivcii lliôim (Ịu;i S'(^l, I I

l <i.2 ( ' ; í c t i ^ n y c n l ý c n : i i n o l k i r i i l i i i c k h i í c l i ÌIỈIIIỊI - I'’l i n c v u I ^

2 S ( ^ L S1I Miíìt ỉ i ìCmi nióỉ n^óii Iiịỉíi IU(VÌ A :)I1 IlAIl^ ’ '

2 2 liCp c â n k i c u t áp li(Tp v;i n j i ò n n g ũ (ini s o

2.2 1 ( Vif nmiycii (íic

2 2 2 ( ':u' I(1:ÍI1 m n j : n y c n l l i n v c ơ ỉ-i;ui

2 2, ' ' ( ’: k- l o í í n III n m i y ê n l l i u v p l i : i l s i i i l i

2.2/1 r ổ liợp c;k' Idán lủ Iiuiivcn llinỷ

2.2.5 D í i n g loiiíi (ìii;'il cíin I11Ó1 y c u cÀti S Q L

2 3 ( ' rui l i i U ’ l ổ i i n ( ị i K Í I c u : i I 1 Ị 2 Ô I 1 I I , u ữ

W)líi

Trang 12

N g ô n nmi S í ^ l

9.4 Các ràiig biiỌc líiili loìiii vẹn (|11\' chiêu

1 2 5 3 C';k' (ỊViy l : i r Ị t hni l ô i i l i d i i í i ( l ể v ó l l i c s u ; i k l m i i j : n h ì n l i í u i u S ( ^ l

12.7.2 l)(in ^i;in Iihrin cácli lui:i ('(V s('t tlữ lien M ■

\ À ' 1 ’í i i l i (! (' »' I f t p g i i í ; ' ( ■: i c l i ì n l i l ì i i u ( l i u i n \ ' à l i ĩ í T c ( l ổ k l i í í i I i i c n i

Trang 13

12.7.5 V i c c d ư a v à o c á c ranc, h u õ c VC tính toàn v c n 143

Trang 14

16.2 (,)ti:i Imi i i pli;ii li i(:-n Ị

lfi-4.1 Ọiiiui lý vùng S Q I X ’A (Iiuov C'liiuin SỌ1.-92) I H*-)

1 6 5 ' r i i i i V i i i : h o | i c a c iziil I n N l I L I , I L)()

16.0 c:ác Icnh S L L E C T CC) (liiniz 111ÔỈ coil irci T()()If'.G.i Lvi.ii S K L E C r Ir.i lai Iihicii non Iiuil iiòi)<' ">()()

a K i i i u b á o c o n I r ó ( D E C L A R E ) 2 0 2

t 1 rich ci'ic dll lieu (FEriX'l I ) cii;i C(in ti'o, lime (long niộ! 20"^

WV6.3 C'ap Iiiiàl ( ' U P D A F f i ) v;i X(i;i ( I ) E L E i l : ) clòi iu l i i ệ n lli ời '^04

ci S E L E C T , c l u r a b i ê l CÍÍLI I n i t ' k è ! CỊU;1 ù ã ấ n c i i i ì ì i Ciie' i h ó n g s ó 2 ^ ( i

I H 2 2 C ; i c ' l Ị i i CÌLI CLKI c a c ỉ i IICỊ') c a i ) c ũ v c S Ụ L ( l o i i u

a L c n h k l i á c vSELECl ' ki i oi ì u c o lÌK 11111 S(')

b, L c i i l i k l i á c S E L E C ’ I , C(') e;i^' I h ó n o s o c n ( i i n i i

2 3 3 - - - - N í m ')( ì 11!MI N( )Ị

Trang 15

c l cnli S E L E C ’ l , l)icl Ci'iii ti kcl ( i n ail (ỉịnli c á c i h ó i i g 2 3 5

D E C ' L A i ^ E \' à ALL( ) ( ' A1 ' F- C l l R S O K (klìai b á o và p h á n pl i ối C(in I r ỏ)

O P E N , F E T C H C ' L O S i i (mo' , n ÍCỈI láclì clón<i)

Trang 16

X I V N u ỏ n imư S ( ) I.

22 Lòi ^iai cá c bài tậ|)

C ác liài lâp của cluĩoim 7

Trang 17

PHẦN I

TIẾP CẬN

Ngày đăng: 27/03/2020, 23:17

TỪ KHÓA LIÊN QUAN