SlideShare a Scribd company logo
QU N LÍ C S DATAẢ Ơ Ở
Chapter 1: DATABASE
Part 1: Các t vi t t t và nghĩaừ ế ắ
Vi t t tế ắ T khóaừ Nghĩa
Data D ̃ liêuư ̣
Database C s d ̃ liêuơ ở ư ̣
DBMS Database Managerment System H qu n tr c s d ̃ liêuệ ả ị ơ ở ư ̣
RDBMS Relational Database Managerment System H qu n tr c s d ̃ liêu quan hệ ả ị ơ ở ư ̣ ệ
MDBMS Multi Database Managerment System H qu n tr DATABASE đa ph ng ti nệ ả ị ươ ệ
MIRS H th ng truy v n thông tin đa ph ng ti nệ ố ấ ươ ệ
SMDS H th ng DATABASE đa ph ng ti n có c u trúcệ ố ươ ệ ấ
IR Information Retrival Truy xu t thông tinấ
MIRS Multimedia Information Retrieval System H th ng truy xu t thông tin đa ph ng ti nệ ố ấ ươ ệ
XML eXtenside Markup language Ngôn ng đánh d u m r ngữ ấ ở ộ
SQL Structured Query Language Ngôn ng truy v n c u trúcữ ấ ấ
Metadata Siêu data
Entity Th c thự ể
Multimedia Đa ph ng ti nươ ệ
Media Ph ng ti nươ ệ
Part 2: Công c s d ngụ ử ụ
Lesson 1: SQL server 2008
Lesson 2: mySQL
C s d li u MySQL đã tr thành c s d li u mã ngu n m ph bi n nh t trên th gi i vì c ch x lý nhanh và n đ nh c a nó, s đáng tin c y cao vàơ ở ữ ệ ở ơ ở ữ ệ ồ ở ổ ế ấ ế ớ ơ ế ử ổ ị ủ ự ậ
d s d ng.ễ ử ụ
Nó đ c s d ng m i n i – ngay c châu Nam C c - b i các nhà phát tri n Web riêng l cũng nh r t nhi u các t ch c l n nh t trên th gi i đ ti t ki mượ ử ụ ọ ơ ả ự ở ể ẻ ư ấ ề ổ ứ ớ ấ ế ớ ể ế ệ
th i gian và ti n b c cho nh ng Web sites có dung l ng l n, ph n m m đóng gói – bao g m c nh ng nhà đi đ u trong lĩnh v c công nghi p nh Yahoo!,ờ ề ạ ữ ượ ớ ầ ề ồ ả ữ ầ ự ệ ư
Alcatel-Lucent, Google, Nokia, YouTube và Zappos.com.
MySQL không ch là c s d li u mã ngu n m ph bi n nh t trên th gi i, nó còn tr thành c s d li u đ c ch n cho th h m i c a các ng d ngỉ ơ ở ữ ệ ồ ở ổ ế ấ ế ớ ở ơ ở ữ ệ ượ ọ ế ệ ớ ủ ứ ụ
xây d ng trên n n Linux, Apache, MySQL, PHP/Perl/Python. MySQL ch y trên h n 20 flatform bao g m: Linux, Windows, OS/X, HP-UX, AIX, Netware, mangự ề ạ ơ ồ
đ n cho b n tính linh ho t trong vi c s d ng.ế ạ ạ ệ ử ụ
Dù b n m i làm quen v i công ngh c s d li u hay là m t nhà phát tri n giàu kinh nghi m ho c là DBA, MySQL s giúp b n thành công.ạ ớ ớ ệ ơ ở ữ ệ ộ ể ệ ặ ẽ ạ
Đây là 10 lý do b n nên ch n MySQL cho ng d ng c a mình:ạ ọ ứ ụ ủ
 Tính linh ho tạ
Máy ch c s d li u MySQL cung c p đ c tính linh ho t, có s c ch a đ x lý các ng d ng đ c nhúng sâu v i dung l ng ch 1MB đ ch y các kho dủ ơ ở ữ ệ ấ ặ ạ ứ ứ ể ử ứ ụ ượ ớ ượ ỉ ể ạ ữ
li u đ s lên đ n hàng terabytes thông tin. S linh ho t v flatform là m t đ c tính l n c a MySQL v i t t c các phiên b n c a Linux, Unix, và Windowsệ ồ ộ ế ự ạ ề ộ ặ ớ ủ ớ ấ ả ả ủ
đang đ c h tr . Và dĩ nhiên, tính ch t mã ngu n m c a MySQL cho phép s tùy bi n hoàn toàn theo ý mu n đ thêm vào các yêu c u thích h p choượ ỗ ợ ấ ồ ở ủ ự ế ố ể ầ ợ
database server.
 Tính th c thi caoự
Ki n trúc storage-engine cho phép các chuyên gia c s d li u c u hình máy ch c s d li u MySQL đ c tr ng cho các ng d ng đ c thù. Dù ng d ng làế ơ ở ữ ệ ấ ủ ơ ở ữ ệ ặ ư ứ ụ ặ ứ ụ
m t h th ng x lý giao d ch t c đ cao hay web site dung l ng l n ph c v hàng tri u yêu c u m i ngày, MySQL có th đáp ng kh năng x lý nh ngộ ệ ố ử ị ố ộ ượ ớ ụ ụ ệ ầ ỗ ể ứ ả ử ữ
đòi h i kh t khe nh t c a b t kì h th ng nào. V i các ti n ích t i t c đ cao, đ c bi t b nh caches, và các c ch x lý nâng cao khác, MySQL đ a ra t tỏ ắ ấ ủ ấ ệ ố ớ ệ ả ố ộ ặ ệ ộ ớ ơ ế ử ư ấ
c các vũ khí c n ph i có cho các h th ng doanh nghi p khó tính ngày nay.ả ầ ả ệ ố ệ
 Có th s d ng ngayể ử ụ
S đáng tin c y cao và tính “mì ăn li n” là nh ng tiêu chu n đ m b o c a MySQL. MySQL đ a ra nhi u tùy ch n có th dùng ngay tự ậ ề ữ ẩ ả ả ủ ư ề ọ ể ừ c u hình tái t oấ ạ
ch /t t c đ cao, đ các nhà phân ph i th 3 đ a ra nh ng gi i pháp có th dùng ngay duy nh t cho server c s d li u MySQL.ủ ớ ố ộ ể ố ứ ư ữ ả ể ấ ơ ở ữ ệ
 H tr giao d ch m nhỗ ợ ị ạ
MySQL đ a ra m t trong s nh ng engine giao d ch c s d li u m nh nh t trên th tr ng. Các đ c tr ng bao g m h tr giao d ch ACID hoàn thi nư ộ ố ữ ị ơ ở ữ ệ ạ ấ ị ườ ặ ư ồ ỗ ợ ị ệ
( Atomic – t đ ng, Consistent – th ng nh t, Isolated – đ c l p, Durable – b n v ng), khóa m c dòng không h n ch , kh năng giao d ch đ c phân lo i, vàự ộ ố ấ ộ ậ ề ữ ứ ạ ế ả ị ượ ạ
h tr giao d ch đa d ng (multi-version) mà ng i đ c không bao gi gây tr ng i cho ng i vi t và ng c l i. Tính toàn v n c a d li u cũng ph i đ cỗ ợ ị ạ ườ ọ ờ ở ạ ườ ế ượ ạ ẹ ủ ữ ệ ả ượ
b o đ m trong su t quá trình server có hi u l c, các m c giao d ch đ c l p đ c chuyên môn hóa, và phát hi n khóa ch t ngay l p t c.ả ả ố ệ ự ứ ị ộ ậ ượ ệ ế ậ ứ
 N i l u tr Web và Data đáng tin c yơ ư ữ ậ
MySQL là nhà máy chu n cho các web sites ph i trao đ i th ng xuyên vì nó có engine x lý t c đ cao, kh năng chèn d li u nhanh ghê g m, và h trẩ ả ổ ườ ử ố ộ ả ữ ệ ớ ỗ ợ
m nh cho các ch c năng chuyên d ng c a web nh tìmạ ứ ụ ủ ư ki m văn b n nhanh. Nh ng tính năng này cũng đ c áp d ng cho môi tr ng l u tr d li u màế ả ữ ượ ụ ườ ư ữ ữ ệ
MySQL tăng c ng đ n hàng terabyte cho các server đ n. Các tính năng khác nh b ng nh chính, cây B và ch s băm, và b ng l u tr đã đ c cô l i đườ ế ơ ư ả ớ ỉ ố ả ư ữ ượ ạ ể
gi m các yêu c u l u tr đ n 80% làm cho MySQL tr thành l a ch n t t nh t cho c ng d ng web và các ng d ng doanh nghi p.ả ầ ư ữ ế ở ự ọ ố ấ ả ứ ụ ứ ụ ệ
 Ch đ b o m t d li u m nhế ộ ả ậ ữ ệ ạ
Vì b o m t d li u cho m t công ty là công vi c s m t c a các chuyên gia v c s d li u, MySQL đ a ra tính năng b o m t đ c bi t ch c ch n d li u sả ậ ữ ệ ộ ệ ố ộ ủ ề ơ ở ữ ệ ư ả ậ ặ ệ ắ ắ ữ ệ ẽ
đ c b o m t tuy t đ i. Trong vi c xác nh n truy c p c s d li u, MySQL cung c pượ ả ậ ệ ố ệ ậ ậ ơ ở ữ ệ ấ các kĩ thu t m nh mà ch c ch n ch có ng i s d ng đã đ c xácậ ạ ắ ắ ỉ ườ ử ụ ượ
nh n m i có th truy nh p đ c vào server c s d li u, v i kh năng này đ ch n ng i dùng ngay t m c máy khách là đi u có th làm đ c. SSH vàậ ớ ể ậ ượ ơ ở ữ ệ ớ ả ể ặ ườ ừ ứ ề ể ượ
SSL cũng đ c h tr đ ch c ch n các k t n i đ c an toàn và b o m t. M t đ i t ng framework đ c quy n đ c đ a ra mà ng i s d ng ch có thượ ỗ ợ ể ắ ắ ế ố ượ ả ậ ộ ố ượ ặ ề ượ ư ườ ử ụ ỉ ể
nhìn th y d li u, các hàm mã hóa và gi i mã d li u m nh ch c ch n r ng d li u s đ c b o m t. Cu i cùng, ti n ích backup và recovery cung c p b iấ ữ ệ ả ữ ệ ạ ắ ắ ằ ữ ệ ẽ ượ ả ậ ố ệ ấ ở
MySQL và các hãng ph n m m th 3 cho phép backup logic và v t lý hoàn thi n cũng nh recovery toàn b ho c t i m t th i đi m nào đó.ầ ề ứ ậ ệ ư ộ ặ ạ ộ ờ ể
 S phát tri n ng d ng h n h pự ể ứ ụ ỗ ợ
M t trong s các lý do khi n cho MySQL là c s d li u mã ngu n m ph bi n nh t th gi i là nó cung c p h tr h n h p cho b t kì s phát tri n ngộ ố ế ơ ở ữ ệ ồ ở ổ ế ấ ế ớ ấ ỗ ợ ỗ ợ ấ ự ể ứ
d ng nào c n. Trong c s d li u, h tr có th đ c tìm th y trong các stored procedure, trigger, function, view, cursor, ANSI-standard SQL, và nhi uụ ầ ơ ở ữ ệ ỗ ợ ể ượ ấ ề
n a. V i các ng d ng nhúng, th vi n plug-in có s n đ nhúng vào c s d li u MySQL h trữ ớ ứ ụ ư ệ ẵ ể ơ ở ữ ệ ỗ ợ trong b t kì ng d ngấ ứ ụ nào. MySQL cũng cung c p các bấ ộ
k t n i nh : ODBC, JDBC, … đ cho phép t t c các form c a ng d ng s d ng MySQL nh m t server qu n lí d li u đ c u tiên.ế ố ư ể ấ ả ủ ứ ụ ử ụ ư ộ ả ữ ệ ượ ư
 D dàng qu n lýễ ả
MySQL trình di n kh năng cài đ t nhanh đ c bi t v i th i gian m c trung bình t lúc download ph n m m đ n khi cài đ t hoàn thành ch m t ch a đ yễ ả ặ ặ ệ ớ ờ ở ứ ừ ầ ề ế ặ ỉ ấ ư ầ
15 phút. Đi u này đúng cho dù flatform là Microsoft Windows, Linux, Macintosh hay Unix. Khi đã đ c cài đ t, tính năng t qu n lý nh t đ ng m r ngề ượ ặ ự ả ư ự ộ ở ộ
không gian, t kh i đ ng l i, và c u hình đ ng s n sàng cho ng i qu n tr c s d li u làm vi c. MySQL cũng cung c p m t b hoàn thi n các công cự ở ộ ạ ấ ộ ẵ ườ ả ị ơ ở ữ ệ ệ ấ ộ ộ ệ ụ
qu n lý đ h a cho phép m t DBA qu n lý, s a ch a, và đi u khi n ho t đ ng c a nhi u server MySQL t m t máy tr m đ n. Nhi u công c c a các hãngả ồ ọ ộ ả ử ữ ề ể ạ ộ ủ ề ừ ộ ạ ơ ề ụ ủ
ph n m m th 3 cũng có s n trong MySQL đ đi u khi n các tác v t thi t k d li u và ETL, đ n vi c qu n tr c s d li u hoàn thi n, qu n lý côngầ ề ứ ẵ ể ề ể ụ ừ ế ế ữ ệ ế ệ ả ị ơ ở ữ ệ ệ ả
vi c, và th c hi n ki m tra.ệ ự ệ ể
 Mã ngu n m t do và h tr 24/7ồ ở ự ỗ ợ
Nhi u công ty l ng l trong vi c giao phó toàn b cho ph n m m mã ngu n m vì h tin h không th tìm đ c m t cách h tr hay m ng l i an toànề ưỡ ự ệ ộ ầ ề ồ ở ọ ọ ể ượ ộ ỗ ợ ạ ướ
ph c v chuyên nghi p, hi n t i, h tin vào ph n m m có b n quy n đ ch c ch n v s thành công toàn di n cho các ng d ng ch ch t c a h . Nh ngụ ụ ệ ệ ạ ọ ầ ề ả ề ể ắ ắ ề ự ệ ứ ụ ủ ố ủ ọ ữ
lo l ng c a h có th đ c d p b v i MySQL, s b i th ng là có trong m ng l i MySQL.ắ ủ ọ ể ượ ẹ ỏ ớ ự ồ ườ ạ ướ
 T ng chi phí th p nh tổ ấ ấ
B ng cách s d ng MySQL cho các d án phát tri n m i, các công ty đang th y rõ vi c ti t ki m chi phí. Đ c hoàn thành thông qua s d ng server c sằ ử ụ ự ể ớ ấ ệ ế ệ ượ ử ụ ơ ở
d li u MySQL và ki n trúc scale-out, các doanh nghi p đã tìm ra cái mà h có th đ t đ c m c ng c nhiên v kh năng x lý. Thêm vào đó, tính tin c yữ ệ ế ệ ọ ể ạ ượ ở ứ ạ ề ả ử ậ
và d duy trì c a MySQL m c trung bình mà ng i qu n tr c s d li u không ph i m t nhi u th i gian s a ch a hay v n đ th i gian ch t.ễ ủ ở ứ ườ ả ị ơ ở ữ ệ ả ấ ề ờ ử ữ ấ ề ờ ế
Lesson 3: PHP
Part 3: Các khái ni m v DBMSệ ề
Lesson 1: DATA và DATABASE
Thông tin là DATA và t ng h p các DATA l i tr thành thông tin và nó là thành ph n quan tr ng trong b t kỳ lĩnh v c, công vi c nàoổ ợ ạ ở ầ ọ ấ ự ệ
Khái ni m DATA h p h n khái ni m thông tin. Thông tin luôn mang ý nghĩa và g m nhi u giá tr DATAệ ẹ ơ ệ ồ ề ị
DATABASE là m t t p h p DATA. Có th hi u r ng DATABASE là m t c ch t ch c có kh năng l u tr thông tin. V y DATABASE là m t t p h pộ ậ ợ ể ể ằ ộ ơ ế ổ ứ ả ư ữ ậ ộ ậ ợ
DATA đ c t ch c s p x p sao cho n i dung c a nó có th d dàng đ c truy c p , qu n lí và c p nh tượ ổ ứ ắ ế ộ ủ ể ễ ượ ậ ả ậ ậ
Lesson 2: Qu n lí DATAả
Qu n tr DATA là vi c qu n lý l ng l n thông tin, bao g m c l u tr thông tin và c ch thao tác thông tin trên các thông tin đó. Có 2 ph ngả ị ệ ả ượ ớ ồ ả ư ữ ơ ế ươ
pháp qu n tr DATA khác nhau là h th ng d a trên t p tin và h th ng DATABASEả ị ệ ố ự ậ ệ ố
Group 1: H th ng d a trên t p tinệ ố ự ệ
Đ c tr ng:ặ ư
 M i ch ng trình ng d ng có m t file l u tr riêng bi t, nó gi ng nh các b ng v i các dòng g i là b n ghi và các c t g i là các tr ngỗ ươ ứ ụ ộ ư ữ ệ ố ư ả ớ ọ ả ộ ọ ườ
 M t nhóm các file đ c l u tr trên m t máy tính có th đ c truy c p b i m t đi u hành viênộ ượ ư ữ ộ ể ượ ậ ở ộ ề
Nh c đi m:ượ ể
 D th a và mâu thu n DATAư ừ ẫ
 Truy v n b t ngấ ấ ờ
 Cô l p DATAậ
 X lý các truy c p đ ng th i b t th ngử ậ ồ ờ ấ ườ
 V n đ v b o m tấ ề ề ả ậ
 Vân đ v toàn v nề ề ẹ
Group 2: H th ng DATABASEệ ố
H th ng DATABASE: là DATA đ c s d ng l u tr có h th ng và có t ch c sao cho vi c qu n lý đ c nhanh chóng và d dàng.ệ ố ượ ử ụ ư ữ ệ ố ổ ứ ệ ả ượ ễ
u đi m:Ư ể
 Gi m d th a DATAả ư ừ
 Gi m mâu thu n DATAả ẫ
 DATA có th chia sể ẻ
 Các chu n d c thi t l p và duy trìẩ ượ ế ậ
 Toàn v n DATA đ c duy trìẹ ượ
 Tăng tính b o m t khi đ c cài đ tả ậ ượ ặ
Lesson 3: DBMS
Group 1: Khái ni mệ
DBMS là h th ng ph n m m cho phép đ nh nghĩa, xây d ng và b o trì DATABASE. Toàn b các thao tác trên DATA c a ng i dùng đ u do DBMSệ ố ầ ề ị ự ả ộ ủ ườ ề
đi u khi nề ể
Do qu n lí t p trung nên DBMS có th qu n lí đ c 1 kh i l ng l n DATA m t cách thu n ti nả ậ ể ả ượ ố ượ ớ ộ ậ ệ
H u h t các DBMS s d ng ngôn ng truy v n có c u trúc (SQL)ầ ế ử ụ ữ ấ ấ
L i ích:ợ
 L u tr DATAư ữ
 Đ nh nghĩa DATAị
 Thao tác trên DATA
 B o m t và toàn v n DATAả ậ ẹ
 Truy c p đ ng th i và khôi ph c DATAậ ồ ờ ụ
 Hi u năngệ
 Đi u khi n đa truy c pề ể ậ
 Ngôn ng truy su t DATABASE và giao di n l p trình ng d ng ( API)ữ ấ ệ ậ ứ ụ
Nh v y, DATABASE là t p h p các DATA liên quan v i nhau mà mu n qu n lý và s d ng các DATA này thì c n có ph n m m nên có th hi u r ngư ậ ậ ợ ớ ố ả ử ụ ầ ầ ề ể ể ằ
DATABASE + Software = DBMS
Group 2: Các mô hình DATABASE
I: Mô hình DATA ph ngẳ (Flat file)
DATABASE ch ch a 1 b ng hay 1ỉ ứ ả File
Nó đ c s d ng cho nh ng DATABASE đ n gi n vì không th qu n lí đ c m t l ng l n DATA, t o ra s d th a khi DATA đ c Descriptionượ ử ụ ư ơ ả ể ả ượ ộ ượ ớ ạ ự ư ừ ượ
nhi u l nề ầ
II: Mô hình DATA phân c p (Hierarchical)ấ
Các b n ghi đ c liên k t v i nhau thông qua các c p b c gi ng c u trúc cây. Cácả ượ ế ớ ấ ậ ố ấ b ngả đ c g i là quan h cha - conượ ọ ệ
M t b n ghi cha có th có m t vài b n ghi conộ ả ể ộ ả
M t b n ghi con ch có m t và ch m t b n ghi chaộ ả ỉ ộ ỉ ộ ả
u đi m:Ư ể
 DATA đ c ghi trên DATABASE, nên DATA đ c chia s m t cách d dàng và b o m t b i DBMSượ ượ ẻ ộ ễ ả ậ ở
 Đ c l p DATA đ c DBMS giúp gi m d c chi phí b o trì ch ng trìnhộ ậ ượ ả ượ ả ươ
III: Mô hình m ngạ (Renational)
Mô hình phân c p là t p con c a mô hình m ng. Thay vì s d ng cây phân c p nút cha đ n, mô hình m ng s d ng lý thuy t đ t o ra m t câyấ ậ ủ ạ ử ụ ấ ơ ạ ử ụ ế ể ạ ộ
phân c p mà trong đó m i nút con có th có nhi u h n m t nút chaấ ỗ ể ề ơ ộ
Các thành ph n ngôn ng đ c s d ng trong mô hình m ng là:ầ ữ ượ ử ụ ạ
 Ngôn ng đ nh nghĩa DATA (DDL - Database Manipulation Language) đ c s d ng đ t o, xóa DATABASE và các đ i t ng DATABASE. M t s đữ ị ượ ử ụ ể ạ ố ượ ộ ơ ồ
con c a DDL cho phép ng i qu n tr DATABASE đ nh nghĩa các thành ph n DATAủ ườ ả ị ị ầ
 Ngôn ng thao tác DATA (DML - Database Manipulation Language) đ c s d ng đ thêm, s a, xóa thông tin trên DATABASE. Nh ng ng i dùngữ ượ ử ụ ể ử ữ ườ
DATABASE s d ng các câu l nh đ thao tác trên DATABASEử ụ ệ ể
 Ngôn ng đi u khi n (DCL - Data Control Language) đ c s d ng đ qu n tr các quy n trên DATABASE và đ i t ng DATABASEữ ề ể ượ ử ụ ể ả ị ề ố ượ
 Ngôn ng ̃ truy vấn d ̃ liêu (DQL - Data Query Language) đ c dùng đê lấy DATABASE và đăt th ́ t lên nóư ư ̣ ượ ̉ ̣ ư ự
 Ngôn ng ̃ ra lênh thông th ̀ng (CCL - Common Command Language) đ c dùng đê tìm kiếm môt cách hiêu qua trong DATABASE. Nó có thê đ cư ̣ ươ ượ ̉ ̣ ̣ ̉ ̉ ượ
́ng dung vào các th viên tr c tuyến, n i có khối l ng thông tin l ́n và cần đ c sàng loc trong môt th ̀i gian ngắnư ̣ ư ̣ ự ơ ượ ơ ượ ̣ ̣ ơ
u đi m:Ư ể
 Các quan h d dàng đ c thi t l p trên mô hình m ng h n so v i mô hình phân c pệ ễ ượ ế ậ ạ ơ ớ ấ
 Mô hình nay đ m b o s toàn v n DATAả ả ự ẹ
 Mô hình này đ t đ c s đ c l p DATA c n thi tạ ượ ự ộ ậ ầ ế
Nh c đi m:ượ ể
 Khó thi t k DATABASEế ế
 Ph i n m rõ c u trúc bên trong DATABASE đ có th truy c pả ắ ấ ể ể ậ
 Do cung c p môi tr ng truy c p DATA nên đ di chuy n t A-D ph i tuân theo th t A-B-C-D, ng i s d ng t A ph i qua B và C đ đ n Dấ ườ ậ ể ể ừ ả ứ ự ườ ử ụ ừ ả ể ế
 R t khó đ cài đ t và b o trìấ ể ặ ả
IV: Mô hình quan hệ
Mô hình quan h là m t n l c nh m đ n gi n hóa c u trúc DATABASE. Lý thuy t mô hình quan h đ c xây d ng d a trên n n t ng khái ni m c aệ ộ ỗ ự ằ ơ ả ấ ế ệ ượ ự ự ề ả ệ ủ
lý thuy t t p h p trong toán h c. Không gi ng nh mô hình phân c p và mô hình m ng nó không có các liên k t v t lí. Nh ng phép toán đ c cung c p đế ậ ợ ọ ố ư ấ ạ ế ậ ữ ượ ấ ể
th c hi n trên các dòng c a b ng DATA. T t c data đ c bi u di n d i d ng th ng nh t là d ng b ng hai chi u. Các b ng (quan h ) ch a các dòng (b nự ệ ủ ả ấ ả ượ ể ễ ướ ạ ố ấ ạ ả ề ả ệ ứ ả
ghi) và các c t (tr ng). M i b ng đ u có > 1 tr ng (c t). M i b ng đ u có nhi u h n 1 khóa chính (primary key), có nhi u khóa ph (foreign key). DATAộ ườ ỗ ả ề ườ ộ ỗ ả ề ề ơ ề ụ
trên hai b ng đ c quan h v i nhau thông qua các c t thay cho các liên k t v t lí. Primary key trong m i b ng đóng vai trò t o quan h gi a các b ngả ượ ệ ớ ộ ế ậ ỗ ả ạ ệ ữ ả
trong cùng m t DATABASEộ
Mô hình Description DATABASE là m t t p h p là m t t p h p các quan h . Trong thu t ng mô hình:ộ ậ ợ ộ ậ ợ ệ ậ ữ
 Dòng đ c g i là b n ghiượ ọ ả
 C t đ c g i là tr ngộ ượ ọ ườ
 B ng đ c g i là quan hả ượ ọ ệ
 Danh sách các giá tr có th c a m t tr ng đ c g i là mi n. Có th có vài tr ng chung m t mi nị ể ủ ộ ườ ượ ọ ề ể ườ ộ ề
 S tuple xác đ nh s ph n t trong quan hố ị ố ầ ử ệ
 S property c a m t quan h xác đ nh b c c a quan hố ủ ộ ệ ị ậ ủ ệ
u đi mƯ ể :
 Đ c s d ng m t cách ph bi n nh t hi n nayượ ử ụ ộ ổ ế ấ ệ
 Cho phép l p trình viên t p trung vào góc nhìn logic h n là t p trung vào góc nhìn v t líậ ậ ơ ậ ậ
 H tr linh ho t các truy v nỗ ợ ạ ấ
 D dàng s d ng, cho dù ch a đ c đào t o nh ng v n có th t o thi t k m t DATABASE h p lý cũng nh ra các báo cáo truy v nễ ử ụ ư ượ ạ ư ẫ ể ạ ế ế ộ ợ ư ấ
Nh c đi mượ ể :
 Th c thi ch m h n so v i các mô hình DATABASE khácự ậ ơ ớ
Lesson 4: RDBMS
Group 1: Khái ni mệ
RDBMS là DBMS mà t t c DATA đ c nhìn th y qua d ng b ng DATA và t t c các thao tác đ u th c hi n trên b ng.ấ ả ượ ấ ạ ả ấ ả ề ự ệ ả
RDBMS s d ng SQL đ chuy n các truy v n c a ng i dùng thành các mã kĩ thu t đ l y DATA theo yêu c u:ử ụ ể ể ấ ủ ườ ậ ể ấ ầ
 Data (DATA) đ c trình bày nh t p h p cácượ ư ậ ợ b ngả
 Quan h đ c bi u di n b ng m t b ngệ ượ ể ễ ằ ộ ả
 Property là các c tộ
 Tuple là các hàng bi u di n các entityể ễ
 Key (khóa) nói chính xác h n là superkey – đ nh danh duy nh t c a m i entityơ ị ấ ủ ỗ , key đ c chia làm 2 lo iượ ạ :
 Khóa chính
 Khóa ngo iạ
 S b n ghi quan h t ng s tupleố ả ệ ổ ố
 B c quan h t ng s propertyậ ệ ổ ố
 Mi n thề u c tính t p h p các giá tr c a propertyộ ậ ợ ị ủ
Khái ni mệ Nghĩa
Quan hệ M t b ngộ ả
Tuple M t dòng ho c m t b n ghi trong b ngộ ặ ộ ả ả
Tr ngườ M t tr ng ho c m t c t trong b ngộ ườ ặ ộ ộ ả
Cardinality c a m t b ngủ ộ ả S dòng trong m t b ngố ộ ả
B c c a quan hậ ủ ệ S tr ng trong m t b ngố ườ ộ ả
Mi n giá tr c a tr ngề ị ủ ườ T p các giá tr có th l u tr trong tr ngậ ị ể ư ữ ườ
Khóa chính c a b ngủ ả M t tr ng ho c m t t p các tr ng mà giá tr c a nó xác đ nh duy nh t các b n ghi trongộ ườ ặ ộ ậ ườ ị ủ ị ấ ả
b ngả
Khóa ngo iạ M t tr ng ho c m t t p các tr ng trong b ng R1 mà nó ch ra m i b ng c a R1 v i b ngộ ườ ặ ộ ậ ườ ả ỉ ố ả ủ ớ ả
R2
Các tr ng khóa ngo i trong R1 ph i ch a các giá tr so kh p v i các giá tr t ng ng trongườ ạ ả ứ ị ớ ớ ị ươ ứ
b ng R2ả
Group 2: Ng i dùng DBMSườ
Nhi u nhóm ng i dùng nh thi t k , s d ng và thao tác trên m t DATABASE l n:ề ườ ư ế ế ử ụ ộ ớ
 Ng i qu n tr DATABASE (DBA)ườ ả ị
DBA là ng i thu th p thông tin s l u trong DATABASE (m t DATABASE đ c thi t k cung c p thông tin chính xác đúng lúc cho đúng ng i)ườ ậ ẽ ư ộ ượ ế ế ấ ườ
Nhi m v c a DBA là qu n lí các ngu n tài nguyên, c p phép quy n truy c p đ n DATABASE, ph i h p và giám sát quá trình s d ng, đáp ng cácệ ụ ủ ả ồ ấ ề ậ ế ố ợ ử ụ ứ
ngu n tài nguyên ph n c ng và ph n m m khi c n.ồ ầ ứ ầ ề ầ
Gi i thích các v n đ nh ph m vi nguyên t c b o m t và th i gian ph n h i h th ng ch mả ấ ề ư ạ ắ ả ậ ờ ả ồ ệ ố ậ
 Ng i thi t k DATABASEườ ế ế
Nhi m v là xác đ nh DATA đ c l u vào DATABASE và ch n các c u trúc phù h p đ th hi n và l u DATAệ ụ ị ượ ư ọ ấ ợ ể ể ệ ư
Giao ti p v i ng i dùng DATAABASE t ng lai đ n m b t và c p nh t các thi t k đ đáp ng đ c các yêu c uế ớ ườ ươ ể ắ ắ ậ ậ ế ế ể ứ ượ ầ
 Ng i phân tích h th ng và l p trình ng d ngườ ệ ố ậ ứ ụ
L p trình viên phân tích: Ch ra các yêu c u c a ng i dùng đ u cu i và phát tri n các đ c t cho các giao d ch tr c nh m th a mãn các yêu c u đóậ ỉ ầ ủ ườ ầ ố ể ặ ả ị ướ ằ ỏ ầ
L p trình viên ng d ng đ t các đ c t thành các ch ng trình, sau đó ki m tra, g l i, vi t tài li u và duy trì các giao d ch đã có tr c đóậ ứ ụ ặ ặ ả ươ ể ỡ ỗ ế ệ ị ướ
Ngoài ra còn có nh ng ng i khác c ng tác vào quá trình thi t k , phát tri n và v n hành ph n m m DBMS và môi tr ng h th ngữ ườ ộ ế ế ể ậ ầ ề ườ ệ ố
 Ng i thi t k DBMS và th c thiườ ế ế ự
Đây chính là nh ng ng i thi t k và cài đ t model cũng nh giao di n c a DBMS nh m t gói ph n m mữ ườ ế ế ặ ư ệ ủ ư ộ ầ ề
M t DBMS là m t h th ng ph n m m ph c t p bao g m nhi u thành ph n nh : model cài đ t b ng danh m c, ngôn ng truy v n, các b x lý giao di n,ộ ộ ệ ố ầ ề ứ ạ ồ ề ầ ư ặ ả ụ ữ ấ ộ ử ệ
truy c p DATA và b o m tậ ả ậ
DBMS ph i giao ti p đ c v i các ph n m m h th ng khác nhau nh : h đi u hành, các trình biên d ch c a các ngôn ng l p trình khác nhauả ế ượ ớ ầ ề ệ ố ư ệ ề ị ủ ữ ậ
 Ng i dùng đ u cu i.ườ ầ ố
Nhi m v là kích ho t m t ng d ng t ng tác v i h th ng, vi t m t ch ng trình truy v n, s a đ i ho c xóa DATA trong DATABASEệ ụ ạ ộ ứ ụ ươ ớ ệ ố ế ộ ươ ấ ử ổ ặ
Group 3: Các entity và các b ngả
M t entity là m t ng i, m t đ i t ng, m t s ki n, … mà nó có th xác đ nh riêng bi tộ ộ ườ ộ ố ượ ộ ự ệ ể ị ệ
M t entity có m t s tính ch t đ c xem nh là các tr ng và m i entity đ c gán m t tênộ ộ ố ấ ượ ư ườ ỗ ượ ộ
M t b ng ch a m t nhóm các entity g i là t p các entityộ ả ứ ộ ọ ậ
Khái ni m b ng và t p các entity có th thay th cho nhau. M t b ng đ c g i là m t quan h , các hàng đ c xem nh tuples và các c t đ c xem nhệ ả ậ ể ế ộ ả ượ ọ ộ ệ ượ ư ộ ượ ư
các tr ngườ
Các đ c tính c a b ng là:ặ ủ ả
 C u trúc 2 chi u bao hàm các c t và hàng đ c nh n l y nh b ngấ ề ộ ượ ậ ấ ư ả
 M i b ph n th hiỗ ộ ậ ể ện m t th c th đ n trong t p th c thộ ự ể ơ ậ ự ể
 M i c t có 1 tên duy nh tỗ ộ ấ
 Giao gi a hàng và c t th hi n m t giá tr data đ nữ ộ ể ệ ộ ị ơ
 M i b ng ph i có m t khóa chính giúp xác đ nh duy nh t m i hàngỗ ả ả ộ ị ấ ỗ
 T t c các giá tr trong m t c t ph i tuân theo cùng đ nh d ng dataấ ả ị ộ ộ ả ị ạ
VD: n u tr ng gán có đ nh d ng s , t t c các giá tr trong c t th hi n tr ng ph i là sế ườ ị ạ ố ấ ả ị ộ ể ệ ườ ả ố
 M i c t có ph m vi giá tr xác đ nh g i là mi n giá trỗ ộ ạ ị ị ọ ề ị
 Th t các hàng, các c t không quan tr ng trong DATABASEứ ự ộ ọ
Group 4: So sánh gi a DBMS và RDBMSữ
DBMS RDBMS
Không c n có data theo c u trúc d ng b ng, không ép bu c cácầ ấ ạ ả ộ
m i quan h d ng b ng gi a các m c data.ố ệ ạ ả ữ ụ
Trong RDBMS, c u trúc b ng là b t bu c và gi a chúng có m iấ ả ắ ộ ữ ố
quan h v i nhau đ c đ m b o b i h th ng. Các m i quan hệ ớ ượ ả ả ở ệ ố ố ệ
này làm cho ng i dùng có th áp d ng và qu n lý các qui t cườ ể ụ ả ắ
x lý vào các đo n mã.ử ạ
S l ng nh DATA đ c l u tr và thao tác.ố ượ ỏ ượ ư ữ RDBMS có th l u tr và thao tác trên m t s l ng l n DATA.ể ư ữ ộ ố ượ ớ
DBMS kém đ m b o h n RDBMS.ả ả ơ DBMS kém đ m b o h n RDBMS.ả ả ơ
Nó là 1 h th ng đ n ng i dùng.ệ ố ơ ườ Nó là 1 h th ng đa ng i dùngệ ố ườ
H u h t các DBMS không h tr ki n trúc client/server.ầ ế ổ ợ ế Nó h tr ki n trúc client/server.ổ ợ ế
Trong RDBMS:
B ng là quan tr ng nh t. Do đó, ng i dả ọ ấ ườ ùng có th thi t l p nhi u r ng bu c toàn v n cho các b ng đ data sau cùng đ c s d ng b i ng i sể ế ậ ề ằ ộ ẹ ả ể ượ ử ụ ở ườ ử
d ng v n gi s đúng đ nụ ẫ ữ ự ắ
Trong tr ng h p c a các DBMS các entity là quan tr ng h n và không có b ng đ c ti t l p gi a các entity nàyườ ợ ủ ọ ơ ả ượ ế ậ ữ
Part 4: Mô hình hóa DATA
Lesson 1: Mô hình DATA
Group 1: Khái ni mệ
Là nhóm các công c lý thuy t đ Description DATA, các m i b ng và ng nghĩa c a chúng.ụ ế ể ố ả ữ ủ
Nó cũng bao g m c Description các ràng bu c toàn v n mà DATA ph i tuân theoồ ả ộ ẹ ả
Group 2: Áp d ngụ
Quá trình áp d ng m t mô hình thích h p đ t ch c và c u trúc DATA đ c g i là mô hình hóa DATA. Mô hình hoá DATA đ c chia nh thành baụ ộ ợ ể ổ ứ ấ ượ ọ ượ ỏ
b c:ướ
 Conceptual Data Modeling (Mô hình DATA ý ni m)ệ
Mô hình Description cách nhìn DATA c a ng i s d ng, m i ng i s d ng khác nhau có cách nhìn DATA khác nhau.ủ ườ ử ụ ỗ ườ ử ụ
To Example: Phòng tuy n sinh nhìn th y các b n ghi d liêu v sinh viên. Phòng đào t o nhìn th y các b n ghi DATA v đi m thi,..ể ấ ả ữ ề ạ ấ ả ề ể
 Logical Data Modeling (Mô hình DATA lu n lý)ậ
Mô hình Description chi ti t DATA cùng v i m i b ng c a DATA. Mô hình này bi u di n DATA c a database d i d ng tr u t ng so v i cách l u tr v t lýế ớ ố ả ủ ể ễ ủ ướ ạ ừ ượ ớ ư ữ ậ
 Physical Data Modeling (Mô hình DATA v t lý)ậ
Mô hình Description toàn b các DATA c a database đ c bi u di n d i d ng g n v i l u tr trong các t p tin th c s trên các thi t b nhộ ủ ượ ể ễ ướ ạ ầ ớ ư ữ ậ ự ự ế ị ớ
Lesson 2: Mô hình entity, m i quan h E-Rố ệ
Group 1: Các nhóm c a mô hình entityủ
 Mô hình lu n lý d a trên đ i t ngậ ự ố ượ
 Mô hình lu n lý d a trên b n ghiậ ự ả
 Mô hình v t lýậ
Group 2: Mô hình entity
Mô hình entity - M i quan h (E-R) thu c phân lo i đ u tiên. Mô hình đ c d a trên ý t ng đ n gi n. DATA có th đ c hi u nh là các đ i t ngố ệ ộ ạ ầ ượ ự ưở ơ ả ể ượ ể ư ố ượ
trong th gi i th c đ c g i là entity và các m i quan h t n t i gi a các entity này.ế ớ ự ượ ọ ố ệ ồ ạ ữ
Mô hình E-R bao g m năm thành ph n c b n. Đó là:ồ ầ ơ ả
1. Th c th - Entityự ể
M i th c th là m t đ i t ng t n t i trong th gi i th c và đ c phân bi t v i các đ i t ng khácỗ ự ể ộ ố ượ ồ ạ ế ớ ự ượ ệ ớ ố ượ
VD: sinh viên A, thí sinh s 078ố
2. T p entity - Entity Setậ
Là m t nhóm th c th t ng đ ng nhauộ ự ể ươ ồ
VD: sinh viên, nhân viên
3. M i quan h - Relationshipố ệ
Là s k t h p hay g n k t gi a m t hay nhi u th c thự ế ợ ắ ế ữ ộ ề ự ể
VD: thu c v (belongs to), s h u (owns), làm vi c cho (works for), …ộ ề ở ữ ệ
4. T p quan h - Relationship Setậ ệ
M t t p h p các m i quan h t ng t nhau gi a 2 hay nhi u t p th c thộ ậ ợ ố ệ ươ ự ữ ề ậ ự ể
VD:làm vi c t i (work-in), gi a các nhân viên (Employee), và b pệ ạ ữ ộ h n (department)ậ
5. Tr ng – Attributesườ
Là các đ c tr ng c a các th c th , các tr ng phân bi t các th c th v i nhauặ ư ủ ự ể ườ ệ ự ể ớ
VD: sinh viên có các tr ng nh mã s sinh viên, tên, l p, …ườ ư ố ớ
Xe h i có các tr ng nh s đăng kí, tên xe, nhà s n xu t, …ơ ườ ư ố ả ấ
Các m i quan h đ c k t h p t m t ho c nhi u entity. Chúng có 3 ki u:ố ệ ượ ế ợ ừ ộ ặ ề ể
1. M i quan h t thân:ố ệ ự
Các m i quan h gi a các entity c a các t p entity gi ng nhau đ c g i là m i quan h t thânố ệ ữ ủ ậ ố ượ ọ ố ệ ự
2. M i quan h nh phân:ố ệ ị
Các m i quan h mà t n t i gi a các entity c a hai entity thu c các t p entity khác nhau đ c g i là quan h nh phânố ệ ồ ạ ữ ủ ộ ậ ượ ọ ệ ị
3. M i quan h tam phân:ố ệ
Các m i quan h mà t n t i gi a ba entity thu c các t p entity khác nhau đ c g i là m i quan h tam phânố ệ ồ ạ ữ ộ ậ ượ ọ ố ệ
Group 3: M i quan h E-Rố ệ
Các m i quan h có th đ c phân lo i d a trên ánh x t p h p. Các ánh x phân lo i khác nhau là:ố ệ ể ượ ạ ự ạ ậ ợ ạ ạ
I: Môt - m t (one-to-one)ộ
Ánh x này t n t i khi m t entity c a m t t p entity có th k t h p v i ch m t entity c a t p entity khácạ ồ ạ ộ ủ ộ ậ ể ế ợ ớ ỉ ộ ủ ậ
M i quan h 1-1 th c ch t không t n t i mà nó đ c t u d ng b ngố ệ ự ấ ồ ạ ượ ố ư ở ạ ả
II: M t - nhi u (one-to-many)ộ ề
Ánh x này t n t i khi m t entity c a m t t p entity đ c k t h p v i nhi u h n m t entity c a t p entity khácạ ồ ạ ộ ủ ộ ậ ượ ế ợ ớ ề ơ ộ ủ ậ
III: Nhi u-m t (many-to-one)ề ộ
Ánh x này t n t i khi nhi u entity c a m t t p entity đ c k t h p v i m t entity c a t p entity khácạ ồ ạ ề ủ ộ ậ ượ ế ợ ớ ộ ủ ậ
IV: Nhi u-nhi u (many-to-many)ề ề
Ánh x này t n t i khi s các entity c a t p entity đ c k t h p v i s entity c a t p entity khácạ ồ ạ ố ủ ậ ượ ế ợ ớ ố ủ ậ
Trong quá trình phân tích không t n t i quan h nhi u nhi u. n u có thì xu t hi n khi 2 b ng tr c yêu c uồ ạ ệ ề ề ế ấ ệ ả ướ ầ
Trong đó l y 2 khóa chính c a 2 b ng tr c chèn vào b ng m iấ ủ ả ướ ả ớ
Khi b ng m i xu t hi n thì quan h gi a chúng l i là quan h 1-1ả ớ ấ ệ ệ ữ ạ ệ
Không t n t i ph thu c b c c u trong b ngồ ạ ụ ộ ắ ầ ả
V: Plus
A: Primary key
Khóa chính là thu c tinh xác đ nh rõ duy nh t m t th c th trong m t t p th c thộ ị ấ ộ ự ể ộ ậ ự ể
B: Weak entity sets
Nhi u t p th c th không đ các tr ng đ thi t l p khóa chính đ c g i là t p th c th thi t y uề ậ ự ể ủ ườ ể ế ậ ượ ọ ậ ự ể ế ế
C: Strong entity sets
Các t p th c th có đ các tr ng đ thi t l p khóa chính đ c g i là các t p th c th m nhậ ự ể ủ ườ ể ế ậ ượ ọ ậ ự ể ạ
Group 4: Bi u đ entityể ồ
I: L c đ quan h entity (entity relationship diagrams)ượ ồ ệ
Bi u đ E-R là gi n đ trình bày c a mô hình E-R.ể ồ ả ồ ủ
Các ký hi u đ c dùng cho các thành ph n khác nhau có th nhìn th y trong b ng d i đây:ệ ượ ầ ể ấ ả ướ
Ngoài ra các tr ng trong mô hình E_R còn đ c phân chia ti p thành:ườ ượ ế
 Multi-Valued (đa tr )ị
Đ c minh h a v i hình elip vi n kép, có nhi u h n m t giá tr v i ít nh t m t th hi n c a th c th ch a nóượ ọ ớ ề ề ơ ộ ị ớ ấ ộ ể ệ ủ ự ể ứ
Tr ng này có th có gi i h n giá tr cao và th p đ xác đ nh mi n giá tr ch a trong tr ngườ ể ớ ạ ị ấ ể ị ề ị ứ ườ
 Composite (ph c h p)ứ ợ
Có th ch a 2 hay nhi u tr ng, bi u di n nhi u h n các tr ng c b nể ứ ề ườ ể ễ ề ơ ườ ơ ả
 Derived (d n xu t)ẫ ấ
Đ c minh h a b ng hình elip vi n đ tượ ọ ằ ề ứ
Tr ng d n xu t là tr ng ph thu c hoàn toàn vào tr ng khácườ ẫ ấ ườ ụ ộ ườ
II: Các b c xây d ngướ ự
1. Thu th p t t c các DATA mà c n đ c mô hình.ậ ấ ả ầ ượ
2. Nh n bi t DATA mà có th đ c mô hình nh là các entity trong th gi i th c.ậ ế ể ượ ư ế ớ ự
3. Nh n bi t các tr ng cho m i entityậ ế ườ ỗ
4. S p x p các t p entity y u, các t p entity m nh.ắ ế ậ ế ậ ạ
5. S p x p các tr ng đóng vai trò khoá, các tr ng đa tr , các tr ng k t h p, các tr ng d n su t.ắ ế ườ ườ ị ườ ế ợ ườ ẫ ấ
6. Xác đ nh các m i quan h gi a các entity.ị ố ệ ữ
7. S d ng các ký hi u khác nhau đ v các entity, tr ng và m i quan h gi a chúng. Dùng các ký hi u thích h p trong khi v các tr ng.ử ụ ệ ể ẽ ườ ố ệ ữ ệ ợ ẽ ườ
Lesson 3: Chu n hóaẩ
Nó là ti n trình t ch c DATA m t cách có hi u qu trong DATABASE.ế ổ ứ ộ ệ ả
M c đích c a ti n trình chu n hoá:ụ ủ ế ẩ
 Lo i b DATA b d th a mà v n đ m b o DATA ph thu c (ph thu c hàm là ràng bu c v s liên quan gi a nhi u tr ng trong b ng v i nhau )ạ ỏ ị ư ừ ẫ ả ả ụ ộ ụ ộ ộ ề ự ữ ề ườ ả ớ
 Vào lúc đ u, Codd (1972) trình bày 3 d ng chu n (1NF, 2NF and 3NF), t t c d a trên s ph thu c gi a các tr ng c a b ngầ ạ ẩ ấ ả ự ự ụ ộ ữ ườ ủ ả
Group 1: D ng chu n m t (1NF)ạ ẩ ộ
Các b ng đ t d ng chu n m t n u:ả ạ ạ ẩ ộ ế
 Chia DATA thành các b ng riêng bi t cho m i nhóm DATA có liên quanả ệ ỗ
To Example: B ng DATA sinh viên, b ng k t qu , môn h cả ả ế ả ọ
 Toàn b các c t c a b ng ph i có giá tr đ n.ộ ộ ủ ả ả ị ơ
 T t c các tr ng khoá ph i đ c xác đ nhấ ả ườ ả ượ ị
Group 2: D ng chu n hai (2NF)ạ ẩ
Các b ng đ t d ng chu n hai n u:ả ạ ạ ẩ ế
 Chúng ph i tho các yêu c u c a d ng chu n m tả ả ầ ủ ạ ẩ ộ
 M i tr ng(c t) không khóa đ u ph thu c đ y đ vào khóa chínhỗ ườ ộ ề ụ ộ ầ ủ
Ph thu c đ y đ : B là m t tr ng không khóa, X là m t t p tr ng làm khóa, X->B (X xác đ nh B) g i là ph thu c hàm đ y đ n u không có m t t pụ ộ ầ ủ ộ ườ ộ ậ ườ ị ọ ụ ộ ầ ủ ế ộ ậ
con nào c a X cũng có th xác đ nh B.ủ ể ị
 Các b ng quan h v i nhau thông qua các khoá ngo iả ệ ớ ạ
Group 3: D ng chu n ba (3NF)ạ ẩ
Các b ng đ t d ng chu n ba n u:ả ạ ạ ẩ ế
 Các b ng ph i tho các yêu c u d ng chu n haiả ả ả ầ ạ ẩ
 Không t n t i ph thu c b c c u trong b ng (không t n t i ph thu c gi a các tr ng không ph i là khóa. Ph thu c có ngu n là tr ng khôngồ ạ ụ ộ ắ ầ ả ồ ạ ụ ộ ữ ườ ả ụ ộ ồ ườ
khóa)
Group 4: Phi chu n hóaẩ
Khi chu n hóa m t DATABASE, d th a DATA đ c gi n xu ng. đi u này làm gi m đi nhu c u l u tr cho DATABASE và đ m b o s toàn v n dataẩ ộ ư ừ ượ ả ố ề ả ầ ư ữ ả ả ự ẹ
Nh ng thay vào đó có m t s tr ng i:ư ộ ố ở ạ
 Truy v n k t n i ph c t p do ph i th c hi n trên nhi u b ngấ ế ố ứ ạ ả ự ệ ề ả
 K t n i có th đ c th c hi n trên nhi u h n ba b ng ph thu c vào nhu c u thông tinế ố ể ượ ự ệ ề ơ ả ụ ộ ầ
N i nh k t n i đ c s d ng th ng xuyên thì hi u xu t s d ng DATABASE s r t th p, th i gian th c thicuar CPU yêu c u truy xu t s r t l nố ư ế ố ượ ử ụ ườ ệ ấ ử ụ ẽ ấ ấ ờ ự ầ ấ ẽ ấ ớ
Trong tr ng h p này, l u tr d th a vài tr ng data s làm tăng hi u năng s d ng DATABASEườ ợ ư ữ ư ừ ườ ẽ ệ ử ụ
Các DATABASE ch p nh n s d th a data đ tăng hi u năng đ c g i là các DATABASE phi chu n và ti n trình c a vi c th c hi n này g i là ti n trìnhấ ậ ự ư ừ ể ệ ượ ọ ẩ ế ủ ệ ự ệ ọ ế
phi chu nẩ
Lesson 4: Các toán t quan hử ệ
Mô hình quan h đ c d a trên đ i s quan h , nó bao g m t p h p các toán t đ th c hi n trên các b ngệ ượ ự ạ ố ệ ồ ậ ợ ử ể ự ệ ả
M i toán t n m gi m t ho c hai b ng nh là đ u vào và k t qu b ng đ c xem là đ u raỗ ử ắ ữ ộ ặ ả ư ầ ế ả ả ượ ầ
Group 1: Ch n - SELECT :ọ
Toán t này đ c dùng đ trích DATA tho mãn v i đi u ki n đã cho. Ký hi u “σ – sic ma” đ c dùng đ bi u hi n cho phép ch nử ượ ể ả ớ ề ệ ệ ượ ể ể ệ ọ
Group 2: Chi u - PROJECT:ế
Toán t này đ c s d ng đ chi u các chi ti t c a m t b ng quan h . Nó ch hi n th chi ti t các yêu c u lo i b các c t đ c n đ nh. Toán t PROJECTử ượ ử ụ ể ế ế ủ ộ ả ệ ỉ ể ị ế ầ ạ ỏ ộ ượ ấ ị ử
đ c bi u di n b i ký hi u “π - pi”ượ ể ễ ở ệ
Group 3: Tích đ các - PRODUCT:ề
Toán t này đ c bi u th b i “ử ượ ể ị ở x”. Nó giúp k t h p thông tin t hai b ngế ợ ừ ả
Group 4: H p - UNION:ợ
Toán t UNION dùng đ t p h p DATA t các b ng khác nhau và hi n di n phiên b n h p nh t c a DATA đ y đ . Toán tử ể ậ ợ ừ ả ệ ệ ả ợ ấ ủ ầ ủ ử UNION đ cượ mô tả b i ký tở ự “U”
L u ý:ư
 Chú ý r ng m i l nh SELECT trongằ ỗ ệ UNION ph i có cùng s c t.ả ố ộ Các c t cũng ph i cóộ ả cùng ki uể data
 Ngoài ra, các c t trong t ng câu l nh SELECT ph i đ c theo th tộ ừ ệ ả ượ ứ ự
I: Syntax
SELECT * FROM <Table-Name>
UNION [ALL]
SELECT * FROM <Table-Name>
Khi s d ng UNION k t qu tr v s là m t t p các giá tr không nhân b n (không trùng nhau)ử ụ ế ả ả ề ẽ ộ ậ ị ả
Khi s d ng UNION ALL k t qu tr v s là m t t p giá tr có s c t b ng t ng 2 c t đ c h p l iử ụ ế ả ả ề ẽ ộ ậ ị ố ộ ằ ổ ộ ượ ợ ạ
II: To Example
Group 5: Giao - INTERSECT:
Toán t nàyử phát sinh DATA mà đ c tho mãn trong t t c các b ng mà nó đ c miêu t . Nó đ c d a trên lý thuy t t p giao và đ c Description b iượ ả ấ ả ả ượ ả ượ ự ế ậ ượ ở
ký hi u “ệ ∩”
Group 6: Hi u - DIFFERENCE:ệ
Phép này có ký hi u “ệ -”. DATA đ c sinh ra t các b ng khác nhau mà tho mãn trong m t b ng còn b ng khác thì khôngượ ừ ả ả ộ ả ả
Group 7: N i - JOIN:ố
Phép h p đ c nâng cao t phép tích đ các. Nó cho phép l a ch n đ th c hi n nhân các b ng. (thông tin gi ng nhau thì có th k t h p đ c v i nhau)ợ ượ ừ ề ự ọ ể ự ệ ả ố ể ế ợ ượ ớ
Group 8: Chia - DIVIDE:
Phép chia, đ c Description b i ký t “ượ ở ự ÷”, thích h p đ truy v n mà bao g m c m t “for all”ợ ể ấ ồ ụ ừ
Part 5: SQL Language
Lesson 1: Nh ng v n đ c b n và quan tr ngữ ấ ề ơ ả ọ trong DATABASE
Group 1: Gi i thi uớ ệ
 SQL là vi t t t c a Structured Query Language - Ngôn ng truy v n c u trúc.ế ắ ủ ữ ấ ấ
 SQL cho phép b n truy c p vào CSDLạ ậ
 SQL server đ c xây d ng trên Syntax c a SQL ANSI chu n và có ph n đ c m r ng đ c g i v i cái tên Transact-SQLượ ự ủ ẩ ầ ượ ở ộ ượ ọ ớ
 SQL server h tr 3 lo i câu l nh Transact-SQL:ỗ ợ ạ ệ
1. DDL - DATA Definition Language : Ngôn ng đ nh nghĩa dataữ ị
2. DML - DATA Manipulation Language: Ngôn ng thao tác dataữ
3. CDL - Control Definition Language : Ngôn ng đi u khi n dataữ ề ể
Group 2: L u ýư
 Cách s d ng kí hi u:ử ụ ệ
 [ ] : đ i t ng có th xu t hi n ho c tr ngố ượ ể ấ ệ ặ ố
 { } : đ i t ng n m trong m t kh iố ượ ằ ộ ố
 ( ) : đ i t ng miêu t tr ngố ượ ả ườ
 < > : đ i t ng b t bu cố ượ ắ ộ
 M t s h th ng đ i h i có d u ch m ph y sau câu l nh SQL, d u ch m ph y “;” là cách chu n độ ố ệ ố ờ ỏ ấ ấ ẩ ệ ấ ấ ẩ ẩ ể phân cách m i câu l nh SQL trong các h th ngỗ ệ ệ ố
DATABASE cho phép nhi u h n m t câu l nh SQL đ c th c thi trong cùng m t cu c g i đ n máy ch . N u chúng ta s d ng công c MS accessề ơ ộ ệ ượ ự ộ ộ ọ ế ủ ế ử ụ ụ
ho c SQL server xxxx c a MS thì không c n d u “;”ặ ủ ầ ấ
 Tr c m t giá tr là 1 chu i theo d ng unicode thì thêm 1 ch Nướ ộ ị ỗ ạ ữ
 Chú thích trong T-SQL
Chú thích là các đo n văn b n di n gi i trong m t ch ng trình (đo n l nh) mà trình biên d ch s không th c thi. M c đích là đ chú gi i v mã l nh đ dạ ả ễ ả ộ ươ ạ ệ ị ẽ ự ụ ể ả ề ệ ể ễ
dàng b o trì, s a đ i m t cách d dàng.ả ử ổ ộ ễ
Chú thích trên 1 dòng:
-- [n i dung]ộ
Chú thích trên nhi u dòng:ề
/*n i dung*/ộ
Group 3: Cách th c thi l nh T-SQLự ệ
I: Th c thi l nh đ n lự ệ ơ ẻ
X lý t ng câu l nh là cách th ng dùng. Chúng ta có th th y đó alf l nh SELECTử ừ ệ ườ ể ấ ệ
Câu l nh SELECT là câu l nh phi th th c, nó không ch rõ ràng các b c m t cách chính xác mà DATABASE th c thi đ i v i DATA. Nói cách khác,ệ ệ ủ ụ ỉ ướ ộ ự ố ớ
server ph i phân tích câu l nh đ xác đ nh cách l y data hi u qu nh t. Quá trình này đ c g i là t i u hóa câu l nh SELECT và đ i t ng th cả ệ ể ị ấ ệ ả ấ ượ ọ ố ư ệ ố ượ ự
hi n t i u này đ c g i là b t i u truy v nệ ố ư ượ ọ ộ ố ư ấ
To Example:
SELECT * FROM Employee
II: X lý lôử
M t lô là m t t p h p c a m t ho c nhi u câu l nh Transact-SQL đ c g i cùng m t th i đi m t m t ng d ng đ n SQL Server đ th c thiộ ộ ậ ợ ủ ộ ặ ề ệ ượ ử ộ ờ ể ừ ộ ứ ụ ế ể ự
Các câu l nh này đ c biên d ch thành m t đ n v th c thi và đ c g i làệ ượ ị ộ ơ ị ự ượ ọ “execution plan”
Các câu l nh trongệ “execution plan” đ c th c hi n cùng m t lúcượ ự ệ ộ
To Example:
USE adventureworks
GO
SELECT * FROM Employee
GO
III: Th c thi d i d ng scriptự ướ ạ
SQL có th th c thi d i d ng t p tin đ c l u tr trong file. Ph n m r ng c a file th ng đ c l u d i d ng *.sql. T p tin s đ c đ c tr c khiể ự ướ ạ ệ ượ ư ữ ầ ở ộ ủ ườ ượ ư ướ ạ ậ ẽ ượ ọ ướ
đ c yêu c u th c thi. V i đi u ki n d ng trong script ph i là ki u x lý lô.ượ ầ ự ớ ề ệ ạ ả ể ử
Group 4: Toàn v n dataẹ
I: N i dungộ
 Trong Toàn v n data chúng ta c n n m nh ng ki n th c sau:ẹ ầ ắ ữ ế ứ
 Toàn v n d li u (Data Intergrity)ẹ ữ ệ
 Đ nh nghĩa và mô t toàn v n d li u.ị ả ẹ ữ ệ
 Li t kê các qui t c cho toàn v n d li uệ ắ ẹ ữ ệ
 Cách th c thi toàn v n d li u.ự ẹ ữ ệ
 Các lo i toàn v n d li u (Type of the Integrity)ạ ẹ ữ ệ
 Toàn v n th c th .ẹ ự ể
 Toàn v n v mi n giá tr .ẹ ề ề ị
 Toàn v n tham chi u.ẹ ế
 Toàn v n do ng i dùng đ nh nghĩa.ẹ ườ ị
 Các ràng bu c toàn v n (Integrity Constrains)ộ ẹ
 S c n thi t c a ràng bu c toàn v n.ự ầ ế ủ ộ ẹ
 Ràng bu c UNIQUE.ộ
 Ràng bu c CHECK.ộ
 Ràng bu c PRIMARY KEY.ộ
 Ràng bu c FOREIGN KEY.ộ
II: Toàn v n d li u (Data Intergrity)ẹ ữ ệ
A: Đ nh nghĩa và mô t toàn v n d li uị ả ẹ ữ ệ
 Trong Dataabase, khi data đ c l u tr ho c c p nh t các giá tr nh p vào c n ph i đ c ki m tra tính h p l và tính đúng đ nượ ư ữ ặ ậ ậ ị ậ ầ ả ượ ể ợ ệ ắ
 N u có thao tác b t kỳ nh s a hay xóa nào trên data, thì s thay đ i đó c n ph i đ c ph n ánh đ n t t c các n i khác trong database có liênế ấ ư ử ự ổ ầ ả ượ ả ế ấ ả ơ
quan đ n data đó.ế
 Tính toàn v n c a data có th đ c đ m b o (ensure) b ng cách đ a ra m t s các ki m tra nào đó t i lúc t o b ng ho c lúc ch nh s a b ng và sauẹ ủ ể ượ ả ả ằ ư ộ ố ể ạ ạ ả ặ ỉ ử ả
đó áp d ng nh ng ki m tra này khi qu n lý dataụ ữ ể ả
B: Các quy t c cho toàn v nắ ẹ
 Có m t s các qui t c(rule) cho toàn v n d li u giúp đ m b o tính đúng đ n và nh t quán c a d li u. Các qui t c đó là:ộ ố ắ ẹ ữ ệ ả ả ắ ấ ủ ữ ệ ắ
 Trong m t b ng không th có hai b n ghi (record) mà giá tr t t c các c t là nh nhau.ộ ả ể ả ị ở ấ ả ộ ư
 Ch có các giá tr d li u h p l m i có th đ c thêm vào.ỉ ị ữ ệ ợ ệ ớ ể ượ
 Tính h p l c a d li u v n ph i đ c duy trì (ợ ệ ủ ữ ệ ẫ ả ượ maintain) khi d li u đ c ch nh s a.ữ ệ ượ ỉ ử
 V i các b ng có quan h v i nhau qua m t c t chung, khi thay đ i d li u trong c t chungớ ả ệ ớ ộ ộ ổ ữ ệ ộ (common) b ng này nên đ c ph n ánh phù h p t iở ả ượ ả ợ ớ
các b ng có liên quanả (relate).
 Ngoài các quy t c trên thì đ i v i t ng ng d ng cho t ng t ch c c th s có nh ng quy c riêng cho d li u trong CSDL. Nh ng quy c nàyắ ố ớ ừ ứ ụ ừ ổ ứ ụ ể ẽ ữ ướ ữ ệ ữ ướ
đ c g i là các quy t c nghi p v (Business Rules). Và vi c đ m b o các quy t c nghi p v cũng chính là m t ph n c a vi c đ m b o tính toànượ ọ ắ ệ ụ ệ ả ả ắ ệ ụ ộ ầ ủ ệ ả ả
v n d li u trong CSDL.ẹ ữ ệ
C: Th c thi toàn v n d li uự ẹ ữ ệ
 SQL Server 2005 h tr 4 c ch đ cho phép b n th c thi toàn v n d li uỗ ợ ơ ế ể ạ ự ẹ ữ ệ
 Constraints
Constraint là các thu c tính, b n có th g n cho các c t trong b ng đ ngăn các d li u không h p l đ c nh p vào c tộ ạ ể ắ ộ ả ể ữ ệ ợ ệ ượ ậ ộ
 Default values
B n có th đ nh nghĩa các giá tr cho các c t không ch p nh n giá tr null. Khi th c hi n thêm ho c s a giá tr m c đ nh s đ c chèn vào b n ghi t i cácạ ể ị ị ộ ấ ậ ị ự ệ ặ ử ị ặ ị ẽ ượ ả ạ
c t b b tr ngộ ị ỏ ố
 Rules
Các Rule là các constraint có th đ c áp d ng đ đi u khi n các giá tr d li u đ c nh p vào b ng. Các rule đ c l p v i vi c đ nh nghĩa b ng và có thể ượ ụ ể ề ể ị ữ ệ ượ ậ ả ộ ậ ớ ệ ị ả ể
áp d ng cho nhi u b ng.ụ ề ả
 Triggers
M t trigger trong SQL Server 2005 có ch a các đo n code t o thành các câu l nh T-SQL đ c th c thi t đ ng khi có m t s xác đ nh x y ra.ộ ứ ạ ạ ệ ượ ự ự ộ ộ ự ị ả
III: Các lo i toàn v n d li u (Data Integrity)ạ ẹ ữ ệ
 S toàn v n c a d li u có th đ c phân lo i thành các nhóm sau:ự ẹ ủ ữ ệ ể ượ ạ
 Toàn v n th c th .ẹ ự ể
 Toàn v n v mi n giá tr .ẹ ề ề ị
 Toàn v n tham chi u.ẹ ế
 Toàn v n do ng i dùng đ nh nghĩa.ẹ ườ ị
A: Toàn v n th c th (Entity Integrity)ẹ ự ể
 M i b ng trong DATABASE bi u di n cho m t th c th , trong đó m i record (b n ghi) bên trong b ng bi u di n cho m t th hi n c a th c th .ỗ ả ể ễ ộ ự ể ỗ ả ả ể ễ ộ ể ệ ủ ự ể
 Toàn v n th c th đ c đ m b o b i:ẹ ự ể ượ ả ả ở
 Ràng bu cộ PRIMARY KEY.
C t có ràng bu c PRIMARY KEY s không cho phép chèn vào giá tr null ho c giá tr trùng v i các giá tr đã có.ộ ộ ẽ ị ặ ị ớ ị
 Ràng bu cộ UNIQUE.
C t có ràng bu c UNIQUE s không cho phép nh p vào giá tr trùng nhau và cho phép nh p vào m t giá tr null m t l n.ộ ộ ẽ ậ ị ậ ộ ị ộ ầ
 Indexes.
Indexes có th đ c dùng đ ngăn c n nh p giá tr trùng nhau vào m t c t đ đ m b o tính duy nh t c a các giá tr .ể ượ ể ả ậ ị ộ ộ ể ả ả ấ ủ ị
 Thu c tínhộ IDENTITY.
Thu c tính IDENTTITY đ c đ nh nghĩa cho m t c t đ nh danh trong b ng. C t đ nh danh là c t có ch a các giá tr tu n t do h th ng phát sinh m i khiộ ượ ị ộ ộ ị ả ộ ị ộ ứ ị ầ ự ệ ố ỗ
m t record đ c thêm vào. T t các giá tr trong c t này là duy nh t.ộ ượ ấ ị ộ ấ
B: Toàn v n mi n giá tr (Domain Integrity)ẹ ề ị
 M t mi n là m t t p h p các giá tr t o ra nh ng giá tr h p l trong m t c t.ộ ề ộ ậ ợ ị ạ ữ ị ợ ệ ộ ộ
 Đ đ m b o s toàn v n v mi n, t t c các giá tr d li u trong b ng nên thu c v mi n đã xác đ nh.ể ả ả ự ẹ ề ề ấ ả ị ữ ệ ả ộ ề ề ị
 Trong SQL Server 2005, s d ng các ràng bu c sau đ đ m b o tính toàn v n v mi n giá tr :ử ụ ộ ể ả ả ẹ ề ề ị
 FOREIGN KEY constraint.
Giá tr cho c t FOREIGN KEY ho c có th là null ho c có th là m t giá tr t n t i trong c t UNIQUE ho c c t PRIMARY KEY mà c t có tham chi u đ n.ị ộ ặ ể ặ ể ộ ị ồ ạ ộ ặ ộ ộ ế ế
 CHECK constraint.
Ràng bu c CHECK ch ra m t mi n giá tr h p l có th đ c nh p vào cho c t.ộ ỉ ộ ề ị ợ ệ ể ượ ậ ộ
 DEFAULT definition.
Ràng bu c DEFAULT ch ra các giá tr cho nh ng c t không ch p nh n giá tr null. Giá tr m c đ nh đ c t đ ng gán cho c t khi c t đó b b tr ng.ộ ỉ ị ữ ộ ấ ậ ị ị ặ ị ượ ự ộ ộ ộ ị ỏ ố
 NOT NULL definition.
NOT NULL ch ra r ng c t đó không ch p nh n giá tr NULL (không đ c đ tr ng)ỉ ằ ộ ấ ậ ị ượ ể ố
 Data Types.
Ki u d li u h p l đã đ c xác đ nh cho nhi u c t khác nhau. Ví d : Khi c t đ c đ nh nghĩa có ki u d li u là date thì ch ch p nh n các giá tr ki u date.ể ữ ệ ợ ệ ượ ị ề ộ ụ ộ ượ ị ể ữ ệ ỉ ấ ậ ị ể
 Rules.
Rule là các ràng bu c xác đ nh mi n ho c d ng giá tr h p l cho m t c t. Rule có th đ nh nghĩa đ c l p sau đó áp d ng cho nhi u b ng.ộ ị ề ặ ạ ị ợ ệ ộ ộ ể ị ộ ậ ụ ề ả
C: Toàn v n tham chi u (Referential Integrity)ẹ ế
 Toàn v n tham chi u đ m b o tính nh t quán d li u gi a các b ng có liên quan v i nhau thông qua tr ng chungẹ ế ả ả ấ ữ ệ ữ ả ớ ườ
 S d ng khóa ngo i (FOREIGN KEY) đ th c hi n toàn v n tham chi u.ử ụ ạ ể ự ệ ẹ ế
 Tính toàn v n tham chi u đ c đ m b o b i các qui t c sau:ẹ ế ượ ả ả ở ắ
 Các giá tr chèn vào c t khóa ngo i FOREIGN KEY là nh ng giá tr b t bu c ph i có t n t i c t UNIQUE ho c PRIMARY KEY b ng tham chi u.ị ộ ạ ữ ị ắ ộ ả ồ ạ ộ ặ ở ả ế
 N u giá tr trong c t UNIQUE ho c PRIMARY KEY đ c s a đ i, thì s thay đ i t ng t cũng đ c th c hi n trên c t khóa ngo i (FOREIGNế ị ộ ặ ượ ử ổ ự ổ ươ ự ượ ự ệ ộ ạ
KEY).
 N u m t giá tr trong c t UNIQUE ho c PRIMARY KEY b xóa b , s xóa b cũng nên đ c th c hi n trong các c t khóa ngo i (FOREIGN KEY).ế ộ ị ộ ặ ị ỏ ự ỏ ượ ự ệ ộ ạ
D: Toàn v n do ng i d ng đ nh nghĩa (User-Defined Integrity)ẹ ườ ừ ị
 Các ràng bu c toàn v n có s n trong SQL Server 2005 v n ch a đ đ đ m b o các giá tr d li u là đúng theo d ng (format) ho c mi n theo mongộ ẹ ẵ ẫ ư ủ ể ả ả ị ữ ệ ạ ặ ề
mu n. Do đó các ràng bu c do ng i dùng đ nh nghĩa có th đ c áp d ng cho các c t đ duy trì tính toàn v n d li u.ố ộ ườ ị ể ượ ụ ộ ể ẹ ữ ệ
Ví d : S đi n tho i yêu c u ph i có d ng nh (123) 456-789. Nh v y có th t o ki u d li u do ng i dùng đ nh nghĩa đ nh n vào giá tr theo d ngụ ố ệ ạ ầ ả ạ ư ư ậ ể ạ ể ữ ệ ườ ị ể ậ ị ạ
này.
IV: Các ràng bu c toàn v n (Integrity Constrains)ộ ẹ
 Các ràng bu c đ c s d ng đ đ m b o tính h p l c a d li u trong m t b ng và đ m b o tính nh t quán d li u gi a các b ng liên quan.ộ ượ ử ụ ể ả ả ợ ệ ủ ữ ệ ộ ả ả ả ấ ữ ệ ữ ả
 B n có th đ nh nghĩa các ràng bu c cho c t ho c cho b ng.ạ ể ị ộ ộ ặ ả
A: R ng bu c PRIMARY KEYằ ộ
 M c đích c a c t khóa chính (PRIMARY KEY) là đ xác đ nh tính duy nh t c a m i record có trong b ng.ụ ủ ộ ể ị ấ ủ ỗ ả
 Ràng bu c PRIMARY KEY ki m tra s duy nh t c a d li u trong c t khóa chính, không cho đ a vào các giá tr trùng nhau.ộ ể ự ấ ủ ữ ệ ộ ư ị
 M t PRIMARY KEY có th là m t c t ho c là s k t h p c a nhi u c tộ ể ộ ộ ặ ự ế ợ ủ ề ộ
 Ràng bu c PRIMARY KEY có th đ c ch ra bên trong câu l nh CREATE TABLE ho c ALTER TABLEộ ể ượ ỉ ệ ặ
 Cú pháp
CREATE TABLE <Table-Name>
(
<Field-Name> <Data-Type> PRIMARY KEY,
)
 Ví d : T o khóa chính cho tr ng ClienID trong b ng Client_Infoụ ạ ườ ả
CREATE TABLE < Client_Info >
(
ClientID varchar(5) PRIMARY KEY,
DOB datetime,
Country varchar(30),
)
 Minh h aọ
B: R ng bu c FOREIGN KEYằ ộ
 Các tùy ch n cascading đ c đ nh nghĩa cùng v i vi c t o ràng bu c khóa ngo i đ đ m b o tính nh t quán d li u gi a các b ng liênọ ượ ị ớ ệ ạ ộ ạ ể ả ả ấ ữ ệ ữ ả quan khi
th c hi n thay đ i trên c t PRIMARY KEY ho c UNIQUE.ự ệ ổ ộ ặ
 Có hai tùy ch n cascadeọ :
 ON UPDATE [ NO ACTION | CASCADE ]: Ch cho SQL SERVER cách thi hành khi có hành đ ng c p nh t x y ra trên c t PRIMARY KEY ho c UNIQUEỉ ộ ậ ậ ả ộ ặ
c a b ng tham chi u.ủ ả ế
 NO ACTION: Báo l i khi bên c t khóa ngo i có các giá tr có liên quan t i giá tr b s a trong c t PRIMARY KEY ho c UNIQUE.ỗ ộ ạ ị ớ ị ị ử ộ ặ
 CASCADE: Khi c p nh t giá tr c t PRIMARY KEY ho c UNIQUE, các giá tr trong c t khóa ngo i có liên cũng đ c c p nh t theo.ậ ậ ị ở ộ ặ ị ộ ạ ượ ậ ậ
 ON DELETE [ NO ACTION | CASCADE ]: Ch cho SQL SERVER cách thi hành khi có hành đ ng xóa x y ra trên c t PRIMARY KEY ho c UNIQUE c aỉ ộ ả ộ ặ ủ
b ng tham chi u.ả ế
 NO ACTION: Thông báo l i s x y ra trong tr ng h p m i quan h gi a hai b ng cha – con có d li uỗ ẽ ả ườ ợ ố ệ ữ ả ữ ệ
 CASCADE: N u ch đ nh CASCADE thì khi xoá m t dòng d li u trên b ng cha thì các dòng d li u liên quan trên b ng con cũng s b xoá.ế ỉ ị ộ ữ ệ ả ữ ệ ả ẽ ị
 Cú pháp
CREATE TABLE <Table-Name>
(
<Field-Name> <Data-Type> PRIMARY KEY,
)
CREATE TABLE <Table-Name>
(
<Field-Name> <Data-Type>
FOREIGN KEY REFERENCES <Referenced-Table-Name> (Referenced-Field-Name) [ON UPDATE CASCADE] [ON DELETE CASCADE],
)
 Ví dụ
CREATE TABLE <Employee_Details>
(
Employee_ID PRIMARY KEY,
Employee_Name varchar(30),
Salary float,
)
CREATE TABLE <Payroll>
(
Employee_ID varchar(5) PRIMARY KEY,
Salary float
FOREIGN KEY REFERENCES Employee_Details(Salary) ON UPDATE CASCADE ON DELETE CASCADE,
)
 Minh h aọ
C: R ng bu c UNIQUEằ ộ
 Ràng bu c UNIQUE có th áp d ng cho m t c t ho c cho k t h p nhi u c t đ đ m b o tính duy nh t c a d li u trong nh ng c t này.ộ ể ụ ộ ộ ặ ế ợ ề ộ ể ả ả ấ ủ ữ ệ ữ ộ
 Ràng bu c UNIQUE đ m b o tính toàn v n th c th trong b ng.ộ ả ả ẹ ự ể ả
 Ràng bu c UNIQUE có th đ c đ nh nghĩa bên trong câu l nh CREATE TABLE ho c ALTER TABLE.ộ ể ượ ị ệ ặ
 Trong m t b ng có th có nhi u ràng bu c UNIQUE cho nhi u c t.ộ ả ể ề ộ ề ộ
Chú ý: V i c t áp d ng ràng bu c UNIQUE, Giá tr null ch đ c phép nh p vào m t l n.ớ ộ ụ ộ ị ỉ ượ ậ ộ ầ
 Cú pháp
CREATE TABLE <Table-Name>
(
<Field-Name> <Data-Type> UNIQUE,
)
 Ví d :ụ T o ràng bu c UNIQUE cho c t TransNumber c a b ng Account_Transactionsạ ộ ộ ủ ả
CREATE TABLE <Table-Name>
(
Date datetime,
TransNumber int UNIQUE,
)
 Minh h aọ
D: R ng bu c CHECKằ ộ
 Ràng bu c CHECK xác đ nh m t mi n giá tr nh p vào cho c t.ộ ị ộ ề ị ậ ộ
 Ràng bu c CHECK đ c t o v i bi u th c logic (là bi u th c có giá tr tr v True hay False) đ ki m tra giá tr nh p vào.ộ ượ ạ ớ ể ứ ể ứ ị ả ề ể ể ị ậ
 B n có th áp d ng m t ràng bu c CHECK t i m t nhóm các c t.ạ ể ụ ộ ộ ớ ộ ộ
 Cú pháp
CREATE TABLE <Table-Name>
(
<Colun-Name> <Data-Type> CHECK(condition),
)
 Ví dụ
CREATE TABLE <Account_Types>
(
AccTypeID int identity,
AccNo int CHECK(AccNo>0 and AccNo<100000)
)
 Minh h aọ
Lesson 2: Index
I: N i dungộ
Trong index có nh ng v n đ sau:ữ ấ ề
 Đ nh nghĩa và mô t ch m c (index)ị ả ỉ ụ
 Mô t d li u đ c l u tr nh th nào trong SQL Server 2005.ả ữ ệ ượ ư ữ ư ế
 S c n thi t c a index.ự ầ ế ủ
 Index c n thi t đ c dùng đâu.ầ ế ượ ở
 Ki n trúc Indexế
 Tìm ki m dòng (Finding Rows)ế
II: Gi i thi u Indexớ ệ
A: D li u đ c mô t trong SQL server 2005ữ ệ ượ ả
 Các Index đ c t o đ cho vi c l y d li u đ c nhanh h n.ượ ạ ể ệ ấ ữ ệ ượ ơ
 D li u đ c s p x p, truy c p s d dàng h n d li u không đ c s p x p.ữ ệ ượ ắ ế ậ ẽ ễ ơ ữ ệ ượ ắ ế
 Truy v n trên các b ng có index đ c th c thi nhanh h n và ít chi m tài nguyên h th ng h n.ấ ả ượ ự ơ ế ệ ố ơ
 Các index database có ch a m t danh sách các giá tr (g i là các khóa) l y t m t ho c nhi u c t c a b ng và các đ a ch c a các trang d li u (g i làứ ộ ị ọ ấ ừ ộ ặ ề ộ ủ ả ị ỉ ủ ữ ệ ọ
các con tr ) cho bi t v trí d li u đ c l u tr .ỏ ế ị ữ ệ ượ ư ữ
 Trang (page) là đ n v l u tr d li u nh nh t trong SQL Server 2005. Các trang này ch a d li u theo t ng dòng.ơ ị ư ữ ữ ệ ỏ ấ ứ ữ ệ ừ
 Kích th c m i page là 8 KB (1MB có 128 page). Trong đó 96 byte đ u tiên c a page (page header) l u tr các thông tin h th ng v page nh :ướ ỗ ầ ủ ư ữ ệ ố ề ư
 S trangố
 Lo i trang (data, Index, text/image,..)ạ
 Không gian còn tr ng trên trangố
 Ch s ID c a trangỉ ố ủ
 Các t p tin d li u (Data Files)ậ ữ ệ
 T p tin d li u c a m t database đ c phân chia logic thành các page và đ c đánh s liên t c t 0 đ n n. B máy database c a SQL Server th cậ ữ ệ ủ ộ ượ ượ ố ụ ừ ế ộ ủ ự
hi n đ c ghi d li u trên các page này.ệ ọ ữ ệ
 SQL Server 2005 có ba lo i t p tin sau:ạ ậ
 Primary Data Files (*.mdf)
 Secondary Data Files (*.ndf)
 Log Files (*.ldf)
B: S c n thi t c a indexự ầ ế ủ
 SQL Server 2005 cung c p tính năng đánh index giúp cho vi c l y d li u d dàng và nhanh chóng.ấ ệ ấ ữ ệ ễ
 M t index trong database SQL Server 2005 mang các thông tin đ chúng ta có th tìm th y d li u mà không c n ph i duy t qua toàn b b ng.ộ ể ể ấ ữ ệ ầ ả ệ ộ ả
 Index gi ng nh b ng m c l c c a m t cu n sách. B n tìm ch đ mà b n quan tâm trong b ng m c l c và sau đó chuy n th ng đ n ch đ đóố ư ả ụ ụ ủ ộ ố ạ ủ ề ạ ả ụ ụ ể ẳ ế ủ ề
thông qua s trang đã cho.ố
 Các record trong m t b ng đ c l u tr theo th t mà chúng đ c nh p vào. Vi c l u tr trong database nh v y là không đ c s p x p.ộ ả ượ ư ữ ứ ự ượ ậ ệ ư ữ ư ậ ượ ắ ế
 Khi l y d li u trong các b ng nh v y, c n ph i duy t qua toàn b b ng. Đi u đó làm cho t c đ x lý truy v n l y d li u b ch m xu ng. V y cácấ ữ ệ ả ư ậ ầ ả ệ ộ ả ề ố ộ ử ấ ấ ữ ệ ị ậ ố ậ
index đ c t o đ tăng t c đ truy v n l y d li u.ượ ạ ể ố ộ ấ ấ ữ ệ
 Khi có m t index đ c t o cho b ng, index này s t o ra m t th t cho các dòng d li u có trong b ng. Đi u này giúp cho vi c xác đ nh v trí và l yộ ượ ạ ả ẽ ạ ộ ứ ự ữ ệ ả ề ệ ị ị ấ
d li u trong quá trình tìm ki m đ c nhanh h n.ữ ệ ế ượ ơ
 M t b ng có th có nhi u indexộ ả ể ề
C: T o index nh th nào cho h p lýạ ư ế ợ
 Th i đi m t o indexờ ể ạ
 Hãy t ng t ng v m t quy n t đi n, các t trong quy n t đi n đó không đ c s p x p theo b ng ch cái, và b n mu n tra c u m t tưở ượ ề ộ ể ừ ể ừ ề ừ ể ượ ắ ế ả ữ ạ ố ứ ộ ừ
trong quy n t đi n đó (đi u đó quá khó)ể ừ ể ề
 M t b ng trong database có m t kh i l ng l n các dòng d li u th ng xuyên đ c truy xu t. Các dòng d li u c n đ c s p x p đ cho vi cộ ả ộ ố ượ ớ ữ ệ ườ ượ ấ ữ ệ ầ ượ ắ ế ể ệ
l y d li u là nhanh nh t. Do đó vi c t o index (v t lý hay logic s p x p các record) cho m t b ng giúp cho vi c tìm ki m m t dòng d li u trấ ữ ệ ấ ệ ạ ậ ắ ế ộ ả ệ ế ộ ữ ệ ở
nên nhanh h n và ít chi m tài nguyên h th ng h n.ơ ế ệ ố ơ
 Tránh l m d ng indexạ ụ
 Các ch m c giúp cho vi c l y d li u đ c nhanh h n nh ng chúng cũng làm tiêu t n không gian đĩa và cũng c n ph i đ c duy trìỉ ụ ệ ấ ữ ệ ượ ơ ư ố ầ ả ượ (maintain).
 Ch m c không c n thi t ph i t o khi:ỉ ụ ầ ế ả ạ
 Ch m c không đ c s d ng th ng xuyên.ỉ ụ ượ ử ụ ườ
 Không t o ch m c trên các c t có d li u trùng nhau.ạ ỉ ụ ộ ữ ệ
III: Ki n trúc Indexế
 Trong SQL Server, các ch m c đ c t ch c gi ng nh các cây nh phân (B-tree).ỉ ụ ượ ổ ứ ố ư ị
 M i trang trong cây ch m c index B-tree đ c g i là nút ch m c (index node)ỗ ỉ ụ ượ ọ ỉ ụ
Nút cao nh t c a cây g iấ ủ ọ
là nút g c (ố root node)
Nút g c và nút trung gian có ch a m t trang chố ứ ộ ỉ
m c (index page) n m gi các ch m c dòngụ ắ ữ ỉ ụ
(index row).
M i Ch m c dòng có ch a m t giá tr khóa vàỗ ỉ ụ ứ ộ ị
m t con tr tr t i m t nút trung gian khác,ộ ỏ ỏ ớ ộ
ho c tr t i m t dòng d li u trong nút láặ ỏ ớ ộ ữ ệ
Nút b t kỳ n m gi a nútấ ằ ữ
lá và nút g c g i là nútố ọ
m c trung gianứ
(intermediate node)
Nút m c th p nh t g iở ứ ấ ấ ọ
là nút lá (leaf node)
Nút lá có th là m t trang d li u (data page)ể ộ ữ ệ
ho c cũng có th là trang ch m c (index page)ặ ể ỉ ụ
ch a các ch m c tr t i các dòng d li u.ứ ỉ ụ ỏ ớ ữ ệ
A: Phân vùng (Partition)
 Phân vùng là k thu t phân chia logic b ng ho c index thành m t ho c nhi u phân vùng(partition) nh m qu n lý hi u qu c s d li u v iỹ ậ ả ặ ộ ặ ề ằ ả ệ ả ơ ở ữ ệ ớ
dung l ng l n.ượ ớ
 M i phân vùng ch a các dòng d li u đ c t ch c theo c u trúc heap ho c c u trúc clustered index.ỗ ứ ữ ệ ượ ổ ứ ấ ặ ấ
 Phân vùng cho phép truy xu t d li u nhanh chóng và hi u qu , do thao tác qu n lý ch th c hi n trên t p con d li u thay vì trên toàn bấ ữ ệ ệ ả ả ỉ ự ệ ậ ữ ệ ộ
b ng.ả
 Đ t ch c các trang d li u trong m t phân vùng (partition), b ng c a SQL Server s d ng m t trong hai ph ng th c sau:ể ổ ứ ữ ệ ộ ả ủ ử ụ ộ ươ ứ
 N u b ng có m t clustered index thì b ng đ c g i là b ng clustered (clustered table). Các dòng d li u c a b ng đ c s pế ả ộ ả ượ ọ ả ữ ệ ủ ả ượ ắ x p theo th tế ứ ự
d a trên khóa clusteredự index.
 N u b ng không có m t clustered index, thì b ng đó đ c g i là m t heap. Các dòng d li u không đ c s p x p theo th t nào c .ế ả ộ ả ượ ọ ộ ữ ệ ượ ắ ế ứ ự ả
B: sys.partitions (view)
 “sys.partitions” (view) là m t view h th ng ch a m t dòng cho m i phân đo n c a các b ng các lo i index trong database.ộ ệ ố ứ ộ ỗ ạ ủ ả ạ
 M t s index đ c bi t nh Fulltext, Spatial, và XML không có trong view này.ộ ố ặ ệ ư
 T t c các b ng và index trong SQL Server 2005 đ u có ít nh t m t phân vùng.ấ ả ả ề ấ ộ
 B ng mô t các c t khác nhau c a view “sys.partitions”ả ả ộ ủ
Tên c tộ Ki u d li uể ữ ệ Mô tả
partition_id bigint Ch a ID c a phân vùng và là duy nh t trong databaseứ ủ ấ
object_id int Ch a ID c a đ i t ng mà phân vùng này thu c vứ ủ ố ượ ộ ề
index_id int ID c a ch s trong đ i t ng đ mà phân đo n này thu c v .ủ ỉ ố ố ượ ể ạ ộ ề
partition_number int Có ch a s phân vùng trong index ho c heap s h uứ ố ặ ở ữ
hobt_id bigint Ch a ID d li u c a heap ho c B-tree mà có ch a các dòng cho phân vùng này.ứ ữ ệ ủ ặ ứ
rows bigint Ch ra g n đúng s dòng có trong phân vùngỉ ầ ố
 Giá tr c a c t index_id:ị ủ ộ
 Cho m t heap là 0.ộ
 Cho m t cluestered index là 1.ộ
 Cho m t nonclustered index là l n h n 1.ộ ớ ơ
 Cho các đ i t ng l n(LOB) là l n h n 250.ố ượ ớ ớ ơ
C: Đ n v c p phát (Allocation Unit)ơ ị ấ
 M t đ n v c p phát là m t t p h p các trang n m trong m t heap ho c B-tree, đ c s d ng đ qu n lý d li u d a trên ki u trang c a chúng.ộ ơ ị ấ ộ ậ ợ ằ ộ ặ ượ ử ụ ể ả ữ ệ ự ể ủ
 Sau đây là các ki u đ n v c p phát đ c s d ng đ qu n lý d li u trong các b ng và index.ể ơ ị ấ ượ ử ụ ể ả ữ ệ ả
 IN_ROW_DATA
Đ c dùng đ qu n lý d li u ho c các dòng ch m c mà có ch a t t c các lo i d li u ngo i tr đ i t ng d li u l n (LOB).ượ ể ả ữ ệ ặ ỉ ụ ứ ấ ả ạ ữ ệ ạ ừ ố ượ ữ ệ ớ
 LOB_DATA
Đ c dùng đ qu n lý các đ i t ng d li u l n (LOB) nh varbinary(max), varchar(max) , và xml.ượ ể ả ố ượ ữ ệ ớ ư
 ROW_OVERFLOW_DATA
Đ c dùng đ qu n lý d li u có đ dài bi n đ i nh d li u có ki u varchar, nvarchar, varbinary, ho c sql_variantượ ể ả ữ ệ ộ ế ổ ư ữ ệ ể ặ
D: C u trúc Heap(đ ng)ấ ố
 Khi t o ra m t b ng mà ch a có b t kì r ng bu c v toàn v n th c th nào thì b ng đó là m t c u trúc Heapạ ộ ả ư ấ ằ ộ ề ẹ ự ể ả ộ ấ
 Trong c u trúc heap, các trang d li u và các dòng d li u không đ c s p x p theo th t c th nào.ấ ữ ệ ữ ệ ượ ắ ế ứ ự ụ ể
 Các dòng và các trang d li u không liên k tữ ệ ế (link) v i nhau mà ch đ c k t n iớ ỉ ượ ế ố (connenction) lu n lý (logical) qua thông tin đ c ghi trong cácậ ượ
trang IAM (Index Allocation Map - B n đ c p phát ch m c)ả ồ ấ ỉ ụ
 SQL Server 2005 s d ng các trang IAM đ duy t m t c u trúc heap.ử ụ ể ệ ộ ấ
 B n có th đ c m t heap b ng cách duy t các trang IAM đ tìm các extentạ ể ọ ộ ằ ệ ể (đ l n, kích th c)ộ ớ ướ có ch a nh ng trang cho heap đó.ứ ữ
 S phân vùng c a c u trúc heap (…)ự ủ ấ
 M c đ nh, m i heap ch có m t phân vùng.ặ ị ỗ ỉ ộ
 Khi các phân vùng đ c t o cho m t b ng có c u trúc heap, m i phân vùng s ch a d li u trong m t c u trúc heap riêng bi t.ượ ạ ộ ả ấ ỗ ẽ ứ ữ ệ ộ ấ ệ
 Ví d n u m t heap có 4 phân đo n, thì có 4 c u trúc heap, m i c u trúc cho m i phân vùng.ụ ế ộ ạ ấ ỗ ấ ỗ
E: C u trúc Clusted Indexấ
 Khi t o ra m t b ng đ ng th i t o ra ít nh t m t r ng bu c b t kì v th c th thì b ng đó thu c c u trúc clusted indexạ ộ ả ồ ờ ạ ấ ộ ằ ộ ấ ề ự ể ả ộ ấ
 M t clustered index xác đ nh th t s p x p v t lý c a d li u trong m t b ng khi l u tr .ộ ị ứ ự ắ ế ậ ủ ữ ệ ộ ả ư ữ
 M t b ng có th có ch m t ch m c clustered.ộ ả ể ỉ ộ ỉ ụ
Kích th c c a m t clustered index kho ng 5% kich th c c a b ng.ướ ủ ộ ả ướ ủ ả
Tr c khi t o clustered index, b n c n ph i đ m b o h th ng c a mình còn không gian tr ng t i thi u g p 1,2 l n so v i d li u trong b ng.ướ ạ ạ ầ ả ả ả ệ ố ủ ố ố ể ấ ầ ớ ữ ệ ả
 Clustered index là m t cây nh phân (B-tree)ộ ị
Trong clustered index, nút lá ch a các dòng d li u trong b ng.ứ ữ ệ ả
 Nguyên t c (Guidelines) t o clusteredắ ạ index
 M c đ nh, khi đ nh nghĩa khóa chính cho b ng, m t clustered index đ c t đ ng t o ra cho b ng đó.ặ ị ị ả ộ ượ ự ộ ạ ả
 N u b ng không có khóa chính, thì clustered index nên đ c đ nh nghĩa trên:ế ả ượ ị
 Các c t khóa m r ng th ng đ c dùng cho vi c tìm ki m.ộ ở ộ ườ ượ ệ ế
 C t đ c s d ng trong các truy v n tr v k t qu t p h p l n.ộ ượ ử ụ ấ ả ề ế ả ậ ợ ớ
 Các c t mà d li u ít trùng nhau.ộ ữ ệ
 Các c t đ c dùng đ n i hai b ng.ộ ượ ể ố ả
F: C u trúc Nonclustered indexấ
 M t non-clustered index xác đ nh cách s p x p logic c a b ng.ộ ị ắ ế ủ ả
 Non-clustered index gi ng nh b ng m c l c trong m t cu n sách giáo khoa. M i dòng ch s (index row) trong non-clustered index có ch a m t giáố ư ả ụ ụ ộ ố ỗ ỉ ố ứ ộ
tr khóa và m t v trí dòng. V trí dòng này tr t i dòng d li u t ng ng v i giá tr khóa trong b ng.ị ộ ị ị ỏ ớ ữ ệ ươ ứ ớ ị ả
 Nonclustered index có c u trúc B-tree gi ng nh clustered index, nh ng có m t s s khác bi t sau:ấ ố ư ư ộ ố ự ệ
 Th t v t lý các dòng d li u trong b ng không l u tr theo th t đ c qui đ nh trong khóa nonclustered.ứ ự ậ ữ ệ ả ư ữ ứ ự ượ ị
 Trong c u trúc nonclustered index, các nút m c lá ch a các dòng ch m c (index row).ấ ứ ứ ỉ ụ
 Nonlustered index đ c s d ng khi b n mu n m r ng thêm nhi u cách t́m ki m d li u khác nhau.ượ ử ụ ạ ố ở ộ ề ế ữ ệ
 Tr c khi t o, c n xem xét m t s các nguyên t c sau:ướ ạ ầ ộ ố ắ
 Khi m t clustered index đ c t o l i ho c tùy ch n DROP_EXISTING đ c s d ng, SQL Server xây d ng l i các nonclustered index.ộ ượ ạ ạ ặ ọ ượ ử ụ ự ạ
 M t b ng có th t o t i 249 nonclustered index.ộ ả ể ạ ớ
 T o clustered index tr c khi t o nonclustered index, làm nh v y đ không ph i xây d ng l i nonclustered index khi t o m t clustered index.ạ ướ ạ ư ậ ể ả ự ạ ạ ộ
G: So sánh s khác nhau gi a clustered index và nonclustered indexự ữ
Clustered Index Nonclustered Index
S d ng cho các truy v n tr v các t p k t qu l nử ụ ấ ả ề ậ ế ả ớ S d ng cho các truy v n không tr v các t p k t qu l nử ụ ấ ả ề ậ ế ả ớ
Ch có th t o m t clustered index cho m t b ngỉ ể ạ ộ ộ ả Có th t o nhi u nonclustered index cho b ngể ạ ề ả
D li u đ c s p x p theo th t trên khóa clusteredữ ệ ượ ắ ế ứ ự D li u không đ c s p x p theo th t trên khóa nonclusteredữ ệ ượ ắ ế ứ ự
Các nút lá c a m t clustered index có ch a các trang d li u (data page).ủ ộ ứ ữ ệ Các nút lá c a m t nonclustered index có ch a các trang ch m c(indexủ ộ ứ ỉ ụ
page).
H: Các lo i Indexạ
 Có hai lo i c u trúc index đ c h tr trong SQL Server:ạ ấ ượ ỗ ợ
 Clustered index:
Clustered index l u tr d li u theo ki u s p x p.ư ữ ữ ệ ể ắ ế
Nó th c thi nh m t c u index B-tree.ự ư ộ ấ
M t b ng ch có th có m t clustered index vì clustered index xác đ nh th t l u tr v t lý c a d li u.ộ ả ỉ ể ộ ị ứ ự ư ữ ậ ủ ữ ệ
 Nonclustered index:
Nonclustered index không s p x p l i th t v t lý c a d li u, chúng ch t o các con tr tr v trí v t lý c a các dòng d li u.ắ ế ạ ứ ự ậ ủ ữ ệ ỉ ạ ỏ ỏ ị ậ ủ ữ ệ
SQL Server 2005 h tr t i 249 nonclustered cho m t b ng.ỗ ợ ớ ộ ả
 D a vào đ c đi m c a index có các lo i index sau:ự ặ ể ủ ạ
Unique index. Unique index có th đ c đ nh nghĩa trên m t c t có ch a giá tr không trùng nhau.ể ượ ị ộ ộ ứ ị
- N u b ng có m t PRIMARY KEY, m t unique clustered index đ c đ nh nghĩa t đ ng trên c t đó.ế ả ộ ộ ượ ị ự ộ ộ
- N u b ng có m t c t v i ràng bu c UNIQUE, m t unique nonclustered index đ c t đ ng t o trên c t đóế ả ộ ộ ớ ộ ộ ượ ự ộ ạ ộ
N u mu n t o m t clustered index trên c t khác thì khi t o b ng ta không t o PRIMARY KEY tr c, sau khi t o clusteredế ố ạ ộ ộ ạ ả ạ ướ ạ
index r i thêm PRIMARY KEY vào sauồ
Composite index. Composite index (index k t h p) là m t index đ c t o trên hai hay nhi u c t. C clustered index và nonclustered index đ uế ợ ộ ượ ạ ề ộ ả ề
có th là composite indexể
Full-Text index. Tính năng Full-Text index trong SQL Server 2005 cho phép th c hi n các truy v n ph c t p trên d li u kí t . S d ng tínhự ệ ấ ứ ạ ữ ệ ự ử ụ
năng Full-Text index, vi c tìm ki m có th th c hi n trên t ng t riêng bi t, c m t , đo n văn, m t ph n c a t , ho c bi nệ ế ể ự ệ ừ ừ ệ ụ ừ ạ ộ ầ ủ ừ ặ ế
th c a t (drunk bi n th c a drink)ể ủ ừ ế ể ủ
XML index. SQL Server 2005 cũng h tr m t lo i index đ c bi t cho d li u XML.ỗ ợ ộ ạ ặ ệ ữ ệ Index này đ c xem nh là m t index XML. Cluseredượ ư ộ
index và nonclustered index đ u có th t o trên c t d li u XML. Ki u d li u này đ c s d ng đ l u tr các tài li u XMLề ể ạ ộ ữ ệ ể ữ ệ ượ ử ụ ể ư ữ ệ
và các đo n XML. M t đo n XML là th hi n c a m t XML thi u ph n t m c đ nh.Do các c t XML có kích th c l n, truyạ ộ ạ ể ệ ủ ộ ế ầ ử ứ ỉ ộ ướ ớ
v n tìm ki m d li u trong các c t này có th s ch m. B n có th tăng t c đ truy v n trên các c t này b ng vi c t o m tấ ế ữ ệ ộ ể ẽ ậ ạ ể ố ộ ấ ộ ằ ệ ạ ộ
XML index cho m i c t.ỗ ộ
Có hai lo i XML indexạ
- XML Index s c p (primary XML Index): đ c t o cho m i c t XML đ tăng t c đ truy v n trên nh ng c t này.ơ ấ ượ ạ ỗ ộ ể ố ộ ấ ữ ộ
- XML index th c p (secondary XML Index): đ c dùng đ :ứ ấ ượ ể
Tìm ki m các giá tr v trí b t kỳ trong tài li u XML.ế ị ở ị ấ ệ
L y các thu c tính c a đ i t ng c th trong tài li u XML.ấ ộ ủ ố ượ ụ ể ệ
XML index th c p ch có th t o trên các c t đã có XML index s c p.ứ ấ ỉ ể ạ ộ ơ ấ
I: Thao tác INDEX OFFLINE
1: T o INDEXạ
 M t index có th có t i đa 16 c t.ộ ể ố ộ
 Quá nhi u index làm gi m hi u su t th c thi c a các câu l nh INSERT, UPDATE và DELETE.ề ả ệ ấ ự ủ ệ
 Các index nên s d ng cho các b ng có kh i l ng d li u l n nh ng có yêu c u v c p nh t th p đ c i thi n hi u su t truy v n.ử ụ ả ố ượ ữ ệ ớ ư ầ ề ậ ậ ấ ể ả ệ ệ ấ ấ
 Ngay c b ng có d li u nh v n nên duy trì các index, vì sau này d li u v n còn đ c thêm vào b ng.ả ả ữ ệ ỏ ẫ ữ ệ ẫ ượ ả
Object Syntax To Example Illustra
INDEX CREATE INDEX <Index-Name>
ON <Table-Name> (Field-Name)
CREATE INDEX IX_Country
ON Customer_Details(Country)
CLUSTERED INDEX CREATE CLUSTERED INDEX <Index-Name>
ON <Table-Name> (Field-Name)
CREATE CLUSTERED INDEX IX_CustID
ON Customer_Details(CustID)
NONCLUSTERED
INDEX
CREATE NONCLUSTERED INDEX <Index-
Name>
ON <Table-Name> (Field-Name)
CREATE NONCLUSTERED INDEX IX_State
ON Customer_Details(State)
UNIQUE INDEX CREATE UNIQUE INDEX <Index-Name>
ON <Table-Name> (Field-Name)
SQL Server 2005 không cho phép t oạ
unique index trên các c t có ch a các giá trộ ứ ị
trùng nhau
CREATE UNIQUE INDEX IX_CustID
ON Customer_Details(CustID)
COMPOSITE
INDEX
CREATE UNIQUE INDEX <Index-Name>
ON <Table-Name> (Field-Name [ASC |
DESC], [,….n])
CREATE UNIQUE INDEX IX_State_City
ON Customer_Details(State,City)
COMPUTED CREATE TABLE <Table-Name>
(
[<Field-Name-Computed>AS <Expression>]
…
)
C t Computed là các c t o trong b ng, giáộ ộ ả ả
CREATE TABLE Calc_Area
(
Length int,
Breadth int,
Area as Length*Breadth
)
tr c a nó đ c tính toán d a trên bi uị ủ ượ ự ể
th c lúc th c thiứ ự
COMPUTED INDEX CREATE INDEX <Index-Name>
ON <Table-Name> (Field-Name-Computed)
CREATE INDEX IX_Area ON
Calc_Area(Area);
2: Ch nh s a INDEXỉ ử
 Khi các index càng tăng tr ng, nó b t đ u có s phân m nh. S phân m nh làm gi m t c đ truy v n l y d li u, và hao t n tài nguyên.ưở ắ ầ ự ả ự ả ả ố ộ ấ ấ ữ ệ ổ
 Đ gi m s phân m ng, index c n đ c s a l iể ả ự ả ầ ượ ử ạ
 Câu l nh ALTER INDEX cùng v i các tùy ch n đ c s d ng cho vi c b o trì các index.ệ ớ ọ ượ ử ụ ệ ả
 Syntax
ALTER INDEX <index_name> ON <table_name>
{
REBUILD [WITH (pad_index = {ON|OFF} | FILLFACTOR = n%) ] | Disable | Reorganize
}
 To Example
Xóa index IX_CustID đã đ c đ nh nghĩa trên b ng Customer_Details và t o l i v i FILLFACTOR=70. Các trang index m c lá s đ vùng tr ng chi m 30%ượ ị ả ạ ạ ớ ứ ẽ ể ố ế
ALTER INDEX IX_CustID ON Customer_DetailID
{
REBUILD WITH (FILLFACTOR = 70% )
}
J: Thao tác INDEX ONLINE
 Các thao tác index tr c tuy n bao g m: t o m i, t o l i, và xóa các index.ự ế ồ ạ ớ ạ ạ
 Khi có m t thao tác index đ c th c hi n, ng i dùng khác s b h n ch truy xu t d li u c a b ng cho t i khi thao tác đ c hoàn thành.ộ ượ ự ệ ườ ẽ ị ạ ế ấ ữ ệ ủ ả ớ ượ
 Đ kh c ph c h n ch trên, SQL Server 2005 cung c p tùy ch n ONLINE đ cho phép nhi u ng i dùng v n có th truy c p d li u c a b ng trongể ắ ụ ạ ế ấ ọ ể ề ườ ẫ ể ậ ữ ệ ủ ả
khi thao tác index đang th c hi n.ự ệ
Action Syntax To Example
CREATE INDEX CREATE INDEX <Index-Name>
ON <Table-Name> (Column-Name)[,…n])
WITH (ONLINE = {ON|OFF})
ALTER INDEX ALTER INDEX <Index-Name>
ON <Table-Name>
REBUILD WITH (ONLINE={ON|OFF})
DROP INDEX DROP INDEX <Index-Name>
ON <Table-Name>
WITH (ONLINE={ON|OFF})
ALTER TABLE ALTER TABLE <Table-Name>
DROP CONSTRAINT<Constraint-Name>
WITH (ONLINE= {ON|OFF})
K: INDEX song song
 V i máy tính có đa b x lý, SQL Server 2005 có th s d ng nhi u h n m t b x lý đ th c thi các thao tác index. Đi u này đ c g i là thao tácớ ộ ứ ể ử ụ ề ơ ộ ộ ử ể ự ề ượ ọ
index song song.
 Các index l n s d ng nhi u b x lý, đi u đó làm h n ch tính s n sàng c a các b x lý cho nh ng ng d ng khác.ớ ử ụ ề ộ ử ề ạ ế ẵ ủ ộ ử ữ ứ ụ
 Đ kh c ph c h n ch , b n c n xác đ nh tùy ch n MAXDOP đ gi i h n s b x lý đ c dùng b i các thao tác index.ể ắ ụ ạ ế ạ ầ ị ọ ể ớ ạ ố ộ ử ượ ở
ALTER INDEX <Index-Name>
ON <Table-Name>
WITH (MAXDOP=max_degree_of_parallelism)
L: INDEX ph c h pứ ợ
 M t index ph c h p (Composite index) không th s d ng nhi u h n 16 c t khóa và kích th c t i đa là 900 byte.ộ ứ ợ ể ử ụ ề ơ ộ ướ ố
 Đ m r ng thêm ch c năng c a các nonclustered index, SQL Server 2005 cho phép b n có th đ a thêm các c t không khóa vào nh ng index này.ể ở ộ ứ ủ ạ ể ư ộ ữ
 Có th thêm t i đa 1023 c t không khóa, nh ng v n b t bu c ph i có ch a m t c t khóa.ể ố ộ ư ẫ ắ ộ ả ứ ộ ộ
 Syntax
CREATE NONCLUSTERED INDEX <Index-Name>
ON <Table-Name>(Column-Name(s))
INCLUDE (Column-Name(s))
 To Example
T o index có tên IX_Customer_AccNo trên c t khóa AccNo c a b ng Customer_Details cùng v i ba c t không khóa Address, City, Stateạ ộ ủ ả ớ ộ
CREATE NONCLUSTERED INDEX IX_Customer_AccNo
ON Customer_Details(AccNo)
INCLUDE (Address, City, Sate)
M: XML INDEX
 XML index s c pơ ấ
 Là index đ c t o đ u tiên trên c t XMLượ ạ ầ ộ
 XMl index ch có th t o đ c n u trên b ng đã có khóa chínhỉ ể ạ ượ ế ả
 Ch có th t o đ c m t XML index s c p cho m i c t XML.ỉ ể ạ ượ ộ ơ ấ ỗ ộ
 XML index th c pứ ấ
 Có th t o nhi u XML index th c p trên cùng m t b ng đã có XML s c p.ể ạ ề ứ ấ ộ ả ơ ấ
Type Syntax To Example
S c pơ ấ CREATE PRIMARY XML INDEX Index-Name
ON Table-Name(Column-Name_xml)
CREATE PRIMARY XML INDEX PXML_DocumentStore
ON XMLDocument(DocumentStore)
Th c pứ ấ CREATE XML INDEX Index-Name
ON Table-Name(Column-Name_xml)
USING XML INDEX Index-Name_xml
FOR VALUE | PATH | PROPERTY
CREATE XML INDEX XML_IX_DocumentStore
ON XMLDocument(DocumentStore)
USING XML INDEX PXML_DocumentStore
FOR PATH
N: INDEX Statics
Ch s th ng kê cung c p thông tin v s phân b c a các giá tr trong m t c t, nhóm c t. Vi c t i u hóa truy v n s d ng s li u th ng kê ch s đ tăngỉ ố ố ấ ề ự ố ủ ị ộ ộ ộ ệ ố ư ấ ử ụ ố ệ ố ỉ ố ể
t c quá trình truy v nố ấ
 CREATE Statics
CREATE STATISTICS States_customer
ON customer_details(custID)
 UPDATE Statics
UPDATE Statistics customer_details Stats_customer
 SHOW Statics
DBCC SHOW_STATISTICS
(
database_name [ , target_percent ]
[ , { NOTRUNCATE | TRUNCATEONLY } ]
)
1: Xem thông tin INDEX
 SQL Server 2005 cho phép b n xem các thu c tính, không gian đ c s d ng b i index c a các t t c index đã đ c đ nh nghĩa trên b ng.ạ ộ ượ ử ụ ở ủ ấ ả ượ ị ả
 Có th xem thông tin b ng hai cách sau:ể ằ
 Dùng th t c n i t i sp_helpindex.ủ ụ ộ ạ
sp_helpindex <Table-Name>
 Dùng SQL Server Management Studio.
IV: Phân vùng INDEX (Patitioned INDEX)
 Phân vùng m t b ng hay index là chia d li u thành nhóm các dòng nh h n.ộ ả ữ ệ ỏ ơ
 Th c hi n thao tác qu n lý trên các nhóm dòng s hi u qu h n, vì ch th c hi n trên m t kh i nh d li u thay vì trên toàn b b ng hay index.ự ệ ả ẽ ệ ả ơ ỉ ự ệ ộ ố ỏ ữ ệ ộ ả
 Phân khu b ngả
 Phân khu index
 Các b c t o phân vùng indexướ ạ :
B c 1: T o m t hàm phân vùng (Partition Function)ướ ạ ộ
CREATE PARTITION FUNCTION Tên_hàm_phân_vùng(ki udl_c a_tham_s )ể ủ ố
AS RANGE [LEFT | RIGHT] FOR VALUES (Giá_tr _1, …,Giá_tr _n)ị ị
B c 2: T o m t l c đ phân vùng (Partition Scheme)ướ ạ ộ ượ ồ
CREATE PARTITION SCHEME Tên_l c_đ _phân_vùngượ ồ
AS PARTITION Tên_hàm_phân_vùng
ALL TO (tên_file_group | [PRIMARY] , …)
B c 3: T o b ng phân vùng ho c index phân vùngướ ạ ả ặ
CREATE TABLE Table-Name (Column-Name ki udl, …)ể
ON Tên_l c_đ _phân_vùngượ ồ (Column-Name_phân_vùng)
CREATE [UNIQUE | CLUSTERED | NONCLUSTERED] INDEX Index-Name
ON Table-Name(Column-Name)
[ON Tên_l c_đ _phân_vùng(Column-Name_phân_vùng)ượ ồ ]
 To Example:
T o m t phân vùng hàmạ ộ PF_Employee_Details
CREATE PARTITION FUNCTION PF_Employee_Details (int)
AS RANGE LEFT FOR VALUES (5,10)
T o l c đ phân vùngạ ượ ồ PF_Employee_Details
CREATE PARTITION SCHEME PS_Employee_Details
AS PARTITION PF_Employee_Details
ALL TO ([PRIMARY])
T o b ng Employee_Details đ c phân vùng v iạ ả ượ ớ PF_Employee_Details
CREATE TABLE Employee_Details
(
EmpID int NOT NULL,
FirstName varchar(30) NOT NULL,
LastName varchar(30) NOT NULL,
DateofBirth datetime NOT NULL,
Gender varchar(6) NOT NULL,
City varchar(40) NOT NULL,
) ON PS_Employee_Details (EmpID)
CREATE NONCLUSTERED INDEX Ix_City
ON Employee_Details(City)
ON PS_Employee_Details(EmpId)
V: S phân m nh INDEX (ự ả fragmentation)
 M i khi index đ c t o, thông tin c a index đ c l u trong các trang index. Các trang index đ c s p x p liên ti p và liên k t v i nhau b i các conỗ ượ ạ ủ ượ ư ượ ắ ế ế ế ớ ở
tr .ỏ
 Khi th c hi n thêm ho c xóa d li u s làm cho thông tin c a index b r i rác. Đi u này g i là s phân m nh.ự ệ ặ ữ ệ ẽ ủ ị ả ề ọ ự ả
 S phân m nh làm gi m t c đ th c thi truy v n và th i gian đáp ng s lâu h n.ự ả ả ố ộ ự ấ ờ ứ ẽ ơ
 SQL Server 2005 cho phép t ch c l i index theo đ nh kỳ đ gi m s phân m nh và tăng t c đ đáp ngổ ứ ạ ị ể ả ự ả ố ộ ứ
A: T ch c l i INDEXổ ứ ạ
 T ch c l i index nh m b đi s phân m nh trong clustered index và nonclustered index.ổ ứ ạ ằ ỏ ự ả
 T ch c l i index, là index trong các trang hi n có đ c s p x p l i th t , các trang index tr ng b lo i b .ổ ứ ạ ệ ượ ắ ế ạ ứ ự ố ị ạ ỏ
 Syntax
ALTER INDEX Index-Name
ON Table-Name REORGANIZE
 To Example
ALTER INDEX IX_City
ON Customer_Details REORGANIZE
B: Xây d ng l i INDEXự ạ
 Xây d ng l i index là xóa index đang t n t i và t o l i index m i có cùng tên.ự ạ ồ ạ ạ ạ ớ
 Vi c xây d ng l i index, s phân m nh trong index tr c đ c lo i b hoàn toàn.ệ ự ạ ự ả ướ ượ ạ ỏ
Method Syntax To Example
ALTER ALTER INDEX Index-Name
ON Table-Name REBUILD
ALTER INDEX IX_Customer_City
ON Customer_Details REBUILD
DROP_EXISTING CREATE [UNIQUE | CLUSTERED |
NONCLUSTERED]
CREATE NONCLUSTERED
INDEX IX_Customer_City
INDEX Index-Name
ON Table-Name(Column-Name)
WITH ( DROP_EXISTING= ON | OFF )
ON Customer_Details
WITH (DROP_EXISTING = ON)
C: Vô hi u hóa INDEXệ
 Vô hi u hóa index nh m gi i h n ng i dùng truy xu t index.ệ ằ ớ ạ ườ ấ
 N u vô hi u hóa m t clustered index, ng i dùng ch b gi i h n truy xu t d li u c a b ng đó, còn thông tin trong index không b g b .ế ệ ộ ườ ỉ ị ớ ạ ấ ữ ệ ủ ả ị ỡ ỏ
 Khi nâng c p SQL Server lên phiên b n m i, các index đã đ c đ nh nghĩa trên b ng s t đ ng b vô hi u.ấ ả ớ ượ ị ả ẽ ự ộ ị ệ
 Cú pháp
ALTER INDEX Index-Name
ON Table-Name DISABLE
 Ví dụ
ALTER INDEX IX_Customer_City
ON Customer_Details DISABLE
D: Xóa INDEX
 Syntax
DROP INDEX Index-Name
ON Table-Name
 To Example
DROP INDEX IX_Customer_City
ON Customer_Details
VI: H s đi n đ y FILLFACTORệ ố ể ầ
 SQL Server 2005 cung c p tùy ch n FILLFACTOR đ xác đ nh m t t l cho SQL Server bi t cách đi n đ y d li u trên trang m c lá (leaf level) c aấ ọ ể ị ộ ỷ ệ ế ề ầ ữ ệ ứ ủ
index.
 Giá tr có th gán cho FILLFACTOR t 1 đ n 100. M c đ nh là 0. Giá tr c a FILLFACTOR=100 đ c s d ng cho cácị ể ừ ế ặ ị ị ủ ượ ử ụ
b ng ch đ c.ả ỉ ọ
 Cú pháp
CREATE INDEX <Index-Name>
ON <Table-Name>(Field-Name)
WITH (FILLFACTOR=n)
 Ví dụ
T o clustered indexạ IX_Country trên c tộ Country trong b ngả Customer_Details v i FILLFACTOR=60, 40% c a trang m c lá đ c đ tr ng cho các d li uớ ủ ứ ượ ể ố ữ ệ
đ c thêm v sau.ượ ề
CREATE INDEX IX_Country
ON Customer_Details(Country)
WITH (FILLFACTOR=60)
 Tùy ch n PAD_INDEX dùng đ xác đ nh không gian tr ng trên m i trang(page) m c trung gian (intermediate level) c a index cho vi c tăng tr ngọ ể ị ố ỗ ở ứ ủ ệ ưở
sau này.
 Các tùy ch n PAD_INDEX ch có ích khi FILLFACTOR đ c xác đ nh, b i vì PAD_INDEX s d ng t l theo quy đ nh c a FILLFACTOR.ọ ỉ ượ ị ở ử ụ ỷ ệ ị ủ
 N u tùy ch n PAD_INDEX không đ c ch đ nh ho c đ c thi t l p OFF. SQL Server đ m b o r ng m i trang index m c trung gian có đ không gianế ọ ượ ỉ ị ặ ượ ế ậ ả ả ằ ỗ ứ ủ
tr ng đ ch a ít nh t m t dòng.ố ể ứ ấ ộ
VII: Locking (khóa)
 SQL Server 2005 cung c p tính năng ngăn c n nhi u ng i dùng cùng đ ng th i th c hi n c p nh t trên cùng d li u.ấ ả ề ườ ồ ờ ự ệ ậ ậ ữ ệ
 S d ng tính năng locking, m t ng i dùng này có th ngăn ng i dùng khác ch nh s a d li u mà mình đang th c hi n c p nh t.ử ụ ộ ườ ể ườ ỉ ử ữ ệ ự ệ ậ ậ
 Trong SQL Server 2005 cho phép khóa các m c sau:ở ứ
 Dòng (recommend)
 B ng (ả recommend)
 Trang (recommend)
 C s d li u (notơ ở ữ ệ recommend)
 Vi c th c hi n khóa riêng t ng dòng trong b ng s làm gia tăng s l ng khóa, t n tài nguyên đ l u tr khóa.ệ ự ệ ừ ả ẽ ố ượ ố ể ư ữ
 Query optimizer cho phép áp d ng khóa trang đ gi m b t tài nguyên đ c dùng cho vi c l u khóa.ụ ể ả ớ ượ ệ ư
 Hai tùy ch n sau đ c dùng trong câu l nh CREATE INDEX và ALTER INDEXọ ượ ệ
 ALLOW_ROW_LOCK
 ALLOW_PAGE_LOCK
 Syntax
CREATE INDEX <Index-Name>
ON <Table-Name> (Column-Name)
WITH (ALLOW_ROW_LOCKS = {ON|OFF}, ALLOW_PAGE_LOCKS = {ON|OFF} )
 To Example
CREATE INDEX IX_state
ON customer_details(state)
WITH (ALLOW_ROW_LOCKS=ON, ALLOW_PAGE_LOCKS=ON)
VIII: Tìm ki m dòng (Finding Rows)ế
 Tìm ki m các dòng khi không có các indexế
 Khi không có index t o cho b ng, SQL Server s d ng các view catalog đ tìm các dòng.ạ ả ử ụ ể
 SQL Server s d ng view sys.indexes đ tìm ra trang IAM. Trang IAM có ch a danh sách t t c các trang c a m t b ng, qua đó SQL Server có thử ụ ể ứ ấ ả ủ ộ ả ể
đ c t t c các trang d li u.ọ ấ ả ữ ệ
 Khi view sys.indexes đ c s d ng, query optimizerượ ử ụ (t i u)ố ư ki m tra t t c các dòng trong m t b ng và ch rút ra các dòng đ c tham chi uể ấ ả ộ ả ỉ ượ ế
trong truy v n. Đi u đó làm phát sinh nhi u thao tác nh p/xu t và s d ng nhi u tài nguyên.ấ ề ề ậ ấ ử ụ ề
 Tìm ki m các dòng v i Nonclustered indexế ớ
 Nonclustered index t ng tươ ự nh m t m c l c quy n sách.ư ộ ụ ụ ể
 Các con tr trong nút m c lá c a index tr t i v trí l u tr d li u c a b ng.ỏ ứ ủ ỏ ớ ị ư ữ ữ ệ ủ ả
 Khi th c hi n tìm ki m các dòng b ng cácnonclustered index, câu l nh SELECT đ c dùng cùng v i các c t nonclustered index trong m nh đự ệ ế ằ ệ ượ ớ ộ ệ ề
WHERE.
 Tìm ki m các dòng v i clustered indexế ớ
 Các clustered index l u tr các dòng d li u d a trên các giá tr khóa c a chúng.ư ữ ữ ệ ự ị ủ
 Khi th c hi n tìm ki m các dòng b ng các clustered index, câu l nh SELECT đ c dùng cùng v i các c t clustered index đ c ch ra trong m nhự ệ ế ằ ệ ượ ớ ộ ượ ỉ ệ
đ WHERE.ề
Lesson 3: View
Group 1: N i dungộ
Trong view ta có nh ng v n đ sau:ữ ấ ề
 Gi i thi u Viewớ ệ
 Đ nh nghĩa và gi i thích Viewị ả
 Các lo i Viewạ
 Các l i ích c a Viewợ ủ
 View h th ngệ ố
 Đ nh nghĩa Viewị
 Cách t o viewạ
 Các gi i h n c a viewớ ạ ủ
 S a viewử
 Xóa view
 Cách xem thông tin đ nh nghĩa c a viewị ủ
Group 2: Gi i thi uớ ệ
I: Khái ni mệ
 View là cách đ xem các d li u t m t hay nhi u b ng trong c s d li u.ể ữ ệ ừ ộ ề ả ơ ở ữ ệ
 View là m t b ng o, đ c t o ra b i các c t đ c l y t m t ho c nhi u b ng(table) khác nhau. Các b ng này đ c g i là các b ng c s , chúngộ ả ả ượ ạ ở ộ ượ ấ ừ ộ ặ ề ả ả ượ ọ ả ở ở
có th trong cùng database ho c t các database khác.ể ặ ừ
 View cũng có th ch a các c t l y t m t View khác trong cùng database ho c database khác.ể ứ ộ ấ ừ ộ ặ
 M t View có th có t i đa 1024 c t.ộ ể ố ộ
 View không th s p x p tr khi b n t o m t unique clustered index trên nó.ể ắ ế ừ ạ ạ ộ
 Có th t o nhi u nonclustered index trên View, nh ng v i unique clustered index ch t o m t l n.ể ạ ề ư ớ ỉ ạ ộ ầ
 M t index có th t o trên view n uộ ể ạ ế
 View không ch a các c t t view khác.ứ ộ ừ
 B ng c s n m trong cùng database v i view.ả ơ ở ằ ớ
II: Các lo i viewạ
 View đ c chia thành ba lo iượ ạ
 Standard View (khung nhìn chu n)ẩ
Là view đ c t o v i các c t l y t m t ho c nhi u b ng.ượ ạ ớ ộ ấ ừ ộ ặ ề ả
 Indexed View (khung nhìn ch s )ỉ ố
Là view có m t unique clustered index. Indexed view r t có ích cho các truy v n th ng kê d li u. Indexed view không thích h p cho các b ng th ng xuyênộ ấ ấ ố ữ ệ ợ ả ườ
c p nh t.ậ ậ
 Partitioned View (khung nhìn đ c phân chia)ượ
Là view dùng các d li u đ c phân vùng t m t ho c nhi u b ng. N u b ng c s đ c trên cùng server, view đ c xem nh là partitioned view c c bữ ệ ượ ừ ộ ặ ề ả ế ả ơ ở ượ ượ ư ụ ộ
(local partitioned view ), ng c l i, n u đ t trên sever khác đ c g i là partition view phân tán (Distributed partitioned view).ượ ạ ế ặ ượ ọ
III: u đi m c a viewƯ ể ủ
 u đi m c a viewƯ ể ủ
 B o m t thông qua cá nhân hóa truy xu t.ả ậ ấ
S d ng view, d li u đ c l y t cùng m t ngu n nh ng đ c hi n th khác nhau theo yêu c u c a m i ng i dùng.ử ụ ữ ệ ượ ấ ừ ộ ồ ư ượ ể ị ầ ủ ỗ ườ
 Tùy bi n hi n th d li u.ế ể ị ữ ệ
D li u nh y c m có th đ c che gi u kh i nh ng ng i dùng không có đ th m quy n đ truy xu t.ữ ệ ạ ả ể ượ ấ ỏ ữ ườ ủ ẩ ề ể ấ
Cá nhân hóa truy xu t d li u đ c th c hi n b ng vi c ch cho phép ng i dùng truy xu t database thông qua m t t p nh các viewấ ữ ệ ượ ự ệ ằ ệ ỉ ườ ấ ộ ậ ỏ
 Tr n d li u t nhi u b ng ho c view.ộ ữ ệ ừ ề ả ặ
View có th ghép các c t t nhi u b ng và view khác và chúng đ c hi n th cùng nhau nh l y t m t b ng.ể ộ ừ ề ả ượ ể ị ư ấ ừ ộ ả
 Thao tác trên các b n ghi (record).ả
View cũng có th đ c dùng đ c p nh t d li u cho b ng, n u view đó có ch a t t c các c t quan tr ng c a b ng (nh c t khóa chính, c t NOT NULL).ể ượ ể ậ ậ ữ ệ ả ế ứ ấ ả ộ ọ ủ ả ư ộ ộ
 Ki m tra ràng bu c toàn v n.ể ộ ẹ
N u d li u đ c thêm ho c ch nh s a thông qua view. SQL Server t đ ng ki m tra d li u đ đ m b o ràng bu c toàn v n cho t ng c t.ế ữ ệ ượ ặ ỉ ử ự ộ ể ữ ệ ể ả ả ộ ẹ ừ ộ
IV: View h th ngệ ố
 View h th ng là các view đã đ c đ nh nghĩa s n trong SQL Server.ệ ố ượ ị ẵ
 Thu c tính c a các đ i t ng khác nh table và view đ c l u tr trong các b ng h th ng. Các thu c tính này đ c xem nh là siêu d li uộ ủ ố ượ ư ượ ư ữ ả ệ ố ộ ượ ư ữ ệ
(metadata).
 Siêu d li u có th xem đ c thông qua view h th ng.ữ ệ ể ượ ệ ố
 Các lo i view h th ngạ ệ ố
 Catalog view (View danh m c)ụ
 Information Schema views (View l c đ thông tin)ượ ồ
 Compatibility views (View t ng tích)ươ
 Replication views (View nhân b n)ả
 Dynamic Management views (View qu n lý đ ng)ả ộ
 Notification services views (View d ch v thông báo)ị ụ
Group 3: S d ng VIEWử ụ
I: T o viewạ
 Cú pháp
CREATE VIEW <View-Name>
AS Câu_l nh_Selectệ
 Ví dụ
CREATE VIEW Salary_Details
AS
SELECT EmpID, FirstName, LastName, Salary
FROM Employe_Details
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu
Tài liệu tổng quát về cơ sở dữ liệu

More Related Content

What's hot

TƯ TƯỞNG HỒ CHÍ MINH VỀ CHỦ NGHĨA XÃ HỘI
TƯ TƯỞNG HỒ CHÍ MINH VỀ CHỦ NGHĨA XÃ HỘITƯ TƯỞNG HỒ CHÍ MINH VỀ CHỦ NGHĨA XÃ HỘI
TƯ TƯỞNG HỒ CHÍ MINH VỀ CHỦ NGHĨA XÃ HỘI
Bee Bee
 
TS. BÙI QUANG XUÂN - KỸ NĂNG QUẢN LÝ THÔNG TIN VÀ BẢO ĐẢM AN TOÀN THÔNG TI...
TS. BÙI QUANG XUÂN  -   KỸ NĂNG QUẢN LÝ THÔNG TIN VÀ BẢO ĐẢM AN TOÀN THÔNG TI...TS. BÙI QUANG XUÂN  -   KỸ NĂNG QUẢN LÝ THÔNG TIN VÀ BẢO ĐẢM AN TOÀN THÔNG TI...
TS. BÙI QUANG XUÂN - KỸ NĂNG QUẢN LÝ THÔNG TIN VÀ BẢO ĐẢM AN TOÀN THÔNG TI...
Bùi Quang Xuân
 
Bài giảng: Con người chính trị - TS Bùi Việt Hương
Bài giảng: Con người chính trị - TS Bùi Việt HươngBài giảng: Con người chính trị - TS Bùi Việt Hương
Bài giảng: Con người chính trị - TS Bùi Việt Hương
cuonganh247
 
Câu hỏi tự luận - tư tưởng Hồ Chí Minh
Câu hỏi tự luận - tư tưởng Hồ Chí MinhCâu hỏi tự luận - tư tưởng Hồ Chí Minh
Câu hỏi tự luận - tư tưởng Hồ Chí Minh
MyLan2014
 
Các giao thức sử dụng trong các lớp của mô hình osi
Các giao thức sử dụng trong các lớp của mô hình osiCác giao thức sử dụng trong các lớp của mô hình osi
Các giao thức sử dụng trong các lớp của mô hình osiUDCNTT
 
Đề tài: Thực hiện chính sách dân tộc thời kỳ đổi mới ở Việt Nam
Đề tài: Thực hiện chính sách dân tộc thời kỳ đổi mới ở Việt NamĐề tài: Thực hiện chính sách dân tộc thời kỳ đổi mới ở Việt Nam
Đề tài: Thực hiện chính sách dân tộc thời kỳ đổi mới ở Việt Nam
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Chương VII tư tưởng Hồ Chí Minh về văn hóa
Chương VII  tư tưởng Hồ Chí Minh về văn hóaChương VII  tư tưởng Hồ Chí Minh về văn hóa
Chương VII tư tưởng Hồ Chí Minh về văn hóa
le hue
 
Nâng Cao Hiệu Quả Thực Hiện Chính Sách Dân Tộc Để Phát Triển Kinh Tế - Xã Hội...
Nâng Cao Hiệu Quả Thực Hiện Chính Sách Dân Tộc Để Phát Triển Kinh Tế - Xã Hội...Nâng Cao Hiệu Quả Thực Hiện Chính Sách Dân Tộc Để Phát Triển Kinh Tế - Xã Hội...
Nâng Cao Hiệu Quả Thực Hiện Chính Sách Dân Tộc Để Phát Triển Kinh Tế - Xã Hội...
nataliej4
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
nhungdt08102004
 
50 câu hỏi kiểm tra kỹ năng giao tiếp
50 câu hỏi kiểm tra kỹ năng giao tiếp50 câu hỏi kiểm tra kỹ năng giao tiếp
50 câu hỏi kiểm tra kỹ năng giao tiếplonely2912
 
Slide thuyết trình môn học tư tưởng hồ chí minh
Slide thuyết trình   môn học  tư tưởng hồ chí minhSlide thuyết trình   môn học  tư tưởng hồ chí minh
Slide thuyết trình môn học tư tưởng hồ chí minh
https://www.facebook.com/garmentspace
 
Bai 1
Bai 1Bai 1
Bai 1
anhtrader
 
7. Ba mô hình chính trị Anh-Pháp-Mỹ
7. Ba mô hình chính trị Anh-Pháp-Mỹ7. Ba mô hình chính trị Anh-Pháp-Mỹ
7. Ba mô hình chính trị Anh-Pháp-Mỹ
SỨC KHỎE VÀ CUỘC SỐNG
 
Chương 4 - TƯ TƯỞNG HỒ CHÍ.pptx Nhung bien dong.pdf
Chương 4 - TƯ TƯỞNG HỒ CHÍ.pptx Nhung bien dong.pdfChương 4 - TƯ TƯỞNG HỒ CHÍ.pptx Nhung bien dong.pdf
Chương 4 - TƯ TƯỞNG HỒ CHÍ.pptx Nhung bien dong.pdf
TrucQuynhNguyen6
 
Giáo trình tư tưởng hồ chí minh đại học ngân hàng tp. hcm
Giáo trình tư tưởng hồ chí minh  đại học ngân hàng tp. hcmGiáo trình tư tưởng hồ chí minh  đại học ngân hàng tp. hcm
Giáo trình tư tưởng hồ chí minh đại học ngân hàng tp. hcm
Nam Cengroup
 
Luận văn: Xây dựng hệ thống chính trị cơ sở vững mạnh tại Tây Ninh
Luận văn: Xây dựng hệ thống chính trị cơ sở vững mạnh tại Tây NinhLuận văn: Xây dựng hệ thống chính trị cơ sở vững mạnh tại Tây Ninh
Luận văn: Xây dựng hệ thống chính trị cơ sở vững mạnh tại Tây Ninh
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
3.1. thiết kế mạng cục bộ
3.1. thiết kế mạng cục bộ3.1. thiết kế mạng cục bộ
3.1. thiết kế mạng cục bộKun Din
 
Câu hỏi mạng máy tính
Câu hỏi mạng máy tínhCâu hỏi mạng máy tính
Câu hỏi mạng máy tính
Hưởng Nguyễn
 

What's hot (20)

TƯ TƯỞNG HỒ CHÍ MINH VỀ CHỦ NGHĨA XÃ HỘI
TƯ TƯỞNG HỒ CHÍ MINH VỀ CHỦ NGHĨA XÃ HỘITƯ TƯỞNG HỒ CHÍ MINH VỀ CHỦ NGHĨA XÃ HỘI
TƯ TƯỞNG HỒ CHÍ MINH VỀ CHỦ NGHĨA XÃ HỘI
 
TS. BÙI QUANG XUÂN - KỸ NĂNG QUẢN LÝ THÔNG TIN VÀ BẢO ĐẢM AN TOÀN THÔNG TI...
TS. BÙI QUANG XUÂN  -   KỸ NĂNG QUẢN LÝ THÔNG TIN VÀ BẢO ĐẢM AN TOÀN THÔNG TI...TS. BÙI QUANG XUÂN  -   KỸ NĂNG QUẢN LÝ THÔNG TIN VÀ BẢO ĐẢM AN TOÀN THÔNG TI...
TS. BÙI QUANG XUÂN - KỸ NĂNG QUẢN LÝ THÔNG TIN VÀ BẢO ĐẢM AN TOÀN THÔNG TI...
 
Chap9
Chap9Chap9
Chap9
 
Bài giảng: Con người chính trị - TS Bùi Việt Hương
Bài giảng: Con người chính trị - TS Bùi Việt HươngBài giảng: Con người chính trị - TS Bùi Việt Hương
Bài giảng: Con người chính trị - TS Bùi Việt Hương
 
Câu hỏi tự luận - tư tưởng Hồ Chí Minh
Câu hỏi tự luận - tư tưởng Hồ Chí MinhCâu hỏi tự luận - tư tưởng Hồ Chí Minh
Câu hỏi tự luận - tư tưởng Hồ Chí Minh
 
Các giao thức sử dụng trong các lớp của mô hình osi
Các giao thức sử dụng trong các lớp của mô hình osiCác giao thức sử dụng trong các lớp của mô hình osi
Các giao thức sử dụng trong các lớp của mô hình osi
 
Đề tài: Thực hiện chính sách dân tộc thời kỳ đổi mới ở Việt Nam
Đề tài: Thực hiện chính sách dân tộc thời kỳ đổi mới ở Việt NamĐề tài: Thực hiện chính sách dân tộc thời kỳ đổi mới ở Việt Nam
Đề tài: Thực hiện chính sách dân tộc thời kỳ đổi mới ở Việt Nam
 
BTL Lập trình C#
BTL Lập trình C#BTL Lập trình C#
BTL Lập trình C#
 
Chương VII tư tưởng Hồ Chí Minh về văn hóa
Chương VII  tư tưởng Hồ Chí Minh về văn hóaChương VII  tư tưởng Hồ Chí Minh về văn hóa
Chương VII tư tưởng Hồ Chí Minh về văn hóa
 
Nâng Cao Hiệu Quả Thực Hiện Chính Sách Dân Tộc Để Phát Triển Kinh Tế - Xã Hội...
Nâng Cao Hiệu Quả Thực Hiện Chính Sách Dân Tộc Để Phát Triển Kinh Tế - Xã Hội...Nâng Cao Hiệu Quả Thực Hiện Chính Sách Dân Tộc Để Phát Triển Kinh Tế - Xã Hội...
Nâng Cao Hiệu Quả Thực Hiện Chính Sách Dân Tộc Để Phát Triển Kinh Tế - Xã Hội...
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
50 câu hỏi kiểm tra kỹ năng giao tiếp
50 câu hỏi kiểm tra kỹ năng giao tiếp50 câu hỏi kiểm tra kỹ năng giao tiếp
50 câu hỏi kiểm tra kỹ năng giao tiếp
 
Slide thuyết trình môn học tư tưởng hồ chí minh
Slide thuyết trình   môn học  tư tưởng hồ chí minhSlide thuyết trình   môn học  tư tưởng hồ chí minh
Slide thuyết trình môn học tư tưởng hồ chí minh
 
Bai 1
Bai 1Bai 1
Bai 1
 
7. Ba mô hình chính trị Anh-Pháp-Mỹ
7. Ba mô hình chính trị Anh-Pháp-Mỹ7. Ba mô hình chính trị Anh-Pháp-Mỹ
7. Ba mô hình chính trị Anh-Pháp-Mỹ
 
Chương 4 - TƯ TƯỞNG HỒ CHÍ.pptx Nhung bien dong.pdf
Chương 4 - TƯ TƯỞNG HỒ CHÍ.pptx Nhung bien dong.pdfChương 4 - TƯ TƯỞNG HỒ CHÍ.pptx Nhung bien dong.pdf
Chương 4 - TƯ TƯỞNG HỒ CHÍ.pptx Nhung bien dong.pdf
 
Giáo trình tư tưởng hồ chí minh đại học ngân hàng tp. hcm
Giáo trình tư tưởng hồ chí minh  đại học ngân hàng tp. hcmGiáo trình tư tưởng hồ chí minh  đại học ngân hàng tp. hcm
Giáo trình tư tưởng hồ chí minh đại học ngân hàng tp. hcm
 
Luận văn: Xây dựng hệ thống chính trị cơ sở vững mạnh tại Tây Ninh
Luận văn: Xây dựng hệ thống chính trị cơ sở vững mạnh tại Tây NinhLuận văn: Xây dựng hệ thống chính trị cơ sở vững mạnh tại Tây Ninh
Luận văn: Xây dựng hệ thống chính trị cơ sở vững mạnh tại Tây Ninh
 
3.1. thiết kế mạng cục bộ
3.1. thiết kế mạng cục bộ3.1. thiết kế mạng cục bộ
3.1. thiết kế mạng cục bộ
 
Câu hỏi mạng máy tính
Câu hỏi mạng máy tínhCâu hỏi mạng máy tính
Câu hỏi mạng máy tính
 

Viewers also liked

Internship report Robin Corral
Internship report Robin CorralInternship report Robin Corral
Internship report Robin Corral
Robin Corral
 
Mississippi's Navy Connections
Mississippi's Navy ConnectionsMississippi's Navy Connections
Mississippi's Navy Connections
PictureYourself
 
Speciale. JND209. Jeppe Stavnsbo Sørensen
Speciale. JND209. Jeppe Stavnsbo SørensenSpeciale. JND209. Jeppe Stavnsbo Sørensen
Speciale. JND209. Jeppe Stavnsbo Sørensen
Jeppe Stavnsbo
 
c.v of Ibrahim salah ibrahim
c.v of Ibrahim salah ibrahimc.v of Ibrahim salah ibrahim
c.v of Ibrahim salah ibrahim
ibrahim alhag
 
Yasir new CV
Yasir new CVYasir new CV
Yasir new CV
yasir mustafa
 
QNB Group China Economic Insight 2015
QNB Group China Economic Insight 2015QNB Group China Economic Insight 2015
QNB Group China Economic Insight 2015
Joannes Mongardini
 
New base special 27 january 2014
New base special  27 january 2014New base special  27 january 2014
New base special 27 january 2014
Khaled Al Awadi
 
M.Hussein CV pdf
M.Hussein CV pdfM.Hussein CV pdf
M.Hussein CV pdf
Muhammed Kanuga
 
Resume
ResumeResume
An Empirical Analysis of Attributes Influencing... Shirin - Abdulaziz -Chris ...
An Empirical Analysis of Attributes Influencing... Shirin - Abdulaziz -Chris ...An Empirical Analysis of Attributes Influencing... Shirin - Abdulaziz -Chris ...
An Empirical Analysis of Attributes Influencing... Shirin - Abdulaziz -Chris ...
Shirin Avazxanovna
 
QNB Group United Arab Emirates Economic Insight 2013
QNB Group United Arab Emirates Economic Insight 2013QNB Group United Arab Emirates Economic Insight 2013
QNB Group United Arab Emirates Economic Insight 2013
Joannes Mongardini
 
Pro mark3rtk reference manual
Pro mark3rtk reference manualPro mark3rtk reference manual
Pro mark3rtk reference manual
andy jaya
 
Annual_Report_2016
Annual_Report_2016Annual_Report_2016
Annual_Report_2016
Elizabeth Ingram, CFRE
 
C.V Osman 2015
C.V Osman 2015C.V Osman 2015
C.V Osman 2015
Osman Hussain
 
Afro tech profile
Afro tech profileAfro tech profile
Afro tech profile
afrotech
 
Bcm news wire issue 425
Bcm news wire issue 425Bcm news wire issue 425
Bcm news wire issue 425
The Business Council of Mongolia
 
PROJECT PORTFOLIO-Antony Ochieng Odhiambo.
PROJECT PORTFOLIO-Antony Ochieng Odhiambo.PROJECT PORTFOLIO-Antony Ochieng Odhiambo.
PROJECT PORTFOLIO-Antony Ochieng Odhiambo.
Anthony Ochieng.
 
QNB Group Indonesia Economic Insight 2014
QNB Group Indonesia Economic Insight 2014QNB Group Indonesia Economic Insight 2014
QNB Group Indonesia Economic Insight 2014
Joannes Mongardini
 
Sterling Currency Group Dinar Banker Court Documents Updated 10-16-2016
Sterling Currency Group Dinar Banker Court Documents Updated 10-16-2016Sterling Currency Group Dinar Banker Court Documents Updated 10-16-2016
Sterling Currency Group Dinar Banker Court Documents Updated 10-16-2016
Iraqi Dinar News
 
Ihs annual report 2010
Ihs annual report 2010Ihs annual report 2010
Ihs annual report 2010
Michael Olafusi
 

Viewers also liked (20)

Internship report Robin Corral
Internship report Robin CorralInternship report Robin Corral
Internship report Robin Corral
 
Mississippi's Navy Connections
Mississippi's Navy ConnectionsMississippi's Navy Connections
Mississippi's Navy Connections
 
Speciale. JND209. Jeppe Stavnsbo Sørensen
Speciale. JND209. Jeppe Stavnsbo SørensenSpeciale. JND209. Jeppe Stavnsbo Sørensen
Speciale. JND209. Jeppe Stavnsbo Sørensen
 
c.v of Ibrahim salah ibrahim
c.v of Ibrahim salah ibrahimc.v of Ibrahim salah ibrahim
c.v of Ibrahim salah ibrahim
 
Yasir new CV
Yasir new CVYasir new CV
Yasir new CV
 
QNB Group China Economic Insight 2015
QNB Group China Economic Insight 2015QNB Group China Economic Insight 2015
QNB Group China Economic Insight 2015
 
New base special 27 january 2014
New base special  27 january 2014New base special  27 january 2014
New base special 27 january 2014
 
M.Hussein CV pdf
M.Hussein CV pdfM.Hussein CV pdf
M.Hussein CV pdf
 
Resume
ResumeResume
Resume
 
An Empirical Analysis of Attributes Influencing... Shirin - Abdulaziz -Chris ...
An Empirical Analysis of Attributes Influencing... Shirin - Abdulaziz -Chris ...An Empirical Analysis of Attributes Influencing... Shirin - Abdulaziz -Chris ...
An Empirical Analysis of Attributes Influencing... Shirin - Abdulaziz -Chris ...
 
QNB Group United Arab Emirates Economic Insight 2013
QNB Group United Arab Emirates Economic Insight 2013QNB Group United Arab Emirates Economic Insight 2013
QNB Group United Arab Emirates Economic Insight 2013
 
Pro mark3rtk reference manual
Pro mark3rtk reference manualPro mark3rtk reference manual
Pro mark3rtk reference manual
 
Annual_Report_2016
Annual_Report_2016Annual_Report_2016
Annual_Report_2016
 
C.V Osman 2015
C.V Osman 2015C.V Osman 2015
C.V Osman 2015
 
Afro tech profile
Afro tech profileAfro tech profile
Afro tech profile
 
Bcm news wire issue 425
Bcm news wire issue 425Bcm news wire issue 425
Bcm news wire issue 425
 
PROJECT PORTFOLIO-Antony Ochieng Odhiambo.
PROJECT PORTFOLIO-Antony Ochieng Odhiambo.PROJECT PORTFOLIO-Antony Ochieng Odhiambo.
PROJECT PORTFOLIO-Antony Ochieng Odhiambo.
 
QNB Group Indonesia Economic Insight 2014
QNB Group Indonesia Economic Insight 2014QNB Group Indonesia Economic Insight 2014
QNB Group Indonesia Economic Insight 2014
 
Sterling Currency Group Dinar Banker Court Documents Updated 10-16-2016
Sterling Currency Group Dinar Banker Court Documents Updated 10-16-2016Sterling Currency Group Dinar Banker Court Documents Updated 10-16-2016
Sterling Currency Group Dinar Banker Court Documents Updated 10-16-2016
 
Ihs annual report 2010
Ihs annual report 2010Ihs annual report 2010
Ihs annual report 2010
 

Similar to Tài liệu tổng quát về cơ sở dữ liệu

Android program 6167
Android program 6167Android program 6167
Android program 6167
PhongSPKT
 
Tudonghoale
TudonghoaleTudonghoale
TudonghoaleVu Le
 
Lập trình web đại học tài nguyên môi trường
Lập trình web   đại học tài nguyên môi trườngLập trình web   đại học tài nguyên môi trường
Lập trình web đại học tài nguyên môi trườngKiên Thỏ
 
Software Stack là gì.pdf
Software Stack là gì.pdfSoftware Stack là gì.pdf
Software Stack là gì.pdf
Growup Work
 
NoSql Database
NoSql DatabaseNoSql Database
NoSql Database
Nguyen Thieu
 
Tìm hiểu và triển khai MySQL Server trên Linux server
Tìm hiểu và triển khai MySQL Server trên Linux serverTìm hiểu và triển khai MySQL Server trên Linux server
Tìm hiểu và triển khai MySQL Server trên Linux server
Dung Duong
 
Hệ quản trị cơ sở dữ liệu tạ thị thu phượng[bookbooming.com]
Hệ quản trị cơ sở dữ liệu   tạ thị thu phượng[bookbooming.com]Hệ quản trị cơ sở dữ liệu   tạ thị thu phượng[bookbooming.com]
Hệ quản trị cơ sở dữ liệu tạ thị thu phượng[bookbooming.com]bookbooming1
 
Hung dan cai dat va su dung dot netnuke5.x
Hung dan cai dat va su dung dot netnuke5.xHung dan cai dat va su dung dot netnuke5.x
Hung dan cai dat va su dung dot netnuke5.x
Ly hai
 
Bao thuc tap tot nghiep vo minh truong 10299191
Bao thuc tap tot nghiep vo minh truong 10299191Bao thuc tap tot nghiep vo minh truong 10299191
Bao thuc tap tot nghiep vo minh truong 10299191Cu Sock
 
Bao cao wesite bán giày.docx
Bao cao wesite bán giày.docxBao cao wesite bán giày.docx
Bao cao wesite bán giày.docx
ssuser11005a
 
Báo cáo thực tập
Báo cáo thực tậpBáo cáo thực tập
Báo cáo thực tậpTrần Hiệu
 
tiểu luận wincc
tiểu luận wincctiểu luận wincc
tiểu luận wincc
Namzekeng Nzk
 
Phan mem erp omega ho so nang luc
Phan mem erp omega ho so nang lucPhan mem erp omega ho so nang luc
Phan mem erp omega ho so nang luc
Phan Mem Erp Omega
 
Giải pháp VED - TNMT full.pptx
Giải pháp VED - TNMT full.pptxGiải pháp VED - TNMT full.pptx
Giải pháp VED - TNMT full.pptx
VDI
 
Huongdancaidat moodle 162(kco j
Huongdancaidat moodle 162(kco jHuongdancaidat moodle 162(kco j
Huongdancaidat moodle 162(kco jLan Nguyen
 
Gns3 documentation-vi
Gns3 documentation-viGns3 documentation-vi
Gns3 documentation-viHate To Love
 
Gns3 documentation
Gns3 documentationGns3 documentation
Gns3 documentation
tranbaanh
 
Core java 2
Core java 2Core java 2

Similar to Tài liệu tổng quát về cơ sở dữ liệu (20)

Android program 6167
Android program 6167Android program 6167
Android program 6167
 
Tudonghoale
TudonghoaleTudonghoale
Tudonghoale
 
Chuong 02 access
Chuong 02   accessChuong 02   access
Chuong 02 access
 
Lập trình web đại học tài nguyên môi trường
Lập trình web   đại học tài nguyên môi trườngLập trình web   đại học tài nguyên môi trường
Lập trình web đại học tài nguyên môi trường
 
Software Stack là gì.pdf
Software Stack là gì.pdfSoftware Stack là gì.pdf
Software Stack là gì.pdf
 
NoSql Database
NoSql DatabaseNoSql Database
NoSql Database
 
Tìm hiểu và triển khai MySQL Server trên Linux server
Tìm hiểu và triển khai MySQL Server trên Linux serverTìm hiểu và triển khai MySQL Server trên Linux server
Tìm hiểu và triển khai MySQL Server trên Linux server
 
Hệ quản trị cơ sở dữ liệu tạ thị thu phượng[bookbooming.com]
Hệ quản trị cơ sở dữ liệu   tạ thị thu phượng[bookbooming.com]Hệ quản trị cơ sở dữ liệu   tạ thị thu phượng[bookbooming.com]
Hệ quản trị cơ sở dữ liệu tạ thị thu phượng[bookbooming.com]
 
Hung dan cai dat va su dung dot netnuke5.x
Hung dan cai dat va su dung dot netnuke5.xHung dan cai dat va su dung dot netnuke5.x
Hung dan cai dat va su dung dot netnuke5.x
 
Bao thuc tap tot nghiep vo minh truong 10299191
Bao thuc tap tot nghiep vo minh truong 10299191Bao thuc tap tot nghiep vo minh truong 10299191
Bao thuc tap tot nghiep vo minh truong 10299191
 
Bao cao wesite bán giày.docx
Bao cao wesite bán giày.docxBao cao wesite bán giày.docx
Bao cao wesite bán giày.docx
 
Baocaovpn
BaocaovpnBaocaovpn
Baocaovpn
 
Báo cáo thực tập
Báo cáo thực tậpBáo cáo thực tập
Báo cáo thực tập
 
tiểu luận wincc
tiểu luận wincctiểu luận wincc
tiểu luận wincc
 
Phan mem erp omega ho so nang luc
Phan mem erp omega ho so nang lucPhan mem erp omega ho so nang luc
Phan mem erp omega ho so nang luc
 
Giải pháp VED - TNMT full.pptx
Giải pháp VED - TNMT full.pptxGiải pháp VED - TNMT full.pptx
Giải pháp VED - TNMT full.pptx
 
Huongdancaidat moodle 162(kco j
Huongdancaidat moodle 162(kco jHuongdancaidat moodle 162(kco j
Huongdancaidat moodle 162(kco j
 
Gns3 documentation-vi
Gns3 documentation-viGns3 documentation-vi
Gns3 documentation-vi
 
Gns3 documentation
Gns3 documentationGns3 documentation
Gns3 documentation
 
Core java 2
Core java 2Core java 2
Core java 2
 

Tài liệu tổng quát về cơ sở dữ liệu

  • 1. QU N LÍ C S DATAẢ Ơ Ở Chapter 1: DATABASE Part 1: Các t vi t t t và nghĩaừ ế ắ Vi t t tế ắ T khóaừ Nghĩa Data D ̃ liêuư ̣ Database C s d ̃ liêuơ ở ư ̣ DBMS Database Managerment System H qu n tr c s d ̃ liêuệ ả ị ơ ở ư ̣ RDBMS Relational Database Managerment System H qu n tr c s d ̃ liêu quan hệ ả ị ơ ở ư ̣ ệ MDBMS Multi Database Managerment System H qu n tr DATABASE đa ph ng ti nệ ả ị ươ ệ MIRS H th ng truy v n thông tin đa ph ng ti nệ ố ấ ươ ệ SMDS H th ng DATABASE đa ph ng ti n có c u trúcệ ố ươ ệ ấ IR Information Retrival Truy xu t thông tinấ MIRS Multimedia Information Retrieval System H th ng truy xu t thông tin đa ph ng ti nệ ố ấ ươ ệ XML eXtenside Markup language Ngôn ng đánh d u m r ngữ ấ ở ộ SQL Structured Query Language Ngôn ng truy v n c u trúcữ ấ ấ Metadata Siêu data Entity Th c thự ể Multimedia Đa ph ng ti nươ ệ Media Ph ng ti nươ ệ Part 2: Công c s d ngụ ử ụ Lesson 1: SQL server 2008 Lesson 2: mySQL C s d li u MySQL đã tr thành c s d li u mã ngu n m ph bi n nh t trên th gi i vì c ch x lý nhanh và n đ nh c a nó, s đáng tin c y cao vàơ ở ữ ệ ở ơ ở ữ ệ ồ ở ổ ế ấ ế ớ ơ ế ử ổ ị ủ ự ậ d s d ng.ễ ử ụ
  • 2. Nó đ c s d ng m i n i – ngay c châu Nam C c - b i các nhà phát tri n Web riêng l cũng nh r t nhi u các t ch c l n nh t trên th gi i đ ti t ki mượ ử ụ ọ ơ ả ự ở ể ẻ ư ấ ề ổ ứ ớ ấ ế ớ ể ế ệ th i gian và ti n b c cho nh ng Web sites có dung l ng l n, ph n m m đóng gói – bao g m c nh ng nhà đi đ u trong lĩnh v c công nghi p nh Yahoo!,ờ ề ạ ữ ượ ớ ầ ề ồ ả ữ ầ ự ệ ư Alcatel-Lucent, Google, Nokia, YouTube và Zappos.com. MySQL không ch là c s d li u mã ngu n m ph bi n nh t trên th gi i, nó còn tr thành c s d li u đ c ch n cho th h m i c a các ng d ngỉ ơ ở ữ ệ ồ ở ổ ế ấ ế ớ ở ơ ở ữ ệ ượ ọ ế ệ ớ ủ ứ ụ xây d ng trên n n Linux, Apache, MySQL, PHP/Perl/Python. MySQL ch y trên h n 20 flatform bao g m: Linux, Windows, OS/X, HP-UX, AIX, Netware, mangự ề ạ ơ ồ đ n cho b n tính linh ho t trong vi c s d ng.ế ạ ạ ệ ử ụ Dù b n m i làm quen v i công ngh c s d li u hay là m t nhà phát tri n giàu kinh nghi m ho c là DBA, MySQL s giúp b n thành công.ạ ớ ớ ệ ơ ở ữ ệ ộ ể ệ ặ ẽ ạ Đây là 10 lý do b n nên ch n MySQL cho ng d ng c a mình:ạ ọ ứ ụ ủ  Tính linh ho tạ Máy ch c s d li u MySQL cung c p đ c tính linh ho t, có s c ch a đ x lý các ng d ng đ c nhúng sâu v i dung l ng ch 1MB đ ch y các kho dủ ơ ở ữ ệ ấ ặ ạ ứ ứ ể ử ứ ụ ượ ớ ượ ỉ ể ạ ữ li u đ s lên đ n hàng terabytes thông tin. S linh ho t v flatform là m t đ c tính l n c a MySQL v i t t c các phiên b n c a Linux, Unix, và Windowsệ ồ ộ ế ự ạ ề ộ ặ ớ ủ ớ ấ ả ả ủ đang đ c h tr . Và dĩ nhiên, tính ch t mã ngu n m c a MySQL cho phép s tùy bi n hoàn toàn theo ý mu n đ thêm vào các yêu c u thích h p choượ ỗ ợ ấ ồ ở ủ ự ế ố ể ầ ợ database server.  Tính th c thi caoự Ki n trúc storage-engine cho phép các chuyên gia c s d li u c u hình máy ch c s d li u MySQL đ c tr ng cho các ng d ng đ c thù. Dù ng d ng làế ơ ở ữ ệ ấ ủ ơ ở ữ ệ ặ ư ứ ụ ặ ứ ụ m t h th ng x lý giao d ch t c đ cao hay web site dung l ng l n ph c v hàng tri u yêu c u m i ngày, MySQL có th đáp ng kh năng x lý nh ngộ ệ ố ử ị ố ộ ượ ớ ụ ụ ệ ầ ỗ ể ứ ả ử ữ đòi h i kh t khe nh t c a b t kì h th ng nào. V i các ti n ích t i t c đ cao, đ c bi t b nh caches, và các c ch x lý nâng cao khác, MySQL đ a ra t tỏ ắ ấ ủ ấ ệ ố ớ ệ ả ố ộ ặ ệ ộ ớ ơ ế ử ư ấ c các vũ khí c n ph i có cho các h th ng doanh nghi p khó tính ngày nay.ả ầ ả ệ ố ệ  Có th s d ng ngayể ử ụ S đáng tin c y cao và tính “mì ăn li n” là nh ng tiêu chu n đ m b o c a MySQL. MySQL đ a ra nhi u tùy ch n có th dùng ngay tự ậ ề ữ ẩ ả ả ủ ư ề ọ ể ừ c u hình tái t oấ ạ ch /t t c đ cao, đ các nhà phân ph i th 3 đ a ra nh ng gi i pháp có th dùng ngay duy nh t cho server c s d li u MySQL.ủ ớ ố ộ ể ố ứ ư ữ ả ể ấ ơ ở ữ ệ  H tr giao d ch m nhỗ ợ ị ạ MySQL đ a ra m t trong s nh ng engine giao d ch c s d li u m nh nh t trên th tr ng. Các đ c tr ng bao g m h tr giao d ch ACID hoàn thi nư ộ ố ữ ị ơ ở ữ ệ ạ ấ ị ườ ặ ư ồ ỗ ợ ị ệ ( Atomic – t đ ng, Consistent – th ng nh t, Isolated – đ c l p, Durable – b n v ng), khóa m c dòng không h n ch , kh năng giao d ch đ c phân lo i, vàự ộ ố ấ ộ ậ ề ữ ứ ạ ế ả ị ượ ạ h tr giao d ch đa d ng (multi-version) mà ng i đ c không bao gi gây tr ng i cho ng i vi t và ng c l i. Tính toàn v n c a d li u cũng ph i đ cỗ ợ ị ạ ườ ọ ờ ở ạ ườ ế ượ ạ ẹ ủ ữ ệ ả ượ b o đ m trong su t quá trình server có hi u l c, các m c giao d ch đ c l p đ c chuyên môn hóa, và phát hi n khóa ch t ngay l p t c.ả ả ố ệ ự ứ ị ộ ậ ượ ệ ế ậ ứ  N i l u tr Web và Data đáng tin c yơ ư ữ ậ MySQL là nhà máy chu n cho các web sites ph i trao đ i th ng xuyên vì nó có engine x lý t c đ cao, kh năng chèn d li u nhanh ghê g m, và h trẩ ả ổ ườ ử ố ộ ả ữ ệ ớ ỗ ợ m nh cho các ch c năng chuyên d ng c a web nh tìmạ ứ ụ ủ ư ki m văn b n nhanh. Nh ng tính năng này cũng đ c áp d ng cho môi tr ng l u tr d li u màế ả ữ ượ ụ ườ ư ữ ữ ệ MySQL tăng c ng đ n hàng terabyte cho các server đ n. Các tính năng khác nh b ng nh chính, cây B và ch s băm, và b ng l u tr đã đ c cô l i đườ ế ơ ư ả ớ ỉ ố ả ư ữ ượ ạ ể gi m các yêu c u l u tr đ n 80% làm cho MySQL tr thành l a ch n t t nh t cho c ng d ng web và các ng d ng doanh nghi p.ả ầ ư ữ ế ở ự ọ ố ấ ả ứ ụ ứ ụ ệ
  • 3.  Ch đ b o m t d li u m nhế ộ ả ậ ữ ệ ạ Vì b o m t d li u cho m t công ty là công vi c s m t c a các chuyên gia v c s d li u, MySQL đ a ra tính năng b o m t đ c bi t ch c ch n d li u sả ậ ữ ệ ộ ệ ố ộ ủ ề ơ ở ữ ệ ư ả ậ ặ ệ ắ ắ ữ ệ ẽ đ c b o m t tuy t đ i. Trong vi c xác nh n truy c p c s d li u, MySQL cung c pượ ả ậ ệ ố ệ ậ ậ ơ ở ữ ệ ấ các kĩ thu t m nh mà ch c ch n ch có ng i s d ng đã đ c xácậ ạ ắ ắ ỉ ườ ử ụ ượ nh n m i có th truy nh p đ c vào server c s d li u, v i kh năng này đ ch n ng i dùng ngay t m c máy khách là đi u có th làm đ c. SSH vàậ ớ ể ậ ượ ơ ở ữ ệ ớ ả ể ặ ườ ừ ứ ề ể ượ SSL cũng đ c h tr đ ch c ch n các k t n i đ c an toàn và b o m t. M t đ i t ng framework đ c quy n đ c đ a ra mà ng i s d ng ch có thượ ỗ ợ ể ắ ắ ế ố ượ ả ậ ộ ố ượ ặ ề ượ ư ườ ử ụ ỉ ể nhìn th y d li u, các hàm mã hóa và gi i mã d li u m nh ch c ch n r ng d li u s đ c b o m t. Cu i cùng, ti n ích backup và recovery cung c p b iấ ữ ệ ả ữ ệ ạ ắ ắ ằ ữ ệ ẽ ượ ả ậ ố ệ ấ ở MySQL và các hãng ph n m m th 3 cho phép backup logic và v t lý hoàn thi n cũng nh recovery toàn b ho c t i m t th i đi m nào đó.ầ ề ứ ậ ệ ư ộ ặ ạ ộ ờ ể  S phát tri n ng d ng h n h pự ể ứ ụ ỗ ợ M t trong s các lý do khi n cho MySQL là c s d li u mã ngu n m ph bi n nh t th gi i là nó cung c p h tr h n h p cho b t kì s phát tri n ngộ ố ế ơ ở ữ ệ ồ ở ổ ế ấ ế ớ ấ ỗ ợ ỗ ợ ấ ự ể ứ d ng nào c n. Trong c s d li u, h tr có th đ c tìm th y trong các stored procedure, trigger, function, view, cursor, ANSI-standard SQL, và nhi uụ ầ ơ ở ữ ệ ỗ ợ ể ượ ấ ề n a. V i các ng d ng nhúng, th vi n plug-in có s n đ nhúng vào c s d li u MySQL h trữ ớ ứ ụ ư ệ ẵ ể ơ ở ữ ệ ỗ ợ trong b t kì ng d ngấ ứ ụ nào. MySQL cũng cung c p các bấ ộ k t n i nh : ODBC, JDBC, … đ cho phép t t c các form c a ng d ng s d ng MySQL nh m t server qu n lí d li u đ c u tiên.ế ố ư ể ấ ả ủ ứ ụ ử ụ ư ộ ả ữ ệ ượ ư  D dàng qu n lýễ ả MySQL trình di n kh năng cài đ t nhanh đ c bi t v i th i gian m c trung bình t lúc download ph n m m đ n khi cài đ t hoàn thành ch m t ch a đ yễ ả ặ ặ ệ ớ ờ ở ứ ừ ầ ề ế ặ ỉ ấ ư ầ 15 phút. Đi u này đúng cho dù flatform là Microsoft Windows, Linux, Macintosh hay Unix. Khi đã đ c cài đ t, tính năng t qu n lý nh t đ ng m r ngề ượ ặ ự ả ư ự ộ ở ộ không gian, t kh i đ ng l i, và c u hình đ ng s n sàng cho ng i qu n tr c s d li u làm vi c. MySQL cũng cung c p m t b hoàn thi n các công cự ở ộ ạ ấ ộ ẵ ườ ả ị ơ ở ữ ệ ệ ấ ộ ộ ệ ụ qu n lý đ h a cho phép m t DBA qu n lý, s a ch a, và đi u khi n ho t đ ng c a nhi u server MySQL t m t máy tr m đ n. Nhi u công c c a các hãngả ồ ọ ộ ả ử ữ ề ể ạ ộ ủ ề ừ ộ ạ ơ ề ụ ủ ph n m m th 3 cũng có s n trong MySQL đ đi u khi n các tác v t thi t k d li u và ETL, đ n vi c qu n tr c s d li u hoàn thi n, qu n lý côngầ ề ứ ẵ ể ề ể ụ ừ ế ế ữ ệ ế ệ ả ị ơ ở ữ ệ ệ ả vi c, và th c hi n ki m tra.ệ ự ệ ể  Mã ngu n m t do và h tr 24/7ồ ở ự ỗ ợ Nhi u công ty l ng l trong vi c giao phó toàn b cho ph n m m mã ngu n m vì h tin h không th tìm đ c m t cách h tr hay m ng l i an toànề ưỡ ự ệ ộ ầ ề ồ ở ọ ọ ể ượ ộ ỗ ợ ạ ướ ph c v chuyên nghi p, hi n t i, h tin vào ph n m m có b n quy n đ ch c ch n v s thành công toàn di n cho các ng d ng ch ch t c a h . Nh ngụ ụ ệ ệ ạ ọ ầ ề ả ề ể ắ ắ ề ự ệ ứ ụ ủ ố ủ ọ ữ lo l ng c a h có th đ c d p b v i MySQL, s b i th ng là có trong m ng l i MySQL.ắ ủ ọ ể ượ ẹ ỏ ớ ự ồ ườ ạ ướ  T ng chi phí th p nh tổ ấ ấ B ng cách s d ng MySQL cho các d án phát tri n m i, các công ty đang th y rõ vi c ti t ki m chi phí. Đ c hoàn thành thông qua s d ng server c sằ ử ụ ự ể ớ ấ ệ ế ệ ượ ử ụ ơ ở d li u MySQL và ki n trúc scale-out, các doanh nghi p đã tìm ra cái mà h có th đ t đ c m c ng c nhiên v kh năng x lý. Thêm vào đó, tính tin c yữ ệ ế ệ ọ ể ạ ượ ở ứ ạ ề ả ử ậ và d duy trì c a MySQL m c trung bình mà ng i qu n tr c s d li u không ph i m t nhi u th i gian s a ch a hay v n đ th i gian ch t.ễ ủ ở ứ ườ ả ị ơ ở ữ ệ ả ấ ề ờ ử ữ ấ ề ờ ế
  • 4. Lesson 3: PHP Part 3: Các khái ni m v DBMSệ ề Lesson 1: DATA và DATABASE Thông tin là DATA và t ng h p các DATA l i tr thành thông tin và nó là thành ph n quan tr ng trong b t kỳ lĩnh v c, công vi c nàoổ ợ ạ ở ầ ọ ấ ự ệ Khái ni m DATA h p h n khái ni m thông tin. Thông tin luôn mang ý nghĩa và g m nhi u giá tr DATAệ ẹ ơ ệ ồ ề ị DATABASE là m t t p h p DATA. Có th hi u r ng DATABASE là m t c ch t ch c có kh năng l u tr thông tin. V y DATABASE là m t t p h pộ ậ ợ ể ể ằ ộ ơ ế ổ ứ ả ư ữ ậ ộ ậ ợ DATA đ c t ch c s p x p sao cho n i dung c a nó có th d dàng đ c truy c p , qu n lí và c p nh tượ ổ ứ ắ ế ộ ủ ể ễ ượ ậ ả ậ ậ Lesson 2: Qu n lí DATAả Qu n tr DATA là vi c qu n lý l ng l n thông tin, bao g m c l u tr thông tin và c ch thao tác thông tin trên các thông tin đó. Có 2 ph ngả ị ệ ả ượ ớ ồ ả ư ữ ơ ế ươ pháp qu n tr DATA khác nhau là h th ng d a trên t p tin và h th ng DATABASEả ị ệ ố ự ậ ệ ố Group 1: H th ng d a trên t p tinệ ố ự ệ Đ c tr ng:ặ ư  M i ch ng trình ng d ng có m t file l u tr riêng bi t, nó gi ng nh các b ng v i các dòng g i là b n ghi và các c t g i là các tr ngỗ ươ ứ ụ ộ ư ữ ệ ố ư ả ớ ọ ả ộ ọ ườ  M t nhóm các file đ c l u tr trên m t máy tính có th đ c truy c p b i m t đi u hành viênộ ượ ư ữ ộ ể ượ ậ ở ộ ề Nh c đi m:ượ ể  D th a và mâu thu n DATAư ừ ẫ  Truy v n b t ngấ ấ ờ  Cô l p DATAậ  X lý các truy c p đ ng th i b t th ngử ậ ồ ờ ấ ườ  V n đ v b o m tấ ề ề ả ậ
  • 5.  Vân đ v toàn v nề ề ẹ Group 2: H th ng DATABASEệ ố H th ng DATABASE: là DATA đ c s d ng l u tr có h th ng và có t ch c sao cho vi c qu n lý đ c nhanh chóng và d dàng.ệ ố ượ ử ụ ư ữ ệ ố ổ ứ ệ ả ượ ễ u đi m:Ư ể  Gi m d th a DATAả ư ừ  Gi m mâu thu n DATAả ẫ  DATA có th chia sể ẻ  Các chu n d c thi t l p và duy trìẩ ượ ế ậ  Toàn v n DATA đ c duy trìẹ ượ  Tăng tính b o m t khi đ c cài đ tả ậ ượ ặ Lesson 3: DBMS Group 1: Khái ni mệ DBMS là h th ng ph n m m cho phép đ nh nghĩa, xây d ng và b o trì DATABASE. Toàn b các thao tác trên DATA c a ng i dùng đ u do DBMSệ ố ầ ề ị ự ả ộ ủ ườ ề đi u khi nề ể Do qu n lí t p trung nên DBMS có th qu n lí đ c 1 kh i l ng l n DATA m t cách thu n ti nả ậ ể ả ượ ố ượ ớ ộ ậ ệ H u h t các DBMS s d ng ngôn ng truy v n có c u trúc (SQL)ầ ế ử ụ ữ ấ ấ L i ích:ợ  L u tr DATAư ữ  Đ nh nghĩa DATAị  Thao tác trên DATA  B o m t và toàn v n DATAả ậ ẹ  Truy c p đ ng th i và khôi ph c DATAậ ồ ờ ụ
  • 6.  Hi u năngệ  Đi u khi n đa truy c pề ể ậ  Ngôn ng truy su t DATABASE và giao di n l p trình ng d ng ( API)ữ ấ ệ ậ ứ ụ Nh v y, DATABASE là t p h p các DATA liên quan v i nhau mà mu n qu n lý và s d ng các DATA này thì c n có ph n m m nên có th hi u r ngư ậ ậ ợ ớ ố ả ử ụ ầ ầ ề ể ể ằ DATABASE + Software = DBMS Group 2: Các mô hình DATABASE I: Mô hình DATA ph ngẳ (Flat file) DATABASE ch ch a 1 b ng hay 1ỉ ứ ả File Nó đ c s d ng cho nh ng DATABASE đ n gi n vì không th qu n lí đ c m t l ng l n DATA, t o ra s d th a khi DATA đ c Descriptionượ ử ụ ư ơ ả ể ả ượ ộ ượ ớ ạ ự ư ừ ượ nhi u l nề ầ II: Mô hình DATA phân c p (Hierarchical)ấ Các b n ghi đ c liên k t v i nhau thông qua các c p b c gi ng c u trúc cây. Cácả ượ ế ớ ấ ậ ố ấ b ngả đ c g i là quan h cha - conượ ọ ệ M t b n ghi cha có th có m t vài b n ghi conộ ả ể ộ ả M t b n ghi con ch có m t và ch m t b n ghi chaộ ả ỉ ộ ỉ ộ ả u đi m:Ư ể  DATA đ c ghi trên DATABASE, nên DATA đ c chia s m t cách d dàng và b o m t b i DBMSượ ượ ẻ ộ ễ ả ậ ở  Đ c l p DATA đ c DBMS giúp gi m d c chi phí b o trì ch ng trìnhộ ậ ượ ả ượ ả ươ III: Mô hình m ngạ (Renational) Mô hình phân c p là t p con c a mô hình m ng. Thay vì s d ng cây phân c p nút cha đ n, mô hình m ng s d ng lý thuy t đ t o ra m t câyấ ậ ủ ạ ử ụ ấ ơ ạ ử ụ ế ể ạ ộ phân c p mà trong đó m i nút con có th có nhi u h n m t nút chaấ ỗ ể ề ơ ộ Các thành ph n ngôn ng đ c s d ng trong mô hình m ng là:ầ ữ ượ ử ụ ạ
  • 7.  Ngôn ng đ nh nghĩa DATA (DDL - Database Manipulation Language) đ c s d ng đ t o, xóa DATABASE và các đ i t ng DATABASE. M t s đữ ị ượ ử ụ ể ạ ố ượ ộ ơ ồ con c a DDL cho phép ng i qu n tr DATABASE đ nh nghĩa các thành ph n DATAủ ườ ả ị ị ầ  Ngôn ng thao tác DATA (DML - Database Manipulation Language) đ c s d ng đ thêm, s a, xóa thông tin trên DATABASE. Nh ng ng i dùngữ ượ ử ụ ể ử ữ ườ DATABASE s d ng các câu l nh đ thao tác trên DATABASEử ụ ệ ể  Ngôn ng đi u khi n (DCL - Data Control Language) đ c s d ng đ qu n tr các quy n trên DATABASE và đ i t ng DATABASEữ ề ể ượ ử ụ ể ả ị ề ố ượ  Ngôn ng ̃ truy vấn d ̃ liêu (DQL - Data Query Language) đ c dùng đê lấy DATABASE và đăt th ́ t lên nóư ư ̣ ượ ̉ ̣ ư ự  Ngôn ng ̃ ra lênh thông th ̀ng (CCL - Common Command Language) đ c dùng đê tìm kiếm môt cách hiêu qua trong DATABASE. Nó có thê đ cư ̣ ươ ượ ̉ ̣ ̣ ̉ ̉ ượ ́ng dung vào các th viên tr c tuyến, n i có khối l ng thông tin l ́n và cần đ c sàng loc trong môt th ̀i gian ngắnư ̣ ư ̣ ự ơ ượ ơ ượ ̣ ̣ ơ u đi m:Ư ể  Các quan h d dàng đ c thi t l p trên mô hình m ng h n so v i mô hình phân c pệ ễ ượ ế ậ ạ ơ ớ ấ  Mô hình nay đ m b o s toàn v n DATAả ả ự ẹ  Mô hình này đ t đ c s đ c l p DATA c n thi tạ ượ ự ộ ậ ầ ế Nh c đi m:ượ ể  Khó thi t k DATABASEế ế  Ph i n m rõ c u trúc bên trong DATABASE đ có th truy c pả ắ ấ ể ể ậ  Do cung c p môi tr ng truy c p DATA nên đ di chuy n t A-D ph i tuân theo th t A-B-C-D, ng i s d ng t A ph i qua B và C đ đ n Dấ ườ ậ ể ể ừ ả ứ ự ườ ử ụ ừ ả ể ế  R t khó đ cài đ t và b o trìấ ể ặ ả IV: Mô hình quan hệ Mô hình quan h là m t n l c nh m đ n gi n hóa c u trúc DATABASE. Lý thuy t mô hình quan h đ c xây d ng d a trên n n t ng khái ni m c aệ ộ ỗ ự ằ ơ ả ấ ế ệ ượ ự ự ề ả ệ ủ lý thuy t t p h p trong toán h c. Không gi ng nh mô hình phân c p và mô hình m ng nó không có các liên k t v t lí. Nh ng phép toán đ c cung c p đế ậ ợ ọ ố ư ấ ạ ế ậ ữ ượ ấ ể th c hi n trên các dòng c a b ng DATA. T t c data đ c bi u di n d i d ng th ng nh t là d ng b ng hai chi u. Các b ng (quan h ) ch a các dòng (b nự ệ ủ ả ấ ả ượ ể ễ ướ ạ ố ấ ạ ả ề ả ệ ứ ả ghi) và các c t (tr ng). M i b ng đ u có > 1 tr ng (c t). M i b ng đ u có nhi u h n 1 khóa chính (primary key), có nhi u khóa ph (foreign key). DATAộ ườ ỗ ả ề ườ ộ ỗ ả ề ề ơ ề ụ
  • 8. trên hai b ng đ c quan h v i nhau thông qua các c t thay cho các liên k t v t lí. Primary key trong m i b ng đóng vai trò t o quan h gi a các b ngả ượ ệ ớ ộ ế ậ ỗ ả ạ ệ ữ ả trong cùng m t DATABASEộ Mô hình Description DATABASE là m t t p h p là m t t p h p các quan h . Trong thu t ng mô hình:ộ ậ ợ ộ ậ ợ ệ ậ ữ  Dòng đ c g i là b n ghiượ ọ ả  C t đ c g i là tr ngộ ượ ọ ườ  B ng đ c g i là quan hả ượ ọ ệ  Danh sách các giá tr có th c a m t tr ng đ c g i là mi n. Có th có vài tr ng chung m t mi nị ể ủ ộ ườ ượ ọ ề ể ườ ộ ề  S tuple xác đ nh s ph n t trong quan hố ị ố ầ ử ệ  S property c a m t quan h xác đ nh b c c a quan hố ủ ộ ệ ị ậ ủ ệ u đi mƯ ể :  Đ c s d ng m t cách ph bi n nh t hi n nayượ ử ụ ộ ổ ế ấ ệ  Cho phép l p trình viên t p trung vào góc nhìn logic h n là t p trung vào góc nhìn v t líậ ậ ơ ậ ậ  H tr linh ho t các truy v nỗ ợ ạ ấ  D dàng s d ng, cho dù ch a đ c đào t o nh ng v n có th t o thi t k m t DATABASE h p lý cũng nh ra các báo cáo truy v nễ ử ụ ư ượ ạ ư ẫ ể ạ ế ế ộ ợ ư ấ Nh c đi mượ ể :
  • 9.  Th c thi ch m h n so v i các mô hình DATABASE khácự ậ ơ ớ Lesson 4: RDBMS Group 1: Khái ni mệ RDBMS là DBMS mà t t c DATA đ c nhìn th y qua d ng b ng DATA và t t c các thao tác đ u th c hi n trên b ng.ấ ả ượ ấ ạ ả ấ ả ề ự ệ ả RDBMS s d ng SQL đ chuy n các truy v n c a ng i dùng thành các mã kĩ thu t đ l y DATA theo yêu c u:ử ụ ể ể ấ ủ ườ ậ ể ấ ầ  Data (DATA) đ c trình bày nh t p h p cácượ ư ậ ợ b ngả  Quan h đ c bi u di n b ng m t b ngệ ượ ể ễ ằ ộ ả  Property là các c tộ  Tuple là các hàng bi u di n các entityể ễ  Key (khóa) nói chính xác h n là superkey – đ nh danh duy nh t c a m i entityơ ị ấ ủ ỗ , key đ c chia làm 2 lo iượ ạ :  Khóa chính  Khóa ngo iạ  S b n ghi quan h t ng s tupleố ả ệ ổ ố  B c quan h t ng s propertyậ ệ ổ ố  Mi n thề u c tính t p h p các giá tr c a propertyộ ậ ợ ị ủ Khái ni mệ Nghĩa Quan hệ M t b ngộ ả Tuple M t dòng ho c m t b n ghi trong b ngộ ặ ộ ả ả Tr ngườ M t tr ng ho c m t c t trong b ngộ ườ ặ ộ ộ ả Cardinality c a m t b ngủ ộ ả S dòng trong m t b ngố ộ ả B c c a quan hậ ủ ệ S tr ng trong m t b ngố ườ ộ ả Mi n giá tr c a tr ngề ị ủ ườ T p các giá tr có th l u tr trong tr ngậ ị ể ư ữ ườ Khóa chính c a b ngủ ả M t tr ng ho c m t t p các tr ng mà giá tr c a nó xác đ nh duy nh t các b n ghi trongộ ườ ặ ộ ậ ườ ị ủ ị ấ ả b ngả Khóa ngo iạ M t tr ng ho c m t t p các tr ng trong b ng R1 mà nó ch ra m i b ng c a R1 v i b ngộ ườ ặ ộ ậ ườ ả ỉ ố ả ủ ớ ả R2 Các tr ng khóa ngo i trong R1 ph i ch a các giá tr so kh p v i các giá tr t ng ng trongườ ạ ả ứ ị ớ ớ ị ươ ứ b ng R2ả
  • 10. Group 2: Ng i dùng DBMSườ Nhi u nhóm ng i dùng nh thi t k , s d ng và thao tác trên m t DATABASE l n:ề ườ ư ế ế ử ụ ộ ớ  Ng i qu n tr DATABASE (DBA)ườ ả ị DBA là ng i thu th p thông tin s l u trong DATABASE (m t DATABASE đ c thi t k cung c p thông tin chính xác đúng lúc cho đúng ng i)ườ ậ ẽ ư ộ ượ ế ế ấ ườ Nhi m v c a DBA là qu n lí các ngu n tài nguyên, c p phép quy n truy c p đ n DATABASE, ph i h p và giám sát quá trình s d ng, đáp ng cácệ ụ ủ ả ồ ấ ề ậ ế ố ợ ử ụ ứ ngu n tài nguyên ph n c ng và ph n m m khi c n.ồ ầ ứ ầ ề ầ Gi i thích các v n đ nh ph m vi nguyên t c b o m t và th i gian ph n h i h th ng ch mả ấ ề ư ạ ắ ả ậ ờ ả ồ ệ ố ậ  Ng i thi t k DATABASEườ ế ế Nhi m v là xác đ nh DATA đ c l u vào DATABASE và ch n các c u trúc phù h p đ th hi n và l u DATAệ ụ ị ượ ư ọ ấ ợ ể ể ệ ư Giao ti p v i ng i dùng DATAABASE t ng lai đ n m b t và c p nh t các thi t k đ đáp ng đ c các yêu c uế ớ ườ ươ ể ắ ắ ậ ậ ế ế ể ứ ượ ầ  Ng i phân tích h th ng và l p trình ng d ngườ ệ ố ậ ứ ụ L p trình viên phân tích: Ch ra các yêu c u c a ng i dùng đ u cu i và phát tri n các đ c t cho các giao d ch tr c nh m th a mãn các yêu c u đóậ ỉ ầ ủ ườ ầ ố ể ặ ả ị ướ ằ ỏ ầ L p trình viên ng d ng đ t các đ c t thành các ch ng trình, sau đó ki m tra, g l i, vi t tài li u và duy trì các giao d ch đã có tr c đóậ ứ ụ ặ ặ ả ươ ể ỡ ỗ ế ệ ị ướ Ngoài ra còn có nh ng ng i khác c ng tác vào quá trình thi t k , phát tri n và v n hành ph n m m DBMS và môi tr ng h th ngữ ườ ộ ế ế ể ậ ầ ề ườ ệ ố  Ng i thi t k DBMS và th c thiườ ế ế ự Đây chính là nh ng ng i thi t k và cài đ t model cũng nh giao di n c a DBMS nh m t gói ph n m mữ ườ ế ế ặ ư ệ ủ ư ộ ầ ề M t DBMS là m t h th ng ph n m m ph c t p bao g m nhi u thành ph n nh : model cài đ t b ng danh m c, ngôn ng truy v n, các b x lý giao di n,ộ ộ ệ ố ầ ề ứ ạ ồ ề ầ ư ặ ả ụ ữ ấ ộ ử ệ truy c p DATA và b o m tậ ả ậ DBMS ph i giao ti p đ c v i các ph n m m h th ng khác nhau nh : h đi u hành, các trình biên d ch c a các ngôn ng l p trình khác nhauả ế ượ ớ ầ ề ệ ố ư ệ ề ị ủ ữ ậ  Ng i dùng đ u cu i.ườ ầ ố Nhi m v là kích ho t m t ng d ng t ng tác v i h th ng, vi t m t ch ng trình truy v n, s a đ i ho c xóa DATA trong DATABASEệ ụ ạ ộ ứ ụ ươ ớ ệ ố ế ộ ươ ấ ử ổ ặ Group 3: Các entity và các b ngả M t entity là m t ng i, m t đ i t ng, m t s ki n, … mà nó có th xác đ nh riêng bi tộ ộ ườ ộ ố ượ ộ ự ệ ể ị ệ M t entity có m t s tính ch t đ c xem nh là các tr ng và m i entity đ c gán m t tênộ ộ ố ấ ượ ư ườ ỗ ượ ộ M t b ng ch a m t nhóm các entity g i là t p các entityộ ả ứ ộ ọ ậ Khái ni m b ng và t p các entity có th thay th cho nhau. M t b ng đ c g i là m t quan h , các hàng đ c xem nh tuples và các c t đ c xem nhệ ả ậ ể ế ộ ả ượ ọ ộ ệ ượ ư ộ ượ ư các tr ngườ
  • 11. Các đ c tính c a b ng là:ặ ủ ả  C u trúc 2 chi u bao hàm các c t và hàng đ c nh n l y nh b ngấ ề ộ ượ ậ ấ ư ả  M i b ph n th hiỗ ộ ậ ể ện m t th c th đ n trong t p th c thộ ự ể ơ ậ ự ể  M i c t có 1 tên duy nh tỗ ộ ấ  Giao gi a hàng và c t th hi n m t giá tr data đ nữ ộ ể ệ ộ ị ơ  M i b ng ph i có m t khóa chính giúp xác đ nh duy nh t m i hàngỗ ả ả ộ ị ấ ỗ  T t c các giá tr trong m t c t ph i tuân theo cùng đ nh d ng dataấ ả ị ộ ộ ả ị ạ VD: n u tr ng gán có đ nh d ng s , t t c các giá tr trong c t th hi n tr ng ph i là sế ườ ị ạ ố ấ ả ị ộ ể ệ ườ ả ố  M i c t có ph m vi giá tr xác đ nh g i là mi n giá trỗ ộ ạ ị ị ọ ề ị  Th t các hàng, các c t không quan tr ng trong DATABASEứ ự ộ ọ Group 4: So sánh gi a DBMS và RDBMSữ DBMS RDBMS Không c n có data theo c u trúc d ng b ng, không ép bu c cácầ ấ ạ ả ộ m i quan h d ng b ng gi a các m c data.ố ệ ạ ả ữ ụ Trong RDBMS, c u trúc b ng là b t bu c và gi a chúng có m iấ ả ắ ộ ữ ố quan h v i nhau đ c đ m b o b i h th ng. Các m i quan hệ ớ ượ ả ả ở ệ ố ố ệ này làm cho ng i dùng có th áp d ng và qu n lý các qui t cườ ể ụ ả ắ x lý vào các đo n mã.ử ạ S l ng nh DATA đ c l u tr và thao tác.ố ượ ỏ ượ ư ữ RDBMS có th l u tr và thao tác trên m t s l ng l n DATA.ể ư ữ ộ ố ượ ớ DBMS kém đ m b o h n RDBMS.ả ả ơ DBMS kém đ m b o h n RDBMS.ả ả ơ Nó là 1 h th ng đ n ng i dùng.ệ ố ơ ườ Nó là 1 h th ng đa ng i dùngệ ố ườ H u h t các DBMS không h tr ki n trúc client/server.ầ ế ổ ợ ế Nó h tr ki n trúc client/server.ổ ợ ế Trong RDBMS:
  • 12. B ng là quan tr ng nh t. Do đó, ng i dả ọ ấ ườ ùng có th thi t l p nhi u r ng bu c toàn v n cho các b ng đ data sau cùng đ c s d ng b i ng i sể ế ậ ề ằ ộ ẹ ả ể ượ ử ụ ở ườ ử d ng v n gi s đúng đ nụ ẫ ữ ự ắ Trong tr ng h p c a các DBMS các entity là quan tr ng h n và không có b ng đ c ti t l p gi a các entity nàyườ ợ ủ ọ ơ ả ượ ế ậ ữ Part 4: Mô hình hóa DATA Lesson 1: Mô hình DATA Group 1: Khái ni mệ Là nhóm các công c lý thuy t đ Description DATA, các m i b ng và ng nghĩa c a chúng.ụ ế ể ố ả ữ ủ Nó cũng bao g m c Description các ràng bu c toàn v n mà DATA ph i tuân theoồ ả ộ ẹ ả Group 2: Áp d ngụ Quá trình áp d ng m t mô hình thích h p đ t ch c và c u trúc DATA đ c g i là mô hình hóa DATA. Mô hình hoá DATA đ c chia nh thành baụ ộ ợ ể ổ ứ ấ ượ ọ ượ ỏ b c:ướ  Conceptual Data Modeling (Mô hình DATA ý ni m)ệ Mô hình Description cách nhìn DATA c a ng i s d ng, m i ng i s d ng khác nhau có cách nhìn DATA khác nhau.ủ ườ ử ụ ỗ ườ ử ụ To Example: Phòng tuy n sinh nhìn th y các b n ghi d liêu v sinh viên. Phòng đào t o nhìn th y các b n ghi DATA v đi m thi,..ể ấ ả ữ ề ạ ấ ả ề ể  Logical Data Modeling (Mô hình DATA lu n lý)ậ Mô hình Description chi ti t DATA cùng v i m i b ng c a DATA. Mô hình này bi u di n DATA c a database d i d ng tr u t ng so v i cách l u tr v t lýế ớ ố ả ủ ể ễ ủ ướ ạ ừ ượ ớ ư ữ ậ  Physical Data Modeling (Mô hình DATA v t lý)ậ Mô hình Description toàn b các DATA c a database đ c bi u di n d i d ng g n v i l u tr trong các t p tin th c s trên các thi t b nhộ ủ ượ ể ễ ướ ạ ầ ớ ư ữ ậ ự ự ế ị ớ
  • 13. Lesson 2: Mô hình entity, m i quan h E-Rố ệ Group 1: Các nhóm c a mô hình entityủ  Mô hình lu n lý d a trên đ i t ngậ ự ố ượ  Mô hình lu n lý d a trên b n ghiậ ự ả  Mô hình v t lýậ Group 2: Mô hình entity Mô hình entity - M i quan h (E-R) thu c phân lo i đ u tiên. Mô hình đ c d a trên ý t ng đ n gi n. DATA có th đ c hi u nh là các đ i t ngố ệ ộ ạ ầ ượ ự ưở ơ ả ể ượ ể ư ố ượ trong th gi i th c đ c g i là entity và các m i quan h t n t i gi a các entity này.ế ớ ự ượ ọ ố ệ ồ ạ ữ Mô hình E-R bao g m năm thành ph n c b n. Đó là:ồ ầ ơ ả 1. Th c th - Entityự ể M i th c th là m t đ i t ng t n t i trong th gi i th c và đ c phân bi t v i các đ i t ng khácỗ ự ể ộ ố ượ ồ ạ ế ớ ự ượ ệ ớ ố ượ VD: sinh viên A, thí sinh s 078ố 2. T p entity - Entity Setậ Là m t nhóm th c th t ng đ ng nhauộ ự ể ươ ồ VD: sinh viên, nhân viên 3. M i quan h - Relationshipố ệ Là s k t h p hay g n k t gi a m t hay nhi u th c thự ế ợ ắ ế ữ ộ ề ự ể VD: thu c v (belongs to), s h u (owns), làm vi c cho (works for), …ộ ề ở ữ ệ 4. T p quan h - Relationship Setậ ệ M t t p h p các m i quan h t ng t nhau gi a 2 hay nhi u t p th c thộ ậ ợ ố ệ ươ ự ữ ề ậ ự ể VD:làm vi c t i (work-in), gi a các nhân viên (Employee), và b pệ ạ ữ ộ h n (department)ậ 5. Tr ng – Attributesườ Là các đ c tr ng c a các th c th , các tr ng phân bi t các th c th v i nhauặ ư ủ ự ể ườ ệ ự ể ớ VD: sinh viên có các tr ng nh mã s sinh viên, tên, l p, …ườ ư ố ớ Xe h i có các tr ng nh s đăng kí, tên xe, nhà s n xu t, …ơ ườ ư ố ả ấ
  • 14. Các m i quan h đ c k t h p t m t ho c nhi u entity. Chúng có 3 ki u:ố ệ ượ ế ợ ừ ộ ặ ề ể 1. M i quan h t thân:ố ệ ự Các m i quan h gi a các entity c a các t p entity gi ng nhau đ c g i là m i quan h t thânố ệ ữ ủ ậ ố ượ ọ ố ệ ự 2. M i quan h nh phân:ố ệ ị Các m i quan h mà t n t i gi a các entity c a hai entity thu c các t p entity khác nhau đ c g i là quan h nh phânố ệ ồ ạ ữ ủ ộ ậ ượ ọ ệ ị 3. M i quan h tam phân:ố ệ
  • 15. Các m i quan h mà t n t i gi a ba entity thu c các t p entity khác nhau đ c g i là m i quan h tam phânố ệ ồ ạ ữ ộ ậ ượ ọ ố ệ Group 3: M i quan h E-Rố ệ Các m i quan h có th đ c phân lo i d a trên ánh x t p h p. Các ánh x phân lo i khác nhau là:ố ệ ể ượ ạ ự ạ ậ ợ ạ ạ I: Môt - m t (one-to-one)ộ Ánh x này t n t i khi m t entity c a m t t p entity có th k t h p v i ch m t entity c a t p entity khácạ ồ ạ ộ ủ ộ ậ ể ế ợ ớ ỉ ộ ủ ậ M i quan h 1-1 th c ch t không t n t i mà nó đ c t u d ng b ngố ệ ự ấ ồ ạ ượ ố ư ở ạ ả II: M t - nhi u (one-to-many)ộ ề Ánh x này t n t i khi m t entity c a m t t p entity đ c k t h p v i nhi u h n m t entity c a t p entity khácạ ồ ạ ộ ủ ộ ậ ượ ế ợ ớ ề ơ ộ ủ ậ
  • 16. III: Nhi u-m t (many-to-one)ề ộ Ánh x này t n t i khi nhi u entity c a m t t p entity đ c k t h p v i m t entity c a t p entity khácạ ồ ạ ề ủ ộ ậ ượ ế ợ ớ ộ ủ ậ IV: Nhi u-nhi u (many-to-many)ề ề Ánh x này t n t i khi s các entity c a t p entity đ c k t h p v i s entity c a t p entity khácạ ồ ạ ố ủ ậ ượ ế ợ ớ ố ủ ậ
  • 17. Trong quá trình phân tích không t n t i quan h nhi u nhi u. n u có thì xu t hi n khi 2 b ng tr c yêu c uồ ạ ệ ề ề ế ấ ệ ả ướ ầ Trong đó l y 2 khóa chính c a 2 b ng tr c chèn vào b ng m iấ ủ ả ướ ả ớ Khi b ng m i xu t hi n thì quan h gi a chúng l i là quan h 1-1ả ớ ấ ệ ệ ữ ạ ệ Không t n t i ph thu c b c c u trong b ngồ ạ ụ ộ ắ ầ ả V: Plus A: Primary key Khóa chính là thu c tinh xác đ nh rõ duy nh t m t th c th trong m t t p th c thộ ị ấ ộ ự ể ộ ậ ự ể B: Weak entity sets Nhi u t p th c th không đ các tr ng đ thi t l p khóa chính đ c g i là t p th c th thi t y uề ậ ự ể ủ ườ ể ế ậ ượ ọ ậ ự ể ế ế C: Strong entity sets Các t p th c th có đ các tr ng đ thi t l p khóa chính đ c g i là các t p th c th m nhậ ự ể ủ ườ ể ế ậ ượ ọ ậ ự ể ạ Group 4: Bi u đ entityể ồ I: L c đ quan h entity (entity relationship diagrams)ượ ồ ệ Bi u đ E-R là gi n đ trình bày c a mô hình E-R.ể ồ ả ồ ủ Các ký hi u đ c dùng cho các thành ph n khác nhau có th nhìn th y trong b ng d i đây:ệ ượ ầ ể ấ ả ướ
  • 18. Ngoài ra các tr ng trong mô hình E_R còn đ c phân chia ti p thành:ườ ượ ế  Multi-Valued (đa tr )ị Đ c minh h a v i hình elip vi n kép, có nhi u h n m t giá tr v i ít nh t m t th hi n c a th c th ch a nóượ ọ ớ ề ề ơ ộ ị ớ ấ ộ ể ệ ủ ự ể ứ Tr ng này có th có gi i h n giá tr cao và th p đ xác đ nh mi n giá tr ch a trong tr ngườ ể ớ ạ ị ấ ể ị ề ị ứ ườ  Composite (ph c h p)ứ ợ Có th ch a 2 hay nhi u tr ng, bi u di n nhi u h n các tr ng c b nể ứ ề ườ ể ễ ề ơ ườ ơ ả
  • 19.  Derived (d n xu t)ẫ ấ Đ c minh h a b ng hình elip vi n đ tượ ọ ằ ề ứ Tr ng d n xu t là tr ng ph thu c hoàn toàn vào tr ng khácườ ẫ ấ ườ ụ ộ ườ II: Các b c xây d ngướ ự 1. Thu th p t t c các DATA mà c n đ c mô hình.ậ ấ ả ầ ượ 2. Nh n bi t DATA mà có th đ c mô hình nh là các entity trong th gi i th c.ậ ế ể ượ ư ế ớ ự 3. Nh n bi t các tr ng cho m i entityậ ế ườ ỗ 4. S p x p các t p entity y u, các t p entity m nh.ắ ế ậ ế ậ ạ 5. S p x p các tr ng đóng vai trò khoá, các tr ng đa tr , các tr ng k t h p, các tr ng d n su t.ắ ế ườ ườ ị ườ ế ợ ườ ẫ ấ 6. Xác đ nh các m i quan h gi a các entity.ị ố ệ ữ 7. S d ng các ký hi u khác nhau đ v các entity, tr ng và m i quan h gi a chúng. Dùng các ký hi u thích h p trong khi v các tr ng.ử ụ ệ ể ẽ ườ ố ệ ữ ệ ợ ẽ ườ Lesson 3: Chu n hóaẩ Nó là ti n trình t ch c DATA m t cách có hi u qu trong DATABASE.ế ổ ứ ộ ệ ả M c đích c a ti n trình chu n hoá:ụ ủ ế ẩ  Lo i b DATA b d th a mà v n đ m b o DATA ph thu c (ph thu c hàm là ràng bu c v s liên quan gi a nhi u tr ng trong b ng v i nhau )ạ ỏ ị ư ừ ẫ ả ả ụ ộ ụ ộ ộ ề ự ữ ề ườ ả ớ  Vào lúc đ u, Codd (1972) trình bày 3 d ng chu n (1NF, 2NF and 3NF), t t c d a trên s ph thu c gi a các tr ng c a b ngầ ạ ẩ ấ ả ự ự ụ ộ ữ ườ ủ ả Group 1: D ng chu n m t (1NF)ạ ẩ ộ Các b ng đ t d ng chu n m t n u:ả ạ ạ ẩ ộ ế  Chia DATA thành các b ng riêng bi t cho m i nhóm DATA có liên quanả ệ ỗ
  • 20. To Example: B ng DATA sinh viên, b ng k t qu , môn h cả ả ế ả ọ  Toàn b các c t c a b ng ph i có giá tr đ n.ộ ộ ủ ả ả ị ơ  T t c các tr ng khoá ph i đ c xác đ nhấ ả ườ ả ượ ị Group 2: D ng chu n hai (2NF)ạ ẩ Các b ng đ t d ng chu n hai n u:ả ạ ạ ẩ ế  Chúng ph i tho các yêu c u c a d ng chu n m tả ả ầ ủ ạ ẩ ộ  M i tr ng(c t) không khóa đ u ph thu c đ y đ vào khóa chínhỗ ườ ộ ề ụ ộ ầ ủ Ph thu c đ y đ : B là m t tr ng không khóa, X là m t t p tr ng làm khóa, X->B (X xác đ nh B) g i là ph thu c hàm đ y đ n u không có m t t pụ ộ ầ ủ ộ ườ ộ ậ ườ ị ọ ụ ộ ầ ủ ế ộ ậ con nào c a X cũng có th xác đ nh B.ủ ể ị  Các b ng quan h v i nhau thông qua các khoá ngo iả ệ ớ ạ Group 3: D ng chu n ba (3NF)ạ ẩ Các b ng đ t d ng chu n ba n u:ả ạ ạ ẩ ế  Các b ng ph i tho các yêu c u d ng chu n haiả ả ả ầ ạ ẩ  Không t n t i ph thu c b c c u trong b ng (không t n t i ph thu c gi a các tr ng không ph i là khóa. Ph thu c có ngu n là tr ng khôngồ ạ ụ ộ ắ ầ ả ồ ạ ụ ộ ữ ườ ả ụ ộ ồ ườ khóa) Group 4: Phi chu n hóaẩ Khi chu n hóa m t DATABASE, d th a DATA đ c gi n xu ng. đi u này làm gi m đi nhu c u l u tr cho DATABASE và đ m b o s toàn v n dataẩ ộ ư ừ ượ ả ố ề ả ầ ư ữ ả ả ự ẹ Nh ng thay vào đó có m t s tr ng i:ư ộ ố ở ạ  Truy v n k t n i ph c t p do ph i th c hi n trên nhi u b ngấ ế ố ứ ạ ả ự ệ ề ả  K t n i có th đ c th c hi n trên nhi u h n ba b ng ph thu c vào nhu c u thông tinế ố ể ượ ự ệ ề ơ ả ụ ộ ầ N i nh k t n i đ c s d ng th ng xuyên thì hi u xu t s d ng DATABASE s r t th p, th i gian th c thicuar CPU yêu c u truy xu t s r t l nố ư ế ố ượ ử ụ ườ ệ ấ ử ụ ẽ ấ ấ ờ ự ầ ấ ẽ ấ ớ Trong tr ng h p này, l u tr d th a vài tr ng data s làm tăng hi u năng s d ng DATABASEườ ợ ư ữ ư ừ ườ ẽ ệ ử ụ Các DATABASE ch p nh n s d th a data đ tăng hi u năng đ c g i là các DATABASE phi chu n và ti n trình c a vi c th c hi n này g i là ti n trìnhấ ậ ự ư ừ ể ệ ượ ọ ẩ ế ủ ệ ự ệ ọ ế phi chu nẩ Lesson 4: Các toán t quan hử ệ Mô hình quan h đ c d a trên đ i s quan h , nó bao g m t p h p các toán t đ th c hi n trên các b ngệ ượ ự ạ ố ệ ồ ậ ợ ử ể ự ệ ả M i toán t n m gi m t ho c hai b ng nh là đ u vào và k t qu b ng đ c xem là đ u raỗ ử ắ ữ ộ ặ ả ư ầ ế ả ả ượ ầ
  • 21. Group 1: Ch n - SELECT :ọ Toán t này đ c dùng đ trích DATA tho mãn v i đi u ki n đã cho. Ký hi u “σ – sic ma” đ c dùng đ bi u hi n cho phép ch nử ượ ể ả ớ ề ệ ệ ượ ể ể ệ ọ Group 2: Chi u - PROJECT:ế Toán t này đ c s d ng đ chi u các chi ti t c a m t b ng quan h . Nó ch hi n th chi ti t các yêu c u lo i b các c t đ c n đ nh. Toán t PROJECTử ượ ử ụ ể ế ế ủ ộ ả ệ ỉ ể ị ế ầ ạ ỏ ộ ượ ấ ị ử đ c bi u di n b i ký hi u “π - pi”ượ ể ễ ở ệ Group 3: Tích đ các - PRODUCT:ề Toán t này đ c bi u th b i “ử ượ ể ị ở x”. Nó giúp k t h p thông tin t hai b ngế ợ ừ ả Group 4: H p - UNION:ợ Toán t UNION dùng đ t p h p DATA t các b ng khác nhau và hi n di n phiên b n h p nh t c a DATA đ y đ . Toán tử ể ậ ợ ừ ả ệ ệ ả ợ ấ ủ ầ ủ ử UNION đ cượ mô tả b i ký tở ự “U” L u ý:ư  Chú ý r ng m i l nh SELECT trongằ ỗ ệ UNION ph i có cùng s c t.ả ố ộ Các c t cũng ph i cóộ ả cùng ki uể data  Ngoài ra, các c t trong t ng câu l nh SELECT ph i đ c theo th tộ ừ ệ ả ượ ứ ự I: Syntax SELECT * FROM <Table-Name> UNION [ALL] SELECT * FROM <Table-Name> Khi s d ng UNION k t qu tr v s là m t t p các giá tr không nhân b n (không trùng nhau)ử ụ ế ả ả ề ẽ ộ ậ ị ả Khi s d ng UNION ALL k t qu tr v s là m t t p giá tr có s c t b ng t ng 2 c t đ c h p l iử ụ ế ả ả ề ẽ ộ ậ ị ố ộ ằ ổ ộ ượ ợ ạ II: To Example Group 5: Giao - INTERSECT: Toán t nàyử phát sinh DATA mà đ c tho mãn trong t t c các b ng mà nó đ c miêu t . Nó đ c d a trên lý thuy t t p giao và đ c Description b iượ ả ấ ả ả ượ ả ượ ự ế ậ ượ ở ký hi u “ệ ∩” Group 6: Hi u - DIFFERENCE:ệ Phép này có ký hi u “ệ -”. DATA đ c sinh ra t các b ng khác nhau mà tho mãn trong m t b ng còn b ng khác thì khôngượ ừ ả ả ộ ả ả Group 7: N i - JOIN:ố Phép h p đ c nâng cao t phép tích đ các. Nó cho phép l a ch n đ th c hi n nhân các b ng. (thông tin gi ng nhau thì có th k t h p đ c v i nhau)ợ ượ ừ ề ự ọ ể ự ệ ả ố ể ế ợ ượ ớ
  • 22. Group 8: Chia - DIVIDE: Phép chia, đ c Description b i ký t “ượ ở ự ÷”, thích h p đ truy v n mà bao g m c m t “for all”ợ ể ấ ồ ụ ừ Part 5: SQL Language Lesson 1: Nh ng v n đ c b n và quan tr ngữ ấ ề ơ ả ọ trong DATABASE Group 1: Gi i thi uớ ệ  SQL là vi t t t c a Structured Query Language - Ngôn ng truy v n c u trúc.ế ắ ủ ữ ấ ấ  SQL cho phép b n truy c p vào CSDLạ ậ  SQL server đ c xây d ng trên Syntax c a SQL ANSI chu n và có ph n đ c m r ng đ c g i v i cái tên Transact-SQLượ ự ủ ẩ ầ ượ ở ộ ượ ọ ớ  SQL server h tr 3 lo i câu l nh Transact-SQL:ỗ ợ ạ ệ 1. DDL - DATA Definition Language : Ngôn ng đ nh nghĩa dataữ ị 2. DML - DATA Manipulation Language: Ngôn ng thao tác dataữ 3. CDL - Control Definition Language : Ngôn ng đi u khi n dataữ ề ể Group 2: L u ýư  Cách s d ng kí hi u:ử ụ ệ  [ ] : đ i t ng có th xu t hi n ho c tr ngố ượ ể ấ ệ ặ ố  { } : đ i t ng n m trong m t kh iố ượ ằ ộ ố  ( ) : đ i t ng miêu t tr ngố ượ ả ườ  < > : đ i t ng b t bu cố ượ ắ ộ  M t s h th ng đ i h i có d u ch m ph y sau câu l nh SQL, d u ch m ph y “;” là cách chu n độ ố ệ ố ờ ỏ ấ ấ ẩ ệ ấ ấ ẩ ẩ ể phân cách m i câu l nh SQL trong các h th ngỗ ệ ệ ố DATABASE cho phép nhi u h n m t câu l nh SQL đ c th c thi trong cùng m t cu c g i đ n máy ch . N u chúng ta s d ng công c MS accessề ơ ộ ệ ượ ự ộ ộ ọ ế ủ ế ử ụ ụ ho c SQL server xxxx c a MS thì không c n d u “;”ặ ủ ầ ấ  Tr c m t giá tr là 1 chu i theo d ng unicode thì thêm 1 ch Nướ ộ ị ỗ ạ ữ  Chú thích trong T-SQL Chú thích là các đo n văn b n di n gi i trong m t ch ng trình (đo n l nh) mà trình biên d ch s không th c thi. M c đích là đ chú gi i v mã l nh đ dạ ả ễ ả ộ ươ ạ ệ ị ẽ ự ụ ể ả ề ệ ể ễ dàng b o trì, s a đ i m t cách d dàng.ả ử ổ ộ ễ Chú thích trên 1 dòng: -- [n i dung]ộ Chú thích trên nhi u dòng:ề /*n i dung*/ộ
  • 23. Group 3: Cách th c thi l nh T-SQLự ệ I: Th c thi l nh đ n lự ệ ơ ẻ X lý t ng câu l nh là cách th ng dùng. Chúng ta có th th y đó alf l nh SELECTử ừ ệ ườ ể ấ ệ Câu l nh SELECT là câu l nh phi th th c, nó không ch rõ ràng các b c m t cách chính xác mà DATABASE th c thi đ i v i DATA. Nói cách khác,ệ ệ ủ ụ ỉ ướ ộ ự ố ớ server ph i phân tích câu l nh đ xác đ nh cách l y data hi u qu nh t. Quá trình này đ c g i là t i u hóa câu l nh SELECT và đ i t ng th cả ệ ể ị ấ ệ ả ấ ượ ọ ố ư ệ ố ượ ự hi n t i u này đ c g i là b t i u truy v nệ ố ư ượ ọ ộ ố ư ấ To Example: SELECT * FROM Employee II: X lý lôử M t lô là m t t p h p c a m t ho c nhi u câu l nh Transact-SQL đ c g i cùng m t th i đi m t m t ng d ng đ n SQL Server đ th c thiộ ộ ậ ợ ủ ộ ặ ề ệ ượ ử ộ ờ ể ừ ộ ứ ụ ế ể ự Các câu l nh này đ c biên d ch thành m t đ n v th c thi và đ c g i làệ ượ ị ộ ơ ị ự ượ ọ “execution plan” Các câu l nh trongệ “execution plan” đ c th c hi n cùng m t lúcượ ự ệ ộ To Example: USE adventureworks GO SELECT * FROM Employee GO III: Th c thi d i d ng scriptự ướ ạ SQL có th th c thi d i d ng t p tin đ c l u tr trong file. Ph n m r ng c a file th ng đ c l u d i d ng *.sql. T p tin s đ c đ c tr c khiể ự ướ ạ ệ ượ ư ữ ầ ở ộ ủ ườ ượ ư ướ ạ ậ ẽ ượ ọ ướ đ c yêu c u th c thi. V i đi u ki n d ng trong script ph i là ki u x lý lô.ượ ầ ự ớ ề ệ ạ ả ể ử Group 4: Toàn v n dataẹ I: N i dungộ  Trong Toàn v n data chúng ta c n n m nh ng ki n th c sau:ẹ ầ ắ ữ ế ứ  Toàn v n d li u (Data Intergrity)ẹ ữ ệ  Đ nh nghĩa và mô t toàn v n d li u.ị ả ẹ ữ ệ  Li t kê các qui t c cho toàn v n d li uệ ắ ẹ ữ ệ  Cách th c thi toàn v n d li u.ự ẹ ữ ệ
  • 24.  Các lo i toàn v n d li u (Type of the Integrity)ạ ẹ ữ ệ  Toàn v n th c th .ẹ ự ể  Toàn v n v mi n giá tr .ẹ ề ề ị  Toàn v n tham chi u.ẹ ế  Toàn v n do ng i dùng đ nh nghĩa.ẹ ườ ị  Các ràng bu c toàn v n (Integrity Constrains)ộ ẹ  S c n thi t c a ràng bu c toàn v n.ự ầ ế ủ ộ ẹ  Ràng bu c UNIQUE.ộ  Ràng bu c CHECK.ộ  Ràng bu c PRIMARY KEY.ộ  Ràng bu c FOREIGN KEY.ộ II: Toàn v n d li u (Data Intergrity)ẹ ữ ệ A: Đ nh nghĩa và mô t toàn v n d li uị ả ẹ ữ ệ  Trong Dataabase, khi data đ c l u tr ho c c p nh t các giá tr nh p vào c n ph i đ c ki m tra tính h p l và tính đúng đ nượ ư ữ ặ ậ ậ ị ậ ầ ả ượ ể ợ ệ ắ  N u có thao tác b t kỳ nh s a hay xóa nào trên data, thì s thay đ i đó c n ph i đ c ph n ánh đ n t t c các n i khác trong database có liênế ấ ư ử ự ổ ầ ả ượ ả ế ấ ả ơ quan đ n data đó.ế  Tính toàn v n c a data có th đ c đ m b o (ensure) b ng cách đ a ra m t s các ki m tra nào đó t i lúc t o b ng ho c lúc ch nh s a b ng và sauẹ ủ ể ượ ả ả ằ ư ộ ố ể ạ ạ ả ặ ỉ ử ả đó áp d ng nh ng ki m tra này khi qu n lý dataụ ữ ể ả
  • 25. B: Các quy t c cho toàn v nắ ẹ  Có m t s các qui t c(rule) cho toàn v n d li u giúp đ m b o tính đúng đ n và nh t quán c a d li u. Các qui t c đó là:ộ ố ắ ẹ ữ ệ ả ả ắ ấ ủ ữ ệ ắ  Trong m t b ng không th có hai b n ghi (record) mà giá tr t t c các c t là nh nhau.ộ ả ể ả ị ở ấ ả ộ ư  Ch có các giá tr d li u h p l m i có th đ c thêm vào.ỉ ị ữ ệ ợ ệ ớ ể ượ  Tính h p l c a d li u v n ph i đ c duy trì (ợ ệ ủ ữ ệ ẫ ả ượ maintain) khi d li u đ c ch nh s a.ữ ệ ượ ỉ ử  V i các b ng có quan h v i nhau qua m t c t chung, khi thay đ i d li u trong c t chungớ ả ệ ớ ộ ộ ổ ữ ệ ộ (common) b ng này nên đ c ph n ánh phù h p t iở ả ượ ả ợ ớ các b ng có liên quanả (relate).  Ngoài các quy t c trên thì đ i v i t ng ng d ng cho t ng t ch c c th s có nh ng quy c riêng cho d li u trong CSDL. Nh ng quy c nàyắ ố ớ ừ ứ ụ ừ ổ ứ ụ ể ẽ ữ ướ ữ ệ ữ ướ đ c g i là các quy t c nghi p v (Business Rules). Và vi c đ m b o các quy t c nghi p v cũng chính là m t ph n c a vi c đ m b o tính toànượ ọ ắ ệ ụ ệ ả ả ắ ệ ụ ộ ầ ủ ệ ả ả v n d li u trong CSDL.ẹ ữ ệ C: Th c thi toàn v n d li uự ẹ ữ ệ  SQL Server 2005 h tr 4 c ch đ cho phép b n th c thi toàn v n d li uỗ ợ ơ ế ể ạ ự ẹ ữ ệ  Constraints Constraint là các thu c tính, b n có th g n cho các c t trong b ng đ ngăn các d li u không h p l đ c nh p vào c tộ ạ ể ắ ộ ả ể ữ ệ ợ ệ ượ ậ ộ  Default values B n có th đ nh nghĩa các giá tr cho các c t không ch p nh n giá tr null. Khi th c hi n thêm ho c s a giá tr m c đ nh s đ c chèn vào b n ghi t i cácạ ể ị ị ộ ấ ậ ị ự ệ ặ ử ị ặ ị ẽ ượ ả ạ c t b b tr ngộ ị ỏ ố  Rules Các Rule là các constraint có th đ c áp d ng đ đi u khi n các giá tr d li u đ c nh p vào b ng. Các rule đ c l p v i vi c đ nh nghĩa b ng và có thể ượ ụ ể ề ể ị ữ ệ ượ ậ ả ộ ậ ớ ệ ị ả ể áp d ng cho nhi u b ng.ụ ề ả  Triggers M t trigger trong SQL Server 2005 có ch a các đo n code t o thành các câu l nh T-SQL đ c th c thi t đ ng khi có m t s xác đ nh x y ra.ộ ứ ạ ạ ệ ượ ự ự ộ ộ ự ị ả III: Các lo i toàn v n d li u (Data Integrity)ạ ẹ ữ ệ  S toàn v n c a d li u có th đ c phân lo i thành các nhóm sau:ự ẹ ủ ữ ệ ể ượ ạ
  • 26.  Toàn v n th c th .ẹ ự ể  Toàn v n v mi n giá tr .ẹ ề ề ị  Toàn v n tham chi u.ẹ ế  Toàn v n do ng i dùng đ nh nghĩa.ẹ ườ ị A: Toàn v n th c th (Entity Integrity)ẹ ự ể  M i b ng trong DATABASE bi u di n cho m t th c th , trong đó m i record (b n ghi) bên trong b ng bi u di n cho m t th hi n c a th c th .ỗ ả ể ễ ộ ự ể ỗ ả ả ể ễ ộ ể ệ ủ ự ể  Toàn v n th c th đ c đ m b o b i:ẹ ự ể ượ ả ả ở  Ràng bu cộ PRIMARY KEY. C t có ràng bu c PRIMARY KEY s không cho phép chèn vào giá tr null ho c giá tr trùng v i các giá tr đã có.ộ ộ ẽ ị ặ ị ớ ị  Ràng bu cộ UNIQUE. C t có ràng bu c UNIQUE s không cho phép nh p vào giá tr trùng nhau và cho phép nh p vào m t giá tr null m t l n.ộ ộ ẽ ậ ị ậ ộ ị ộ ầ  Indexes. Indexes có th đ c dùng đ ngăn c n nh p giá tr trùng nhau vào m t c t đ đ m b o tính duy nh t c a các giá tr .ể ượ ể ả ậ ị ộ ộ ể ả ả ấ ủ ị  Thu c tínhộ IDENTITY. Thu c tính IDENTTITY đ c đ nh nghĩa cho m t c t đ nh danh trong b ng. C t đ nh danh là c t có ch a các giá tr tu n t do h th ng phát sinh m i khiộ ượ ị ộ ộ ị ả ộ ị ộ ứ ị ầ ự ệ ố ỗ m t record đ c thêm vào. T t các giá tr trong c t này là duy nh t.ộ ượ ấ ị ộ ấ B: Toàn v n mi n giá tr (Domain Integrity)ẹ ề ị  M t mi n là m t t p h p các giá tr t o ra nh ng giá tr h p l trong m t c t.ộ ề ộ ậ ợ ị ạ ữ ị ợ ệ ộ ộ  Đ đ m b o s toàn v n v mi n, t t c các giá tr d li u trong b ng nên thu c v mi n đã xác đ nh.ể ả ả ự ẹ ề ề ấ ả ị ữ ệ ả ộ ề ề ị
  • 27.  Trong SQL Server 2005, s d ng các ràng bu c sau đ đ m b o tính toàn v n v mi n giá tr :ử ụ ộ ể ả ả ẹ ề ề ị  FOREIGN KEY constraint. Giá tr cho c t FOREIGN KEY ho c có th là null ho c có th là m t giá tr t n t i trong c t UNIQUE ho c c t PRIMARY KEY mà c t có tham chi u đ n.ị ộ ặ ể ặ ể ộ ị ồ ạ ộ ặ ộ ộ ế ế  CHECK constraint. Ràng bu c CHECK ch ra m t mi n giá tr h p l có th đ c nh p vào cho c t.ộ ỉ ộ ề ị ợ ệ ể ượ ậ ộ  DEFAULT definition. Ràng bu c DEFAULT ch ra các giá tr cho nh ng c t không ch p nh n giá tr null. Giá tr m c đ nh đ c t đ ng gán cho c t khi c t đó b b tr ng.ộ ỉ ị ữ ộ ấ ậ ị ị ặ ị ượ ự ộ ộ ộ ị ỏ ố  NOT NULL definition. NOT NULL ch ra r ng c t đó không ch p nh n giá tr NULL (không đ c đ tr ng)ỉ ằ ộ ấ ậ ị ượ ể ố  Data Types. Ki u d li u h p l đã đ c xác đ nh cho nhi u c t khác nhau. Ví d : Khi c t đ c đ nh nghĩa có ki u d li u là date thì ch ch p nh n các giá tr ki u date.ể ữ ệ ợ ệ ượ ị ề ộ ụ ộ ượ ị ể ữ ệ ỉ ấ ậ ị ể  Rules. Rule là các ràng bu c xác đ nh mi n ho c d ng giá tr h p l cho m t c t. Rule có th đ nh nghĩa đ c l p sau đó áp d ng cho nhi u b ng.ộ ị ề ặ ạ ị ợ ệ ộ ộ ể ị ộ ậ ụ ề ả C: Toàn v n tham chi u (Referential Integrity)ẹ ế  Toàn v n tham chi u đ m b o tính nh t quán d li u gi a các b ng có liên quan v i nhau thông qua tr ng chungẹ ế ả ả ấ ữ ệ ữ ả ớ ườ
  • 28.  S d ng khóa ngo i (FOREIGN KEY) đ th c hi n toàn v n tham chi u.ử ụ ạ ể ự ệ ẹ ế  Tính toàn v n tham chi u đ c đ m b o b i các qui t c sau:ẹ ế ượ ả ả ở ắ  Các giá tr chèn vào c t khóa ngo i FOREIGN KEY là nh ng giá tr b t bu c ph i có t n t i c t UNIQUE ho c PRIMARY KEY b ng tham chi u.ị ộ ạ ữ ị ắ ộ ả ồ ạ ộ ặ ở ả ế  N u giá tr trong c t UNIQUE ho c PRIMARY KEY đ c s a đ i, thì s thay đ i t ng t cũng đ c th c hi n trên c t khóa ngo i (FOREIGNế ị ộ ặ ượ ử ổ ự ổ ươ ự ượ ự ệ ộ ạ KEY).  N u m t giá tr trong c t UNIQUE ho c PRIMARY KEY b xóa b , s xóa b cũng nên đ c th c hi n trong các c t khóa ngo i (FOREIGN KEY).ế ộ ị ộ ặ ị ỏ ự ỏ ượ ự ệ ộ ạ D: Toàn v n do ng i d ng đ nh nghĩa (User-Defined Integrity)ẹ ườ ừ ị  Các ràng bu c toàn v n có s n trong SQL Server 2005 v n ch a đ đ đ m b o các giá tr d li u là đúng theo d ng (format) ho c mi n theo mongộ ẹ ẵ ẫ ư ủ ể ả ả ị ữ ệ ạ ặ ề mu n. Do đó các ràng bu c do ng i dùng đ nh nghĩa có th đ c áp d ng cho các c t đ duy trì tính toàn v n d li u.ố ộ ườ ị ể ượ ụ ộ ể ẹ ữ ệ Ví d : S đi n tho i yêu c u ph i có d ng nh (123) 456-789. Nh v y có th t o ki u d li u do ng i dùng đ nh nghĩa đ nh n vào giá tr theo d ngụ ố ệ ạ ầ ả ạ ư ư ậ ể ạ ể ữ ệ ườ ị ể ậ ị ạ này. IV: Các ràng bu c toàn v n (Integrity Constrains)ộ ẹ  Các ràng bu c đ c s d ng đ đ m b o tính h p l c a d li u trong m t b ng và đ m b o tính nh t quán d li u gi a các b ng liên quan.ộ ượ ử ụ ể ả ả ợ ệ ủ ữ ệ ộ ả ả ả ấ ữ ệ ữ ả  B n có th đ nh nghĩa các ràng bu c cho c t ho c cho b ng.ạ ể ị ộ ộ ặ ả
  • 29. A: R ng bu c PRIMARY KEYằ ộ  M c đích c a c t khóa chính (PRIMARY KEY) là đ xác đ nh tính duy nh t c a m i record có trong b ng.ụ ủ ộ ể ị ấ ủ ỗ ả  Ràng bu c PRIMARY KEY ki m tra s duy nh t c a d li u trong c t khóa chính, không cho đ a vào các giá tr trùng nhau.ộ ể ự ấ ủ ữ ệ ộ ư ị  M t PRIMARY KEY có th là m t c t ho c là s k t h p c a nhi u c tộ ể ộ ộ ặ ự ế ợ ủ ề ộ  Ràng bu c PRIMARY KEY có th đ c ch ra bên trong câu l nh CREATE TABLE ho c ALTER TABLEộ ể ượ ỉ ệ ặ  Cú pháp CREATE TABLE <Table-Name> ( <Field-Name> <Data-Type> PRIMARY KEY, )  Ví d : T o khóa chính cho tr ng ClienID trong b ng Client_Infoụ ạ ườ ả CREATE TABLE < Client_Info > ( ClientID varchar(5) PRIMARY KEY, DOB datetime, Country varchar(30), )  Minh h aọ
  • 30. B: R ng bu c FOREIGN KEYằ ộ  Các tùy ch n cascading đ c đ nh nghĩa cùng v i vi c t o ràng bu c khóa ngo i đ đ m b o tính nh t quán d li u gi a các b ng liênọ ượ ị ớ ệ ạ ộ ạ ể ả ả ấ ữ ệ ữ ả quan khi th c hi n thay đ i trên c t PRIMARY KEY ho c UNIQUE.ự ệ ổ ộ ặ  Có hai tùy ch n cascadeọ :  ON UPDATE [ NO ACTION | CASCADE ]: Ch cho SQL SERVER cách thi hành khi có hành đ ng c p nh t x y ra trên c t PRIMARY KEY ho c UNIQUEỉ ộ ậ ậ ả ộ ặ c a b ng tham chi u.ủ ả ế  NO ACTION: Báo l i khi bên c t khóa ngo i có các giá tr có liên quan t i giá tr b s a trong c t PRIMARY KEY ho c UNIQUE.ỗ ộ ạ ị ớ ị ị ử ộ ặ  CASCADE: Khi c p nh t giá tr c t PRIMARY KEY ho c UNIQUE, các giá tr trong c t khóa ngo i có liên cũng đ c c p nh t theo.ậ ậ ị ở ộ ặ ị ộ ạ ượ ậ ậ  ON DELETE [ NO ACTION | CASCADE ]: Ch cho SQL SERVER cách thi hành khi có hành đ ng xóa x y ra trên c t PRIMARY KEY ho c UNIQUE c aỉ ộ ả ộ ặ ủ b ng tham chi u.ả ế  NO ACTION: Thông báo l i s x y ra trong tr ng h p m i quan h gi a hai b ng cha – con có d li uỗ ẽ ả ườ ợ ố ệ ữ ả ữ ệ  CASCADE: N u ch đ nh CASCADE thì khi xoá m t dòng d li u trên b ng cha thì các dòng d li u liên quan trên b ng con cũng s b xoá.ế ỉ ị ộ ữ ệ ả ữ ệ ả ẽ ị  Cú pháp CREATE TABLE <Table-Name> ( <Field-Name> <Data-Type> PRIMARY KEY, ) CREATE TABLE <Table-Name> ( <Field-Name> <Data-Type> FOREIGN KEY REFERENCES <Referenced-Table-Name> (Referenced-Field-Name) [ON UPDATE CASCADE] [ON DELETE CASCADE], )  Ví dụ CREATE TABLE <Employee_Details> (
  • 31. Employee_ID PRIMARY KEY, Employee_Name varchar(30), Salary float, ) CREATE TABLE <Payroll> ( Employee_ID varchar(5) PRIMARY KEY, Salary float FOREIGN KEY REFERENCES Employee_Details(Salary) ON UPDATE CASCADE ON DELETE CASCADE, )  Minh h aọ C: R ng bu c UNIQUEằ ộ  Ràng bu c UNIQUE có th áp d ng cho m t c t ho c cho k t h p nhi u c t đ đ m b o tính duy nh t c a d li u trong nh ng c t này.ộ ể ụ ộ ộ ặ ế ợ ề ộ ể ả ả ấ ủ ữ ệ ữ ộ  Ràng bu c UNIQUE đ m b o tính toàn v n th c th trong b ng.ộ ả ả ẹ ự ể ả  Ràng bu c UNIQUE có th đ c đ nh nghĩa bên trong câu l nh CREATE TABLE ho c ALTER TABLE.ộ ể ượ ị ệ ặ  Trong m t b ng có th có nhi u ràng bu c UNIQUE cho nhi u c t.ộ ả ể ề ộ ề ộ Chú ý: V i c t áp d ng ràng bu c UNIQUE, Giá tr null ch đ c phép nh p vào m t l n.ớ ộ ụ ộ ị ỉ ượ ậ ộ ầ  Cú pháp CREATE TABLE <Table-Name> ( <Field-Name> <Data-Type> UNIQUE,
  • 32. )  Ví d :ụ T o ràng bu c UNIQUE cho c t TransNumber c a b ng Account_Transactionsạ ộ ộ ủ ả CREATE TABLE <Table-Name> ( Date datetime, TransNumber int UNIQUE, )  Minh h aọ D: R ng bu c CHECKằ ộ  Ràng bu c CHECK xác đ nh m t mi n giá tr nh p vào cho c t.ộ ị ộ ề ị ậ ộ  Ràng bu c CHECK đ c t o v i bi u th c logic (là bi u th c có giá tr tr v True hay False) đ ki m tra giá tr nh p vào.ộ ượ ạ ớ ể ứ ể ứ ị ả ề ể ể ị ậ  B n có th áp d ng m t ràng bu c CHECK t i m t nhóm các c t.ạ ể ụ ộ ộ ớ ộ ộ  Cú pháp CREATE TABLE <Table-Name> ( <Colun-Name> <Data-Type> CHECK(condition), )  Ví dụ CREATE TABLE <Account_Types> ( AccTypeID int identity, AccNo int CHECK(AccNo>0 and AccNo<100000) )  Minh h aọ
  • 33. Lesson 2: Index I: N i dungộ Trong index có nh ng v n đ sau:ữ ấ ề  Đ nh nghĩa và mô t ch m c (index)ị ả ỉ ụ  Mô t d li u đ c l u tr nh th nào trong SQL Server 2005.ả ữ ệ ượ ư ữ ư ế  S c n thi t c a index.ự ầ ế ủ  Index c n thi t đ c dùng đâu.ầ ế ượ ở  Ki n trúc Indexế  Tìm ki m dòng (Finding Rows)ế II: Gi i thi u Indexớ ệ A: D li u đ c mô t trong SQL server 2005ữ ệ ượ ả  Các Index đ c t o đ cho vi c l y d li u đ c nhanh h n.ượ ạ ể ệ ấ ữ ệ ượ ơ  D li u đ c s p x p, truy c p s d dàng h n d li u không đ c s p x p.ữ ệ ượ ắ ế ậ ẽ ễ ơ ữ ệ ượ ắ ế  Truy v n trên các b ng có index đ c th c thi nhanh h n và ít chi m tài nguyên h th ng h n.ấ ả ượ ự ơ ế ệ ố ơ
  • 34.  Các index database có ch a m t danh sách các giá tr (g i là các khóa) l y t m t ho c nhi u c t c a b ng và các đ a ch c a các trang d li u (g i làứ ộ ị ọ ấ ừ ộ ặ ề ộ ủ ả ị ỉ ủ ữ ệ ọ các con tr ) cho bi t v trí d li u đ c l u tr .ỏ ế ị ữ ệ ượ ư ữ  Trang (page) là đ n v l u tr d li u nh nh t trong SQL Server 2005. Các trang này ch a d li u theo t ng dòng.ơ ị ư ữ ữ ệ ỏ ấ ứ ữ ệ ừ  Kích th c m i page là 8 KB (1MB có 128 page). Trong đó 96 byte đ u tiên c a page (page header) l u tr các thông tin h th ng v page nh :ướ ỗ ầ ủ ư ữ ệ ố ề ư  S trangố  Lo i trang (data, Index, text/image,..)ạ  Không gian còn tr ng trên trangố  Ch s ID c a trangỉ ố ủ  Các t p tin d li u (Data Files)ậ ữ ệ  T p tin d li u c a m t database đ c phân chia logic thành các page và đ c đánh s liên t c t 0 đ n n. B máy database c a SQL Server th cậ ữ ệ ủ ộ ượ ượ ố ụ ừ ế ộ ủ ự hi n đ c ghi d li u trên các page này.ệ ọ ữ ệ  SQL Server 2005 có ba lo i t p tin sau:ạ ậ  Primary Data Files (*.mdf)  Secondary Data Files (*.ndf)  Log Files (*.ldf) B: S c n thi t c a indexự ầ ế ủ  SQL Server 2005 cung c p tính năng đánh index giúp cho vi c l y d li u d dàng và nhanh chóng.ấ ệ ấ ữ ệ ễ  M t index trong database SQL Server 2005 mang các thông tin đ chúng ta có th tìm th y d li u mà không c n ph i duy t qua toàn b b ng.ộ ể ể ấ ữ ệ ầ ả ệ ộ ả
  • 35.  Index gi ng nh b ng m c l c c a m t cu n sách. B n tìm ch đ mà b n quan tâm trong b ng m c l c và sau đó chuy n th ng đ n ch đ đóố ư ả ụ ụ ủ ộ ố ạ ủ ề ạ ả ụ ụ ể ẳ ế ủ ề thông qua s trang đã cho.ố  Các record trong m t b ng đ c l u tr theo th t mà chúng đ c nh p vào. Vi c l u tr trong database nh v y là không đ c s p x p.ộ ả ượ ư ữ ứ ự ượ ậ ệ ư ữ ư ậ ượ ắ ế  Khi l y d li u trong các b ng nh v y, c n ph i duy t qua toàn b b ng. Đi u đó làm cho t c đ x lý truy v n l y d li u b ch m xu ng. V y cácấ ữ ệ ả ư ậ ầ ả ệ ộ ả ề ố ộ ử ấ ấ ữ ệ ị ậ ố ậ index đ c t o đ tăng t c đ truy v n l y d li u.ượ ạ ể ố ộ ấ ấ ữ ệ  Khi có m t index đ c t o cho b ng, index này s t o ra m t th t cho các dòng d li u có trong b ng. Đi u này giúp cho vi c xác đ nh v trí và l yộ ượ ạ ả ẽ ạ ộ ứ ự ữ ệ ả ề ệ ị ị ấ d li u trong quá trình tìm ki m đ c nhanh h n.ữ ệ ế ượ ơ  M t b ng có th có nhi u indexộ ả ể ề C: T o index nh th nào cho h p lýạ ư ế ợ  Th i đi m t o indexờ ể ạ  Hãy t ng t ng v m t quy n t đi n, các t trong quy n t đi n đó không đ c s p x p theo b ng ch cái, và b n mu n tra c u m t tưở ượ ề ộ ể ừ ể ừ ề ừ ể ượ ắ ế ả ữ ạ ố ứ ộ ừ trong quy n t đi n đó (đi u đó quá khó)ể ừ ể ề  M t b ng trong database có m t kh i l ng l n các dòng d li u th ng xuyên đ c truy xu t. Các dòng d li u c n đ c s p x p đ cho vi cộ ả ộ ố ượ ớ ữ ệ ườ ượ ấ ữ ệ ầ ượ ắ ế ể ệ l y d li u là nhanh nh t. Do đó vi c t o index (v t lý hay logic s p x p các record) cho m t b ng giúp cho vi c tìm ki m m t dòng d li u trấ ữ ệ ấ ệ ạ ậ ắ ế ộ ả ệ ế ộ ữ ệ ở nên nhanh h n và ít chi m tài nguyên h th ng h n.ơ ế ệ ố ơ
  • 36.  Tránh l m d ng indexạ ụ  Các ch m c giúp cho vi c l y d li u đ c nhanh h n nh ng chúng cũng làm tiêu t n không gian đĩa và cũng c n ph i đ c duy trìỉ ụ ệ ấ ữ ệ ượ ơ ư ố ầ ả ượ (maintain).  Ch m c không c n thi t ph i t o khi:ỉ ụ ầ ế ả ạ  Ch m c không đ c s d ng th ng xuyên.ỉ ụ ượ ử ụ ườ  Không t o ch m c trên các c t có d li u trùng nhau.ạ ỉ ụ ộ ữ ệ III: Ki n trúc Indexế  Trong SQL Server, các ch m c đ c t ch c gi ng nh các cây nh phân (B-tree).ỉ ụ ượ ổ ứ ố ư ị  M i trang trong cây ch m c index B-tree đ c g i là nút ch m c (index node)ỗ ỉ ụ ượ ọ ỉ ụ Nút cao nh t c a cây g iấ ủ ọ là nút g c (ố root node) Nút g c và nút trung gian có ch a m t trang chố ứ ộ ỉ m c (index page) n m gi các ch m c dòngụ ắ ữ ỉ ụ (index row). M i Ch m c dòng có ch a m t giá tr khóa vàỗ ỉ ụ ứ ộ ị m t con tr tr t i m t nút trung gian khác,ộ ỏ ỏ ớ ộ ho c tr t i m t dòng d li u trong nút láặ ỏ ớ ộ ữ ệ Nút b t kỳ n m gi a nútấ ằ ữ lá và nút g c g i là nútố ọ m c trung gianứ (intermediate node)
  • 37. Nút m c th p nh t g iở ứ ấ ấ ọ là nút lá (leaf node) Nút lá có th là m t trang d li u (data page)ể ộ ữ ệ ho c cũng có th là trang ch m c (index page)ặ ể ỉ ụ ch a các ch m c tr t i các dòng d li u.ứ ỉ ụ ỏ ớ ữ ệ A: Phân vùng (Partition)  Phân vùng là k thu t phân chia logic b ng ho c index thành m t ho c nhi u phân vùng(partition) nh m qu n lý hi u qu c s d li u v iỹ ậ ả ặ ộ ặ ề ằ ả ệ ả ơ ở ữ ệ ớ dung l ng l n.ượ ớ  M i phân vùng ch a các dòng d li u đ c t ch c theo c u trúc heap ho c c u trúc clustered index.ỗ ứ ữ ệ ượ ổ ứ ấ ặ ấ  Phân vùng cho phép truy xu t d li u nhanh chóng và hi u qu , do thao tác qu n lý ch th c hi n trên t p con d li u thay vì trên toàn bấ ữ ệ ệ ả ả ỉ ự ệ ậ ữ ệ ộ b ng.ả  Đ t ch c các trang d li u trong m t phân vùng (partition), b ng c a SQL Server s d ng m t trong hai ph ng th c sau:ể ổ ứ ữ ệ ộ ả ủ ử ụ ộ ươ ứ  N u b ng có m t clustered index thì b ng đ c g i là b ng clustered (clustered table). Các dòng d li u c a b ng đ c s pế ả ộ ả ượ ọ ả ữ ệ ủ ả ượ ắ x p theo th tế ứ ự d a trên khóa clusteredự index.  N u b ng không có m t clustered index, thì b ng đó đ c g i là m t heap. Các dòng d li u không đ c s p x p theo th t nào c .ế ả ộ ả ượ ọ ộ ữ ệ ượ ắ ế ứ ự ả
  • 38. B: sys.partitions (view)  “sys.partitions” (view) là m t view h th ng ch a m t dòng cho m i phân đo n c a các b ng các lo i index trong database.ộ ệ ố ứ ộ ỗ ạ ủ ả ạ  M t s index đ c bi t nh Fulltext, Spatial, và XML không có trong view này.ộ ố ặ ệ ư  T t c các b ng và index trong SQL Server 2005 đ u có ít nh t m t phân vùng.ấ ả ả ề ấ ộ  B ng mô t các c t khác nhau c a view “sys.partitions”ả ả ộ ủ Tên c tộ Ki u d li uể ữ ệ Mô tả partition_id bigint Ch a ID c a phân vùng và là duy nh t trong databaseứ ủ ấ object_id int Ch a ID c a đ i t ng mà phân vùng này thu c vứ ủ ố ượ ộ ề index_id int ID c a ch s trong đ i t ng đ mà phân đo n này thu c v .ủ ỉ ố ố ượ ể ạ ộ ề partition_number int Có ch a s phân vùng trong index ho c heap s h uứ ố ặ ở ữ hobt_id bigint Ch a ID d li u c a heap ho c B-tree mà có ch a các dòng cho phân vùng này.ứ ữ ệ ủ ặ ứ rows bigint Ch ra g n đúng s dòng có trong phân vùngỉ ầ ố  Giá tr c a c t index_id:ị ủ ộ  Cho m t heap là 0.ộ  Cho m t cluestered index là 1.ộ  Cho m t nonclustered index là l n h n 1.ộ ớ ơ  Cho các đ i t ng l n(LOB) là l n h n 250.ố ượ ớ ớ ơ C: Đ n v c p phát (Allocation Unit)ơ ị ấ  M t đ n v c p phát là m t t p h p các trang n m trong m t heap ho c B-tree, đ c s d ng đ qu n lý d li u d a trên ki u trang c a chúng.ộ ơ ị ấ ộ ậ ợ ằ ộ ặ ượ ử ụ ể ả ữ ệ ự ể ủ  Sau đây là các ki u đ n v c p phát đ c s d ng đ qu n lý d li u trong các b ng và index.ể ơ ị ấ ượ ử ụ ể ả ữ ệ ả  IN_ROW_DATA
  • 39. Đ c dùng đ qu n lý d li u ho c các dòng ch m c mà có ch a t t c các lo i d li u ngo i tr đ i t ng d li u l n (LOB).ượ ể ả ữ ệ ặ ỉ ụ ứ ấ ả ạ ữ ệ ạ ừ ố ượ ữ ệ ớ  LOB_DATA Đ c dùng đ qu n lý các đ i t ng d li u l n (LOB) nh varbinary(max), varchar(max) , và xml.ượ ể ả ố ượ ữ ệ ớ ư  ROW_OVERFLOW_DATA Đ c dùng đ qu n lý d li u có đ dài bi n đ i nh d li u có ki u varchar, nvarchar, varbinary, ho c sql_variantượ ể ả ữ ệ ộ ế ổ ư ữ ệ ể ặ D: C u trúc Heap(đ ng)ấ ố  Khi t o ra m t b ng mà ch a có b t kì r ng bu c v toàn v n th c th nào thì b ng đó là m t c u trúc Heapạ ộ ả ư ấ ằ ộ ề ẹ ự ể ả ộ ấ  Trong c u trúc heap, các trang d li u và các dòng d li u không đ c s p x p theo th t c th nào.ấ ữ ệ ữ ệ ượ ắ ế ứ ự ụ ể  Các dòng và các trang d li u không liên k tữ ệ ế (link) v i nhau mà ch đ c k t n iớ ỉ ượ ế ố (connenction) lu n lý (logical) qua thông tin đ c ghi trong cácậ ượ trang IAM (Index Allocation Map - B n đ c p phát ch m c)ả ồ ấ ỉ ụ  SQL Server 2005 s d ng các trang IAM đ duy t m t c u trúc heap.ử ụ ể ệ ộ ấ  B n có th đ c m t heap b ng cách duy t các trang IAM đ tìm các extentạ ể ọ ộ ằ ệ ể (đ l n, kích th c)ộ ớ ướ có ch a nh ng trang cho heap đó.ứ ữ
  • 40.  S phân vùng c a c u trúc heap (…)ự ủ ấ  M c đ nh, m i heap ch có m t phân vùng.ặ ị ỗ ỉ ộ  Khi các phân vùng đ c t o cho m t b ng có c u trúc heap, m i phân vùng s ch a d li u trong m t c u trúc heap riêng bi t.ượ ạ ộ ả ấ ỗ ẽ ứ ữ ệ ộ ấ ệ  Ví d n u m t heap có 4 phân đo n, thì có 4 c u trúc heap, m i c u trúc cho m i phân vùng.ụ ế ộ ạ ấ ỗ ấ ỗ E: C u trúc Clusted Indexấ  Khi t o ra m t b ng đ ng th i t o ra ít nh t m t r ng bu c b t kì v th c th thì b ng đó thu c c u trúc clusted indexạ ộ ả ồ ờ ạ ấ ộ ằ ộ ấ ề ự ể ả ộ ấ  M t clustered index xác đ nh th t s p x p v t lý c a d li u trong m t b ng khi l u tr .ộ ị ứ ự ắ ế ậ ủ ữ ệ ộ ả ư ữ  M t b ng có th có ch m t ch m c clustered.ộ ả ể ỉ ộ ỉ ụ Kích th c c a m t clustered index kho ng 5% kich th c c a b ng.ướ ủ ộ ả ướ ủ ả Tr c khi t o clustered index, b n c n ph i đ m b o h th ng c a mình còn không gian tr ng t i thi u g p 1,2 l n so v i d li u trong b ng.ướ ạ ạ ầ ả ả ả ệ ố ủ ố ố ể ấ ầ ớ ữ ệ ả  Clustered index là m t cây nh phân (B-tree)ộ ị
  • 41. Trong clustered index, nút lá ch a các dòng d li u trong b ng.ứ ữ ệ ả  Nguyên t c (Guidelines) t o clusteredắ ạ index  M c đ nh, khi đ nh nghĩa khóa chính cho b ng, m t clustered index đ c t đ ng t o ra cho b ng đó.ặ ị ị ả ộ ượ ự ộ ạ ả  N u b ng không có khóa chính, thì clustered index nên đ c đ nh nghĩa trên:ế ả ượ ị  Các c t khóa m r ng th ng đ c dùng cho vi c tìm ki m.ộ ở ộ ườ ượ ệ ế  C t đ c s d ng trong các truy v n tr v k t qu t p h p l n.ộ ượ ử ụ ấ ả ề ế ả ậ ợ ớ  Các c t mà d li u ít trùng nhau.ộ ữ ệ  Các c t đ c dùng đ n i hai b ng.ộ ượ ể ố ả F: C u trúc Nonclustered indexấ  M t non-clustered index xác đ nh cách s p x p logic c a b ng.ộ ị ắ ế ủ ả  Non-clustered index gi ng nh b ng m c l c trong m t cu n sách giáo khoa. M i dòng ch s (index row) trong non-clustered index có ch a m t giáố ư ả ụ ụ ộ ố ỗ ỉ ố ứ ộ tr khóa và m t v trí dòng. V trí dòng này tr t i dòng d li u t ng ng v i giá tr khóa trong b ng.ị ộ ị ị ỏ ớ ữ ệ ươ ứ ớ ị ả  Nonclustered index có c u trúc B-tree gi ng nh clustered index, nh ng có m t s s khác bi t sau:ấ ố ư ư ộ ố ự ệ  Th t v t lý các dòng d li u trong b ng không l u tr theo th t đ c qui đ nh trong khóa nonclustered.ứ ự ậ ữ ệ ả ư ữ ứ ự ượ ị  Trong c u trúc nonclustered index, các nút m c lá ch a các dòng ch m c (index row).ấ ứ ứ ỉ ụ
  • 42.  Nonlustered index đ c s d ng khi b n mu n m r ng thêm nhi u cách t́m ki m d li u khác nhau.ượ ử ụ ạ ố ở ộ ề ế ữ ệ  Tr c khi t o, c n xem xét m t s các nguyên t c sau:ướ ạ ầ ộ ố ắ  Khi m t clustered index đ c t o l i ho c tùy ch n DROP_EXISTING đ c s d ng, SQL Server xây d ng l i các nonclustered index.ộ ượ ạ ạ ặ ọ ượ ử ụ ự ạ  M t b ng có th t o t i 249 nonclustered index.ộ ả ể ạ ớ  T o clustered index tr c khi t o nonclustered index, làm nh v y đ không ph i xây d ng l i nonclustered index khi t o m t clustered index.ạ ướ ạ ư ậ ể ả ự ạ ạ ộ G: So sánh s khác nhau gi a clustered index và nonclustered indexự ữ Clustered Index Nonclustered Index S d ng cho các truy v n tr v các t p k t qu l nử ụ ấ ả ề ậ ế ả ớ S d ng cho các truy v n không tr v các t p k t qu l nử ụ ấ ả ề ậ ế ả ớ Ch có th t o m t clustered index cho m t b ngỉ ể ạ ộ ộ ả Có th t o nhi u nonclustered index cho b ngể ạ ề ả D li u đ c s p x p theo th t trên khóa clusteredữ ệ ượ ắ ế ứ ự D li u không đ c s p x p theo th t trên khóa nonclusteredữ ệ ượ ắ ế ứ ự Các nút lá c a m t clustered index có ch a các trang d li u (data page).ủ ộ ứ ữ ệ Các nút lá c a m t nonclustered index có ch a các trang ch m c(indexủ ộ ứ ỉ ụ page). H: Các lo i Indexạ
  • 43.  Có hai lo i c u trúc index đ c h tr trong SQL Server:ạ ấ ượ ỗ ợ  Clustered index: Clustered index l u tr d li u theo ki u s p x p.ư ữ ữ ệ ể ắ ế Nó th c thi nh m t c u index B-tree.ự ư ộ ấ M t b ng ch có th có m t clustered index vì clustered index xác đ nh th t l u tr v t lý c a d li u.ộ ả ỉ ể ộ ị ứ ự ư ữ ậ ủ ữ ệ  Nonclustered index: Nonclustered index không s p x p l i th t v t lý c a d li u, chúng ch t o các con tr tr v trí v t lý c a các dòng d li u.ắ ế ạ ứ ự ậ ủ ữ ệ ỉ ạ ỏ ỏ ị ậ ủ ữ ệ SQL Server 2005 h tr t i 249 nonclustered cho m t b ng.ỗ ợ ớ ộ ả  D a vào đ c đi m c a index có các lo i index sau:ự ặ ể ủ ạ Unique index. Unique index có th đ c đ nh nghĩa trên m t c t có ch a giá tr không trùng nhau.ể ượ ị ộ ộ ứ ị - N u b ng có m t PRIMARY KEY, m t unique clustered index đ c đ nh nghĩa t đ ng trên c t đó.ế ả ộ ộ ượ ị ự ộ ộ - N u b ng có m t c t v i ràng bu c UNIQUE, m t unique nonclustered index đ c t đ ng t o trên c t đóế ả ộ ộ ớ ộ ộ ượ ự ộ ạ ộ N u mu n t o m t clustered index trên c t khác thì khi t o b ng ta không t o PRIMARY KEY tr c, sau khi t o clusteredế ố ạ ộ ộ ạ ả ạ ướ ạ index r i thêm PRIMARY KEY vào sauồ Composite index. Composite index (index k t h p) là m t index đ c t o trên hai hay nhi u c t. C clustered index và nonclustered index đ uế ợ ộ ượ ạ ề ộ ả ề có th là composite indexể Full-Text index. Tính năng Full-Text index trong SQL Server 2005 cho phép th c hi n các truy v n ph c t p trên d li u kí t . S d ng tínhự ệ ấ ứ ạ ữ ệ ự ử ụ năng Full-Text index, vi c tìm ki m có th th c hi n trên t ng t riêng bi t, c m t , đo n văn, m t ph n c a t , ho c bi nệ ế ể ự ệ ừ ừ ệ ụ ừ ạ ộ ầ ủ ừ ặ ế th c a t (drunk bi n th c a drink)ể ủ ừ ế ể ủ XML index. SQL Server 2005 cũng h tr m t lo i index đ c bi t cho d li u XML.ỗ ợ ộ ạ ặ ệ ữ ệ Index này đ c xem nh là m t index XML. Cluseredượ ư ộ index và nonclustered index đ u có th t o trên c t d li u XML. Ki u d li u này đ c s d ng đ l u tr các tài li u XMLề ể ạ ộ ữ ệ ể ữ ệ ượ ử ụ ể ư ữ ệ và các đo n XML. M t đo n XML là th hi n c a m t XML thi u ph n t m c đ nh.Do các c t XML có kích th c l n, truyạ ộ ạ ể ệ ủ ộ ế ầ ử ứ ỉ ộ ướ ớ v n tìm ki m d li u trong các c t này có th s ch m. B n có th tăng t c đ truy v n trên các c t này b ng vi c t o m tấ ế ữ ệ ộ ể ẽ ậ ạ ể ố ộ ấ ộ ằ ệ ạ ộ XML index cho m i c t.ỗ ộ Có hai lo i XML indexạ - XML Index s c p (primary XML Index): đ c t o cho m i c t XML đ tăng t c đ truy v n trên nh ng c t này.ơ ấ ượ ạ ỗ ộ ể ố ộ ấ ữ ộ
  • 44. - XML index th c p (secondary XML Index): đ c dùng đ :ứ ấ ượ ể Tìm ki m các giá tr v trí b t kỳ trong tài li u XML.ế ị ở ị ấ ệ L y các thu c tính c a đ i t ng c th trong tài li u XML.ấ ộ ủ ố ượ ụ ể ệ XML index th c p ch có th t o trên các c t đã có XML index s c p.ứ ấ ỉ ể ạ ộ ơ ấ I: Thao tác INDEX OFFLINE 1: T o INDEXạ  M t index có th có t i đa 16 c t.ộ ể ố ộ  Quá nhi u index làm gi m hi u su t th c thi c a các câu l nh INSERT, UPDATE và DELETE.ề ả ệ ấ ự ủ ệ  Các index nên s d ng cho các b ng có kh i l ng d li u l n nh ng có yêu c u v c p nh t th p đ c i thi n hi u su t truy v n.ử ụ ả ố ượ ữ ệ ớ ư ầ ề ậ ậ ấ ể ả ệ ệ ấ ấ  Ngay c b ng có d li u nh v n nên duy trì các index, vì sau này d li u v n còn đ c thêm vào b ng.ả ả ữ ệ ỏ ẫ ữ ệ ẫ ượ ả Object Syntax To Example Illustra INDEX CREATE INDEX <Index-Name> ON <Table-Name> (Field-Name) CREATE INDEX IX_Country ON Customer_Details(Country)
  • 45. CLUSTERED INDEX CREATE CLUSTERED INDEX <Index-Name> ON <Table-Name> (Field-Name) CREATE CLUSTERED INDEX IX_CustID ON Customer_Details(CustID) NONCLUSTERED INDEX CREATE NONCLUSTERED INDEX <Index- Name> ON <Table-Name> (Field-Name) CREATE NONCLUSTERED INDEX IX_State ON Customer_Details(State) UNIQUE INDEX CREATE UNIQUE INDEX <Index-Name> ON <Table-Name> (Field-Name) SQL Server 2005 không cho phép t oạ unique index trên các c t có ch a các giá trộ ứ ị trùng nhau CREATE UNIQUE INDEX IX_CustID ON Customer_Details(CustID) COMPOSITE INDEX CREATE UNIQUE INDEX <Index-Name> ON <Table-Name> (Field-Name [ASC | DESC], [,….n]) CREATE UNIQUE INDEX IX_State_City ON Customer_Details(State,City) COMPUTED CREATE TABLE <Table-Name> ( [<Field-Name-Computed>AS <Expression>] … ) C t Computed là các c t o trong b ng, giáộ ộ ả ả CREATE TABLE Calc_Area ( Length int, Breadth int, Area as Length*Breadth )
  • 46. tr c a nó đ c tính toán d a trên bi uị ủ ượ ự ể th c lúc th c thiứ ự COMPUTED INDEX CREATE INDEX <Index-Name> ON <Table-Name> (Field-Name-Computed) CREATE INDEX IX_Area ON Calc_Area(Area); 2: Ch nh s a INDEXỉ ử  Khi các index càng tăng tr ng, nó b t đ u có s phân m nh. S phân m nh làm gi m t c đ truy v n l y d li u, và hao t n tài nguyên.ưở ắ ầ ự ả ự ả ả ố ộ ấ ấ ữ ệ ổ  Đ gi m s phân m ng, index c n đ c s a l iể ả ự ả ầ ượ ử ạ  Câu l nh ALTER INDEX cùng v i các tùy ch n đ c s d ng cho vi c b o trì các index.ệ ớ ọ ượ ử ụ ệ ả  Syntax ALTER INDEX <index_name> ON <table_name> { REBUILD [WITH (pad_index = {ON|OFF} | FILLFACTOR = n%) ] | Disable | Reorganize }  To Example Xóa index IX_CustID đã đ c đ nh nghĩa trên b ng Customer_Details và t o l i v i FILLFACTOR=70. Các trang index m c lá s đ vùng tr ng chi m 30%ượ ị ả ạ ạ ớ ứ ẽ ể ố ế
  • 47. ALTER INDEX IX_CustID ON Customer_DetailID { REBUILD WITH (FILLFACTOR = 70% ) } J: Thao tác INDEX ONLINE  Các thao tác index tr c tuy n bao g m: t o m i, t o l i, và xóa các index.ự ế ồ ạ ớ ạ ạ  Khi có m t thao tác index đ c th c hi n, ng i dùng khác s b h n ch truy xu t d li u c a b ng cho t i khi thao tác đ c hoàn thành.ộ ượ ự ệ ườ ẽ ị ạ ế ấ ữ ệ ủ ả ớ ượ  Đ kh c ph c h n ch trên, SQL Server 2005 cung c p tùy ch n ONLINE đ cho phép nhi u ng i dùng v n có th truy c p d li u c a b ng trongể ắ ụ ạ ế ấ ọ ể ề ườ ẫ ể ậ ữ ệ ủ ả khi thao tác index đang th c hi n.ự ệ Action Syntax To Example CREATE INDEX CREATE INDEX <Index-Name> ON <Table-Name> (Column-Name)[,…n]) WITH (ONLINE = {ON|OFF}) ALTER INDEX ALTER INDEX <Index-Name> ON <Table-Name> REBUILD WITH (ONLINE={ON|OFF}) DROP INDEX DROP INDEX <Index-Name> ON <Table-Name> WITH (ONLINE={ON|OFF}) ALTER TABLE ALTER TABLE <Table-Name>
  • 48. DROP CONSTRAINT<Constraint-Name> WITH (ONLINE= {ON|OFF}) K: INDEX song song  V i máy tính có đa b x lý, SQL Server 2005 có th s d ng nhi u h n m t b x lý đ th c thi các thao tác index. Đi u này đ c g i là thao tácớ ộ ứ ể ử ụ ề ơ ộ ộ ử ể ự ề ượ ọ index song song.  Các index l n s d ng nhi u b x lý, đi u đó làm h n ch tính s n sàng c a các b x lý cho nh ng ng d ng khác.ớ ử ụ ề ộ ử ề ạ ế ẵ ủ ộ ử ữ ứ ụ  Đ kh c ph c h n ch , b n c n xác đ nh tùy ch n MAXDOP đ gi i h n s b x lý đ c dùng b i các thao tác index.ể ắ ụ ạ ế ạ ầ ị ọ ể ớ ạ ố ộ ử ượ ở ALTER INDEX <Index-Name> ON <Table-Name> WITH (MAXDOP=max_degree_of_parallelism) L: INDEX ph c h pứ ợ  M t index ph c h p (Composite index) không th s d ng nhi u h n 16 c t khóa và kích th c t i đa là 900 byte.ộ ứ ợ ể ử ụ ề ơ ộ ướ ố  Đ m r ng thêm ch c năng c a các nonclustered index, SQL Server 2005 cho phép b n có th đ a thêm các c t không khóa vào nh ng index này.ể ở ộ ứ ủ ạ ể ư ộ ữ  Có th thêm t i đa 1023 c t không khóa, nh ng v n b t bu c ph i có ch a m t c t khóa.ể ố ộ ư ẫ ắ ộ ả ứ ộ ộ  Syntax CREATE NONCLUSTERED INDEX <Index-Name> ON <Table-Name>(Column-Name(s)) INCLUDE (Column-Name(s))  To Example T o index có tên IX_Customer_AccNo trên c t khóa AccNo c a b ng Customer_Details cùng v i ba c t không khóa Address, City, Stateạ ộ ủ ả ớ ộ CREATE NONCLUSTERED INDEX IX_Customer_AccNo ON Customer_Details(AccNo) INCLUDE (Address, City, Sate) M: XML INDEX  XML index s c pơ ấ
  • 49.  Là index đ c t o đ u tiên trên c t XMLượ ạ ầ ộ  XMl index ch có th t o đ c n u trên b ng đã có khóa chínhỉ ể ạ ượ ế ả  Ch có th t o đ c m t XML index s c p cho m i c t XML.ỉ ể ạ ượ ộ ơ ấ ỗ ộ  XML index th c pứ ấ  Có th t o nhi u XML index th c p trên cùng m t b ng đã có XML s c p.ể ạ ề ứ ấ ộ ả ơ ấ Type Syntax To Example S c pơ ấ CREATE PRIMARY XML INDEX Index-Name ON Table-Name(Column-Name_xml) CREATE PRIMARY XML INDEX PXML_DocumentStore ON XMLDocument(DocumentStore) Th c pứ ấ CREATE XML INDEX Index-Name ON Table-Name(Column-Name_xml) USING XML INDEX Index-Name_xml FOR VALUE | PATH | PROPERTY CREATE XML INDEX XML_IX_DocumentStore ON XMLDocument(DocumentStore) USING XML INDEX PXML_DocumentStore FOR PATH N: INDEX Statics Ch s th ng kê cung c p thông tin v s phân b c a các giá tr trong m t c t, nhóm c t. Vi c t i u hóa truy v n s d ng s li u th ng kê ch s đ tăngỉ ố ố ấ ề ự ố ủ ị ộ ộ ộ ệ ố ư ấ ử ụ ố ệ ố ỉ ố ể t c quá trình truy v nố ấ  CREATE Statics CREATE STATISTICS States_customer ON customer_details(custID)  UPDATE Statics UPDATE Statistics customer_details Stats_customer  SHOW Statics DBCC SHOW_STATISTICS (
  • 50. database_name [ , target_percent ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ) 1: Xem thông tin INDEX  SQL Server 2005 cho phép b n xem các thu c tính, không gian đ c s d ng b i index c a các t t c index đã đ c đ nh nghĩa trên b ng.ạ ộ ượ ử ụ ở ủ ấ ả ượ ị ả  Có th xem thông tin b ng hai cách sau:ể ằ  Dùng th t c n i t i sp_helpindex.ủ ụ ộ ạ sp_helpindex <Table-Name>  Dùng SQL Server Management Studio. IV: Phân vùng INDEX (Patitioned INDEX)  Phân vùng m t b ng hay index là chia d li u thành nhóm các dòng nh h n.ộ ả ữ ệ ỏ ơ  Th c hi n thao tác qu n lý trên các nhóm dòng s hi u qu h n, vì ch th c hi n trên m t kh i nh d li u thay vì trên toàn b b ng hay index.ự ệ ả ẽ ệ ả ơ ỉ ự ệ ộ ố ỏ ữ ệ ộ ả  Phân khu b ngả  Phân khu index  Các b c t o phân vùng indexướ ạ : B c 1: T o m t hàm phân vùng (Partition Function)ướ ạ ộ CREATE PARTITION FUNCTION Tên_hàm_phân_vùng(ki udl_c a_tham_s )ể ủ ố AS RANGE [LEFT | RIGHT] FOR VALUES (Giá_tr _1, …,Giá_tr _n)ị ị B c 2: T o m t l c đ phân vùng (Partition Scheme)ướ ạ ộ ượ ồ CREATE PARTITION SCHEME Tên_l c_đ _phân_vùngượ ồ AS PARTITION Tên_hàm_phân_vùng ALL TO (tên_file_group | [PRIMARY] , …) B c 3: T o b ng phân vùng ho c index phân vùngướ ạ ả ặ CREATE TABLE Table-Name (Column-Name ki udl, …)ể ON Tên_l c_đ _phân_vùngượ ồ (Column-Name_phân_vùng)
  • 51. CREATE [UNIQUE | CLUSTERED | NONCLUSTERED] INDEX Index-Name ON Table-Name(Column-Name) [ON Tên_l c_đ _phân_vùng(Column-Name_phân_vùng)ượ ồ ]  To Example: T o m t phân vùng hàmạ ộ PF_Employee_Details CREATE PARTITION FUNCTION PF_Employee_Details (int) AS RANGE LEFT FOR VALUES (5,10) T o l c đ phân vùngạ ượ ồ PF_Employee_Details CREATE PARTITION SCHEME PS_Employee_Details AS PARTITION PF_Employee_Details ALL TO ([PRIMARY]) T o b ng Employee_Details đ c phân vùng v iạ ả ượ ớ PF_Employee_Details CREATE TABLE Employee_Details ( EmpID int NOT NULL, FirstName varchar(30) NOT NULL, LastName varchar(30) NOT NULL, DateofBirth datetime NOT NULL, Gender varchar(6) NOT NULL, City varchar(40) NOT NULL, ) ON PS_Employee_Details (EmpID) CREATE NONCLUSTERED INDEX Ix_City ON Employee_Details(City) ON PS_Employee_Details(EmpId) V: S phân m nh INDEX (ự ả fragmentation)  M i khi index đ c t o, thông tin c a index đ c l u trong các trang index. Các trang index đ c s p x p liên ti p và liên k t v i nhau b i các conỗ ượ ạ ủ ượ ư ượ ắ ế ế ế ớ ở tr .ỏ  Khi th c hi n thêm ho c xóa d li u s làm cho thông tin c a index b r i rác. Đi u này g i là s phân m nh.ự ệ ặ ữ ệ ẽ ủ ị ả ề ọ ự ả  S phân m nh làm gi m t c đ th c thi truy v n và th i gian đáp ng s lâu h n.ự ả ả ố ộ ự ấ ờ ứ ẽ ơ  SQL Server 2005 cho phép t ch c l i index theo đ nh kỳ đ gi m s phân m nh và tăng t c đ đáp ngổ ứ ạ ị ể ả ự ả ố ộ ứ
  • 52. A: T ch c l i INDEXổ ứ ạ  T ch c l i index nh m b đi s phân m nh trong clustered index và nonclustered index.ổ ứ ạ ằ ỏ ự ả  T ch c l i index, là index trong các trang hi n có đ c s p x p l i th t , các trang index tr ng b lo i b .ổ ứ ạ ệ ượ ắ ế ạ ứ ự ố ị ạ ỏ  Syntax ALTER INDEX Index-Name ON Table-Name REORGANIZE  To Example ALTER INDEX IX_City ON Customer_Details REORGANIZE B: Xây d ng l i INDEXự ạ  Xây d ng l i index là xóa index đang t n t i và t o l i index m i có cùng tên.ự ạ ồ ạ ạ ạ ớ  Vi c xây d ng l i index, s phân m nh trong index tr c đ c lo i b hoàn toàn.ệ ự ạ ự ả ướ ượ ạ ỏ Method Syntax To Example ALTER ALTER INDEX Index-Name ON Table-Name REBUILD ALTER INDEX IX_Customer_City ON Customer_Details REBUILD DROP_EXISTING CREATE [UNIQUE | CLUSTERED | NONCLUSTERED] CREATE NONCLUSTERED INDEX IX_Customer_City
  • 53. INDEX Index-Name ON Table-Name(Column-Name) WITH ( DROP_EXISTING= ON | OFF ) ON Customer_Details WITH (DROP_EXISTING = ON) C: Vô hi u hóa INDEXệ  Vô hi u hóa index nh m gi i h n ng i dùng truy xu t index.ệ ằ ớ ạ ườ ấ  N u vô hi u hóa m t clustered index, ng i dùng ch b gi i h n truy xu t d li u c a b ng đó, còn thông tin trong index không b g b .ế ệ ộ ườ ỉ ị ớ ạ ấ ữ ệ ủ ả ị ỡ ỏ  Khi nâng c p SQL Server lên phiên b n m i, các index đã đ c đ nh nghĩa trên b ng s t đ ng b vô hi u.ấ ả ớ ượ ị ả ẽ ự ộ ị ệ  Cú pháp ALTER INDEX Index-Name ON Table-Name DISABLE  Ví dụ ALTER INDEX IX_Customer_City ON Customer_Details DISABLE D: Xóa INDEX  Syntax DROP INDEX Index-Name ON Table-Name  To Example DROP INDEX IX_Customer_City ON Customer_Details VI: H s đi n đ y FILLFACTORệ ố ể ầ  SQL Server 2005 cung c p tùy ch n FILLFACTOR đ xác đ nh m t t l cho SQL Server bi t cách đi n đ y d li u trên trang m c lá (leaf level) c aấ ọ ể ị ộ ỷ ệ ế ề ầ ữ ệ ứ ủ index.  Giá tr có th gán cho FILLFACTOR t 1 đ n 100. M c đ nh là 0. Giá tr c a FILLFACTOR=100 đ c s d ng cho cácị ể ừ ế ặ ị ị ủ ượ ử ụ b ng ch đ c.ả ỉ ọ
  • 54.  Cú pháp CREATE INDEX <Index-Name> ON <Table-Name>(Field-Name) WITH (FILLFACTOR=n)  Ví dụ T o clustered indexạ IX_Country trên c tộ Country trong b ngả Customer_Details v i FILLFACTOR=60, 40% c a trang m c lá đ c đ tr ng cho các d li uớ ủ ứ ượ ể ố ữ ệ đ c thêm v sau.ượ ề CREATE INDEX IX_Country ON Customer_Details(Country) WITH (FILLFACTOR=60)  Tùy ch n PAD_INDEX dùng đ xác đ nh không gian tr ng trên m i trang(page) m c trung gian (intermediate level) c a index cho vi c tăng tr ngọ ể ị ố ỗ ở ứ ủ ệ ưở sau này.  Các tùy ch n PAD_INDEX ch có ích khi FILLFACTOR đ c xác đ nh, b i vì PAD_INDEX s d ng t l theo quy đ nh c a FILLFACTOR.ọ ỉ ượ ị ở ử ụ ỷ ệ ị ủ  N u tùy ch n PAD_INDEX không đ c ch đ nh ho c đ c thi t l p OFF. SQL Server đ m b o r ng m i trang index m c trung gian có đ không gianế ọ ượ ỉ ị ặ ượ ế ậ ả ả ằ ỗ ứ ủ tr ng đ ch a ít nh t m t dòng.ố ể ứ ấ ộ VII: Locking (khóa)  SQL Server 2005 cung c p tính năng ngăn c n nhi u ng i dùng cùng đ ng th i th c hi n c p nh t trên cùng d li u.ấ ả ề ườ ồ ờ ự ệ ậ ậ ữ ệ  S d ng tính năng locking, m t ng i dùng này có th ngăn ng i dùng khác ch nh s a d li u mà mình đang th c hi n c p nh t.ử ụ ộ ườ ể ườ ỉ ử ữ ệ ự ệ ậ ậ  Trong SQL Server 2005 cho phép khóa các m c sau:ở ứ  Dòng (recommend)  B ng (ả recommend)  Trang (recommend)
  • 55.  C s d li u (notơ ở ữ ệ recommend)  Vi c th c hi n khóa riêng t ng dòng trong b ng s làm gia tăng s l ng khóa, t n tài nguyên đ l u tr khóa.ệ ự ệ ừ ả ẽ ố ượ ố ể ư ữ  Query optimizer cho phép áp d ng khóa trang đ gi m b t tài nguyên đ c dùng cho vi c l u khóa.ụ ể ả ớ ượ ệ ư  Hai tùy ch n sau đ c dùng trong câu l nh CREATE INDEX và ALTER INDEXọ ượ ệ  ALLOW_ROW_LOCK  ALLOW_PAGE_LOCK  Syntax CREATE INDEX <Index-Name> ON <Table-Name> (Column-Name) WITH (ALLOW_ROW_LOCKS = {ON|OFF}, ALLOW_PAGE_LOCKS = {ON|OFF} )  To Example CREATE INDEX IX_state ON customer_details(state) WITH (ALLOW_ROW_LOCKS=ON, ALLOW_PAGE_LOCKS=ON) VIII: Tìm ki m dòng (Finding Rows)ế  Tìm ki m các dòng khi không có các indexế  Khi không có index t o cho b ng, SQL Server s d ng các view catalog đ tìm các dòng.ạ ả ử ụ ể  SQL Server s d ng view sys.indexes đ tìm ra trang IAM. Trang IAM có ch a danh sách t t c các trang c a m t b ng, qua đó SQL Server có thử ụ ể ứ ấ ả ủ ộ ả ể đ c t t c các trang d li u.ọ ấ ả ữ ệ  Khi view sys.indexes đ c s d ng, query optimizerượ ử ụ (t i u)ố ư ki m tra t t c các dòng trong m t b ng và ch rút ra các dòng đ c tham chi uể ấ ả ộ ả ỉ ượ ế trong truy v n. Đi u đó làm phát sinh nhi u thao tác nh p/xu t và s d ng nhi u tài nguyên.ấ ề ề ậ ấ ử ụ ề
  • 56.  Tìm ki m các dòng v i Nonclustered indexế ớ  Nonclustered index t ng tươ ự nh m t m c l c quy n sách.ư ộ ụ ụ ể  Các con tr trong nút m c lá c a index tr t i v trí l u tr d li u c a b ng.ỏ ứ ủ ỏ ớ ị ư ữ ữ ệ ủ ả  Khi th c hi n tìm ki m các dòng b ng cácnonclustered index, câu l nh SELECT đ c dùng cùng v i các c t nonclustered index trong m nh đự ệ ế ằ ệ ượ ớ ộ ệ ề WHERE.
  • 57.  Tìm ki m các dòng v i clustered indexế ớ  Các clustered index l u tr các dòng d li u d a trên các giá tr khóa c a chúng.ư ữ ữ ệ ự ị ủ  Khi th c hi n tìm ki m các dòng b ng các clustered index, câu l nh SELECT đ c dùng cùng v i các c t clustered index đ c ch ra trong m nhự ệ ế ằ ệ ượ ớ ộ ượ ỉ ệ đ WHERE.ề Lesson 3: View Group 1: N i dungộ Trong view ta có nh ng v n đ sau:ữ ấ ề  Gi i thi u Viewớ ệ  Đ nh nghĩa và gi i thích Viewị ả  Các lo i Viewạ  Các l i ích c a Viewợ ủ
  • 58.  View h th ngệ ố  Đ nh nghĩa Viewị  Cách t o viewạ  Các gi i h n c a viewớ ạ ủ  S a viewử  Xóa view  Cách xem thông tin đ nh nghĩa c a viewị ủ Group 2: Gi i thi uớ ệ I: Khái ni mệ  View là cách đ xem các d li u t m t hay nhi u b ng trong c s d li u.ể ữ ệ ừ ộ ề ả ơ ở ữ ệ  View là m t b ng o, đ c t o ra b i các c t đ c l y t m t ho c nhi u b ng(table) khác nhau. Các b ng này đ c g i là các b ng c s , chúngộ ả ả ượ ạ ở ộ ượ ấ ừ ộ ặ ề ả ả ượ ọ ả ở ở có th trong cùng database ho c t các database khác.ể ặ ừ  View cũng có th ch a các c t l y t m t View khác trong cùng database ho c database khác.ể ứ ộ ấ ừ ộ ặ  M t View có th có t i đa 1024 c t.ộ ể ố ộ  View không th s p x p tr khi b n t o m t unique clustered index trên nó.ể ắ ế ừ ạ ạ ộ  Có th t o nhi u nonclustered index trên View, nh ng v i unique clustered index ch t o m t l n.ể ạ ề ư ớ ỉ ạ ộ ầ  M t index có th t o trên view n uộ ể ạ ế  View không ch a các c t t view khác.ứ ộ ừ  B ng c s n m trong cùng database v i view.ả ơ ở ằ ớ
  • 59. II: Các lo i viewạ  View đ c chia thành ba lo iượ ạ  Standard View (khung nhìn chu n)ẩ Là view đ c t o v i các c t l y t m t ho c nhi u b ng.ượ ạ ớ ộ ấ ừ ộ ặ ề ả  Indexed View (khung nhìn ch s )ỉ ố Là view có m t unique clustered index. Indexed view r t có ích cho các truy v n th ng kê d li u. Indexed view không thích h p cho các b ng th ng xuyênộ ấ ấ ố ữ ệ ợ ả ườ c p nh t.ậ ậ  Partitioned View (khung nhìn đ c phân chia)ượ Là view dùng các d li u đ c phân vùng t m t ho c nhi u b ng. N u b ng c s đ c trên cùng server, view đ c xem nh là partitioned view c c bữ ệ ượ ừ ộ ặ ề ả ế ả ơ ở ượ ượ ư ụ ộ (local partitioned view ), ng c l i, n u đ t trên sever khác đ c g i là partition view phân tán (Distributed partitioned view).ượ ạ ế ặ ượ ọ III: u đi m c a viewƯ ể ủ  u đi m c a viewƯ ể ủ  B o m t thông qua cá nhân hóa truy xu t.ả ậ ấ S d ng view, d li u đ c l y t cùng m t ngu n nh ng đ c hi n th khác nhau theo yêu c u c a m i ng i dùng.ử ụ ữ ệ ượ ấ ừ ộ ồ ư ượ ể ị ầ ủ ỗ ườ  Tùy bi n hi n th d li u.ế ể ị ữ ệ D li u nh y c m có th đ c che gi u kh i nh ng ng i dùng không có đ th m quy n đ truy xu t.ữ ệ ạ ả ể ượ ấ ỏ ữ ườ ủ ẩ ề ể ấ Cá nhân hóa truy xu t d li u đ c th c hi n b ng vi c ch cho phép ng i dùng truy xu t database thông qua m t t p nh các viewấ ữ ệ ượ ự ệ ằ ệ ỉ ườ ấ ộ ậ ỏ  Tr n d li u t nhi u b ng ho c view.ộ ữ ệ ừ ề ả ặ View có th ghép các c t t nhi u b ng và view khác và chúng đ c hi n th cùng nhau nh l y t m t b ng.ể ộ ừ ề ả ượ ể ị ư ấ ừ ộ ả  Thao tác trên các b n ghi (record).ả View cũng có th đ c dùng đ c p nh t d li u cho b ng, n u view đó có ch a t t c các c t quan tr ng c a b ng (nh c t khóa chính, c t NOT NULL).ể ượ ể ậ ậ ữ ệ ả ế ứ ấ ả ộ ọ ủ ả ư ộ ộ
  • 60.  Ki m tra ràng bu c toàn v n.ể ộ ẹ N u d li u đ c thêm ho c ch nh s a thông qua view. SQL Server t đ ng ki m tra d li u đ đ m b o ràng bu c toàn v n cho t ng c t.ế ữ ệ ượ ặ ỉ ử ự ộ ể ữ ệ ể ả ả ộ ẹ ừ ộ IV: View h th ngệ ố  View h th ng là các view đã đ c đ nh nghĩa s n trong SQL Server.ệ ố ượ ị ẵ  Thu c tính c a các đ i t ng khác nh table và view đ c l u tr trong các b ng h th ng. Các thu c tính này đ c xem nh là siêu d li uộ ủ ố ượ ư ượ ư ữ ả ệ ố ộ ượ ư ữ ệ (metadata).  Siêu d li u có th xem đ c thông qua view h th ng.ữ ệ ể ượ ệ ố  Các lo i view h th ngạ ệ ố  Catalog view (View danh m c)ụ  Information Schema views (View l c đ thông tin)ượ ồ  Compatibility views (View t ng tích)ươ  Replication views (View nhân b n)ả  Dynamic Management views (View qu n lý đ ng)ả ộ  Notification services views (View d ch v thông báo)ị ụ Group 3: S d ng VIEWử ụ I: T o viewạ  Cú pháp CREATE VIEW <View-Name> AS Câu_l nh_Selectệ  Ví dụ CREATE VIEW Salary_Details AS SELECT EmpID, FirstName, LastName, Salary FROM Employe_Details