[IQ] Data Integrity : Tests, Analysis, and Action
บทนี้พูดถึงการตรวจสอบข้อมูล โดยเน้นไปที่ 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 ไม่ได้ก็ต้องมีเอกสารอธิบายแก่ผู้ป้อนข้อมูล
– แบ่งเป็น
- single column : คอลัมน์เดี่ยว เช่นแผนก
- 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
– การเชคความซ้ำซ้อน
– มีสองอย่าง
- Exact string matches : เชคทุกตัวอักษรเหมือนกันหมด
- 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 ธรรมดาต้องเอาข้อมูลหลายฟิลด์มาเปรียบเทียบกัน
– ทำยังไงให้ประหยัดเวลามากสุดโดย
- ทำให้ข้อมูลอยู่ในรูปแบบที่ถูกต้อง
- ทำการแยกข้อมูล
- เข้า matching algo
- เมื่อ match แล้วอะไรที่ตรงกันก็ต้องมาดูว่าอะไรที่ตรงกัน เรียกว่า match-merge ต้องทำการ merge ข้อมูล
– โดยทั่วไปจะยากที่ทำเป็นอัตโนมัติทั้งหมด ส่วนใหญ่ต้องให้คนเข้าไปดูในขั้นตอนสุดท้าย
– นิยาม
- Match : ข้อมูลแทนตัวตนของลูกค้า
- nonmatch : ข้อมูลไม่ตรงกัน
– Representation of the Real World throughBusiness Rules and Tool Usage
- true match : ข้อมูลตรงตามกฏเกณฑ์
- Non-match : ข้อมูลไม่ตรงตามกฏ
- False negative : ไม่สามารถ match กันได้
- False positive : ข้อมูลไม่ใช่คนเดียวกัน แต่บอกว่าเป็นคนเดียวกัน
- Level to test for uniqueness
– record level : การที่มีเรคอร์ดซ้ำ ถ้าเป็นบริษัทอาจจะดูที่ตั้ง, ถ้าดูตัวคนก็ดูชื่อ+ข้อมูลอื่นๆประกอบที่เอามาตัดสินว่าเป็นคนเดียวกันไหม
– field level : การพิจารณาในแต่ละฟิลด์เช่น ID ก็ไม่ควรมีการซ้ำกันซึ่งรูปแบบการตรวจสอบก็มี data profiling tool เป็นการเช็คอย่างง่าย, data cleansing tool เช็คอย่างละเอียด
- Accuracy
– ความถูกต้องของข้อมูลที่เก็บในฐานข้อมูลจะต้องตรงกับข้อมูลที่เป็นจริง
– ไม่มีเกณฑ์มาตรวจสอบ ต้องตรวจกับลูกค้าโดยตรง
– ส่วนใหญจะทำ manual เองเลย
– การตรวจสอบ
- survey : การสอบถามเช่นโทรศัพท์หรืออีเมล
- inspection : ต้องลงไปดูด้วยตัวเอง
- Accuracy vs Validity
– Accuracy : ลูกค้าชื่อนี้จริงไหม
– Valid : pattern ถูกต้องไหม
- Assessing data accuracy
– การระบุตัวตน
- เชคจากแหล่งอื่น เช่น เชคบริษทที่จดทะเบียนที่กระทรวงพาณิชย์
- ดูว่ามีแหล่งข้อมูลให้ตรวจสอบรึเปล่า เช่นถนนนี้อยู่ในเขตนี้หรือไม่ แต่ไม่มีฐานข้อมูลของถนนเลย
- Expense of determining accuracy
– ค่าใช้จ่ายในการตรวจสอบความถูกต้อง มีค่าใช้จ่ายสูงมาก
– ข้อมูลเปลี่ยนอยู่ตลอดเวลา ต้องมีการอัพเดตฐานข้อมูลอยู่เสมอ
- Accuracy Assessing Method
วิธีการ
- Telephone survey : แพง แต่ว่ามีโอกาสสูในการได้รับข้อมูล
- Mailed survey : แพงน้อยกว่า แต่อาจจะไม่ค่อยได้รับการตอบกลับ
- Physical inspection
- Manual comparison
- Decide which method of assessment to use
สิ่งที่ต้องพิจารณาประกอบ
- วัฒนธรรม : วิธีที่ใช้ได้รับการยอมรับไหม
- การตอบสนอง : ต้องดูว่าวิธีไหนลูกค้าตอบสนอง เช่นลูกค้าไ่ม่ว่าง
- ตารางเวลา : ใช้เมลช้า มีการตอบสนองต่ำ
- เงื่อนไข : กฏหมาย เช่น ตรวจสอบรหัสประชาชน
- ค่าใช้จ่าย : ต้องใช้วิธีที่เหมาะกับค่าใช้จ่าย
- Determine the sampling method
– การสุ่มตัวอย่าง เ็ป็นเทคนิคในการเลือกตัวอย่างของข้อมูลมาทำการทดสอบ
– สิ่งที่ต้องพิจารณา
- จำนวนของตัวอย่าง
- ถ้าเกิดสุ่มตัวอย่างมาต่างกันจะได้ผลเหมือนกัีนหรือไม่
– การสุ่มตัวอย่างแบบ 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