Bài 1: Gi i Thi u SQLớ ệ
Server 2000
SQL Server 2000 là m t h th ng qu n lý c s d li u (Relationalộ ệ ố ả ơ ở ữ ệ
Database Management System (RDBMS) ) s d ng ử ụ Transact-SQL đ trao đ i dể ổ ữ
li u gi a Client computer và SQL Server computer. M t RDBMS bao g mệ ữ ộ ồ
databases, database engine và các ng d ng dùng đ qu n lý d li u và các bứ ụ ể ả ữ ệ ộ
ph n khác nhau trong RDBMS.ậ
SQL Server 2000 đ c t i u đ có th ch y trên môi tr ng c s dượ ố ư ể ể ạ ườ ơ ở ữ
li u r t l n (Very Large Database Environment) lên đ n Tera-Byte và có th ph cệ ấ ớ ế ể ụ
v cùng lúc cho hàng ngàn user. SQL Server 2000 có th k t h p "ăn ý" v i cácụ ể ế ợ ớ
server khác nh Microsoft Internet Information Server (IIS), E-Commerce Server,ư
Proxy Server
SQL Server có 7 editions:
• Enterprise : Ch a đ y đ các đ c tr ng c a SQL Server và có th ch yứ ầ ủ ặ ư ủ ể ạ
t t trên h th ng lên đ n 32 CPUs và 64 GB RAM. Thêm vào đó nó có cácố ệ ố ế
d ch v giúp cho vi c phân tích d li u r t hi u qu (Analysis Services) ị ụ ệ ữ ệ ấ ệ ả
• Standard : R t thích h p cho các công ty v a và nh vì giá thành r h nấ ợ ừ ỏ ẻ ơ
nhi u so v i Enterprise Edition, nh ng l i b gi i h n m t s ch c năngề ớ ư ạ ị ớ ạ ộ ố ứ
cao c p (advanced features) khác, edition này có th ch y t t trên h th ngấ ể ạ ố ệ ố
lên đ n 4 CPU và 2 GB RAM. ế
• Personal: đ c t i u hóa đ ch y trên PC nên có th cài đ t trên h u h tượ ố ư ể ạ ể ặ ầ ế
các phiên b n windows k c Windows 98. ả ể ả
• Developer : Có đ y đ các tính năng c a Enterprise Edition nh ng đ cầ ủ ủ ư ượ
ch t o đ c bi t nh gi i h n s l ng ng i k t n i vào Server cùngế ạ ặ ệ ư ớ ạ ố ượ ườ ế ố
m t lúc Ðây là edition mà các b n mu n h c SQL Server c n có. Chúngộ ạ ố ọ ầ
ta s dùng edition này trong su t khóa h c. Edition này có th cài trênẽ ố ọ ể
Windows 2000 Professional hay Win NT Workstation.
• Desktop Engine (MSDE): Ðây ch là m t engine ch y trên desktop vàỉ ộ ạ
không có user interface (giao di n). Thích h p cho vi c tri n khai ngệ ợ ệ ể ứ
d ng máy client. Kích th c database b gi i h n kho ng 2 GB. ụ ở ướ ị ớ ạ ả
• Win CE : Dùng cho các ng d ng ch y trên Windows CE ứ ụ ạ
• Trial: Có các tính năng c a Enterprise Edition, download free, nh ng gi iủ ư ớ
h n th i gian s d ng. ạ ờ ử ụ
1.1. Cài Ð t SQL Server 2000 (Installation) ặ
Các b n c n có ạ ầ Developer Edition và ít nh t là 64 MB RAM, 500 MBấ
hard disk đ có th install SQL Server. B n có th install trên Windows Server hayể ể ạ ể
Windows XP Professional, Windows 2000 Professional hay NT Workstation nh ngư
không th install trên Win 98 family.ể
Vì m t trong nh ng đ c đi m c a các s n ph m Microsoft là d installộ ữ ặ ể ủ ả ẩ ễ
nên chúng tôi không trình bày chi ti t v cách install hay các b c install mà chế ề ướ ỉ
trình bày các đi m c n l u ý khi install mà thôi. N u các b n g p tr ng i trongể ầ ư ế ạ ặ ở ạ
vi c install thì có th đ a lên forum đ h i thêm. Khi install b n c n l u ý cácệ ể ư ể ỏ ạ ầ ư
đi m sau:ể
màn hình th hai b n ch n Ở ứ ạ ọ Install Database Server. Sau khi install
xong SQL Server b n có th install thêm Analysis Service n u b n thích.ạ ể ế ạ
màn hình Ở Installation Definition b n ch n ạ ọ Server and Client Tools.
Sau đó b n nên ch n ki u ạ ọ ể Custom và ch n t t cọ ấ ả các b ph n c a SQLộ ậ ủ
Server. Ngoài ra nên ch n các giá tr m c đ nh ọ ị ặ ị (default)
màn hình Ở Authentication Mode nh ch n ớ ọ Mixed Mode . L u ý vìư
SQL Server có th dùng chung ch đ b o m t (security) v i Win NT và cũng cóể ế ộ ả ậ ớ
th dùng ch đ b o m t riêng c a nó.ể ế ộ ả ậ ủ Trong Production Server ng i ta th ngườ ườ
dùng Windows Authetication vì đ an toàn cao h n và d dàng cho ng i qu n lýộ ơ ễ ườ ả
m ng và c cho ng i s d ng. Nghĩa là m t khi b n đ c ch p nh nạ ả ườ ử ụ ộ ạ ượ ấ ậ
(authenticated) k t n i vào domain thì b n có quy n truy c p d li u (access data)ế ố ạ ề ậ ữ ệ
trong SQL Server. Tuy nhiên ta nên ch n Mixed Mode đ d dàng cho vi c h cọ ể ễ ệ ọ
t p.ậ
Sau khi install b n s th y m t icon n m góc ph i bên d i màn hình,ạ ẽ ấ ộ ằ ở ả ướ
đây chính là Service Manager. B n có th Start, Stop các SQL Server services dạ ể ễ
dàng b ng cách double-click vào icon này.ằ
1.2. M t chút ki n th c v các Version c a SQL Serverộ ế ứ ề ủ
SQL Server c a Microsoft đ c th tr ng ch p nh n r ng rãi k tủ ượ ị ườ ấ ậ ộ ể ừ
version 6.5. Sau đó Microsoft đã c i ti n và h u nh vi t l i m t engine m i choả ế ầ ư ế ạ ộ ớ
SQL Server 7.0. Cho nên có th nói t version 6.5 lên version 7.0 là m tể ừ ộ b cướ
nh y v t. Có m t s đ c tính c a SQL Server 7.0 không t ng thích v i versionả ọ ộ ố ặ ủ ươ ớ
6.5. Trong khi đó t Version 7.0 lên version 8.0 (SQL Server 2000) thì nh ng c iừ ữ ả
ti n ch y u là m r ng các tính năng v web và làm cho SQL Server 2000 đángế ủ ế ở ộ ề
tin c y h n. ậ ơ
M t đi m đ c bi t đáng l u ý version 2000 là ộ ể ặ ệ ư ở Multiple-Instance. Nói
cho d hi u là b n có th install version 2000 chung v i các version tr c màễ ể ạ ể ớ ướ
không c n ph i uninstall chúng. Nghĩa là b n có th ch y song song version 6.5ầ ả ạ ể ạ
ho c 7.0 v i version 2000 trên cùng m t máy (đi u này không th x y ra v i cácặ ớ ộ ề ể ả ớ
version tr c đây). Khi đó version cũ trên máy b n là ướ ạ Default Instance còn
version 2000 m i v a install s là ớ ừ ẽ Named Instance.
1.3. Các thành ph n quan tr ng trong SQL Server 2000ầ ọ
SQL Server 2000 đ c c u t o b i nhi u thành ph n nh Relationalượ ấ ạ ở ề ầ ư
Database Engine, Analysis Service và English Query Các thành ph n này khiầ
ph i h p v i nhau t o thành m t gi i pháp hoàn ch nh giúp cho vi c l u tr vàố ợ ớ ạ ộ ả ỉ ệ ư ữ
phân tích d li u m t cách d dàng.ữ ệ ộ ễ
1.3.1. Relational Database Engine - Cái lõi c a SQL Server:ủ
Ðây là m t engine có kh năng ch a data các quy mô khác nhauộ ả ứ ở
d i d ng table và support t t c các ki u k t n i (data connection) thôngướ ạ ấ ả ể ế ố
d ng c a Microsoft nh ActiveX Data Objects (ADO), OLE DB, and Openụ ủ ư
Database Connectivity (ODBC). Ngoài ra nó còn có kh năng t đi u ch nhả ự ề ỉ
(tune up) ví d nh s d ng thêm các tài nguyên (resource) c a máy khiụ ư ử ụ ủ
c n và tr l i tài nguyên cho h đi u hành khi m t user log off.ầ ả ạ ệ ề ộ
1.3.2. Replication - C ch t o b n sao (Replica):ơ ế ạ ả
Gi s b n có m t database dùng đ ch a d li u đ c các ngả ử ạ ộ ể ứ ữ ệ ượ ứ
d ng th ng xuyên c p nh t. M t ngày đ p tr i b n mu n có m t cáiụ ườ ậ ậ ộ ẹ ờ ạ ố ộ
database gi ng y h t nh th trên m t server khác đ ch y báo cáo (reportố ệ ư ế ộ ể ạ
database) (cách làm này th ng dùng đ tránh nh h ng đ n performanceườ ể ả ưở ế
c a server chính). V n đ là report server c a b n cũng c n ph i đ củ ấ ề ủ ạ ầ ả ượ
c p nh t th ng xuyên đ đ m b o tính chính xác c a các báo cáo. B nậ ậ ườ ể ả ả ủ ạ
không th dùng c ch back up and restore trong tr ng h p này. Th thìể ơ ế ườ ợ ế
b n ph i làm sao? Lúc đó c ch replication c a SQL Server s đ c sạ ả ơ ế ủ ẽ ượ ử
d ng đ b o đ m cho d li u 2 database đ c đ ng b (synchronized).ụ ể ả ả ữ ệ ở ượ ồ ộ
Replication s đ c bàn k trong bài 12ẽ ượ ỹ
1.3.3. Data Transformation Service (DTS) - M t d ch v chuy n d ch dataộ ị ụ ể ị
vô cùng hi u quệ ả
N u b n làm vi c trong m t công ty l n trong đó data đ c ch aế ạ ệ ộ ớ ượ ứ
trong nhi u n i khác nhau và các d ng khác nhau c th nh ch a trongề ơ ở ạ ụ ể ư ứ
Oracle, DB2 (c a IBM), SQL Server, Microsoft Access B n ch c ch n sủ ạ ắ ắ ẽ
có nhu c u di chuy n data gi a các server này (migrate hay transfer) vàầ ể ữ
không ch di chuy n b n còn mu n đ nh d ng (format) nó tr c khi l uỉ ể ạ ố ị ạ ướ ư
vào database khác, khi đó b n s th y DTS giúp b n gi i quy t công vi cạ ẽ ấ ạ ả ế ệ
trên d dàng nh th nào. DTS s đ c bàn k trong bài 8.ễ ư ế ẽ ượ ỹ
1.3.4. Analysis Service - M t d ch v phân tích d li u r t hay c aộ ị ụ ữ ệ ấ ủ
Microsoft
D li u (Data) ch a trong database s ch ng có ý nghĩa gì nhi uữ ệ ứ ẽ ẳ ề
n u nh b n không th l y đ c nh ng thông tin (Information) b ích tế ư ạ ể ấ ượ ữ ổ ừ
đó. Do đó Microsoft cung c p cho b n m t công c r t m nh giúp choấ ạ ộ ụ ấ ạ
vi c phân tích d li u tr nên d dàng và hi u qu b ng cách dùng kháiệ ữ ệ ở ễ ệ ả ằ
ni m hình kh i nhi u chi u (multi-dimension cubes) và k thu t "đào mệ ố ề ề ỹ ậ ỏ
d li u" (data mining) s đ c chúng tôi gi i thi u trong bài 13.ữ ệ ẽ ượ ớ ệ
1.3.5. English Query - M t d ch v mà ng i Vi t Nam ch c là ít mu nộ ị ụ ườ ệ ắ ố
dùng :-) (?)
Ðây là m t d ch v giúp cho vi c query data b ng ti ng Anh "tr n" (plainộ ị ụ ệ ằ ế ơ
English).
1.3.6. Meta Data Service:
D ch v này giúp cho vi c ch a đ ng và "xào n u" Meta data dị ụ ệ ứ ự ấ ễ
dàng h n. Th thì Meta Data là cái gì v y? Meta data là nh ng thông tin môơ ế ậ ữ
t v c u trúc c a data trong database nh data thu c lo i nào String hayả ề ấ ủ ư ộ ạ
Integer , m t c t nào đó có ph i là Primary key hay không B i vì nh ngộ ộ ả ở ữ
thông tin này cũng đ c ch a trong database nên cũng là m t d ng dataượ ứ ộ ạ
nh ng đ phân bi t v i data "chính th ng" ng i ta g i nó là Meta Data.ư ể ệ ớ ố ườ ọ
Ph n này ch c là b n ph i xem thêm trong m t thành ph n khác c a SQLầ ắ ạ ả ộ ầ ủ
Server s p gi i thi u sau đây là ắ ớ ệ SQL Server Books Online vì không có bài
nào trong lo t bài này nói rõ v d ch v này c .ạ ề ị ụ ả
1.3.7. SQL Server Books Online - Quy n Kinh Thánh không th thi u:ể ể ế
Cho dù b n có đ c các sách khác nhau d y v SQL server thì b nạ ọ ạ ề ạ
cũng s th y books online này r t h u d ng và không th thi u đ c( choẽ ấ ấ ữ ụ ể ế ượ
nên Microsoft m i hào phóng đính kèm theo SQL Server).ớ
1.3.8. SQL Server Tools - Ðây là m t b đ ngh c a ng i qu n tr cộ ộ ồ ề ủ ườ ả ị ơ
s d li u (DBA )ở ữ ệ
Ái chà n u k chi ti t ra thì h i nhi u đ y cho nên b n c n đ cế ể ế ơ ề ấ ạ ầ ọ
thêm trong books online. đây ng i vi t ch k ra m t vài công c thôngỞ ườ ế ỉ ể ộ ụ
d ng mà thôi. ụ
Ð u tiên ph i k đ n ầ ả ể ế Enterprise Manager. Ðây là m t công c cho taộ ụ
th y toàn c nh h th ng c s d li u m t cách r t tr c quan. Nó r t h uấ ả ệ ố ơ ở ữ ệ ộ ấ ự ấ ữ
ích đ c bi t cho ng i m i h c và không thông th o l m v SQL. ặ ệ ườ ớ ọ ạ ắ ề
K đ n là ế ế Query Analyzer. Ð i v i m t DBA gi i thì h u nh ch c nố ớ ộ ỏ ầ ư ỉ ầ
công c này là có th qu n lý c m t h th ng database mà không c nụ ể ả ả ộ ệ ố ầ
đ n nh ng th khác. Ðây là m t môi tr ng làm vi c khá t t vì ta có thế ữ ứ ộ ườ ệ ố ể
đánh b t kỳ câu l nh SQL nào và ch y ngay l p t c đ c bi t là nó giúpấ ệ ạ ậ ứ ặ ệ
cho ta debug m y cái stored procedure d dàng. ấ ễ
Công c th ba c n ph i k đ n là ụ ứ ầ ả ể ế SQL Profiler. Nó có kh năng "ch p"ả ụ
(capture) t t c các s ki n hay ho t đ ng di n ra trên m t SQL server vàấ ả ự ệ ạ ộ ễ ộ
l u l i d i d ng text file r t h u d ng trong vi c ki m soát ho t đ ngư ạ ướ ạ ấ ữ ụ ệ ể ạ ộ
c a SQL Server. ủ
Bài 7: Triggers And Views
M c L cụ ụ
Bài 1: Gi i Thi u SQL Server 2000ớ ệ 1
1.1. Cài Ð t SQL Server 2000 (Installation) ặ 2
1.2. M t chút ki n th c v các Version c a SQL Serverộ ế ứ ề ủ 2
1.3. Các thành ph n quan tr ng trong SQL Server 2000ầ ọ 3
Bài 2: Gi i Thi u S L c V Transact SQL (T-SQL)ớ ệ ơ ượ ề 7
2.1. Data Definition Language (DDL): 7
2.2. Data Control Language (DCL): 8
2.3. Manipulation Language (DML): 9
Bài t p 2 SQL Server 2000ậ 13
Bài 3: Design and Implement a SQL Server Database 16
3.1. C u Trúc C a SQL Serverấ ủ 16
3.2. C u Trúc V t Lý C a M t SQL Server Databaseấ ậ ủ ộ 16
3.3. Nguyên T c Ho t Ð ng C a Transaction Log Trong SQL Serverắ ạ ộ ủ 17
3.4. C u Trúc Logic C a M t SQL Server Databaseấ ủ ộ 19
3.5. Cách t o m t User Databaseạ ộ 20
3.6. Nh ng Ði m C n L u Ý Khi Thi t K M t Databaseữ ể ầ ư ế ế ộ 23
Bài 4: Backup And Restore SQL Server 27
4.1. Chi n L c Ph c H i D Li u (Data Restoration Strategy)ế ượ ụ ồ ữ ệ 27
4.2. Các Lo i Backupạ 27
4.3. Recovery Models 28
4.4. Backup Database 31
4.5. Restore Database 33
Bài 5: Data Integrity and Advanced Query Technique 35
5.1. Các Ph ng Pháp Ð m B o Data Integrityươ ả ả 35
5.2. Constraints 36
5.3. Advanced Query Techniques 39
5.4. Using JOINS 42
Bài 6: Stored Procedure and Advance T-SQL 45
6.1. S d ng bcp và BULK INSERT đ import dataử ụ ể 45
6.2. Distributed Queries 47
6.3. Cursors 49
6.4. Stored Procedures 50
Bài 7: Triggers And Views 56