intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Tóm tắt luận văn thạc sĩ kỹ thuật: Nghiên cứu xây dựng công cụ kiểm thử đột biến các câu lệnh SQL

Chia sẻ: Nhung Thi | Ngày: | Loại File: PDF | Số trang:26

130
lượt xem
16
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tóm tắt luận văn thạc sĩ: Nghiên cứu xây dựng công cụ kiểm thử đột biến các câu lệnh SQL được chia thành 3 chương như sau: chương 1 kiểm thử đột biến, chương 2 kiểm thử đột biến các câu truy vấn SQL, chương 3 xây dựng công cụ hỗ trợ kiểm thử đột biến các câu lệnh truy vấn SQL.

Chủ đề:
Lưu

Nội dung Text: Tóm tắt luận văn thạc sĩ kỹ thuật: Nghiên cứu xây dựng công cụ kiểm thử đột biến các câu lệnh SQL

  1. -1- B GIÁO D C VÀ ĐÀO T O Đ I H C ĐÀ N NG TR N VĂN MINH NGHIÊN C U XÂY D NG CÔNG C KI M TH Đ T BI N CÁC CÂU L NH SQL Chuyên ngành: KHOA H C MÁY TÍNH Mã s : 60.48.01 TÓM T T LU N VĂN TH C SĨ K THU T Đà N ng - Năm 2011
  2. -2- Công trình ñư c hoàn thành t i Đ I H C ĐÀ N NG Ngư i hư ng d n khoa h c: TS. NGUY N THANH BÌNH Ph n bi n 1: PGS.TS. LÊ VĂN SƠN Ph n bi n 2: TS. NGUY N M U HÂN Lu n văn ñư c b o v trư c H i ñ ng ch m Lu n văn t t nghi p th c sĩ k thu t h p t i Đ i h c Đà N ng vào ngày 16 tháng 10 năm 2011 Có th tìm hi u lu n văn t i: - Trung tâm Thông tin - H c li u, Đ i h c Đà N ng - Trung tâm H c li u, Đ i h c Đà N ng.
  3. -3- M Đ U 1. Lý do ch n ñ tài Ki m th là m t trong nh ng ho t ñ ng quan tr ng trong ti n trình phát tri n ph n m m. Nó góp ph n vào vi c ñánh giá ch t lư ng s n ph m ph n m m. Hi n nay, h u h t các s n ph m ph n m m ng d ng ñ u có s d ng ngôn ng truy v n d li u ñ lưu tr qu n lý thông tin, do ñó vi c qu n lý và ki m th chúng trong quá trình phát tri n ph n m m t n nhi u th i gian.Vì v y, nhu c u có ñư c m t h th ng ng d ng ki m th ñ t bi n ñ ñánh giá ch t lư ng các b d li u ki m th khi th c hi n ki m th các câu l nh truy v n SQL th c s là c n thi t. M t khác, hi n nay v n ñ b n quy n ph n m m ñang là v n ñ nan gi i ñ i v i các t ch c, ngư i dùng và nhu c u s d ng mã ngu n m ñang phát tri n r ng kh p nh m giúp gi m chi phí. Xu t phát t nh ng phân tích và nh n xét trên, tôi ch n ñ tài “Nghiên c u xây d ng công c ki m th ñ t bi n các câu l nh SQL” dư i s hư ng d n c a TS. Nguy n Thanh Bình, s giúp gi m th i gian và chi phí trong vi c giám sát và ki m th s n ph m ph n m m. 2. M c ñích ý nghĩa M c ñích c a ñ tài là nghiên c u và ng d ng k thu t ki m th ñ t bi n vào vi c ñánh giá ch t lư ng b d li u ki m th khi ki m th các câu l nh truy v n SQL, t ñó phát hi n các
  4. -4- l i còn t n t i ñ các l p trình viên hoàn thi n hơn s n ph m c a mình. Ý nghĩa khoa h c: Hi u và ñánh giá các k thu t ki m th ñ t bi n và phương pháp ki m th ñ t bi n câu l nh truy v n SQL. K t qu có th làm tài li u tham kh o cho các ki m th viên ho c các ñơn v phát tri n ph n m m. Ý nghĩa th c ti n: Cung c p m t công c ng d ng k thu t ki m th ñ t bi n vào vi c ki m th cho các câu l nh truy v n SQL. 3. Nhi m v m c tiêu Đ tài t p trung nghiên c u v k thu t ki m th ñ t bi n và c u trúc ñ c ñi m c a ngôn ng truy v n d li u SQL ñ nh n bi t các toán t ñ t bi n, t ñó ñ xu t gi i pháp xây d ng công c h tr ki m th ñ t bi n câu l nh SQL và tri n khai ki m th th c nghi m trên các câu l nh truy v n SQL làm cơ s ñ phân tích và ñánh giá k t qu . 4. Đ i tư ng và ph m vi nghiên c u Đ tài t p trung nghiên c u trên các ñ i tư ng như sau: - K thu t ki m th ñ t bi n. - Ngôn ng truy v n có c u trúc. - Mã ngu n SQL Parser (GuduSoft.gsqlparser.dll). - K thu t l p trình ngôn ng VS.Net. Đ tài thu c ph m vi nghiên c u và ng d ng. 5. Phương pháp nghiên c u
  5. -5- - Thu th p và phân tích các tài li u và thông tin liên quan ñ n ñ tài. - Th o lu n, l a ch n hư ng gi i quy t v n ñ . - Phân tích thi t k h th ng chương trình ng d ng. - Tri n khai xây d ng chương trình ng d ng. - Ki m tra, th nghi m, nh n xét và ñánh giá k t qu . 6. D ki n k t qu ñ t ñư c - V m t lý thuy t: N m ñư c ki n th c v k thu t ki m th ñ t bi n và các toán t ñ t bi n câu l nh truy v n SQL. - V m t th c ti n: Xây d ng và ñánh giá công c ki m th áp d ng k thu t ki m th ñ t bi n cho các câu l nh truy v n SQL. 7. B c c lu n văn Lu n văn ñư c chia thành 3 chương như sau: Chương 1: Ki m th ñ t bi n. Chương 2: Ki m th ñ t bi n các câu l nh truy v n SQL. Chương 3: Xây d ng công c h tr ki m th ñ t bi n các câu l nh truy v n SQL.
  6. -6- CHƯƠNG 1. KI M TH Đ T BI N 1.1. GI I THI U Trong chương này, chúng tôi trình bày chi ti t lý thuy t v ki m th ñ t bi n, phân tích các ưu và như c ñi m c a phương pháp. Ti p theo, chúng tôi trình bày các k thu t ki m th ñ t bi n khác nhau cũng như các ng d ng ph bi n c a ki m th ñ t bi n trong th c t . 1.2. LÝ THUY T KI M TH Đ T BI N Trư c khi trình bày lý thuy t ki m th ñ t bi n, chúng ta b t ñ u b i m t ý tư ng ñơn gi n sau: ñ ư c lư ng s lư ng cá trong m t cái h , m t cách ñ th c hi n vi c ñó là ñánh d u m t s cá và th vào h (gi s , 80 con cá), sau ñó ñánh b t m t s cá và ñ m s cá b ñánh d u. N u chúng ta b t ñư c 50 con cá và 5 trong s ñó b ñánh d u, như v y 1/10 s cá trong h b ñánh d u, khi ñó toàn b s cá trong h có th th ñư c ư c lư ng là 800 con. N u chúng ta b t ñư c t t c các cá b ñánh d u, chúng ta có th cho r ng toàn b cá trong h ñã b ñánh b t. K thu t ki m th ñ t bi n ñư c xây d ng d a trên ý tư ng này. Chúng ta ñưa vào mã ngu n m t s l i “b ñánh d u”, sau ñó tìm cách xác ñ nh chúng. N u chúng ta xác ñ nh ñư c t t c các l i này, “lư i” c a chúng ta có th cũng ñã b t ñư c nhi u các lo i “cá” khác, ñó chính là các l i chưa bi t.
  7. -7- 1.2.1. Khái ni m ki m th ñ t bi n Ki m th ñ t bi n ñư c thi t k nh m t o ra d li u ki m th có hi u qu , nghĩa là phát hi n các l i c a chương trình. Trong khi th c hi n ki m th ñ t bi n, chúng ta t o ra các phiên b n l i c a chương trình g c b ng cách chèn l i vào mã ngu n c a nó. Sau ñó, th c thi ki m th v i l n lư t các d li u ki m th cho t ng phiên b n l i. So sánh k t qu ñ u ra c a t ng phiên b n l i v i chương trình g c, t ñó ñánh giá ñư c kh năng phát hi n l i c a các d li u ki m th [3]. Các phiên b n l i ñư c t o ra t chương trình g c g i là các ñ t bi n (mutants). Ki m th ñ t bi n là m t k thu t ki m th h p tr ng, hay còn g i k thu t ki m th c u trúc. 1.2.2. Hai gi thuy t cơ b n Ki m th ñ t bi n ñư c xây d ng d a trên hai gi thuy t cơ b n. Gi thuy t “l p trình viên gi i” (competent programmer hypothesis) và gi thuy t “hi u ng liên k t” (coupling effect hypothesis) [3]. Gi thuy t l p trình viên gi i cho r ng thông thư ng các l p trình viên ñ u r t gi i và h s không bao gi vi t ra các chương trình m t cách tuỳ ti n, c u th . Gi thuy t hi u ng liên k t cho r ng các l i ph c t p ñư c liên k t t các l i ñơn gi n, như v y b d li u ki m th ñ kh năng phát hi n t t c các l i ñơn gi n thì cũng có kh năng phát hi n các l i ph c t p v i t l cao.
  8. -8- 1.2.3. M t s khái ni m cơ b n Toán t ñ t bi n Toán t ñ t bi n (mutation operator) hay còn ñư c g i lu t ñ t bi n (mutation rule) là m t lu t ñư c áp d ng vào chương trình g c ñ t o ra các phiên b n ñ t bi n. Nó có th là vi c thay th m t toán t này b ng m t toán t khác; thay ñ i toán h ng c a bi u th c; xoá toàn b các bi u th c; thay ñ i câu l nh… hay có th ñư c t o ra b ng cách thay ñ i nh v cú pháp c a chương trình theo hư ng mà các l p trình viên thư ng ph m ph i. 1.2.4. Đ t bi n b di t và ñ t bi n s ng Khi ti n hành th c thi ki m th l n lư t chương trình g c P và ñ t bi n P’ c a P v i m t d li u th T, s có hai k ch b n khác nhau có th x y ra: - M t là, ho c l i ñư c chèn vào trong chương trình ñ t bi n P’ ñư c nh n bi t, nghĩa là chương trình P và ñ t bi n P’ cho ra các k t qu khác nhau. Trong trư ng h p này, ñ t bi n P’ ñư c g i là b di t (killed) b i d li u th T. Khi ñó, T ñư c g i là d li u th thích h p vì nó có kh năng phát hi n ñư c s khác nhau gi a chương trình g c P và ñ t bi n P’. - Hai là, chương trình g c P và ñ t bi n P’ cho ra k t qu hoàn toàn gi ng nhau. Trong trư ng h p này, có th có hai kh năng x y ra. Kh năng th nh t là d li u th T không ñ t t (hay ñư c g i là d li u th không thích h p), chúng ta s ph i ti n hành th c hi n ki m th l i v i các d li u th t t hơn. Kh năng th hai là chương trình
  9. -9- P và ñ t bi n P’ là nh ng chương trình tương t nhau, m i d li u th ñ u không th phân bi t s khác nhau gi a chúng. Trong c hai trư ng h p này, ñ t bi n P’ ñư c cho là còn s ng (alive). 1.2.5. Đ t bi n tương ñương Các ñ t bi n tương ñương (equivalent mutant) là các ñ t bi n cho ra k t qu gi ng v i chương trình g c v i m i d li u th ho c cú pháp c a ñ t bi n và chương trình g c khác nhau nhưng ho t ñ ng tương t nhau. M t cách hình th c, chúng ta nói: ñ t bi n tương ñương là ñ t bi n còn s ng mà m i d li u th T ⊂ D (D, t p các d li u th cho P) ñ u xác ñ nh ñư c P và P’ tương ñương nhau (P ≡ P’). 1.2.6. T l ñ t bi n T l ñ t bi n (Mutation Score), ñư c ký hi u MS, c a chương trình P và d li u th T là t l các ñ t bi n không tương ñương (so v i chương trình g c) b di t b i d li u th T, ñư c mô t b i công th c sau: D MS ( P, T ) = N −E trong ñó, - D: s ñ t bi n ñã b di t, - N: t ng s các ñ t bi n, - E: s ñ t bi n tương ñương. Như v y, 0 ≤ MS ≤ 1 hay 0 ≤ MS% ≤ 100.
  10. -10- 1.2.7. Chi phí c a ki m th ñ t bi n Chi phí trong ki m th ñ t bi n t p trung ba bư c t n kém nh t là s n sinh ñ t bi n, biên d ch các ñ t bi n và ki m th t ng phiên b n ñ t bi n v i các d li u ki m th . Như v y, s lư ng l n các ñ t bi n s làm cho chi phí ki m th ñ t bi n r t l n. 1.3. TI N TRÌNH KI M TH Đ T BI N G i chương trình g c là P, các ñ t bi n là P’ và t p d li u ki m th là T. Chúng ta có th gi i thích ti n trình th c hi n ki m th ñ t bi n như sau: Bư c 1: T o ñ t bi n P’ t chương trình g c P. Bư c 2: Sinh các d li u ki m th T. Bư c 3: Th c hi n chương trình g c P v i m i d li u ki m th . Ki m tra k t qu nh n ñư c: - N u ñ u ra không ñúng, ph i ch nh s a chương trình g c P và ki m th l i. - N u ñ u ra ñúng, th c hi n bư c ti p theo. Bư c 4: Th c hi n t ng ñ t bi n còn s ng v i m i d li u ki m th . So sánh k t qu th c hi n ñ t bi n v i k t qu th c hi n chương trình g c ñ i v i m i d li u th . - N u t t c các ñ t bi n ñ u b di t. Hoàn thành ki m th . - N u còn ñ t bi n chưa b di t, chuy n sang bư c ti p theo.
  11. -11- Bư c 5: Phân tích và xác ñ nh các ñ t bi n tương ñương. N u còn các ñ t bi n không tương ñương nhưng chưa b di t thì các d li u ki m th không ñ kh năng di t ñ t bi n. Ph i hi u ch nh t p d li u ki m th . Quay l i bư c 1. 1.4. H N CH C A KI M TH Đ T BI N Lý thuy t và k t qu th c nghi m ñã cho th y r ng, ki m th ñ t bi n là phương pháp hi u qu ñ ñánh giá ch t lư ng c a các b ki m th . Tuy nhiên, có m t s h n ch khi th c hi n ki m th ñ t bi n như sau: - Vi c nh n d ng các ñ t bi n tương ñương là r t quan tr ng nhưng r t khó khăn. - M t s các ñ t bi n không tương ñương nhưng v n còn t n t i trong quá trình ki m th . - Chi phí tính toán trong ki m th ñ t bi n r t cao, do s lư ng toán t ñ t bi n thư ng r t l n. - Ki m th ñ t bi n cũng t n nhi u nhân công trong quá trình ki m th . 1.5. M TS K THU T NÂNG CAO HI U QU KI M TH Đ T BI N 1.5.1. Gi m chi phí tính toán trong phân tích ñ t bi n Các k thu t ñư c nghiên c u theo ba chi n lư c: làm thông minh hơn, làm ít hơn và nhanh hơn. Chi n lư c làm thông minh hơn, g m các k thu t: ñ t bi n y u (weak mutation), ki n trúc phân tán (distributed architectures). Chi n lư c làm ít hơn hư ng ñ n l a ch n nh ng ñ t bi n sao cho hi u qu nh t nhưng v n
  12. -12- ñ m b o ch t lư ng ki m th , g m các k thu t: ñ t bi n l a ch n (selective mutation), l y m u ñ t bi n (mutation sampling). Chi n lư c làm nhanh hơn, hư ng vào t ñ ng hoá m t s công ño n và gi m t i các công ño n chi m nhi u chi phí tính toán, g m các k thu t: th c thi ñ t bi n d a vào gi n ñ (schema-based), phương pháp tách r i biên d ch (separate compilation approach). Ngoài ra, còn nhi u k thu t khác như k thu t gom c m ñ t bi n (clustering of mutants). 1.5.2. Gi m b t các công ño n th công Vi c phát tri n th công các d li u ki m th ñ t bi n m t cách ñ y ñ yêu c u r t nhi u n l c. Hơn n a vi c quy t ñ nh phiên b n ñ t bi n nào tương ñương v i chương trình g c là r t nhàm chán và ho t ñ ng này thư ng d n ñ n nhi u sai sót. Vi c t ñ ng hóa các ho t ñ ng này s nâng cao hi u qu và ch t lư ng c a ki m th ñ t bi n. 1.5.3. C i ti n ti n trình ki m th ñ t bi n Ti n trình ki m th ñ t bi n truy n th ng còn t n t i m t s v n ñ , như th c thi l p l i nh ng ca ki m th , th c thi chương trình g c, … Ti n trình c i ti n ñư c ñ xu t nh m kh c ph c các h n ch nêu trên. Trư c h t, t ñ ng t o ra m t t p các d li u th . Các d li u th ñó s ñư c th c thi l n lư t v i chương trình g c và sau ñó v i các chương trình ñ t bi n. Ki m th viên s ñ nh nghĩa m t giá tr ngư ng, ñó là giá tr nh nh t có th ch p nh n ñư c c a t l ñ t bi n. N u ngư ng ñó không ñ t ñư c, khi các d li u th không di t ñư c ñ t bi n nào (gi i h n không hi u
  13. -13- qu ), s b lo i tr . Ti n trình này s ñư c l p l i, v i m i m t th i ñi m s n sinh các d li u th ch nh m ñ n các ñ t bi n còn s ng, cho ñ n khi ngư ng t l ñ t bi n ñ t ñư c. 1.6. NG D NG C A KI M TH Đ T BI N 1.6.1. Đ t bi n mã ngu n Đ t bi n mã ngu n chương trình ñã ñư c áp d ng cho c hai m c ki m th ñơn v và ki m th tích h p. Đ i v i ki m th m c ñơn v , ñ t bi n ñư c t o ra ñ mô t l i trong m t ñơn v ph n m m mà l p trình viên th c hi n; trong khi ñó ñ i v i m c ki m th tích h p, ñ t bi n ñư c t o ra ñ mô t l i tích h p b i l i k t n i ho c tương tác gi a các ñơn v ph n m m. Đ t bi n này ñư c áp d ng trên các ngôn ng l p trình như ngôn ng Fortran, Ada, C, Java, C#, AspectJ. 1.6.2. Đ t bi n ñ c t Ki m th ñ t bi n cũng ñã ñư c ñ xu t áp d ng cho các ñ c t và thi t k ph n m m. Ki m th ñ t bi n áp d ng m c ñ c t và thi t k thư ng ñư c g i là “ñ t bi n ñ c t ". Trong ñ t bi n ñ c t , l i thư ng ñư c phát sinh trong máy tr ng thái ho c các bi u th c lôgic ñ t o ra các ñ t bi n. M t ñ t bi n b di t n u ñi u ki n ñ u ra là sai l ch. Ki m th ñ t bi n thu c lo i này g m ñ c t hình th c, môi trư ng th c thi, d ch v Web, h th ng m ng. 1.7. T NG K T CHƯƠNG 1
  14. -14- CHƯƠNG 2. KI M TH Đ T BI N CÁC CÂU L NH TRUY V N SQL 2.1. GI I THI U Trong chương này, trư c h t chúng tôi trình bày sơ lư c v cơ s d li u và ngôn ng truy v n có c u trúc. M t s công trình nghiên c u v ki m th cơ s d li u cũng ñư c ñ c p. Đ c bi t, chúng tôi phân tích m t s l i ñi n hình trong các câu l nh truy v n cơ s d li u. Trên cơ s ñó, chúng tôi trình bày ng d ng ki m th ñ t bi n cho các câu l nh truy v n. 2.2. CƠ S D LI U QUAN H VÀ NGÔN NG TRUY V N CÓ C U TRÚC 2.2.1. Cơ s d li u quan h Cơ s d li u là m t t p h p có c u trúc nh ng d li u có liên quan v i nhau. Cơ s d li u ñư c s d ng ph bi n hi n nay là cơ s d li u quan h . Cơ s d li u quan h là các cơ s d li u d ng b ng có th d dàng ñư c t ch c l i và ñư c truy v n. 2.2.2. Ngôn ng truy v n có c u trúc Ngôn ng truy v n có c u trúc (SQL) là ngôn ng thư ng ñư c s d ng ñ ñ nh nghĩa lư c ñ cơ s d li u và th c hi n vi c c p nh t, xóa, ch nh s a và truy c p d li u lưu tr trong cơ s d li u. Ngôn ng truy v n có c u trúc g m các nhóm l nh:
  15. -15- − Nhóm l nh ñ nh nghĩa d li u (Data Definition Language - DDL). − Nhóm l nh thao tác d li u (Data Manipulation Language - DML). Ngoài ra, ngôn ng truy v n có c u trúc còn có các l nh dùng ñ qu n lý quy n, các l nh ñ nh nghĩa khung nhìn như CREATE VIEW, DROP VIEW; các l nh ñi u khi n giao tác như COMMIT, ROLLBACK… L nh truy v n cơ b n SQL Câu l nh truy v n cơ b n ñư c mô t b i các m nh ñ SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY. Các phép toán trong SQL Trong SQL, có hai phép toán cơ b n: phép toán lô-gíc và phép toán quan h . Các hàm k t h p Các hàm k t h p như AVG, SUM, MAX, MIN, COUNT,… 2.3. KI M TH CƠ S D LI U Phương pháp t o ra các ca ki m th b ng cách xem xét các lư c ñ cơ s d li u, các thu c tính khác ho c các ràng bu c quan h . Câu l nh truy v n SQL ñư c chuy n thành d ng ngôn ng l p trình th t c, sau ñó, k thu t ki m th thông thư ng ñư c áp d ng ñ ki m th và ñánh giá câu l nh SQL.
  16. -16- 2.4. L I TRONG TRUY V N CƠ S D LI U Các l i trong truy v n SQL có th chia làm hai lo i: l i cú pháp và l i ng nghĩa. Các l i cú pháp nghĩa là chu i ký t nh p vào không ph i là truy v n SQL h p l . Các l i ng nghĩa là câu truy v n SQL h p l . 2.4.1. M nh ñ SELECT 2.4.2. M nh ñ FROM 2.4.3. M nh ñ WHERE 2.4.4. Các hàm k t h p 2.4.5. M nh ñ GROUP BY 2.4.6. M nh ñ ORDER BY 2.4.7. UNION/UNION ALL 2.4.8. Truy v n vi ph m các m u chu n 2.4.9. B trùng l p 2.5. KI M TH Đ T BI N CÁC CÂU L NH TRUY V N ng d ng ki m th ñ t bi n cho các câu truy v n cơ s d li u g m các bư c cơ b n: − Xác ñ nh các l i thư ng ph m ph i c a l p trình viên khi vi t c a câu truy v n. − Xây d ng t p toán t ñ t bi n áp d ng cho câu truy v n SQL. − Xây d ng công c h tr th c hi n ti n trình ki m th ñ t bi n các câu truy v n.
  17. -17- − Th nghi m và ñánh giá k thu t ki m th ñ t bi n trên các câu l nh truy v n trong các ng d ng cơ s d li u c th . 2.6. TOÁN T Đ T BI N CHO CÁC CÂU L NH TRUY V N Các toán t ñ t bi n ñư c chia làm b n nhóm: − Toán t ñ t bi n các m nh ñ chính (SC - SQL Clause mutation operators); − Toán t ñ t bi n cho các toán t xu t hi n trong các ñi u ki n và bi u th c (OR - Operator Replacement mutation operators); − Toán t ñ t bi n liên quan ñ n vi c x lý giá tr NULL (NL – NULL mutation operators); − Toán t ñ t bi n thay th các ñ nh danh: c t tham chi u, h ng s và tham s (IR – Identifier Replacement mutation operators). M i nhóm ñ t bi n ñư c ký hi u b i các tên ng n g n ch g m hai ký hi u và m i toán t ñ t bi n trong các nhóm ñư c ký hi u b i các tên ng n g n g m ba ký hi u. 2.6.1. Toán t ñ t bi n các m nh ñ chính (SC) M c ñích c a các toán t ñ t bi n các m nh ñ chính, ñư c ký hi u SC, là ñ t bi n nh ng tính năng khác nhau trong ngôn ng SQL tương t như các ngôn ng khác (m nh ñ , hàm k t h p, các câu truy v n con…). Nh ng toán t SC góp ph n phát hi n các l i như ñi u ki n k t n i không ñúng, s d ng không ñúng t khóa
  18. -18- DISTINCT, tính toán các hàm k t h p không ñúng ho c không ñúng th t trong t p k t qu . 2.6.2. Toán t ñ t bi n cho các ñi u ki n và bi u th c (OR) Các toán t ñ t bi n các ñi u ki n và các bi u th c ñư c thi t k nh m phát hi n các l i lô-gíc trong các bi u th c trong các m nh ñ WHERE và HAVING. 2.6.3. Toán t ñ t bi n giá tr NULL (NL) Trong ngôn ng truy v n SQL, mi n giá tr c a m i thu c tính ñư c m r ng thêm ký hi u ñ c bi t NULL ñ bi u th cho m i giá tr d li u ñư c hi u là không ñư c ñ nh nghĩa, ho c không thích h p, ho c không xác ñ nh. Vi c x lý các giá tr NULL không ñúng có th d n ñ n k t qu không lư ng trư c ñư c. Do ñó, các ñ t bi n có liên quan ñ n các giá tr NULL c n ph i ñư c xem xét ñ phát hi n các lo i l i này. 2.6.4. Toán t ñ t bi n các ñ nh danh (IR) Các toán t ñ t bi n IR thay th các ñ nh danh c t, h ng và tham chi u trong các tham s c a truy v n. Vì v y, các toán t ñ t bi n này có kh năng phát hi n các l i như s d ng không ñúng các trư ng. 2.7. T NG K T CHƯƠNG 2
  19. -19- CHƯƠNG 3. XÂY D NG CÔNG C KI M TH Đ T BI N CÁC CÂU L NH SQL 3.1. GI I THI U Công c dùng ñ phân tích c u trúc l nh SQL, sinh các ñ t bi n, th c thi ñ t bi n, nh m giúp ñánh giá ch t lư ng c a câu l nh và các b d li u ki m th . Công c s d ng b mã ngu n gsqlparser for .Net ñ phân tích c u trúc l nh SQL và s d ng ngôn ng C# th c thi trong môi trư ng .NetFrameWork. Công c t o ra các ñ t bi n b ng cách chèn l i vào câu l nh g c, th c thi l n lư t câu l nh g c và câu l nh ñ t bi n vào trên các b d li u th , t ñó ñánh giá ch t lư ng c a câu l nh SQL và ch t lư ng c a các b d li u th . 3.2. GI I PHÁP Trên cơ s phân tích các ñ t bi n câu l nh truy v n cơ s d li u SQL chương 2, chúng tôi ñ xu t thu t toán xây d ng công c ki m th ñ t bi n cho câu l nh SQL như sau. Bư c 1. Nh n câu l nh SQL vào, ki m tra, phân tích cú pháp câu l nh và lưu dư i d ng cây cú pháp XML. Bư c 2. Th c hi n ñ t bi n trên câu l nh SQL t o ra t p h p các ñ t bi n c a câu l nh SQL g c. Bư c 3. Th c hi n vòng l p g m các bư c sau: a. Th c thi câu l nh SQL ñ t bi n.
  20. -20- b. So sánh k t qu th c thi câu l nh ñ t bi n và k t qu th c thi câu l nh g c. c. N u k t qu khác nhau thì ñ t bi n b di t, n u ngư c l i s ñánh d u câu l nh ñ t bi n và xem xét tính tương ñương câu câu l nh ñ t bi n v i câu l nh g c. d. Bư c 4. K t thúc quá trình, xu t ra báo cáo sơ b g m các thông tin v s lư ng ñ t bi n sinh ra, s lư ng ñ t bi n b di t và t l ñ t bi n. 3.3. CÔNG NGH Công ngh s d ng: - H ñi u hành: Microsoft Windows Server, Windows XP, Windows 7, … - H qu n tr cơ s d li u: MS SQL Server 2008 - Công ngh .Net FrameWork 3.5 - Mã ngu n SQL Parser (gudusoft.gsqlparser.dll) 3.4. KI N TRÚC CÔNG C C t lõi c a h th ng này là b s n sinh ñ t bi n, nghĩa là t o ra các ñ t bi n c a câu l nh truy v n cơ s d li u. Đ sinh các ñ t bi n, b phân tích cú pháp phân tích câu l nh truy v n g c và t o ra cây cú pháp tương ng. T cây cú pháp, b sinh ñ t bi n th c hi n các toán t ñ t bi n ñ t o ra các ñ t bi n c a câu l nh truy v n g c. Sau ñó, m i ñ t bi n và câu l nh truy v n g c s ñư c th c thi trên b d li u th ñ tính t l ñ t bi n.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2