วันจันทร์ที่ 10 กุมภาพันธ์ พ.ศ. 2557

How to 2 : การสร้างความสัมพันธ์ระหว่างตาราง

ความสัมพันธ์ระหว่างตารางในฐานข้อมูล

ใน GIS สามารถสร้างความสัมพันธ์ระหว่างตารางในฐานข้อมูลได้ 4 แบบ ดังนี้ 

1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One-to-One)
เป็นลักษณะความสัมพันธ์ที่มีระเบียนเพียง 1 ระเบียนในแฟ้ม A มีความสัมพันธ์กับระเบียน เพียง 1 ระเบียนในแฟ้ม B และในทางกลับกัน ระเบียนเพียง 1 ระเบียนในแฟ้ม B ก็จะมีความสัมพันธ์กับระเบียนเพียง 1 ระเบียนในแฟ้ม A ในการประยุกต์ใช้ความสัมพันธ์นี้ เช่น ข้อมูลแผนที่ขอบเขตการปกครองระดับอำเภอ ของจ. ปทุมธานี มีตารางประกอบแผนที่ แสดง 7 อำเภอ แต่ละอำเภอมีรหัสประจำอำเภอ 1 ตัว จะเชื่อมโยงไปยังตารางอธิบายรหัสอำเภอได้เพียง 1 รหัสเท่านั้น

2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-Many)
เป็นลักษณะความสัมพันธ์ที่มีระเบียนเพียง 1 ระเบียนในแฟ้ม A มีความสัมพันธ์กับระเบียนหลายระเบียนในแฟ้ม B และทางกลับกันหลายระเบียนในแฟ้ม B จะมีความสัมพันธ์กับระเบียนเพียง 1 ระเบียนในแฟ้ม A ในการประยุกต์ใช้ความสัมพันธ์หนึ่งต่อกลุ่มนี้ เช่น ข้อมูลแผนที่ขอบเขตชุดดิน ของจ. ปทุมธานี มีตารางประกอบแผนที่ขอบเขตชุดดินที่มีในจังหวัด ซึ่งบางชุดดินจะมีอยู่หลายๆ แห่งในจังหวัด เช่น 141 มีอยู่ 2 polygon เป็นต้น จะเชื่อมโยงไปยังตารางอธิบายรหัสชุดดินได้เพียง 1 รหัสเท่านั้น ดังรูปประกอบ ในทางกลับกัน ตารางอธิบายชุดดินมีเพียงชุดละ 1 record เท่านั้น จะเชื่อมโยงไปยังตารางของแผนที่ได้หลายรหัส

3. ความสัมพันธ์แบบกลุ่มต่อหนึ่ง (Many-to-One)
มีหลายระเบียนในแฟ้ม A ที่มีความสัมพันธ์กับ 1 ระเบียนในแฟ้ม B หรือ 1 ระเบียนในแฟ้ม B มีความสัมพันธ์กับหลายระเบียนในแฟ้ม A


4. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many-to-Many)
มีหลายระเบียนในแฟ้ม A ที่มีความสัมพันธ์กับหลายระเบียนในแฟ้ม B หรือหลายระเบียนในแฟ้ม B มีความสัมพันธ์กับหลายระเบียนในแฟ้ม A


   ความสัมพันธ์ระหว่างตารางมี 2 แบบคือ 

- Join = ออกแบบมาสำหรีบการเชื่อมความสัมพันธ์ระหว่างตารางแบบ One-to-One หรือ Many-to-One หากใช้นอกเหนือจาก 2 แบบนี้การเชื่อมตารางจะมีความผิดพลาด บางเรคคอร์ดจะหายไป เนื่องจาก Join จะนำแค่เรคคอร์ดแรกมาเชื่อม ส่วนเรคคอร์ดที่เหลือจะขาดหายไป ชื่อฟิลด์ที่จะนำมาเชื่อมกันนั้นไม่จำเป็นต้องเป็นชื่อเดียวกัน แต่ฟิลด์ต้องเป็นประเภทเดียวกัน เช่น ข้อความ จำนวนจริง การเชื่อมตารางด้วยคำสั่ง Join นั้นเป็นการเชื่อมชั่วคราว แต่สามารถส่งออกข้อมูล (Export data) ที่เชื่อมแล้วได้ หรือยกเลิกการเชื่อมได้ตามต้องการ

Relate = จะคล้ายกับ Join คือ ชื่อฟิลด์ไม่จำเป็นต้องเป็นชื่อเดียวกัน แต่ต้องเป็นฟิลด์ประเภทเดียวกัน หลังจากเชื่อมแล้วตารางจะแยกจากกัน ไม่เหมือนกับการใช้คำสั่ง Join ที่ตารางจะถูกรวมกันการใช้คำสั่ง Relate เหมาะกับข้อมูลที่มีความสัมพันธ์แบบ One-to-Many หรือ Many-to-Many



 ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One-to-One)

  เริ่มจากเปิดชั้นข้อมูลขึ้นมา จากตัวอย่างจะใช้ฐานข้อมูลของจังหวัดเพชรบุรี
คลิกที่ Folder Prachinburi คลิกเลือกที่ Folder SOIL_GRP จากนั้นเลือก Shapefile SOIL_GRP






จากนั้นทำการเปิด ชั้นข้อมูลขึ้นมาใหม่อีก 1 ชั้นข้อมูลเพื่อทำการร่วมข้อมูล






หลังจากเปิดชั้นข้อมูลขึ้นมา ก็เปิดตารางข้อมูลเพื่อดูว่ามีข้อมูลประเภทเดียวกันหรือไม่ 
   - วิธีการเปิดดูตารางข้อมูล คลิกขวาที่ชั้นข้อมูล SOILCODE คลิก Open



 

- และเปิดดูตารางของข้อมูล SOIL_GRP โดยการคลิกขวา และเลือกที่ Open Attribute table เพื่อเปิดดูตารางข้อมูล






จากนั้นจะสังเกตุได้ว่า ทั้ง 2 ตารางนี้มีชั้นข้อมูลของ SOIL_ID เหมือนกัน เพราะต้องมีข้อมูลในตารางข้อมูลเหมือนกันอย่างน้อง 1 ข้อมูล








จากนั้นทำการเชื่อมตาราง โดย คลิกที่  Table Options > Joins and Relater > Join...






ในช่องที่ 1 และ 2 ให้เลือกเป็น SOIL_ID คือข้อมูลที่ต้องการรวม
ส่วนในช่องที่ 3 คือตารางที่ต้องการนำมารวม และเชื่อมข้อมูล โดยเลือกเลือกเป็น SOILCODE จากนั้นกด OK






หลังจากนั้นจะปรากฏการรวมตารางขึ้นมา 





วิธีการลบชั้นข้อมูลที่ทำการเชื่อมไปแล้ว คลิกที่ Table Options > Joins And Relates > Remove Join(S) > SOILCODE










ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-Many)

   เปิดชั้นข้อมูลขึ้นมา ทั้งหมด 2 ชั้นข้อมูล คือข้อมูล AMPHOE และ Village_Relate





จากนั้นเปิดข้อมูลตารางของทั้ง 2 ชั้นข้อมูลขึ้นมา เพื่อพิจารณาว่ามีความสัมพันธ์แบบไหน
โดยพิจารณาจากตารางที่มีเหมือนกันหลายตาราง และต้องเป็นตารางที่สำคัญ และมีตัวเลข
   - ตารางข้อมูลของ AMPHOE




   - ตารางข้อมูลของ Village_Relate





หลังจากพิจารณาดูทั้งสองตารางแล้ว ก็ทำการเชื่อมข้อมูล โดยเราจะเลือกการเชื่อมข้อมูลจากชั้นข้อมูลของ AMPHOE คลิกที่ Table Options > Joins and Relates > Relates...






ในช่องที่ 1 และช่องที่ 2 นั้นให้เลือกเป็น AMP_CODE ส่วนช่องที่ 3 คือตารางข้อมูลที่เราต้องการนำมาเชื่อข้อมูลก็คือ Village_relate ช่องที่ 4 คือการตั้งชื่อ (จะเปลี่ยนชื่อหรือใช้ชื่อเดิมก็ได้) จากนั้นกด OK






ตารางจะยังไม่ปรากฏ เพราะจะแสดงเพียงแค่ 1 อำเภอเพราะ 1 อำเภอมีหลายหมู่บ้าน






วิธีการดูผลจากการเชื่อมตารางให้เราคลิกที่ชั้นมูลที่เราต้องการทราบ จากนั้นไปคลิกที่ Table Opions > Related Tables > Related 1 : Village_relate







จากนั้นจะปรากฏข้อมูลของหมู่บ้านที่เราต้องการ






วิธีการลบชั้นข้อมูลที่ทำการเชื่อมไปแล้ว คลิกที่ Table Options > Joins And Relates > Remove Relate(S) > Remove All Relater (ในกรณีที่มีหลายชั้นข้อมูล)





กระบวนการทางสถิติ (Attribute statistic function)

จะเลือกใช้ข้อมูลที่เป็นตัวเลขเท่านั้น เริ่มจากการเปิดชั้นข้อมูลขึ้นมา จากนั้น คลิกขวาที่ Layer ข้อมูล เลือก Open Attribute Table



คลิกขวาที่ชั้นข้อมูลของ AREA (เพราะเป็นชั้นข้อมูลแบบตัวเลข) > Statistics... 





จากนั้นจะปรากฏหน้าต่างของ Statistics of AMPHOE ขึ้นมา เราจะสามารถเลือกได้ว่าจะเลือกคำนวณข้อมูลทางสถิติของชั้นข้อมูล (Field) ไหน





แต่บางที่ก็ไม่สามารถทำการคำนวณข้อมูลได้ ชั้นข้อมูลนั้นอาจจะแสดงเป็นตัวเลขก็จริง แต่ไม่ได้มาจากการคำนวณ แต่เป็นแบบข้อความที่พิมพ์ขึ้น (text)





การสร้างกราฟ

เปิดชั้นข้อมูลขึ้นมา จากนั้นไปที่ Menu Bar > Graphs > Create...




จะปรากฏเป็นหน้าต่างนี้ขึ้นมา




ในช่องที่ 1 นั้นเราสามารถเปลี่ยนรูปแบบของกราฟได้






ส่วนช่องที่ 2 เลือกการแสดงชั้นข้อมูล และช่องที่ 3 เลือก Field ที่เราต้องการจะแสดง เมือเลือกเสร็จแล้วให้กด Next









ในช่อง Title เราสามารถเข้ามาตั้งชื่อตารางของเราในช่องนี้ได้ เมื่อทำการตั้งชื่อเสร็จเรียบร้อยให้กด Finish




จากนั้นจะปรากฏหน้าต่างการแสดงกราฟที่สร้างไว้






สามารถแก้ไขกราฟได้โดยการคลิกขวา เลือก Advanced Properties..




เปลี่ยนชื่อหัวข้อกราฟ,เปลี่ยนสี

   - การแก้ไขชื่อหัวข้อ คลิกที่ Titles > Style  ทำการแก้ไขหัวข้อในช่อง Text




   - การเปลี่ยนสีหัวข้อ คลิกที่ Titles > text คลิกที่ color เพื่อเปลี่ยนสี




การแก้ไขหัวข้อในแนวแกนตั้ง

   - แก้ไขชื่อ ในหน้าต่าง Editing คลิกที่ Axis > Left Axis > Title > Style พิมพ์หรือแก้ไขหัวข้อในช่อง Title



การแก้ไขหัวข้อในแนวแกนนอน

   - แก้ไขชื่อ ในหน้าต่าง Editing คลิกที่ Axis > Bottom Axis > Title > Style พิมพ์หรือแก้ไขหัวข้อในช่อง Title



การแปรงแต่งกราฟ

   - เปลี่ยนสี และลักษณะของกราฟ ในหน้าต่าง Editing คลิกเลือกที่ Vertical Bar > Format 





   - สามารถเลือกรูปแบบของกราฟได้โดยคลิกที่ Style 




   - หรือถ้าอยากสร้างให้กราฟมีลวดลาย ให้คลิกที่ Pattern




การตั้งค่าต่างๆนั้น เราสามารถทำการตั้งค่าทีละ 1 แท่งกราฟได้โดยการดับเบิ้ลคลิกที่แท่งกราฟ จากนั้นจะพบกับหน้าต่างการตั้งค่าที่เหมือนกันตัวอย่างข้างต้น





การร Export กราฟ คลิกขวาที่พื้นที่รอบกราฟ คลิกเลือก Export 





 - นำไปใช้ในโปรแกรม Microsoft Word เลือกสกุลไฟล์ของภาพที่เราต้องการ จากนั้นกด Copy





   เปิดโปรแกรม Microsoft Word และคลิกขวา เลือกวาง และจัดรูปแบบตามการใช้งาน




   - หรือจะทำการ Save เป็นไฟล์รูปภาพเพื่อนำไปใช้ในงานด้านอื่น โดยทำการคลิกที่ Save












การส้รางรายงาน

      คลิก View ที่ Menu Bar จากนั้นเลือกที่  Reports > Create Report



จากนั้นจะปรากฏหน้าต่างของ Report Wizard ขึ้นมา ในช่องของ Available Fields คือชั้นข้อมูลที่เราต้องการใส่เข้าไปในรายงาน ส่วนช่อง Report Fields คือส่วนที่เราทำการเลือกข้อมูลแล้วโดยการย้ายเข้า และออกทำได้โดยกดปลุ่มดังต่อไปนี้


 ด้านบน จะเป็นการนำเข้ามาทีละ 1 ข้อมูล
 ด้านล่างคือการย้ายออกจากที่เลือกที่ละ 1 ข้อมูล
ด้านบน จะเป็นการนำเข้ามาทีละหลายข้อมูล
ด้านล่างคือการย้ายออกจากที่เลือกที่ละหลายข้อมูล



   หลังจากทำการเลือกเสร็จแล้วให้กด Next






ช่องที่ 1 เราสามารถกดเลือกหัวข้อเองได้ว่าต้องการให้หัวข้อไหนขึ้นต้นรายงานก่อน
ช่องที่ 2 เป็นการเลียงลำดับจำนวนจากน้อยไปหามาก
หลังจากที่กดเลือกเรียบร้อยก็กด Next



กดตั้งชื่อตารางของเรา จากนั้นกด Finish




จะปรากฏหน้าต่าง Report Viewer ขึ้นมา




ถ้าเราต้องการแก้ไข ให้คลิกที่คำสั่ง Edit.. 




จากนั้นจะแสดงหน้าต่าง Report Designer ขึ้นมาให้เราปรับแต่งในส่วนต่างๆ ตามที่ต้องการ





หลังจากที่ปรับแต่งเสร็จเรียบร้อยให้คลิกที่คำสั่ง Run Report




จากนั้นจะกลับมาที่หน้าต่าง Report View ทำการ Save โดยเลือกคำสั่ง Save report output to file




ทำการตั้งชื่อไฟล์และกด Save




แต่ถ้าเราต้องการนำรายงานนี้มาเป็นส่วนประกอบของแผนที่ ที่เราส้รางไว้ให้เลือกที่คำสั่ง Add report to ArcMap Layer




จากนั้นจะปรากฏหน้าต่าง Add to Map ช่องที่ 1 เราสามารถเลือกได้ว่าต้องการวางรายงานนี้ในแผนที่ทั้งหมด หรือหน้าปัจจุบันที่ใช้อยู่ หรือเลือกหน้าที่ต้องการใส่ลงไป จากนั้นกด OK





 จากนั้นรายงานจะมาปรากฏอยู่ใน Layer ของเรา ทำการปรับแต่งให้สวยงาม





Video How to 2 : การสร้างความสัมพันธ์ระหว่างตาราง




อ้างอิง : สื่อการสอน อาจารย์ ดร.ณรงค์  พลีรักษ์ คณะภูมิสารสนเทศศาสตร์  มหาวิทยาลัยบูรพ