รายงานการศึกษาเบื้องต้น Methodolo… · Web...

26
รรรรรรรรรรรรรรรรรรรรรรร รรรรรรรรรร 261491 : PROJECT SURVEY รรรรรรรรรรรรร รรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรรร รรรรรรรรรรรรรรรรรรรรร IR-Style Keyword Search over Relational Databases รรร รรรรรรรรรรรรรร รรรรรรรรรรรรรร รรรร 4706301 รรรรรรรรรรรรรร รรรรรรรร รรรร 4706304 รรรรรรรรรรรรรรรรรรรรรรร ร.รร.รรรรรรรร รรรรรรรร 1

Transcript of รายงานการศึกษาเบื้องต้น Methodolo… · Web...

Page 1: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

รายงานการศกษาเบองตนกระบวนวชา 261491 : PROJECT SURVEY

โครงงานเรองการคนหาคำาหลกโดยใชหลกการสบคนขอมลในฐานขอมลเชง

สมพนธIR-Style Keyword Search over Relational

Databases

โดยนางสาวพมพวรรณ สวรรณสมฤทธ รหส

4706301นางสาวเพยงพน จกรแกว รหส

4706304

อาจารยทปรกษาโครงงานอ.ดร.จกรพงศ นาทวชย

1

Page 2: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

โครงงานนเปนสวนหนงของการศกษาตามหลกสตรปรญญาวศวกรรมศาสตรบณฑต

ภาควชาวศวกรรมคอมพวเตอรคณะวศวกรรมศาสตร มหาวทยาลยเชยงใหม

ปการศกษา 2550

หวขอโครงงาน : การคนหาคำาหลกโดยใชหลกการสบคนขอมลในฐานขอมลเชงสมพนธ

: IR-Style Keyword Search over Relational Databasesโดย : นางสาวพมพวรรณ สวรรณสมฤทธ รหส 4706301

: นางสาวเพยงพน จกรแกว รหส 4706304ภาควชา : วศวกรรมคอมพวเตอรอาจารยทปรกษา : อ.ดร.จกรพงศ นาทวชยปการศกษา : 2550

ภาควชาวศวกรรมคอมพวเตอร คณะวศวกรรมศาสตร มหาวทยาลยเชยงใหม อนมตใหโครงงานนเปนสวนหนงของการศกษาตามหลกสตรปรญญาวศวกรรมศาสตรบณฑต

.............................................................................................หวหนาภาควชาคอมพวเตอร

(รศ.ดร.สทธชย เปรมฤดปรชาชาญ)

คณะกรรมการตรวจสอบโครงงาน

2

Page 3: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

.....................................................................................ประธานกรรมการ

(อ.ดร.จกรพงศ นาทวชย)

.....................................................................................กรรมการ

(ผศ.ดร.ตรสพงศ ไทยอปถมภ)

.....................................................................................กรรมการ

(อ. นรศรา เอยมคณตชาต)บทท 1บทนำา

1.1 ทมาและความสำาคญของปญหาทนำาไปสการคนควา

ระบบการสบคนในปจจบนนไมวาจะเปนระบบสบคนทางอนเตอรเนต หองสมด หรอภายในสำานกงานและองคกรตางๆลวนมการจดเกบขอมลดวยระบบจดการฐานขอมล RDBMS กนอยางแพรหลายเปนสวนใหญ ทงนรปแบบการจดเกบขอมลจะอยในรปแบบของตารางซงประกอบดวย แถว (Row หรอ Tuple) และ คอลมน (Column หรอ Field) ตวอยางเชน ตาราง “Complaints” ทเกบขอมลแสดงขอรองเรยนของลกคาทมตอผลตภณฑทซอไป โดยแบงการเกบขอมลทงหมดออกเปน 4 ฟลดอนไดแก รหสผลตภณฑ (prodId) , รหสลกคา (custId) , วนทรองเรยน (date) และ ขอรองเรยน (comments) ดงในรปท 1.1 ซงแสดงขอมลวามลกคาทำาการรองเรยนเขามา 2 รายคอ ลกคาทมรหสประจำาตวเปน “c3232” และ “c3131” ตามลำาดบ

Complaints Relation prodI

dcustI

ddate comments

3

Page 4: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

p121 c3232

6-30-2002

“disk crashed on IBM Netvista ”

p131 c3131

7-3-2002

“Lower-end IBM Netvista caught fire”

รป 1.1 Complaints Relationนอกจากความสามารถในการเกบขอมลแลว RDBMS ยงมความสามารถในการ

สบคนขอมลโดยอาศย คำาหลก หรอ “ ” “Keyword” อกดวย เพยงแตระบบสบคนของ RDBMS นนจะมขอจำากดในเร องของคำาหลก นนกคอ RDBMS จะคนหาคำาตอบ หรอแถวในตารางทมคำาทกคำาถกตองตามคำาหลกทกประการ หากคำาในแถวสลบตำาแหนง หรอผดไปจากคำาหลกแลวจะไมถอวาแถวนนเปนคำาตอบของการคนหา และถาหากมการคนพบคำาตอบ การเรยงคำาตอบนนจะเรยงตามลำาดบการพบกอนหลงไมเรยงตามความใกลเคยงคำาหลก โดยการคนหาคำาหลกบน RDBMS จะเปนไปดงตวอยางท 1.1 และตวอยางท 1.2 ดานลาง

ตวอยาง ท 1.1 ตองการคนหา คำาวา “disk crashed Netvista” จากคอลมน “comments” ของตาราง “Complaints” โดยใช SQL Commands ดงน

SQL: 1. select * from complaints 2. where comments =‘disk crashed Netvista’;ระบบการคนหาจะไมสามารถหาแถวทเปนคำาตอบได เนองจากไมมแถวใดทมคำาวา

“disk crashed Netvista” ในคอลมน “comments” เรยงกนถกตองตามคำาหลก ตวอยางท 1.2 ตองการคนหาคำาวา “disk crashing on IBM Netvista”

จากคอลมน “comments” ของตาราง “Complaints” โดยม SQL Commands เปน

SQL: 1. select * from complaints 2. where comments =‘ disk crashing on IBM Netvista‘;ระบบการคนหาจะไมสามารถหาแถวทเปนคำาตอบไดเชนกน แมแถวทม “proId”

เปน “p121” จะมคำาทกครบตามคำาหลกกตามแตเพราะคำาวา “crashed” ในคอลมน “comments” นนไมใชคำาวา “crashing” ตามทคำาหลกตองการจงไมนบวาเปนแถวคำาตอบ

จะเหนไดวาระบบการสบคนของ RDBMS มขอจำากด ททำาใหพลาดการคนพบคำาตอบทควรพบ จงเรมมการมองหาแนวทางแกไขปญหา จนกระทงไดมการเลงเหนความสามารถของ IR (Information Retrieval) ซงเปนระบบสบคนบน plain text ทสามารถชวยแกไขขอผดพลาดของระบบสบคน RDBMS ได นนคอ IR มความสามารถ

4

Page 5: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

ตดคำาหลกใหเปนเปนคำารากศพทเพอคนหาคำาทมความหมายตรงตามคำารากศพทและตดคำาทไมมนำาหนกหรอความสำาคญเพยงพอในการคนหาทงไป อกทง IR ยงไมจำาเปนตองคนหาคำาทกคำาในคำาหลกและมการใหคา score ซงเปนคาบอกความถกตองหรอความใกลเคยงกบคำาหลกเพอเรยงผลการคนหาอกดวย ตวอยางเชน ถาตองการคนหา “disk crashing on IBM Netvista” ดงเชนตวอยางท 1.2 IR จะทำาการตดคำาทไมจำาเปนออกไปเหลอเปนคำาหลกใหม “disk crash IBM Netvista” และเมอเสรจสนการคนหา คำาตอบทไดจะเปนแถวทมขอมลใน “proId” เปน “p121” และ “p131” ตามลำาดบเนองจากแถวทงสองลวนมคำาในคำาหลกอยอยางนอยแถวละ 2 คำาคอ “IBM” กบ “Netvista” และ คำาตอบจะเรยงจากแถว “p121” เพราะเปนแถวทมค ำาหลกอยมากกวาโดยวดจากคา score นนเอง

แตใชวา RDBMS จะไมสามารถแกไขขอบกพรองในระบบสบคนไดเสยทเดยวเพราะ RDBMS นนยงมความสามารถอยางหนงทสามารถลดทอนของเสยของระบบสบคนลงไปไดนนกคอ Text Index ซงเปนหนงใน Text Features นนเอง อยางเชนถาตองการทำาตวอยางท 1.2 โดยเลอกคนหาเฉพาะบางคำาในคำาหลกและใช Text Index จะม SQL Commands ดงน

SQL: 1. select score(1) custId from Complaints 2. where contains (comments,’IBM Netvista’,1)>0

3. order by score(1) desc; จาก SQL มการกำาหนดคอลมน “comments” ใหเปน index ของตาราง

“Complaints” และคนหาแถวทมคำาวา “IBM Netvista” เปนสวนประกอบอยแลวเร ยงค ำาตอบตามค า score ซ งจ ะ ได ค ำาตอบเป นแถวท ง 2 แถวของตาราง “Complaints” หรอถาตองการคนหาแถวทคำาทมรากศพทเปน “crash” เปนสวนประกอบอยจะม SQL Commands ดง SQL Commands ขางลางและไดคำาตอบเปนแถวของ “p121”

SQL: 1. select score(1) custId from Complaints 2. where contains (comments,’($crash)’,1)>0

3. order by score(1) descจากการใช Text Index จะเหนไดวาขอบกพรองดานการคนหาแถวคำาตอบทมคำา

ถกไวยากรณและเรยงถกตองตามคำาหลกรวมถงปญหาการเรยงคำาตอบตามลำาดบการคนพบไดถกแกไขใหหายไป แตขณะเดยวกนกเกดคำาถามขนใหมวาถาหากการคนหาไมสามารถคนคำาตอบทตองการไดจากตารางเพยง 1 ตาราง ควรมแนวทางหรอวธการแกไขอยางไร ดงนนความสามารถท RDBMS ขาดไมไดอกหนงประการเพอระบบการ

5

Page 6: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

สบคนทดกคอ การ join หรอการรวมขอมลของตารางในฐานขอมลเขาดวยกนในการสบคนดงเชนตวอยางท 1.3

ต วอย างท 1.3 ต องการค นหาค ำาว า “disk crash Maxtor” ซ งค ำา ว า “Maxtor” ไมมในตาราง “Complaints” แตมในตาราง “Products” ทเพมขนมาดงรปท 1.2

Products RelationprodId

manufacturer

model

p121

“Maxtor” “D540X”

p131

“IBM” “Netvista ”

รป 1.2 Products Relationจะเหนไดวาคำาตอบทควรจะคนพบนนคอ แถวของ “p121” เนองจาก “p121”

ใ น Complaints Relation ม ค ำา ว า “disk crash” อ ย แ ล ะ ใ น Products Relation ท “p121” กมคำาวา “Maxtor” อย เมอรวมกนแลวกจะมคำาหลกอยครบทกคำา ทำาใหไดวา แถว “p121” คอคำาตอบของคำาคนหาน โดย

คำาสง SQL ในการหาคำาตอบทควรจะไดนน มดงนSQL: 1. select score(1) proid,custId from Complaints c

2. join Products p on c.proId=p.proId 3. where contains(c.comments,’disk crash’,1)>0 4. or p.manufacturer=’Maxtor’;

จาก SQL Commands แสดงใหเหนถงการใชค ำาส ง join รวมขอมลของตาราง “complaints” และ “Products” เขาดวยกนโดยเชอมโยงผานทางคอลมน “proId” เพอคนหาแถวจาก “Complaints” โดยในคอลมน “comments” ตองมคำาวา “disk crash” และแถวจาก “Products” คอลมน “manufacturer” ตองคำาวา “Maxtor” อย ทงนแถวจากทงสองตารางตองมขอมลในคอลมน “proId” เหมอนกน และในทนคำาตอบทไดคอแถวจากตารางทงสองทมขอมลใน “proId” เปน “p121” นนเอง ซงแถวทงสองนจะถกเรยกรวมกลมกนวาเปนคำาตอบท 1 หรอ 1st tuple tree

6

Page 7: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

เมอมาถงตรงน สามารถกลาวไดวา RDBMS ไดทำาการแกไขขอบกพรองในระบบสบคนไปไดมากแลว แตทวาจากตวอยางทงหมดขางตนจะสามารถสงเกตเหนขอเสยอกขอหนงของ RDBMS ทไมสามารถแกไขไดนนกคอ การตองระบชอตารางและคอลมนในการคนหาใหถกตองทกครง หากระบผดพลาดอาจทำาใหการคนหาผดพลาดและหาคำาตอบทตองการไมไดซงตรงจดนเปนขอจำากดททำาใหเกดความยงยากในการใชงานและเปนสาเหตททำาใหตองนำาการคนหาแบบ IR เขามาเกยวของอกครง

การคนหาของ IR นนเมอนำามาประยกตใชบน RDBMS ระบบของ IR จะทำาการสบคนใน IR Index ซงเกดจากการนำา Text Index ของ RDBMS มารวมกนวาคำาทตองการมอยทแถวใด คอลมนใด ตารางใด แลวจงจดเปนกลมคำาตอบหรอ tuple tree เขาดวยกนและเมอเสรจสนไดหลายกลมคำาตอบแลว จงตองมการนำา Algorithm อยางงายหรอ Naïve Algorithms เขามาชวยพจารณาและดงคำาตอบทเหมาะสมออกมาตามคา score ความถกตองอกท โดยทงหมดนไมตองผานการเขยน SQL join ตารางหรอคอลมนเหมอน Text Index แตอยางใดทำาใหชวยลดความยงยากลงไปไดมากซงการจดทำา software เพอประยกตนำาการคนหาแบบ IR มาใชพฒนาระบบสบคนของ RDBMS นนคอจดมงหมายของโครงงานนนนเอง

1.2 วตถประสงค เพอสรางแอพพลเคชนเสรมสำาหรบพฒนาระบบสบคนทตดตงงายใชงานสะดวก

ใหกบผใช

1.3 ขอบเขตโครงงานนำาความรทฤษฎทาง IR มาประยกตใชสรางเปนแอพพลเคชนเสรมทตดตงไดงาย

และสามารถพฒนาระบบสบคนบน RDBMS

1.4 ประโยชนทคาดวาจะไดรบผใชหรอพนกงานสามารถตดตงแอพพลเคชนเสรมทชวยใหงานการสบคนเปนไป

อยางรวดเรวขนไดอยางสะดวกดวยตวเอง เสรมสรางประสทธภาพการท ำางานใหกบบรษทและองคกร

1.5 ขนตอนการศกษา

7

Page 8: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

แผนการดำาเนนงาน ระยะเวลา(เดอน)1 2 3 4 5 6 7 8 9

1. ศกษาหลกการ ,ทฤษฎ และปญหาของระบบการสบค นบน RDBMS รวมถ งพจารณาเลอกฐานขอมลทเหมาะสม2. ศกษาหลกการทำางานของ IR Engine และ algorithm ทเกยวของ3. ศกษาและออกแบบรปแบบของแอพพลเคชน4. ศ กษาการ เ ข ยน โปรแ ก ร มเ พ อ น ำา Naïve Algorithm ไปใชก บฐานขอมลและตดตอฐานขอมลดวย Java5. เขยนโปรแกรมแอพพลเคชนดวย Java6. ทดลองนำาโปรแกรมแอพพลเคช นใช งานกบฐานขอมล7. แกไขโปรแกรมแอพพลเคชน8. สรปโครงงาน

บทท 2องคความรทเกยวของ

2.1 Java

8

Page 9: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

Java คอภาษาทใชในการเขยนโปรแกรมชนดหนงซงมจดกำาเนดมาจาก “Green Project” ทตองการพฒนาและสรางอปกรณอเลกทรอนกสทสามารถควบคมดวยรโมทคอนโทรลไดของบรษท Sun Microsystems ผจดจ ำาหนายฮารดแวรและซอฟทแวรของระบบปฏบตการ UNIX ดวยเหตน Java จงถกคดคนขนโดยมงเนนใหเปนภาษาทมขนาดเลกเพอทอปกรณจะไดไมตองใชหนวยประมวลผลทสงมากนกและตองไมยดตดกบอปกรณฮารดแวรเพยงแบบใดแบบหนงหรอตองเปน Platform Independent นนเอง จากนนภายหลงจงไดมการผนแนวทางการใชงานนำา Java ไปใชงานบนอนเตอรเนต

2.1.1 เหตใดจงเลอกใช Javaสาเหตหลกทเลอกใช Java ในโครงงานนเปนเพราะนอกจาก Java จะเปนภาษาท

มลกษณะคลายกบ C++ แตใชงานงายกวา อกทง Java ยงเปน Free Language Source ซงสามารถหาใชงานไดทวไปและมความสามารถเฉพาะทสนบสนนการเขยนโปรแกรมเชงวตถหรอ Object Oriented Language ททำาใหสามารถทำางานไดกบเคร องคอมพวเตอรทกแพลตฟอรมโดยไมตองทำาการแกไขดดแปลง code ใหมแตอยางใดอกดวย ทงนความโดดเดนดานตางๆของ Java สามารถจำาแนกไดดงน

1. ความโดดเดนดาน Object Oriented Language Encapsulation : ซอนระบบการทำางานและขอมลไวภายใน ปองกน

ไมใหภายนอกทำาการเปลยนแปลงแกไขสรางความเสยหาย ทำาใหเกดความปลอดภยกบขอมล

Inheritance : ทำาการสรางเพมเตมหรอรบเอาคณสมบตบางอยางจากสงเดมทมอยแลว ทำาใหประหยดเวลาการทำางานไมตองเรมพฒนาใหมทงหมด

Polymorphism : การทำางานหนงๆทสามารถทำางานไดหลากหลายโดยตอบสนองตอตวแปรเขาหรอ input ทรปแบบและจำานวนตางกนออกไป

2. ความโดดเดนดาน Robustness : มความคงทน ไมเกดความผดปกตไดโดยงาย เชน ม Garbage Collection จดการหนวยความจำาใหอตโนมตปองกนภาวะหนวยความจำาร วเมอมการจองพนทแลวลมคนใหกบระบบ หรอ การม Debugger คนหาแกไขขอผดพลาดของการเขยนโปรแกรมเบองตนเมอจะ

9

Page 10: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

ทำาการคอมไพล เพอเปนหลกประกนวาโปรแกรมจะไมผดพลาดดวยเร องเลกนอย เปนตน

3. ความโดดเดนดาน Security : Java ถกออกแบบใหมระบบรกษาความปลอดภยอยางด เชน Applet ของ Java ถกกำาหนดใหทำาการประมวลผลบน Sandbox ซงปองกนเครองจากสงแปลกปลอมทอาจแฝงมา และ Java ยงไมมพอยเตอร ทำาใหสามารถปองกนผไมมสทธเขามาทำาการจบจองพนทหนวยความจำาหรอทำาลายระบบได

2.1.2 Java Platform แบงออกเปน 3 ประเภทดงน1. J2SE (Java 2, Standard Edition) : เปน platform มาตรฐานทมการ

พฒนามาต งแต Java ร นแรก ประกอบด วย 2 สวน ค อ Software Development Kit (SDK) และ Java Runtime (JRE) ซง SDK นนจะครอบคลม JRE ดงนนการตดตง SDK จะเปนการตดตง JRE อตโนมตไปในตว และโดยทวไปแลว J2SE จะสามารถแบงประเภทออกไดทงหมด 2 ประเภทคอ

J2SDK ประกอบดวย Compiler และ Debugger สำาหรบคนหา แกไขขอผดพลาดและคอมไพลโปรแกรม เหมาะกบผพฒนาโปรแกรมหรอโปรแกรมเมอร

J2RE ป ร ะ ก อ บ ด ว ย library ต า ง ๆ , Java Virtual Machine(JVM) และ component ทจ ำาเป นในการประมวลผลโปรแกรม Java เหมาะกบผใชงานทวไป

2. J2EE (Java 2, Enterprise Edition) : เปนสวนขยายออกมาจาก J2SE เพอใหไดเทคโนโลยทสนบสนนการทำางานของ Server-Side Application

3. J2ME (Java 2, Micro Edition) : เปนเทคโนโลยสำาหรบอปกรณขนาดเลก เชน โทรศพทมอถอ , PDAs เปนตน

2.1.3 รปแบบของ Java

10

Page 11: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

1. Java Application เปนรปแบบการทำางานแบบ Standalone สามารถทำาการประมวลผลไดทกเครองทม JRE ตดตง ไมตองการ Web browser แตประมวลผลโดยใช Java Interpreter และ Java Virtual Machine

2. Java Applet เป นรปแบบการท ำางานของโปรแกรมทต องอาศย web browser ไ ม ท ำาก า ร ปร ะ ม ว ล ผ ลด ว ย Java Interperter แ ต อ าศ ย Default Java Virtual Machine บน web browser แทน ดงนนแมไมม JRE บนเครองกสามารถประมวลผลโปรแกรมได

2.1.4 หลกการทำางานของ JavaSource code ของ Java(.java) นนจะไมถกแปลงเปนภาษาเครองทนท แตจะ

ถ กแปลงเป น byte code (.class) ซ ง เม อม ก าร เร ยกร นบน Java Virtual Machine หรอ JVM ททำาการจำาลองคอมพวเตอรเสมอนบนคอมพวเตอรจรง byte code จะถกแปลงเปนภาษาเคร องทเหมาะสม และเพราะการแปลง byte code นไมเกยวของกบแพลตฟอรมของเคร องคอมพวเตอรจรง ท ำาใหไมวาเคร องจรงจะมแพลตฟอรมแบบใดกจะสามารถแปลง byte code ไดหมด

ในโครงงานน Java ทเลอกใชค อ J2SDK ของ J2SE ในรปแบบของ Java Application เพราะเปนโครงงานททำาการเขยนโปรแกรม Java ตดตอฐานขอมลบนเครองคอมพวเตอรจงสมควรเลอกใชแพลตฟอรมมาตรฐานมากกวาแพลตฟอรมสำาหรบระดบสงหรอสำาหรบเทคโนโลยอปกรณขนาด เลก

2.2 RDBMSRelational Database Management System(RDBMS) ค อ

ระบบจดการฐานขอมลเชงสมพนธหรอโปรแกรมทใชในการบรหารจดการ สราง /ปรบปรงขอมลในดานตางๆโดยมจดมงหมายเพอควบคมและสนบสนนการใชงานขององคกรอยางเปนระบบ ลกษณะททกระบบ RDBMS ตองมนนสามารถสรปไดดงน

1. ขอมลทกอยางตองอยในรปแบบของตาราง2. ขอมลในตารางตองไมมความซำาซอนกน3. ตองใช Standard Query Language(SQL)

11

Page 12: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

ซงจากลกษณะทงสามขอขางตนทำาใหสามารถกลาวไดวา RDBMS เปนระบบทม ความงายและความยดหยน โดยในแงของขอมลแลว ผใชจะสามารถทำาความเขาใจกบเนอหาขอมลไดงายเพราะถกเกบอยในรปแบบของตาราง สวนในแงของความยดหยนนนจะหมายถงการใช SQL เนองจาก SQL เปนภาษาทสามารถเร มเรยนรการใชงานไดไวและใชในการทำาการบนทกขอมลเพมเตมไดอยางไมตองแกไขตวโปรแกรม application แตอยางใด

2.2.1 ระบบ RDBMS ทเลอกใชระบบ RDBMS ทถกเลอกมาใชในโครงงานนคอระบบ Oracle เพราะนอกจากจะ

เปนระบบ RDBMS ทถกใชงานกนอยางแพรหลายแลว ยงมความสามารถในการทำางานไดหลากหลายแพลตฟอรมอกดวย แตในโครงงานนจะมงเนนการทำางานไปทความสามารถของ Oracle ดาน Text Features เชน Text Indexing โดยเฉพาะ ดวยการใชภาษา Java ตดตอกบฐานขอมลผาน JDBC Driver เพอทำาการประยกตใชระบบการสบคน IR และ Algorithms ทเกยวของคนหาคำาหลกทตองการ

2.2.2 การทำางานบนระบบ RDBMSการทำางานบนระบบ RDBMS สวนใหญแลวไมวาจะเปนระบบใดลวนใช SQL หรอ Structure Query Language ซง

เปนชดคำาสงทนยมใชกนมากในระบบฐานขอมลแบบตารางสมพนธจดการกบฐานขอมลและขอมลทเกบไวดวยกนทงสน โดยชดคำาสง SQL ทใชในการจดการกบฐานขอมลทสำาคญๆ มอย 4 คำาสงคอ

1. SELECT ใชสำาหรบการเลอกหาขอมลหรอแถวทตองการในฐานขอมล2. UPDATE ใชเมอตองการแกไขขอมลหรอแถว3. DELETE ใชเมอตองการลบขอมลหรอแถว4. INSERT ใชเมอตองการเพมเตมแถวหรอขอมลใหม

2.2.3 หนาททวไปของระบบ RDBMS1. ชวยกำาหนด และเกบโครงสรางฐานขอมล 2. ชวยดงขอมลจากฐานขอมล : ขอมลทน ำามาประมวลผลดวยโปรแกรม

คอมพวเตอร ระบบจดการฐานขอมลจะทำาการรบและเกบขอมลไวในฐานขอมล เพอใชในการประมวลผล

12

Page 13: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

3. ชวยเกบและดแลขอมล : ขอมลทเกบในฐานขอมลจะถกเกบรวบรวมไวดวยกน โดยมระบบจดการฐานขอมลเปนผดแลรกษาขอมลเหลานน

4. ชวยประสานงานกบระบบปฏบตการ : เนองจากคอมพวเตอรตองพงระบบปฏบตการชวยใหทำางานได ดงนน ระบบปฏบตจะคอยควบคมการทำางานของอปกรณคอมพวเตอร หรอโปรแกรมตางๆ เปนตน ระบบจดการฐานขอมลจะทำาการประสานงานกบระบบปฏบตการ ในการเรยกใช แกไขขอมล ลบขอมล ออกรายงาน

5. ชวยควบคมความปลอดภย : ในระบบการจดการฐานขอมลจะมวธควบคมการเรยกใชขอมล หรอแกไขเปลยนแปลงขอมลของผใชระบบซงสามารถเรยกขอมลมาแกไข ไดแตกตางกน เพอปองกนความเสยหายทจะเกดขนกบฐานขอมล

6. ชวยจดทำาสำารองขอมลและการกคน : ในระบบจดการฐานขอมล จะทำาการสำารองขอมลของฐานขอมลและเมอเกดปญหาขนกบฐานขอมล เชน แฟมขอมลเสยหายเนองจากดสกเสย หรอไฟไหม ฯลฯ ระบบจดการฐานขอมลจะใชระบบขอมลสำารองนในการฟ นฟสภาพการทำางานของระบบใหสสภาวะปกต

7. ชวยควบคมการใชขอมลพรอมกนของผใชในระบบ : ในระบบคอมพวเตอรทมผใชหลายคนสามารถเรยกขอมลไดพรอมกนระบบฐานขอมลทมคณสมบตนจะทำาการควบคมใชขอมลพรอมกนของผใชหลายคนในเวลาเดยวกน โดยมการควบคมอยางถกตองเหมาะสม เชน ถาแกไขขอมลนนยงไมเรยบรอย ผใชอนๆ ทตองการเรยกใชขอมลนจะตองรอจนกวาการแกไขเสรจเรยบรอยเพอปองกนการเกดปญหาการเรยกใชขอมลทไมถกตอง

8. ชวยควบคมความสมบรณของขอมล : ระบบจดการฐานขอมล จะทำาการควบคมคาของขอมลในระบบใหถกตองตามทควรจะเปน เชน รหสของนกศกษาทลงทะเบยน จะตองตรงกบรหสของนกศกษา ในขอมลประวตของนกศกษา เปนตน

9. ชวยทำาหนาทจดทำาดรรชนขอมล : ระบบจดการฐานขอมลจะทำาการสรางดรรชนขอมลเมอมการกำาหนดโครงสรางของฐานขอมลขนมาเพอเกบรายละเอยดตางๆ ทเกยวกบฐานขอมล เชน ตาราง ชอฟลด ดรรชนตางๆ เปนตน

13

Page 14: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

บทท 3หลกการทำางานของระบบ

3.1 ความรพนฐาน

3.1.1 คำาตอบของระบบจากบทนำาทกลาวมาขางตน คำาตอบของระบบการสบคนนนสามารถอยในรปแบบ

ของแถวหลายแถวทมาจากการเชอมโยงหรอ join ขอมลจากหลายๆตารางในฐานขอมลเขาดวยกนเรยกวา Tuple Tree ได โดยทแตละตารางนนจะตองมขอมลทมความสมพนธกนดงยกตวอยางในรปท 3.1 ซงอธบายสภาพความสมพนธของขอมลจากตารางในรปท 3.2

รปท 3.1 แผนผงความสมพนธของตาราง

14

Page 15: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

รปท 3.2 ตารางในฐานขอมลจะเหนได ว าร ปท 3.1 ได บอกถงความสมพนธของตารางท ง 3 วาตาราง

“Customers” และ “Products” มขอมลทมความสมพนธเช อมโยงไปยงตาราง “Complaints” โดยทเมอพจารณารปท 3.2 จะทราบวา ตาราง“Customers” ม ขอมลคอลมน “custId” และ ตาราง “Products” มขอมลคอลมน “proId” สมพนธกบ ตาราง“Complaints” จรง ดงนนจงสามารถกลาวไดวา Tuple Tree (T) ทเปนคำาตอบจากการ join ตารางของระบบสบคนจะตองมคณสมบตดงตอไปน

(1) (2) โดยกำาหนดให : G แผนผงความสมพนธของตาราง

R ตารางในฐานขอมลT คำาตอบของระบบสบคนหรอ Tuple Treet แถวหรอ tuple ใน Tuple Tree

และขนาดของคำาตอบหรอ size(T) ของ joining tree T คอ จำานวน tuple ใน T

15

Page 16: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

ในการสบคนของระบบครงหนงนนอาจมไดหลายคำาตอบหรอหลาย Tuple Tree ซงคำาตอบใดใกลเคยงหรอถกตองตามคำาหลกมากทสดจะวดไดจากคา score(T,Q) ทเปนคาคะแนนของคำาตอบโดยคา Q คอเซตของคำาในคำาหลกทตองการคนหาหรอ Keywords Q = [ w1,…,w2 ] นนเอง และเมอทำาการพจารณาคาคะแนน score(T,Q) ระบบจะทำาการจดลำาดบคำาตอบจากคะแนนสงทสดไปคะแนนตำาทสดและหากคำาตอบใดๆมคะแนนเทากนแลวจะจดลำาดบคำาตอบใดขนกอนกได ทงนแตละคำาตอบหรอแตละ Tuple Tree จะมลกษณะเหมอนกนอยอยางหนงนนกคอจะไมมแถวใดในคำาตอบ หรอ Tuple Tree มคาคะแนนของแถวนน เปนศนยเดดขาดเพราะหากคาคะแนนของแถวใดเปนศนยแลวแถวนนจะถกลบทง ทำาใหแถวทเหลอใน Tuple Tree ไมเชอมตอกนนนเอง ทำาใหถาเปนคำาตอบ กจะเปนคำาตอบทไมมลกษณะเปน Tuple Tree เหมอนเดม ซงตวอยางการจดอนดบดวยคาคะแนน score(T,Q) นนจะแสดงดงตวอยางท 3.1 โดยใชขอมลจากรปท 3.2

ตวอยางท 3.1 Quiz : top-3 query [Netvista Maxtor] Answer : (1) c3

(2) p2c3 (3) p1c1

และจากตวอยางท 3.1 นทำาใหสามารถสรปลกษณะของคำาตอบหรอ Tuple Tree ไดอกหนงประการคอ แถวหรอ tuple ใดๆจะสามารถปรากฏขนไดหนงครงในหนง Tuple Tree เทานน

3.1.2 การจดเรยงลำาดบคำาตอบคำาตอบของการ query keyword ในแตละคร งนน ค ำาตอบทไดจะออกมา

เปนการ join กนของหลายๆ Tuple ซงเรยกวา Tuple Tree ตามทไดอธบายไปแลวในหวขอกอนหนาน และการเรยงลำาดบของคำาตอบนน กมความจำาเปน เนองจาก ถาคำาตอบทมความใกลเคยงกบคำาหลกทเราใชในการคนหา หรอคอคำาตอบทเราตองการมากทสด ถกแสดงใหเราเหนกอน จากนนกเรยงกนไปตามลำาดบความสำาคญ เรากจะไดคำาตอบทตรงตามความตองการอยางรวดเรว โดยไมตองเสยเวลาคนหา โดยวธการทจะทำาใหคำาตอบทได เรยงตามลำาดบความสำาคญนน จะตองมวธการโดยการใหคา score ของแตละคำาตอบหรอ Tuple Tree นนๆ เมอทกๆ Tuple Tree มคา score แลว คำาตอบทไดกจะถกเรยงลำาดบตามคา score จากคามากไปนอย คอ เรยงตามความถกตองตรงตามคำาหลกทใชในการคนหา จากมากไปนอยนนเอง

16

Page 17: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

โดยในตอนแรกน จ ะ เสนอวธ การหาค า Score ของ DISCOVER และ DBXplorer ซงเปนการใหคา score กบทง Tuple Tree โดยมวธดงน

และ อกวธหนงคอวธของ BANK เปนดงน

โดยท คอ คาความสมพนธของ tuples ของ T วามความเกยวของกนอยางไร ข น อ ย ก บ ค า weight ข อ ง tuples ข อ ง T ท ถ ก ก ำา ห น ด ใ ห โ ด ย

PageRank-inspired technique คอ ฟงกชนของ weight ของ edges ของ T

ซงวธการหาคา score ของ DISCOVER, DBXplorer และ BANK นน ยงไมใชวธทด เพราะเปนการหาคา score ทใหคาตามขนาด และโครงสรางของ Tuple Tree ดงนนเมอเราทำาการ query keyword แลวเรยงลำาดบคำาตอบตามคา score ทหาโดย 3 วธน กจะไมใชคำาตอบทเรยงลำาดบตามความใกลเคยงกบคำาตอบทตองการ (relevance-ranking strategies) ซ ง เป นคณสมบต อยางหน งของ IR community บน RDBMSs

แตในปจจบนน RDBMSs รนใหมโดยทวไป ไดมคณสมบตดงกลาวแลว ทำาใหการเรยงลำาดบของคำาตอบของการ query เป นไปตามลำาด บความส ำาค ญจรงๆ ซ งคณสมบตทวาน การใหคา score ของ Tuple Tree จะไมใหตามขนาด และโครงสรางของ tuple tree แลว แตจะใหตามสงตอไปน

- ค า score ของแต ละ tuple ท น าจะ เป นสวนหน งของค ำาตอบ (Single-attribute IR-style relevance scores) หรอ เปนคา score ของแตละ text attribute ของ tuple นนๆ โดยท Q คอ query, คอ attribute ท i ใน Tuple และ และ ซงคา score น จะถกกำาหนดใหโดย IR engine ท RDBMSs , และ

- ใชฟงกชน Combine ซงเปนฟงกชนททำาการรวมคะแนนของแตละ attribute ของ tuple ใน tuple tree ใหเปนคา final score ของทง tuple tree T

17

ถา T มทกคำาใน

กรณอน

กรณอน

ถา T มทกคำาใน

Page 18: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

การหาคา score ของ single attribute หาไดดงน

(1)

โดยท สำาหรบ word w นน เปนความถของ w ใน คอ จ ำานวนของ tuples ของ relation ของ ท ม w ใน

attribute นนคอ ขนาดของ ใน characters

คอ คาเฉลยของขนาดของ attribute-value คอ จำานวน tuples ทงหมดใน relation ของ

เปนคาคงท (มกใชคาเทากบ 0.2)ซงการหาคา score ของ single attribute ดงกลาวน กสามารถทำาไดโดย การ

มอง Tuple นนๆ ใหเปน Tuple tree ทมคา size เทากบ 1 นนเองเมอไดคา score ของ single attribute แลว จากนนกทำาการหาคา score

ของทง tuple tree ไดโดย ให เปนเวกเตอรของ attribute ทเปน text ของ tuple tree T ไดวา คา score ของ T สำาหรบแตละ query Q กจะเปน Score( T, Q ) = Combine( Score( A, Q ), size( T ) ) ซ ง Score

โดยท size(T) นน เราสามารถใชลกษณะอนๆ ของ T แทนทจะใช size ได เพอใหมความเหมาะสมกบแตละการใชงาน

ซงฟงกชนทใชในการหาคา Combine แบบงายๆ ทำาไดโดย

(2)ฟงกชน Combine ขางบนน เปนตวหนงทใชกนทวไป แตกมฟงกชนอนๆ อกหลายตวทสามารถใชไดเหมอนกน query processing algorithms ทจะเสนอในหวขอตอไปนน สามารถจดการกบ combining function ใดๆ กได ทเปนไปตามคณสมบต ดงตอไปน

คณสมบต tuple monotonicity ฟงก ช น Combine จะสามารถท ำาการ Combine tuple ท ม คณสมบต

monotonicity ได เท าน น ซ งล กษณะของ คณสมบต monotonicity สามารถอธบายได ดงน

18

Page 19: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

สำาหรบทกๆ query Q และ tuple tree T และ T’ ทไดรบมาจาก CN เดยวกน จะมคณสมบต monotonicity เมอมลกษณะดงตอไปน

(1) T ประกอบดวย ในขณะท T’ ประกอบดวย tuples และ(2) สำาหรบทกคา i ซงกคอ

ฟงกชน combining นน การคนหา ควรระบวาใชความสมพนธแบบตรรกะ AND หรอ OR เพอท ฟงกชน Combine จะไดรวาควรหาคา score แบบไหน โดย ตรรกะ AND จะใหคาคะแนนเทากบ 0 กบ tuple tree ใดๆทไมไดมคำาทกคำาใน keyword แต tuple tree ทมคำาทกคำาใน keyword อย กจะไดรบคะแนนทกำาหนดใหโดย ฟงกชน Combine ในทางตรงกนขาม ถาใชตรรกะ OR จะใหคาคะแนนกบทก tuple tree ทใหโดยฟงกชน Combine แมวา tuple tree เหลานนจะม query keyword ครบทกคำาหรอไมกตาม

โดยสรป คอ single-attribute Score function กบ ฟงกชน Combine จะใหคา relevance scores กบ คำาตอบ ซงมลกษณะเปน Tuple Tree ทเปนการหาคำาตอบจากตรรกะ AND หรอ OR อยางใดอยางหนง

3.2 การทำางานของระบบ

19

Page 20: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

รปท 3.3 โครงสราง query processing systemในห วข อน จ ะ เป นการอธบายการท ำางานของระบบ ท ม ช อว า “query

processing system” ซงเปนระบบททำาการประมวลผล เพอคนหาคำาตอบตามคำาหลกทเราตองการ โดยระบบนประกอบดวย สวนการทำางาน 3 สวน ดงตอไปน

3.2.1 IR Engineเมอเราทำาการคนหาขอมล โดยใชคำาหลกในการคนหา คอ Q เชนจากในตวอยาง

Q=[Maxtor Netvista] คา Q นก จะเขามาเป นอนพตของการท ำางานสวนน IR engine กจะทำางานโดยใช IR index ซง IR index คอ index ของฐานขอมลนนๆ ซงเปนการรวบรวม index มาจากทกๆ relation ในฐานขอมล รวมกนเปน IR index ซงจะถกจดเกบเปน plain text ในรปแบบคอนดบ tuple-attribute ยกตวอยาง index บางตวในฐานขอมลน เชน c1-tupleId , p121-prodId เปนตน

IR engine กจะใช IR index น เพอดงคา tuple ของแตละ relation ทมคำาตรงตามกบหลกทใชคนหา ซงหมายถง คา score ของ tuple นนมคามากกวา 0 โดยจ ด เ ก บ เ ป น เ ซ ต ข อ ง แ ต ล ะ relation เ ร ย ก ว า tuple set โ ด ย

ซ ง จ ะ ถ ก เ ก บ อ ย ใ น ร ป แ บ บ =[{tuple, attribute, score}, ....] ยกตวอยางเชน tuple set ของตาราง Products จากตวอยางนกจะเปน =[{p1,manufacturer,1}, {p2,model,1}] โดย tuple ทอยใน tuple set นนจะเรยงลำาดบตามคา score ของ tuple จากมากไปนอย ซง score นน หาไดโดยใช top-k query processing algorithm

3.2.2 Candidate Network Generatorการทำางานของสวนนคอ การหา Candidate Network หรอ CN ซง CN คอ

การแสดงการ join ของแตละ relation เปนโครงสราง เพอจะนำาไปหา tuple tree T หรอ คำาตอบอกทหนง โดยการ join นอาจใชการ join relation ทสมาชกใน tuple set มคา score มากกวา 0 เรยกวา non-free tuple set ดวยกนเอง หรออาจใชการ join รวมกนกบ relation ทสมาชกใน tuple set มคา score เทากบ 0 เรยกวา

20

Page 21: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

free tuple set กได เพอใชเปนตวชวยในการเชอมโยง non-free tuple set ใหเขาดวยกนได คอ เชอมจาก foreign key นนเอง

จะเหนไดวา CN เปนการหาลกษณะโครงสรางของการ join tuple ในแตละ relation เขาดวยกน ซงเปนโครงสรางทจะเปนตวชวยในการหาการ join tuple ทนาจะเปนคำาตอบ หรอ tuple tree T ออกมาได ดงนน CN C กคอเซตของ joining tuple ทงหมดทน าจะเปนค ำาตอบนนเอง จะได วา tuple tree T Candidate Network C เชน ซ ง ค อ tuple tree T และ คอ CN ทไดมาจากการทำางานของสวนนนนเอง

ในการทำางานสวนนของ DISCOVER และ DBXplorer การคนหาคำาโดยใชตรรกะ AND นน ใน 1 relation จะมการสราง tuple set หลายเซต โดยทแตละเซตนนกสรางมาเพอทำาการหา CN ไดแค 1 ตวเทานน ไมสามารถหาไดทงหมดทเดยว ยกตวอยางเชน และ (ไมแนใจวา tuple set ของ DISCOVER และ DBXplorer ทมหลายเซต แตละเซตเปนแบบนจรงรเปลา) แบบนกจะเปน tuple set ของตาราง Complaints กบ Products ทสามารถสรางไดแค 1 combination เทานน ดงนน การหาคำาตอบโดยใชหลายๆ tuple set กจะทำาใหจำานวนของ CN มจำานวนมากมายเกนความจำาเปน ทำาใหเปนการสนเปลองทรพยากร ยงคนหาโดยใชคำาหลกขนาดใหญขน กจะยงทำาใหเปลองมากขน และเสยเวลาดวย

แตในทางตรงกนขาม สำาหรบระบบของ IR น จะทำาการสราง tuple set ของแตละ relation แค 1 เซตตอ 1 relation เทานน แลวจะได CN จากการเชอมโยงแตละ relation เขาดวยกน จากนนกเพยงแคตรวจสอบคาของแตละ tuple โดยใชรปแบบตามของ CN นน กจะหาคำาตอบออกมาได จะเหนไดวาระบบของ IR นมความซบซอนยงยากนอยกวา ทำาใหไมเปลองทรพยากร และยงทำาใหการคนหารวดเรวขนอกดวย ถงแมวาคำาหลกจะมขนาดใหญขน การคนหากยงเรวกวาการทำางานของ DISCOVER และ DBXplorerลกษณะของ CN ทจะไดออกมาจากการทำางานของสวนนนน จะตองมลกษณะดงน

1. จำานวนของ non-fre tuple sets ใน s ไมเกนจำานวนของ query keyword m : ทำาใหมนใจไดวา จะสรางจำานวน CN ทนอยทสดได ในขณะทไมม result ทมทก keyword (เปนไปตาม AND semantic) ใดๆ ตกหลนไป นนคอ ทกๆ result T ทมทก keyword ซงแตละ keyword ปรากฏ

21

Page 22: รายงานการศึกษาเบื้องต้น Methodolo… · Web viewคำส ง SQL ในการหาคำตอบท ควรจะได น น

เพยงครงเดยว CN C ท เชน ไมเปน CN ของ query

[Maxtor Netvista] แตปกตแลว results เปน subset ของ results ของ

2. ไมม leaf tuple set ของ s ตวใดทเปน free tuple set : ทำาใหมนใจไดวา CN จะเลกทสดเทาทจะเลกได เชน ไมเปน CN เพราะเปนการรวมกนโดยทไมจำาเปน แคม ตวเดยวกเปนคำาตอบไดแลว

3. s ไมมตวทมโครงสรางเปน : เพราะถาเปนอยางน ทกๆ result ของ joining tree จะม tuple ตวเดยวกน มากกวา 1 ตว เชน

ไมเปน CN เพราะอยในรปแบบ โดย

ขนาดของ CN คอ จำานวนของ tuple sets ของทก CNs ทมขนาด 3 หรอ ตำากวานน ของ query [Maxtor Netvista] แสดงในรปภาพ

3.2.3 Execution Engineการทำางานสวนนจะใช CN ทไดจากการหาในการทำางานสวนกอนหนาน ซง

Execution Engine ตดตอกบ RDBMS’s query execution engine หลายตอหลายครง เปนการตรวจสอบวา tuple นนๆ ควรเปนคำาตอบหรอไม เพอหา top-k query result คำาตอบของ การคนหาคำาหลก [Maxtor Netvista] ในตามตวอยางน จะไดคำาตอบดงรปภาพท 3.4 ซงแสดง joining trees ของ tuples ทสรางโดยแตละ CN พรอมกบ scores จากตวอยางฐานขอมล Complaints

CQ PQ CQPQ CQ

U{}CQCQP{}

CQ

c3: 1.33c1:

0.33c2:0.3

3

p1: 1p2:1

c3p2: 1.17

c1p1: 0.67

c2p2: 0.67

c3p2c2: 1.11

รปท 3.4 ตารางแสดงผล Candidate Network

22