Các ngôn ng truy v n CSDL H T

Một phần của tài liệu Giáo trình hệ quản trị cơ sở dữ liệu nguyễn trần quốc vinh (Trang 196 - 200)

Hi n nay, các nhà phát tri n nh n th y yêu c u trong vi c h tr trong các HQT CSDL H T không ch ngôn ng ho c h các ngôn ng l p trình CSDL H T, mà còn các ngôn ng truy v n phát tri n (tiên ti n). H th ng c n ph i h tr m t giao di n d hi u và ng i dùng cu i cùng có th truy c p th ng trong ch đ tr c ti p.

VII.2.4.1 i u h ng (navigation) t ng minh nh là m t công c v t qua s m t mát tính t ng ng

Ph bi n nh t là cách ti p c n t ch c các giao di n t ng tác v i các h th ng CSDL H T trên n n t ng c a vi c ng d ng các “tu n tra viên”. Trong tr ng h p này th ng giao di n cu i cùng là giao di n đ ho . L c đ c a CSDL H T đ c th hi n trên màn hình, và ng i s d ng có th truy c p đ n các đ i t ng theo ki u đi u h ng. Vài nghiên c u cho r ng, trong tr ng h p đó thông minh h n thì nên b qua tính đóng gói c a các đ i t ng và bi u di n cho ng i dùng th gi i bên trong c a các đ i t ng. Trong ph n l n các h CSDL H T hi n t i t n t i m t giao di n t ng t , nh ng t t c hi u r ng, ngôn ng truy v n đi u h ng, trong m t ý t ng nào đó, có th đ c cho là t t h u m t b c so v i các ngôn ng truy v n khác, th m chí trong các h th ng quan h .

VII.2.4.2 Các ngôn ng truy v n không-đi u h ng (non-navigation)

Bery ghi nh n s t n t i c a ba cách ti p c n. Cách th nh t - các ngôn ng là s m r ng theo h ng h ng đ i t ng c a các ngôn ng truy v n c a các h th ng quan h . Ph bi n nh t là các ngôn ng có cú pháp g n v i ngôn ng SQL. i u đó liên quan đ n s công nh n chung và ph bi n r ng rãi c a ngôn ng SQL.

H QU N TR C S D LI U – B n Nháp 30-08-08

http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 188 Cách th hai có n n t ng trên vi c xây d ng các tính toán h ng đ i t ng lu n lý toàn di n. Có nhi u công trình lý thuy t liên quan đ n vi c xây d ng m t tính toán nh th , nh ng m t ngôn ng truy v n hoàn thi n và đ c tri n khai th c ti n thì ch a đ c th y. Có th nh n th y r ng, các công trình trên n n t ng lý thuy t đ i s c a các ph m trù (category) c ng theo h ng các ngôn ng truy v n đ c miêu t toán h c ch t ch .

Cách th ba d a trên n n t ng ng d ng cách ti p c n suy di n. Nó ch y u th hi n vi c các nhà phát tri n c g ng làm xích l i g n các h ng CSDL suy di n và CSDL H T.

M t cách đ c l p v i ngôn ng truy v n đ c s d ng đ phát tri n h ng ti p c n, tr c m t các nhà phát tri n t n t i m t v n đ mang tính khái quát. Vi c gi i quy t v n đ đó không đ c đ a vào dòng ch y (chi u h ng?) truy n th ng c a cách ti p c n h ng đ i t ng. Rõ ràng, l p đ i di n cho m t t p h p các đ i t ng cùng ki u trong CSDL, và là c s đ hình th c hoá m t truy v n. Nh ng k t qu m t truy v n có th là gì? T h p các khái ni m c b n c a cách ti p c n h ng đ i t ng không ch a m t khái ni m có th ch p nh n trong tình hu ng này. Th ng thì có th thoát kh i tình th b ng cách m r ng t h p c b n các khái ni m t p h p các đ i t ng, và gi s r ng, k t qu c a m t truy v n là là m t t p h p con nào đó c a các đ i t ng-b n sao c a m t l p. Nh ng cách ti p c n đó khá h n ch , b i vì t đ ng nó đã lo i b kh n ng t n t i trong ngôn ng truy v n các công c t ng t nh phép n i các quan h trong ngôn ng CSDL quan h . Chúng ta s xem qua các đ c tính c a vài ngôn ng truy v n ki u khai báo đ n các CSDL H T.

Trong ngôn ng truy v n c a HQT CSDL H T ORION, nguyên t c đóng gói c a các đ i t ng đ c duy trì hoàn toàn. Các truy v n ch có th trên c s m t l p trong phiên b n đã đ c tri n khai c a ngôn ng này. Cách ti p c n đ đ nh ngh a m t truy v n trên c s nhi u l p d i d ng m r ng m ng ng ngh a c a phép n i quan h c ng đ c đ ngh . Cú pháp c a ngôn ng theo đ nh h ng SQL. T h p các cú pháp ch n l a (select) r t phát tri n. Có th ch ra tên c a ng i dùng đang quan tâm c a l p con cho các thu c tính, n u mi n giá tr c a nó là m t siêu l p.

Ngôn ng truy v n Iris mang s nh h ng r t l n c a hình thái quan h . Th m chí tên g i c a nó là OSQL th hi n m i quan h m t thi t c a nó v i ngôn ng quan h SQL.

Th c ch t OSQL là m t ngôn ng quan h đ c t o ra đ làm vi c v i các quan h ch a đ c chu n hoá. Rõ ràng, v i cách ti p c n này trong ngôn ng OSQL tính đóng gói c a các đ i t ng b phá hu .

H QU N TR C S D LI U – B n Nháp 30-08-08

http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 189 Có th nói thú v nh t là ngôn ng khai báo truy v n c a h th ng O2 RELOOP. Nó là ngôn ng có cú pháp h ng SQL, và có n n t ng là đ i s c a các đ i t ng và giá tr đ c phát tri n đ t bi t cho hô hình O2. Truy v n bao gi c ng đ c đ a ra trên giá tr -t p h p ho c giá tr -danh sách. Trong khi đó, các ph n t c a các giá tr -t p h p có th là các đ i t ng (ch n đ n gi n), ho c giá tr -b n ghi v i các ph n t là các đ i t ng c a nhi u l p khác nhau. Trong t ng th , các tính n ng đó c a ngôn ng cho phép đ nh hình các truy v n trên nhi u l p, và các truy v n l ng c ng đ c h tr .

VII.2.4.3 Các v n đ t i u hoá truy v n

Thông th ng, m c đích chính c a quá trình t i u hoá các truy v n trong h th ng CSDL H T là vi c xây d ng m t k ho ch th c thi t i u các truy v n s d ng các công c truy c p đ n b nh ngoài c a CSDL H T.

T i u hoá truy v n đã đ c nghiên c u và phát tri n r t t t trong b i c nh các CSDL quan h . Các ph ng pháp t i u hoá theo cú pháp và ng ngh a trên c p đ bi u di n phi th t c (non-procedure) các truy v n, các thu t toán th c thi các toán t quan h c b n và các ph ng pháp c l ng tr giá th c thi các k ho ch th c thi truy v n đã đ c bi t đ n r ng rãi.

T t nhiên, các đ i t ng có th có c u trúc ph c t p h n nhi u so v i các b n ghi c a các quan h “ph ng”, nh ng s khác bi t đó không ph i là quan tr ng nh t. S ph c t p chính c a vi c t i u hoá các truy v n đ n các CSDL H T là đi m, các đi u ki n c a phép ch n đ c hình th c hoá trong các thu t ng c a các thu c tính “bên ngoài” c a các đ i t ng (các ph ng th c), còn cho vi c t i u hoá th c ti n (ngh a là t o ra k ho ch t i

u) thì yêu c u các đi u ki n ph i đ c xác đ nh trên các thu c tính “bên trong”.

Th c ch t tình hu ng t ng t c ng g p ph i c trong các HQT CSDL quan h (RDBMS) trong quá trình t i u hoá các truy v n trên khung nhìn c a CSDL. Trong tr ng h p đó các đi u ki n l a ch n c ng đ c hình th c trên các thu t ng c a các thu c tính bên ngoài (các thu c tính c a khung nhìn), và trong m c đích c a vi c t i u hoá truy v n các đi u ki n đó ph i đ c bi n đ i thành các đi u ki n đ c xác đ nh trên các thu c tính c a các quan h đang đ c l u tr . M t ph ng pháp “t i u hoá tr c” (pre-optimization) đ c bi t đ n r ng rãi đó là thay th các khung nhìn. Ph ng pháp này th ng cho phép đ m b o các bi n đ i c n thi t. M t ph ng pháp th c thi truy v n trên các khung nhìn khác đó là “th c hoá” (materialization) các khung nhìn. Và đôi khi, nó là cách duy nh t.

H QU N TR C S D LI U – B n Nháp 30-08-08

http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 190 Trong các h CSDL H T tình hình ph c t p h n b i hai tình ti t. u tiên, các ph ng th c th ng đ c l p trình trên m t ngôn ng l p trình hình th c (procedure) nào đó và có th có nhi u tham s . Ngh a là, trong tr ng h p chung, thân c a các ph ng th c không ch là m t bi u th c đ i s nh trong tr ng h p đ nh ngh a các thu c tính c a các khung nhìn, mà là m t ch ng trình có tham s bao g m c s phân nhánh, g i các hàm và các thu c tính c a các đ i t ng khác. S ph c t p th hai liên quan đ n tính liên k t (linking) mu n là m t kh n ng và c ng r t ph bi n: Trong th i gian biên d ch truy v n s tri n khai và th m chí c u trúc đ i t ng chính xác có th không đ c bi t đ n.

M t trong nh ng cách gi n l c v n đ đó là m ra tính “nhìn th y” c a nh ng thu c tính bên trong nào đó c a đ i t ng quan tr ng nh t cho quá trình t i u hoá. Trong b i c nh đó, ch c n m ra tính nhìn th y cho trình biên d ch truy v n có th là đ , ngh a là, th c t không cho phép đ nh ngh a l i nh ng bi n nh v y trong các l p con. D i cái nhìn c a ng i dùng, các thu c tính nh v y đ c nhìn nh n nh là các ph ng th c không tham s và tr l i giá tr có ki u t ng ng. Có th th y r ng, s t t h n n u v n duy trì tính đóng gói nghiêm ng t c a các đ i t ng (nh m m c đích đ a các ng d ng thoát kh i s ph thu c mang tính s ng còn đ n vi c tri n khai) và đ m b o các tính n ng thi t k l c đ CSDL H T có tính đ n các yêu c u t i u các truy v n.

Cách ti p c n chung cho vi c ti n t i u hoá (pre-optimzation) các đi u ki n l a ch n (đ c hình th c hoá b ng vi c s d ng các m nh đ lu n lý b c m t không có các phép l ng hoá (quantifier, kvantor), và trong các m nh đ đó, các ph ng th c c a l p t ng ng, các h ng s và các toán t so sánh có th đ c s d ng) cho m t (siêu) l p c a các đ i t ng có th nh sau:

B c 1. Bi n đ i bi u th c lu n lý c a đi u ki n vào d ng h i chu n (CNF – conjunctive normal form). Chúng ta không nghiên c u sâu cách th c ch n m t CNF c th , nh ng hi n nhiên, ph i ch n m t CNF “t t”, ví d , CNF ch a các h i (conjunction) nguyên t l n nh t có th .

B c 2. i v i m i h i bao g m các ph ng th c có ph n thân đã bi t tr c trong th i gian biên d ch thì thay các l n g i (call) chúng b ng thân c a chúng cùng v i các tham s đã đ c “l p đ t s n” (thay tham s b ng giá tr ). đ n gi n, chúng ta gi thuy t r ng, các tham s không ch a các cu c g i các hàm ho c là ph ng th c c a các đ i t ng khác.

B c 3. Cho m i h i nh th , th c thi t t c các vi c đ n gi n hoá có th , ngh a là, tính toán t t c nh ng gì có th tính trong ph n t nh. M c dù d ng chung, công vi c này

H QU N TR C S D LI U – B n Nháp 30-08-08

http://elearning.due.edu.vn/course/view.php?id=7 Nguy n Tr n Qu c Vinh ntquocvinh@{gmail.com, yahoo.com, due.edu.vn} 191 r t ph c t p. Trong quá trình thi t k CSDL H T m t cách thông minh, các ph ng th c bao g m c nh ng ph ng th c có tri n khai đ n gi n nh t đ vi c đ a ra các đi u ki n cho các ph ng th c đó s là r t t nhiên. Nh ng đi u ki n nh th s đ c gi n l c m t cách r t hi u qu .

B c 4. N u xu t hi n các h i th hi n mình là các m nh đ đ n gi n trên c s các bi n tr ng thái và h ng s , thì s d ng các h i đ phát tri n m t k ho ch th c thi truy v n t i u. N u nh không th thu đ c nh ng h i nh v y, thì cách duy nh t đ “l c” (siêu) l p các đ i t ng, đó là xét qua theo th t cùng v i vi c tính toán m t cách đ y đ các bi u th c lu n lý cho m i đ i t ng.

Hi u r ng, các kh n ng t i u hoá s ph thu c vào các đ c tính c a ngôn ng l p trình s đ c áp d ng đ l p trình các ph ng th c, ph thu c vào các tính n ng c a ngôn ng truy v n c th , và ph thu c vào vi c đã đ u t suy ngh bao nhiêu trong quá trình thi t k l c đ CSDL H T. C th , t t nh t ngôn ng l p trình đ c s d ng thao tác t i đa phong cách l p trình các ph ng th c c a các đ i t ng. Ngôn ng truy v n ph i h n ch đ n m c có th các kh n ng c a ng i dùng, c th , trong m i quan h c a các tham s c a các ph ng th c tham gia vào các đi u ki n c a các truy v n. Cu i cùng, trong các l p c a l c đ CSLD H T c n ph i có các ph ng th c đ n gi n. Các ph ng th c đó không đ c đ nh ngh a l i trong các l p con, và có n n t ng là các bi n tr ng thái là c s đ t ch c các ph ng th c truy c p.

Chú ý r ng, nh ng ràng bu c đã đ c nêu trên không liên quan đ n (vlekut) s ph thu c c a các trình ng d ng vào các đ c tính tri n khai c a CSDL H T, b i vì các đ i t ng v n đ c đóng gói hoàn toàn. Vi c s d ng các ph ng th c trong các đi u ki n c a các truy v n c n ph i đ c thao tác không ph i b i các yêu c u c a vi c tri n khai, mà là m ng ng ngh a c a các đ i t ng.

Một phần của tài liệu Giáo trình hệ quản trị cơ sở dữ liệu nguyễn trần quốc vinh (Trang 196 - 200)

Tải bản đầy đủ (PDF)

(217 trang)