[IQ] Data Integrity : Tests, Analysis, and Action

Data_Integrity_main.jpg

บทนี้พูดถึงการตรวจสอบข้อมูล โดยเน้นไปที่ content ของระบบนั่นก็คือ data นั่นเอง โดยอธิบายในเรื่องที่ต้องพิจารณาอย่าง Total number of records, Completeness, Validity, Duplication, Precision, Consistency เป็นต้น

สไลด์ assess_data_quality_2 ของอาจารย์
ที่มาของรูป : http://simplecomplexity.net/wp-content/uploads/2008/06/integrity-triangle.jpg

  • Total number of records

ต้องนับจำนวนเรคอร์ดในตารางที่สนใจจะตรวจ ว่าจำนวนเป็นตามที่คาดไว้หรือไม่
– ถ้าข้อมูลไม่เป็นไปตามที่คาด ก็ต้องตรวจสอบหาสาเหตุที่ทำให้ข้อมูลหายไป

  • Completeness

ความครบถ้วนของข้อมูล ว่าข้อมูลฟิลด์ที่ต้องการห้ามเว้นว่างครบหรือไม่
– สิ่งที่จะตรวจสอบได้คือ business requirement เป็นอย่างไร ว่าคอลัมน์ไหนต้องมีข้อมูลหรือไม่
– ถ้ามีปัญหาว่าข้อมูลไม่ครบก็ควรจะมีการแนะนำให้ไปกำหนดที่ DBMS เลยว่าห้ามเป็น Null หรือค่าว่าง แต่บางครั้งทำไม่ได้เช่น บัตรประชาชนของชาวต่างชาติ
– ดังนั้นถ้าบังคับด้วย DBMS และ Application ไม่ได้ก็ต้องมีเอกสารอธิบายแก่ผู้ป้อนข้อมูล
– แบ่งเป็น

  1. single column : คอลัมน์เดี่ยว เช่นแผนก
  2. grouping of data : เป็นกลุ่มของข้อมูลเช่นที่อยู่ name, address, city, province, zip code
  • List of Unique Values

– ค่าที่ไม่ซ้ำกัน เช่นจังหวัด เราต้องรู้ว่าค่าที่เป็นไปได้ทั้งหมดเป็นเท่าไหร่

  • Further Checks

– Disguised Missing Values เป็นค่าที่เค้าใส่มั่วๆ มาเพื่อให้มันผ่าน  DBMS ไม่สามารถเชคได้ ต้องเชคเอง เช่น เบอร์โทรศัพท์ อาจจะใส่ 99-999-9999
– ค่าที่มีความหมายเหมือนกัน แต่ใช้ตัวย่อไม่เหมือนกัน ก็ทำให้เกิดข้อผิดพลาดได้ โดยถ้าเชคเจอให้ปรับเป็นรหัส หรือแก้ที่ application ให้เป็น dropdown list แทน เช่น กท, กทม, กทฯ

  • Validity

– การเชคว่าข้อมูลอยู่ในขอบเขตที่ถูกต้องรึเปล่า เช่นอายุลูกค้า
– รวมถึง pattern เช่น เบอร์โทรศัพท์, รหัสไปรษณีย์
– รวมถึงการขึ้นต่อกันด้วย ว่าจังหวัดนี้ต้องมี zip อะไร ต้องไม่ออกนอกขอบเขต
– วันที่ ก็ควรจะต้องตรวจสอบ เช่นไม่ควรจะมีคนที่เกิดปี 2400
– ในการตรวจสอบ zip ว่า 95% ที่สมบูรณ์แต่ มีแค่ 90% ที่ valid ก็ต้องมาเชคว่า pattern ถูกต้องไหม

  • Frequency distribution

– ดูการกระจายความถี่ของข้อมูล
– เช่น ข้อมูลลูกค้าที่ขายสินค้าออนไลน์ ก็ดูความถี่ว่ามียอดตามที่คาดหรือไม่
– สังเกตข้อมูลที่ผิดปกติ เช่น ใส่ชื่อที่ไม่ใช่ชื่อคน อย่างMickey Mouse
– พิจารณา candidate for primary key เช่นชื่อก็อาจจะมาใช้เป็น candidate ได้
– หรือถ้าเชคแ้ล้วว่าคอลัมน์มีข้อมูลเหมือนกันหมดเลย เช่น สัญชาติ อาจจะตัดออกได้ว่าไม่ต้องเก็บข้อมูล

  • Range of values

– ขอบเขตของข้อมูล
– เราจะตรวจสอบว่าในแต่ละคอลัมน์ ค่าต่ำสุด หรือสูงสุดเป็นอะไร เช่นเบอร์โทรศัพท์ , ชื่อคน , วันเกิด, วันที่ซื้อสินค้า

  • Recency

ข้อมูลทันสมัย, อายุของข้อมูล
– เช่น ข้อมูลของเงินเดือน ก็มีการใส่วันที่อัพเดต ต้องมีการเชคว่าวันที่อัพเดตถูกต้องหรือไม่ เชคเป็น % ออกมา
– ซึ่งจะช่วยให้ตรวจสอบเรื่อง timeliness และ Decayได้ด้วย

  • Invoice Date

– วันที่ออกใบเสร็จ ไม่ควรที่จะเกินขอบเขตอะไร เช่น เปิดบริษัทมา 1 ปี วันก็ไม่ควรเกิน 1 ปี

  • Content

– ความสัมพันธ์ของข้อมูลกับชื่อฟิลด์
– เชคดูว่าข้อมูลมีความสอดคล้องกับชื่อฟิลด์รึเปล่า
– เช่นเป็นชื่อคน แต่ข้อมูลเป็นตัวเลขหมดเลย

  • Duplication

การเชคความซ้ำซ้อน
– มีสองอย่าง

  1. Exact string matches : เชคทุกตัวอักษรเหมือนกันหมด
  2. fuzzy matching : เชคการออกเสียงแทนการสะกดทั้งหมด Soundex and NYSIIS (New York State Identification and Intelligence System)
  • Data Type

– ชนิดของข้อมูล
– ในแต่ละคอลัมน์จะมีการกำหนดชนิดของข้อมูล เชคว่าข้อมูลที่อยู่เป็นชนิดที่กำหนดหรือไม่
– เช่น เบอร์โทรศัพท์เก็บเป็น char แทน int เพราะถ้าขึ้นด้วย 0 จะถูกตัดออกไป

  • Size or length

– ขนาดหรือความยาวของข้อมูล
– ถ้าความยาวเกินกว่าที่จะเก็บได้จะถูกตัดออกไป ให้เชคว่าความยาวที่ตั้งไว้เหมาะสมไหม

  • Patterns

– พิจารณารูปแบบที่ไม่คาดถึงด้วย
– us มีี zip หลาย pattern #####, #####-####, ##### ####,  ######### ต้องดูว่าถ้ามีรูปแบบอื่นนอกจากนี้แสดงว่าคุณภาพของข้อมูลมีปัญหา

  • Precision

– ความแม่นยำ,ความแน่นอน,ความเที่ยงตรง
– ถ้าจำนวนเงินอาจจะใช้ ทศนิยม 2 หลัก, ดอกเบี้ยจะต้องใช้ตำแหน่งของทศนิยมมากกว่า

  • Consistency

– การเชคความสัมพันธ์กันของฟิลด์ ดูว่าเป็นไปในทิศทางเดียวกันหรือไม่
– การตรวจสอบโดย ถ้าภายในตารางเดียวกัน เช่นประเทศกับ zip เวลาเราสั่งซื้อสินค้าออนไลน์ จะใส่ประเทศ และ zip ในรูปแบบที่ควรจะเป็นหรือไม่

  • Concurrency and Timeliness

– บางครั้งอาจจะมีการใช้ข้อมูลจากหลายที่ ก็ควรจะเชคด้วยว่าข้อมูลที่เข้ามาเป็นไปตามที่ควรจะเป็นรึเปล่า

  • Business rules

– มองในมุมของข้อมูลว่าการทำธุรกิจมีกฏเกณฑ์อะไรบ้างที่เกี่ยวกับข้อมูล
– เช่น บางครั้งเรากำหนดใน DBMS เลยว่าอายุของพนักงานไม่เกิน 55 แต่ถ้ามีหลายกลุ่ม เช่นเป็นพนักงานที่เป็นผู้บริหารไม่เกิน 65 ก็ไม่สามารถใช้ DBMS กำหนดได้ทั้งหมด

  • Duplication

– ความซ้ำซ้อน คือการตรวจสอบว่าข้อมูลไม่ unique หรือข้อมูลของentity นั้นไม่ซ้ำกับใคร
– ปัญหาของเว็บไซต์ อาจจะมีจำนวนลูกค้าเกินความเป็นจริง เนื่องจากว่ามีหลาย account
– มี data cleaning tool ในการช่วยตรวจสอบ
– ไม่ใช่ว่าตรวจแค่ชื่ออย่างเดียว
– ข้อเสียในระบบการเก็บข้อมูลลูกค้า คือเวลาที่จะโปรโมตสินค้าไปให้ลูกค้าก็เกิดการสิ้นเปลือง, การให้เครดิตลูกค้า ถ้ามีลูกค้าทำเครดิตในบริษัทเดียวกันหลายใบ

  • De-duplication

– ทำยังไงจะหา record ที่ซ้ำกันเจอ
– ใช้วิธี matching หรือ linking
– ตัวอย่างของ matching หรือ linking Householding เป็นคอนเซปต์ของการเชื่อมโยงข้อมูล เช่นลูกค้าที่อยู่บ้านเดียวกัน ถ้าจะส่งข้อมูลโบรชัวไปก็ส่งไปใบเีดียว ดังนั้นการที่จะเชคก็ต้องดูที่อยู่หรือเบอร์โทรศัพท์ด้วย

  • Matching Algorithm

– การจะ match ข้อมูลก็ไม่ใช่ string matching ธรรมดาต้องเอาข้อมูลหลายฟิลด์มาเปรียบเทียบกัน
– ทำยังไงให้ประหยัดเวลามากสุดโดย

  1. ทำให้ข้อมูลอยู่ในรูปแบบที่ถูกต้อง
  2. ทำการแยกข้อมูล
  3. เข้า matching algo
  4. เมื่อ match แล้วอะไรที่ตรงกันก็ต้องมาดูว่าอะไรที่ตรงกัน เรียกว่า match-merge ต้องทำการ merge ข้อมูล

– โดยทั่วไปจะยากที่ทำเป็นอัตโนมัติทั้งหมด ส่วนใหญ่ต้องให้คนเข้าไปดูในขั้นตอนสุดท้าย
– นิยาม

  1. Match : ข้อมูลแทนตัวตนของลูกค้า
  2. nonmatch : ข้อมูลไม่ตรงกัน

– Representation of the Real World through Business Rules and Tool Usage

  1. true match : ข้อมูลตรงตามกฏเกณฑ์
  2. Non-match : ข้อมูลไม่ตรงตามกฏ
  3. False negative : ไม่สามารถ match กันได้
  4. False positive : ข้อมูลไม่ใช่คนเดียวกัน แต่บอกว่าเป็นคนเดียวกัน
  • Level to test for uniqueness

– record level : การที่มีเรคอร์ดซ้ำ ถ้าเป็นบริษัทอาจจะดูที่ตั้ง, ถ้าดูตัวคนก็ดูชื่อ+ข้อมูลอื่นๆประกอบที่เอามาตัดสินว่าเป็นคนเดียวกันไหม
– field level : การพิจารณาในแต่ละฟิลด์เช่น ID ก็ไม่ควรมีการซ้ำกันซึ่งรูปแบบการตรวจสอบก็มี data profiling tool เป็นการเช็คอย่างง่าย, data cleansing tool เช็คอย่างละเอียด

  • Accuracy

– ความถูกต้องของข้อมูลที่เก็บในฐานข้อมูลจะต้องตรงกับข้อมูลที่เป็นจริง
– ไม่มีเกณฑ์มาตรวจสอบ ต้องตรวจกับลูกค้าโดยตรง
– ส่วนใหญจะทำ manual เองเลย
– การตรวจสอบ

  1. survey : การสอบถามเช่นโทรศัพท์หรืออีเมล
  2. inspection : ต้องลงไปดูด้วยตัวเอง
  • Accuracy vs Validity

– Accuracy : ลูกค้าชื่อนี้จริงไหม
– Valid : pattern ถูกต้องไหม

  • Assessing data accuracy

– การระบุตัวตน

  1. เชคจากแหล่งอื่น เช่น เชคบริษทที่จดทะเบียนที่กระทรวงพาณิชย์
  2. ดูว่ามีแหล่งข้อมูลให้ตรวจสอบรึเปล่า เช่นถนนนี้อยู่ในเขตนี้หรือไม่ แต่ไม่มีฐานข้อมูลของถนนเลย
  • Expense of determining accuracy

– ค่าใช้จ่ายในการตรวจสอบความถูกต้อง มีค่าใช้จ่ายสูงมาก
– ข้อมูลเปลี่ยนอยู่ตลอดเวลา ต้องมีการอัพเดตฐานข้อมูลอยู่เสมอ

  • Accuracy Assessing Method

วิธีการ

  1. Telephone survey : แพง แต่ว่ามีโอกาสสูในการได้รับข้อมูล
  2. Mailed survey : แพงน้อยกว่า แต่อาจจะไม่ค่อยได้รับการตอบกลับ
  3. Physical inspection
  4. Manual comparison
  • Decide which method of assessment to use

สิ่งที่ต้องพิจารณาประกอบ

  1. วัฒนธรรม : วิธีที่ใช้ได้รับการยอมรับไหม
  2. การตอบสนอง : ต้องดูว่าวิธีไหนลูกค้าตอบสนอง เช่นลูกค้าไ่ม่ว่าง
  3. ตารางเวลา : ใช้เมลช้า มีการตอบสนองต่ำ
  4. เงื่อนไข : กฏหมาย เช่น ตรวจสอบรหัสประชาชน
  5. ค่าใช้จ่าย : ต้องใช้วิธีที่เหมาะกับค่าใช้จ่าย
  • Determine the sampling method

– การสุ่มตัวอย่าง เ็ป็นเทคนิคในการเลือกตัวอย่างของข้อมูลมาทำการทดสอบ
– สิ่งที่ต้องพิจารณา

  1. จำนวนของตัวอย่าง
  2. ถ้าเกิดสุ่มตัวอย่างมาต่างกันจะได้ผลเหมือนกัีนหรือไม่

– การสุ่มตัวอย่างแบบ random เป็นวิธีที่ใช้เป็นส่วนใหญ่ เพราะว่าเป็นการไม่เจาะจงตัวอย่างใดตัวอย่างหนึ่ง

  • Consistency and Synchronization

– ในกรณีที่มีข้อมูลหลายฐานข้อมูล ดังนั้นถ้าเราจะต้องใช้ข้อมูลจากหลายทีก็ต้องมาดูว่ามีมาตรฐานเหมือนกันไหม การตั้งรหัสเหมือนกันรึเปล่า

  • Timeliness and Availability

– เป็นเรื่องของ timeframe ที่เราคาดหวังว่าควรจะเป็นอย่างไร
– Availability เป็นเรื่องของข้อมูลมีพร้อมให้ใช้รึเปล่า

  • Assessing Timeliness and Availability

– ต้องศึกษาความต้องการ
– ระบบให้ข้อมูลอย่างที่ผู้ใช้ต้องการรึเปล่า
– ดูในแต่ละขั้นตอนว่ามีการใช้ข้อมูลอะไรบ้าง
– Tracking and recording timeliness : ดูว่าข้อมูลมีความผิดปกติในช่วงเวลาไหนรึเปล่า
– Timeliness Results and Initial Recommendations

  • Ease of Use and Maintainability

– การใช้งานง่ายไหม, การดูแลข้อมูลง่ายไหม
– ต้องไปสอบถามผู้เกี่ยวข้องว่าใช้งานระบบใช้ง่ายไหม
– ในกรณีที่มีข้อมูลหลายฐานข้อมูล ดึงข้อมูลจากหลายฐานใช้เวลานานไหม

  • Data Coverage (comprehensiveness)

– ข้อมูลมีความครบถ้วนอย่างที่อยากได้รึเปล่า

  • Presentation Quality

– เป็นเรื่องของ format ต่างๆ บางนิยามอาจจะเน้นไปที่ส่วน format บางนิยามก็ดูความสวยงาม
– Analyze the information and format for quality : ถามผู้ใช้ว่าคุณภาพเป็นอย่างไร

  • Perception, Relevance, and Trust

– Relevance : เกี่ยวข้องกับคุณภาพการใช้งาน เอาไปใช้แล้วเกี่ยวข้องกับผู้ใช้แค่ไหน
– ตัองใช้วิธี survey เนื่องจากว่าเป็นความคิดเห็นของผู้ใช้ เช่นผู้ที่ใช้ข้อมูลนั้น

Leave a comment