Các ngôn ng l p trình luôn g n bó m t thi t v i mô hình d li u. Nhi u nhà nghiên c u và phát tri n cho r ng h CSDL H T th hi n mình là s liên k t c a h th ng l p trình và HQT CSDL. HQT CSDL H T là HQT CSDL có n n t ng là mô hình d li u H T.
VII.2.3.1 S đánh m t m i t ng quan gi a các ngôn ng l p trình và các ngôn ng truy v n trong HQT CSDL quan h
S c n thi t th c ti n chính trong CSDL H T liên quan đ n các yêu c u trong m t môi tr ng xây d ng tích h p nào đó c a các h th ng thông tin ph c t p. Trong môi tr ng đó đòi h i ph i không có các mâu thu n gi a ph n c u trúc và ph n hành vi c a d án và ph i h tr qu n tr hi u qu các c u trúc d li u ph c t p trong b nh ngoài. Trong các h th ng quan h , khi xây d ng m t ng d ng đ ng th i ph i s d ng ngôn ng l p trình th t c h ng công vi c v i các giá tr vô h ng và ngôn ng truy v n ki u khai báo h ng công vi c v i các t p h p. i u đó th ng đ c g i là s đánh m t t ng quan (impedance mismatch). Môi tr ng ngôn ng CSDL H T là h th ng l p trình h ng đ i t ng, mà t t nhiên bao g m c các công c đ làm vi c v i các đ i t ng b n v ng. “Tính t t nhiên” c a vi c đ a các công c làm vi c v i CSDL vào ngôn ng l p trình có ngh a r ng, làm vi c v i các đ i t ng lâu b n (đ c l u tr trong CSDL bên ngoài) c n ph i di n ra trên c s chính các vi c xây d ng cú pháp đó và cùng chính m ng ng ngh a đó, nh là công vi c v i các đ i t ng t m th i ch t n t i trong th i gian làm vi c c a ch ng trình.
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} 185 M t này c a CSDL H T g n nh t v i h ng các ngôn ng l p trình CSDL. Các ngôn ng l p trình CSDL H T và CSDL trong nhi u đi m c a mình ch khác bi t m t thu t ng ; s khác bi t ch y u ch là s h tr cách ti p c n v i s th a h ng c a các l p trong các ngôn ng b c m t (first-order language). Ngoài ra, các ngôn ng c p hai tiên ti n h n c v m t h th ng các ki u, và m t các c u trúc qu n tr .
M t khía c nh khác c a môi tr ng ngôn ng CSDL H T n a là s yêu c u trong các ngôn ng truy v n có th đ c s d ng trong ch đ t ng tác qua l i (on-line, interactive). N u vi c truy c p đ n các đ i t ng c a CSDL bên ngoài trong các ngôn ng l p trình CSDL H T ch y u mang tính d n đ ng ( ?), thì dùng ki u khai báo s thu n ti n h n cho các ngôn ng truy v n. Các ngôn ng truy v n ki u khai báo đ n các CSDL H T không tiên ti n b ng các ngôn ng l p trình CSDL H T, và trong quá trình tri n khai chúng xu t hi n nhi u v n đ l n.
VII.2.3.2 Các ngôn ng l p trình CSDL H T nh là các ngôn ng H T h tr các đ i t ng b n v ng (persistent)
n th i đi m này v n ch a có m t ngôn ng l p trình CSDL H T nào đ c thi t k b t đ u t con s không. Con đ ng t nhiên đ xây d ng m t ngôn ng nh th là s d ng và m r ng nh ng ph n c n thi t m t ngôn ng h ng đ i t ng đã có nào đó. B t đ u s bùng n c a h ng CSDL H T trùng h p v i cao đi m c a s ph d ng c a ngôn ng Smalltalk-80. Ngôn ng này nh h ng r t l n đ n vi c phát tri n các h th ng CSDL H T đ u tiên. Và, c th , nó đ c s d ng v i t cách là ngôn ng l p trình. Ph n l n nó d a trên ngôn ng Smalltalk và m t h th ng th ng m i khác là Gemstone.
Các khó kh n trong vi c tri n khai hi u qu trong th c ti n c a ngôn ng Smalltalk đã đánh th c các nhà phát tri n các h th ng CSDL H T, và thúc đ y h trong vi c tìm ki m nh ng ngôn ng c s khác. S t ng đ ng rõ ràng gi a các cách ti p c n h ng đ i t ng và cách ti p c n theo ch c n ng trong l p trình cho phép d a vào các ngôn ng l p trình ch c n ng t i đa trong vi c phát tri n các ngôn ng CSDL H T. C th , ngôn ng Common Lisp là n n t ng c a d án ORION. Trong d án đó Lisp v a là ngôn ng công c , v a là n n t ng c a ngôn ng l p trình h ng đ i t ng trong môi tr ng ORION.
Các yêu c u tri n khai hi u qu h n bu c ph i s d ng các ngôn ng c p đ th p h n trên tính ch t là n n t ng c a ngôn ng H T. Ví d , trong h th ng VBASE bên c nh ngôn ng đ c phát tri n đ c bi t đ đ nh ngh a các ki u TDL (Type Defination Language), b n m r ng c a ngôn ng h ng đ i t ng C – COP (C Object Processor) đ c s d ng.
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} 186 Trong d án O2, bên c nh ngôn ng l p trình h ng đ i t ng ch c n ng (?), hai b n m r ng c a các ngôn ng l p trình Basic và C đ c s d ng. Trong khi đó, ph bi n r ng rãi nh t là ngôn ng CO2 – m t phiên b n m r ng c a ngôn ng C. i u đó có th liên quan đ n s ph bi n r ng rãi c a ngôn ng C và h u du c a nó là C++. Nh ng lý do c ng có th sâu xa h n, ch ng h n nh , các ngôn ng l p trình c p đ cao th ng r t h n ch đ i v i các l p trình viên chuyên nghi p,… H n n a, xu th hi n đ i là nh v y, và c ng có ý ngh a khi mô t s l c các đ c tr ng c b n c a ngôn ng CO2.
VII.2.3.3 Các ví d ngôn ng l p trình CSDL H T
Rõ ràng ngôn ng CO2 không ph i là m t ngôn ng đ c l p. Nó là m t ph n c a môi tr ng đa ngôn ng O2 và đ c dùng đ l p trình các ph ng th c c a các l p đã đ c đ c đ nh ngh a tr c. Các l p, các d u hi u (signature) c a các ph ng th c (th c t là các m u, prototype, c a các hàm trong C) và các tên c a các giá tr đ c l u gi lâu dài và các đ i t ng đ c đ nh ngh a v i s giúp đ c a m t ngôn ng riêng bi t dùng đ đ nh ngh a l c đ c a CSDL.
Tên c a m t đ i t ng b t k là m t con tr ch đ n giá tr c a đ i t ng đó; cùng v i m t toán t C thông th ng ‘*’. Ch các ph ng th c c a l p m i có th truy c p đ n giá tr c a đ i t ng, n u khi kê khai các ph ng th c toán t ‘*’ không đ c khai báo public m t cách rõ ràng.
Thao tác t o ra m t đ i t ng m i c a m t l p đ c h tr . Khác bi t v i C++, trong CO2 không th k t h p vi c t o ra m t đ i t ng m i cùng v i vi c kh i t o (initialization) nó b i vì khái ni m ph ng th c kh i t o (constructor) cùng v i các giá tr ban đ u c a đ i t ng không đ c h tr trong CO2. cho các giá tr ban đ u c n ph i ho c là g i m t cách rõ ràng các ph ng th c t ng ng c a l p cùng v i con tr ch đ n đ i t ng đ c t o ra, ho c là s d ng toán t ‘*’ và gán các giá tr m i, n u nh ‘*’ là m t toán t public cho l p đó.
CO2 bao g m c các công c ki n t o các giá tr -b n ghi, các t p h p và các danh sách. Khái ni m giá tr -b n ghi th c t t ng đ ng v i khái ni m giá tr -c u trúc c a ngôn ng C thông th ng, v i s khác bi t là các ph n t c a b n ghi có th là các đ i t ng, các t p h p và các danh sách. Các thao tác thêm, b t c ng nh xem các ph n t c ng nh t h p các thao tác trên t p h p, n i các danh sách c ng đ c h tr .
Công c “l p l i” (iteration) m r ng so v i ngôn ng C là c n b n c a vi c thao tác các đ i t ng đ c l u gi trong CSDL. “Máy l p (iterator)” đ c áp d ng cho các giá tr -
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} 187 t p h p ho c giá tr -danh sách. Th c t máy l p là m t s ng d ng liên ti p toán t -thân c a vòng l p v i t t c các ph n t c a t p h p ho c danh sách. Máy l p c a ngôn ng CO2 đ m b o vi c ch y qua (navigation) trong các l p c a các đ i t ng. i m còn l i duy nh t t các ngôn ng truy v n quen thu c v i ng i dùng HQT CSDL đó là kh n ng h n ch c a vi c ch ra các đ c đi m c a các đ i t ng c n thi t trong vòng l p, b ng cách s d ng toán t ‘*’ và ch ra m t cách t ng minh các đi u ki n cho các thu c tính; t t nhiên, toán t
‘*’ ph i đ c khai báo public trong l p đó.
Các nhà phát tri n ngôn ng CO2 nh n m nh r ng, h c ý t o ra CO2 v i các tính n ng nghèo nàn h n so v i, ch ng h n, C++, b i vì nhi u th trong ph n đi u khi n các đ i t ng đã đ c th c hi n b i qu n tr viên (manager) các đ i t ng chung c a h th ng.