แนวทางการประกันคุณภาพและการควบคุมคุณภาพ (QA / QC) สำหรับฐานข้อมูล


18

พื้นหลัง

ฉันกำลังดูแลการป้อนข้อมูลจากวรรณกรรมหลักลงในฐานข้อมูล กระบวนการป้อนข้อมูลนั้นเกิดข้อผิดพลาดได้ง่ายโดยเฉพาะอย่างยิ่งเนื่องจากผู้ใช้ต้องตีความการออกแบบการทดลองดึงข้อมูลจากกราฟิกและตารางและแปลงผลลัพธ์เป็นหน่วยมาตรฐาน

ข้อมูลจะถูกป้อนเข้าสู่ฐานข้อมูล MySQL ผ่านเว็บอินเตอร์เฟส จุดข้อมูลมากกว่า 10k จากตัวแปร> 20 ชนิด> 100 สปีชีส์และ> 500 การอ้างอิงได้ถูกรวมไว้แล้ว ฉันต้องการเรียกใช้การตรวจสอบคุณภาพของข้อมูลตัวแปรไม่เพียง แต่รวมถึงข้อมูลที่มีอยู่ในตารางการค้นหาเช่นสปีชีส์ที่เกี่ยวข้องกับแต่ละจุดข้อมูลสถานที่ตั้งของการศึกษา ฯลฯ

การป้อนข้อมูลยังดำเนินอยู่ดังนั้น QA / QC จะต้องทำงานเป็นระยะ ๆ ข้อมูลยังไม่ได้เผยแพร่สู่สาธารณะ แต่เราวางแผนที่จะเผยแพร่ในอีกไม่กี่เดือนข้างหน้า

ปัจจุบัน QA / QC ของฉันมีสามขั้นตอน:

  1. ผู้ใช้ที่สองตรวจสอบแต่ละจุดข้อมูล
  2. ตรวจสอบฮิสโตแกรมที่มองเห็นด้วยตาแต่ละตัวแปรสำหรับค่าผิดปกติ
  3. ผู้ใช้รายงานข้อมูลที่น่าสงสัยหลังจากได้รับผลลัพธ์ปลอม

คำถาม

  1. มีแนวทางที่ฉันสามารถใช้สำหรับการพัฒนากระบวนการ QA / QC ที่มีประสิทธิภาพสำหรับฐานข้อมูลนี้หรือไม่?
  2. ขั้นตอนแรกใช้เวลานานที่สุด มีสิ่งใดบ้างที่ฉันสามารถทำได้เพื่อให้มีประสิทธิภาพมากขึ้น

1
ผู้อ่านที่นี่ก็จะได้รับความสนใจในหัวข้อต่อไปนี้: ข้อมูลที่สำคัญในการตรวจสอบการทดสอบ
gung - Reinstate Monica

คำตอบ:


25

การตอบสนองนี้มุ่งเน้นไปที่คำถามที่สอง แต่ในกระบวนการจะมีคำตอบบางส่วนสำหรับคำถามแรก (แนวทางสำหรับกระบวนการ QA / QC) จะปรากฏขึ้น

สิ่งที่ดีที่สุดที่คุณสามารถทำได้คือการตรวจสอบคุณภาพของข้อมูลเมื่อมีการป้อนเวลา การตรวจสอบและรายงานของผู้ใช้นั้นต้องใช้แรงงานมากและควรสำรองไว้เพื่อใช้ในภายหลังในกระบวนการดึกเท่าที่จะทำได้

นี่คือหลักการแนวทางและข้อเสนอแนะบางส่วนมาจากประสบการณ์ที่กว้างขวาง (ด้วยการออกแบบและการสร้างฐานข้อมูลจำนวนมากที่สามารถเทียบเคียงได้และมีขนาดใหญ่กว่าของคุณ) พวกเขาไม่ใช่กฎ คุณไม่จำเป็นต้องติดตามพวกเขาให้ประสบความสำเร็จและมีประสิทธิภาพ แต่พวกเขาทั้งหมดอยู่ที่นี่ด้วยเหตุผลที่ยอดเยี่ยมและคุณควรคิดอย่างหนักเกี่ยวกับการเบี่ยงเบนจากพวกเขา

  1. การป้อนข้อมูลที่แยกต่างหากจากทั่วทุกกิจกรรมทางสติปัญญาเรียกร้อง อย่าถามผู้ดำเนินการป้อนข้อมูลพร้อมกันเพื่อตรวจสอบอะไรนับอะไร ฯลฯ จำกัด งานของพวกเขาในการสร้างโทรสารของข้อมูลที่อ่านได้โดยคอมพิวเตอร์ไม่มีอะไรเพิ่มเติม โดยเฉพาะอย่างยิ่งหลักการนี้แสดงถึงแบบฟอร์มการป้อนข้อมูลควรสะท้อนถึงรูปแบบที่คุณได้รับข้อมูลมาก่อนไม่ใช่รูปแบบที่คุณวางแผนจะจัดเก็บข้อมูล มันค่อนข้างง่ายในการแปลงรูปแบบหนึ่งไปเป็นรูปแบบอื่นในภายหลัง แต่เป็นกระบวนการที่เกิดข้อผิดพลาดได้ง่ายในการพยายามเปลี่ยนรูปแบบทันทีขณะป้อนข้อมูล

  2. สร้างหลักฐานการตรวจสอบข้อมูล : เมื่อใดก็ตามที่มีการทำข้อมูลเริ่มต้นที่ขั้นตอนการป้อนข้อมูลบันทึกสิ่งนี้และบันทึกขั้นตอนในวิธีที่ทำให้ง่ายต่อการย้อนกลับและตรวจสอบสิ่งที่ผิดพลาด (เพราะสิ่งต่าง ๆ จะผิดพลาด) พิจารณาการกรอกฟิลด์สำหรับการประทับเวลาตัวระบุของตัวดำเนินการป้อนข้อมูลตัวระบุแหล่งที่มาสำหรับข้อมูลดั้งเดิม (เช่นรายงานและหมายเลขหน้า) การจัดเก็บราคาถูก แต่เวลาในการติดตามข้อผิดพลาดมีราคาแพง

  3. ทำให้ทุกอย่างเป็นอัตโนมัติ สมมติว่าขั้นตอนใด ๆ จะต้องทำซ้ำ (ในเวลาที่เลวร้ายที่สุดที่เป็นไปได้ตามกฎของเมอร์ฟี) และวางแผนตามนั้น อย่าพยายามประหยัดเวลาด้วยการทำ "ขั้นตอนง่ายๆ" ด้วยมือ

  4. โดยเฉพาะอย่างยิ่งสร้างการสนับสนุนสำหรับการป้อนข้อมูล : สร้างส่วนหน้าสำหรับแต่ละตาราง (แม้แต่สเปรดชีตก็สามารถทำได้อย่างดี) ซึ่งให้วิธีที่ชัดเจนง่ายและสม่ำเสมอในการรับข้อมูลในเวลาเดียวกันส่วนหน้าควรบังคับใช้ "ธุรกิจของคุณ กฎ: "นั่นคือมันควรทำการตรวจสอบความถูกต้องง่าย ๆ ให้มากที่สุดเท่าที่จะทำได้ (เช่นค่า pH ต้องอยู่ระหว่าง 0 ถึง 14; จำนวนจะต้องเป็นค่าบวก) โดยหลักการแล้วใช้ DBMS เพื่อบังคับใช้การตรวจสอบความสมบูรณ์เชิงสัมพันธ์ (เช่นทุกสปีชีส์ที่เกี่ยวข้องกับการวัดมีอยู่จริงในฐานข้อมูล)

  5. อย่างต่อเนื่องนับสิ่งและตรวจสอบว่านับว่าเห็นด้วย ตัวอย่างเช่นหากการศึกษาควรจะวัดคุณลักษณะของ 10 สปีชีส์ตรวจสอบให้แน่ใจ (ทันทีที่การป้อนข้อมูลเสร็จสมบูรณ์) ที่ 10 สปีชีส์ได้รับการรายงานจริงๆ แม้ว่าการตรวจนับมีความเรียบง่ายและไม่เป็นทางการ แต่ก็ดีในการตรวจจับข้อมูลซ้ำซ้อนและละเว้น

  6. หากข้อมูลที่มีคุณค่าและมีความสำคัญพิจารณาอิสระดับเบิลเข้าชุดทั้ง ซึ่งหมายความว่าแต่ละรายการจะถูกป้อนในเวลาที่แยกกันโดยบุคคลที่ไม่ได้รับการโต้ตอบสองคน นี่เป็นวิธีที่ดีในการตรวจจับความผิดพลาดข้อมูลที่ขาดหายไปและอื่น ๆ การตรวจสอบข้ามสามารถดำเนินการอัตโนมัติได้อย่างสมบูรณ์ สิ่งนี้เร็วกว่าดีกว่าในการตรวจจับข้อผิดพลาดและมีประสิทธิภาพมากกว่าการตรวจสอบด้วยตนเอง 100% (การป้อนข้อมูล "คน" สามารถรวมอุปกรณ์เช่นสแกนเนอร์ที่มี OCR)

  7. ใช้ DBMSเพื่อจัดเก็บและจัดการข้อมูล สเปรดชีตเหมาะสำหรับการรองรับการป้อนข้อมูล แต่นำข้อมูลของคุณออกจากสเปรดชีตหรือไฟล์ข้อความและลงในฐานข้อมูลจริงโดยเร็วที่สุด สิ่งนี้จะป้องกันข้อผิดพลาดที่ร้ายกาจทุกประเภทในขณะที่เพิ่มการสนับสนุนจำนวนมากสำหรับการตรวจสอบความสมบูรณ์ของข้อมูลโดยอัตโนมัติ หากคุณต้องใช้ซอฟต์แวร์ทางสถิติของคุณสำหรับการจัดเก็บและการจัดการข้อมูล แต่พิจารณาอย่างจริงจังโดยใช้ DBMS เฉพาะ: มันจะทำงานได้ดีขึ้น

  8. หลังจากป้อนข้อมูลทั้งหมดและตรวจสอบโดยอัตโนมัติแล้วให้วาดภาพ : สร้างตารางที่เรียงลำดับฮิสโตแกรมการกระจายของภาพ ฯลฯ และดูทั้งหมด สิ่งเหล่านี้เป็นไปโดยอัตโนมัติอย่างง่ายดายด้วยแพ็คเกจสถิติเต็มรูปแบบ

  9. ไม่ต้องถามคนที่จะทำซ้ำงานว่าคอมพิวเตอร์ที่สามารถทำ คอมพิวเตอร์เร็วกว่าและไว้ใจได้มากกว่าในสิ่งเหล่านี้ สร้างนิสัยการเขียน (และการจัดทำเอกสาร) สคริปต์เล็ก ๆ และโปรแกรมขนาดเล็กเพื่อทำงานใด ๆ ที่ไม่สามารถดำเนินการได้ทันที สิ่งเหล่านี้จะกลายเป็นส่วนหนึ่งของหลักฐานการตรวจสอบของคุณและพวกเขาจะช่วยให้การทำงานซ้ำได้อย่างง่ายดาย ใช้แพลตฟอร์มใดก็ได้ที่คุณพอใจและเหมาะกับงาน (หลายปีที่ผ่านมาขึ้นอยู่กับสิ่งที่มีอยู่) ฉันได้ใช้แพลตฟอร์มดังกล่าวอย่างกว้างขวางและทุกอย่างมีประสิทธิภาพในแบบของพวกเขาตั้งแต่โปรแกรม C และ Fortran ผ่านสคริปต์ AWK และ SED สคริปต์ VBA สำหรับ Excel และ Word และแบบกำหนดเอง โปรแกรมที่เขียนขึ้นสำหรับระบบฐานข้อมูลเชิงสัมพันธ์ GIS และแพลตฟอร์มการวิเคราะห์เชิงสถิติเช่น R และ Stata)

หากคุณปฏิบัติตามแนวทางเหล่านี้ส่วนใหญ่ประมาณ 50% -80% ของงานในการรับข้อมูลลงในฐานข้อมูลจะเป็นการออกแบบฐานข้อมูลและการเขียนสคริปต์สนับสนุน มันไม่ใช่เรื่องแปลกที่จะได้ 90% ผ่านโครงการดังกล่าวและเสร็จสมบูรณ์น้อยกว่า 50% แต่ก็ยังเสร็จตามกำหนดเวลา: เมื่อทุกอย่างถูกตั้งค่าและได้รับการทดสอบแล้วการป้อนข้อมูลและการตรวจสอบจะมีประสิทธิภาพอย่างน่าอัศจรรย์


4
ฉันรักคำตอบนี้มากทีเดียว ฉันต้องการเน้นย้ำว่าในจุดต่อไปนี้ 4 คุณควรทำให้การตรวจสอบง่าย - มักจะมีความไม่ลงรอยกันในข้อมูลจริงที่ผู้เข้าร่วมรายการของคุณควรสามารถป้อนได้ แต่คุณไม่สามารถคาดการณ์ล่วงหน้าได้ ตัวอย่างเช่นฉันตรวจสอบให้แน่ใจว่าวันที่ถูกป้อนเป็นวันที่; แต่ฉันได้หยุดกฎอย่างหนักเกี่ยวกับช่วงวันที่และแทนที่จะตรวจสอบด้วยรายงานและติดตามค่านอกขอบเขตกับใครก็ตามที่ป้อนข้อมูล
แมตต์ปาร์กเกอร์

5
การป้องกันไม่ให้ใครบางคนป้อนค่าที่พวกเขาเชื่อว่าถูกต้องสามารถแนะนำข้อผิดพลาดมากกว่าการตรวจจับและตรวจสอบมัน
Matt Parker

+1, คำตอบที่ดี ฉันเห็นด้วยกับแมตต์ฉันก็รักคำตอบนี้ด้วยเช่นกัน :)
mpiktas

1
@ Matt คะแนนดีทั้งคู่ ฉันเห็นด้วยอย่างยิ่ง สำหรับวิธีแรกวิธีที่ดีคือการทดสอบขั้นตอนการป้อนข้อมูลในชุดย่อยที่เป็นตัวแทนขนาดเล็กของข้อมูลและตรวจสอบปัญหาทั้งหมดที่เกิดขึ้นอย่างละเอียด สิ่งนี้จะไม่จัดการกับทุกสิ่งที่อาจเกิดขึ้นได้ แต่จะระบุปัญหาที่สำคัญที่สุดตั้งแต่เนิ่น ๆ และช่วยให้คุณจัดการกับปัญหาได้อย่างมีประสิทธิภาพ
whuber

2
การเพิ่มข้อมูลนี้มีประโยชน์ในที่เดียว 1. สร้างเอกสารกฎธุรกิจที่มีข้อมูลเมตา รวมถึงกฎที่ใช้ในการสร้างตัวแปรที่ได้รับเช่นอายุ 2. หากนี่เป็นฐานข้อมูลการดูแลระบบโดยเฉพาะให้สมมติว่าตัวแปรจะเปลี่ยนแปลงตลอดเวลาเช่นมีการเพิ่มรหัสใหม่ ในข้อมูลเมตาอธิบายว่าการเปลี่ยนแปลงเกิดขึ้นเมื่อใดและจะมีผลกระทบอย่างไรต่ออนุกรมเวลาใด ๆ 3. ถ้าฐานข้อมูลจะถูกเพิ่มลงในช่วงเวลาวันที่และเวลาจะเปลี่ยนเป็นฐานข้อมูล
มิเชล

3

DataOneมีชุดแนวทางการจัดการข้อมูลที่เป็นประโยชน์ซึ่งสามารถกรองด้วยแท็ก แนวทางปฏิบัติที่ดีที่สุดที่ติดแท็กด้วย "คุณภาพ" พบได้ที่http://www.dataone.org/best-practices/qualityย้ำและขยายความในหลาย ๆ ประเด็นที่ทำโดย @whuber นี่คือรายการหัวข้อที่กล่าวถึง (เรียงตามลำดับตัวอักษร):

  • สื่อสารข้อมูลคุณภาพ
  • ยืนยันการจับคู่ระหว่างข้อมูลและคำอธิบายในข้อมูลเมตา
  • พิจารณาความเข้ากันได้ของข้อมูลที่คุณกำลังรวมเข้าด้วยกัน
  • พัฒนาการประกันคุณภาพและแผนควบคุมคุณภาพ
  • ตรวจสอบข้อมูลที่คุณป้อนอีกครั้ง
  • มั่นใจในการควบคุมคุณภาพขั้นพื้นฐาน
  • มั่นใจในความสมบูรณ์และความสามารถในการเข้าถึงเมื่อทำการสำรองข้อมูล
  • ระบุค่าผิดปกติ
  • ระบุค่าที่ถูกประเมิน
  • ให้ข้อมูลรุ่นสำหรับการใช้งานและการค้นพบ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.