데이터베이스에 대한 품질 보증 및 품질 관리 (QA / QC) 지침


18

배경

나는 기본 문헌에서 데이터베이스 로의 데이터 입력을 감독하고있다 . 데이터 입력 프로세스는 특히 사용자가 실험 설계를 해석하고 그래픽 및 테이블에서 데이터를 추출하고 결과를 표준화 된 단위로 변환해야하기 때문에 오류가 발생하기 쉽습니다.

데이터는 웹 인터페이스를 통해 MySQL 데이터베이스에 입력됩니다. 지금까지 20 개가 넘는 변수, 100 개가 넘는 종 및 500 개가 넘는 인용에서 10k 개 이상의 데이터 포인트가 포함되었습니다. 변수 데이터뿐만 아니라 각 데이터 포인트와 관련된 종, 연구 위치 등과 같은 룩업 테이블에 포함 된 데이터의 품질 검사를 실행해야합니다.

데이터 입력이 진행 중이므로 QA / QC를 간헐적으로 실행해야합니다. 데이터는 아직 공개되지 않았지만 향후 몇 개월 내에 공개 할 계획입니다.

현재 QA / QC에는 3 단계가 있습니다.

  1. 두 번째 사용자는 각 데이터 포인트를 확인합니다.
  2. 각 변수에 대해 히스토그램을 시각적으로 검사하여 이상 값을 찾습니다.
  3. 가짜 결과를 얻은 후 사용자는 의심스러운 데이터를보고합니다.

질문

  1. 이 데이터베이스에 대한 강력한 QA / QC 절차를 개발하는 데 사용할 수있는 지침이 있습니까?
  2. 첫 번째 단계는 가장 많은 시간이 소요됩니다. 이것을보다 효율적으로 만들기 위해 할 수있는 일이 있습니까?

1
여기 독자는 다음 스레드에 관심이있을 것입니다. 필수 데이터 검사 테스트 .
gung-Monica Monica 복원

답변:


25

이 답변은 두 번째 질문에 중점을 두지 만 그 과정에서 첫 번째 질문에 대한 부분적인 답변 (QA / QC 절차에 대한 지침)이 나타납니다.

지금까지 할 수있는 가장 좋은 방법은 입력을 시도 할 때 데이터 품질을 확인하는 것입니다. 사용자 점검 및 보고서는 노동 집약적이므로 가능한 한 프로세스 후반에 예약해야합니다.

다음은 광범위한 경험에서 비롯된 몇 가지 원칙, 지침 및 제안입니다 (여러 데이터베이스와 비교할 수 있고 훨씬 더 많은 데이터베이스의 설계 및 작성). 그것들은 규칙이 아닙니다. 당신은 성공하고 효율적으로 그들을 따를 필요가 없습니다; 그러나 그들은 모두 훌륭한 이유 때문에 여기 있습니다. 그리고 그것들에서 벗어나는 것에 대해 열심히 생각해야합니다.

  1. 모든 지적으로 요구하는 활동에서 별도의 데이터 입력 . 데이터 입력 운영자에게 무엇이든 확인하거나 계산하는 등의 작업을 동시에 수행하지 마십시오. 컴퓨터로 읽을 수있는 데이터 팩시밀리를 만드는 작업을 제한하십시오. 특히,이 원칙은 데이터 입력 양식이 데이터를 저장하려는 형식이 아니라 원래 데이터를 얻은 형식을 반영해야 함을 의미합니다. 나중에 한 형식을 다른 형식으로 변환하는 것은 비교적 쉽지만 데이터를 입력하는 동안 즉시 변환을 시도하는 것은 오류가 발생하기 쉬운 프로세스입니다.

  2. 데이터 감사 추적을 작성하십시오. 데이터 입력 단계에서 데이터에 대한 모든 작업이 완료 될 때마다이를 문서화하고 쉽게 돌아가서 문제점을 확인하는 방식으로 절차를 기록하십시오 (문제가 발생하기 때문). 타임 스탬프 필드, 데이터 입력 연산자 식별자, 원본 데이터 소스 식별자 (예 : 보고서 및 페이지 번호) 등을 입력하는 것이 좋습니다. 스토리지는 저렴하지만 오류를 추적하는 시간은 비쌉니다.

  3. 모든 것을 자동화하십시오 . 모든 단계가 (최악의 시간에 머피의 법칙에 따라) 다시 수행되어야하고 그에 따라 계획해야한다고 가정하십시오. 손으로 몇 가지 "간단한 단계"를 수행하여 시간을 절약하려고하지 마십시오.

  4. 특히 데이터 입력에 대한 지원을 만드십시오. 각 테이블에 대해 프런트 엔드를 작성하십시오 (스프레드 시트도 훌륭하게 수행 할 수 있음). 이는 데이터를 명확하고 간단하며 균일하게 가져올 수있는 방법을 제공합니다. 동시에 프론트 엔드는 "비즈니스를 강화해야합니다. rules : "즉, 가능한 많은 간단한 유효성 검사를 수행해야합니다. (예 : pH는 0과 14 사이 여야합니다. 카운트는 양수 여야합니다.) 이상적으로는 DBMS를 사용하여 관계 무결성 검사를 시행하십시오 (예 : 측정과 관련된 모든 종은 실제로 데이터베이스에 존재 함).

  5. 끊임없이 물건 을 세고 정확하게 일치 하는지 확인하십시오 . 예를 들어, 연구에서 10 종의 속성을 측정해야하는 경우 데이터 입력이 완료 되 자마자 10 종이 실제로보고되는지 확인하십시오. 카운트 검사는 간단하고 정보가 없지만 중복되고 생략 된 데이터를 감지하는 데 탁월합니다.

  6. 데이터가 가치 있고 중요하다면 전체 데이터 세트를 독립적으로 두 번 입력하는 것을 고려하십시오 . 즉, 각 항목은 서로 다른 두 명의 비상 호작용 사용자가 별도의 시간에 입력합니다. 이것은 오타, 누락 된 데이터 등을 잡을 수있는 좋은 방법입니다. 교차 점검은 완전히 자동화 될 수 있습니다. 이 방법은 더 빠르며 오류를 잡는 데 더 좋고 100 % 수동 이중 확인보다 효율적입니다. "데이터 입력"사람 "에는 OCR이있는 스캐너와 같은 장치가 포함될 수 있습니다.

  7. DBMS사용 하여 데이터를 저장하고 관리하십시오. 스프레드 시트는 데이터 입력을 지원하는 데 유용하지만 가능한 한 빨리 스프레드 시트 나 텍스트 파일에서 실제 데이터베이스로 데이터를 가져옵니다. 이를 통해 모든 종류의 교활한 오류를 방지하면서 자동 데이터 무결성 검사에 대한 많은 지원을 추가 할 수 있습니다. 데이터 저장 및 관리를 위해 통계 소프트웨어를 사용해야하지만 전용 DBMS 사용을 진지하게 고려하십시오. 더 나은 작업을 수행 할 것입니다.

  8. 모든 데이터를 입력하고 자동으로 확인한 후 그림을 그리십시오 . 정렬 된 테이블, 히스토그램, 산점도 등을 모두 확인하십시오. 본격적인 통계 패키지로 쉽게 자동화됩니다.

  9. 사람들에게 컴퓨터가 할 수있는 반복적 인 작업을하도록 요구하지 마십시오 . 이 컴퓨터는 훨씬 빠르고 안정적입니다. 작은 스크립트와 작은 프로그램을 작성하고 문서화하는 습관을 가지고 즉시 완료 할 수없는 작업을 수행하십시오. 이들은 감사 추적의 일부가되며 작업을 쉽게 다시 수행 할 수 있습니다. 편안하고 작업에 적합한 플랫폼을 사용하십시오. (수년 동안 사용 가능한 항목에 따라 다양한 플랫폼을 사용했으며 C 및 Fortran 프로그램에서 AWK 및 SED 스크립트, Excel 및 Word 용 VBA 스크립트 및 사용자 정의를 통해 모든 방식으로 효과적이었습니다. 관계형 데이터베이스 시스템, GIS 및 R 및 Stata와 같은 통계 분석 플랫폼 용으로 작성된 프로그램)

이러한 지침을 대부분 따르면 데이터를 데이터베이스로 가져 오는 작업의 약 50 % -80 %가 데이터베이스 디자인 및 지원 스크립트 작성이됩니다. 이러한 프로젝트를 통해 90 %를 달성하고 50 % 미만의 완성도를 유지하면서도 정시에 완료되는 것은 드문 일이 아닙니다. 모든 것이 설정되고 테스트되면 데이터 입력 및 검사가 놀랍도록 효율적일 수 있습니다.


4
글쎄, 나는이 답변에 거의 사랑에 빠져 있습니다. 다음 포인트 4에서 점검을 간단하게 유지해야한다는 점을 강조하고 싶습니다. 실제 데이터에는 입력 담당자가 입력해야하지만 예측할 수없는 불일치가 거의 없음을 강조하고 싶습니다. 예를 들어, 날짜를 날짜로 입력했는지 확인합니다. 그러나 날짜 범위에 대한 엄격한 규칙을 중단하고 대신 보고서로 확인하고 데이터 입력을 한 사람과 범위를 벗어난 값을 추적합니다.
매트 파커

5
누군가가 옳다고 생각하는 값을 입력하지 못하게하면이를 감지하고 조사하는 것보다 더 많은 오류가 발생할 수 있습니다.
매트 파커

+1, 좋은 답변입니다. 나는 Matt에 동의합니다.
저도이

1
@ 매트 좋은 점, 둘 다. 완전히 동의 해. 첫 번째 방법과 관련하여 좋은 접근 방식은 데이터의 작은 대표적인 하위 집합에서 데이터 입력 절차를 테스트하고 발생하는 모든 문제를 철저히 조사하는 것입니다. 이 방법은 발생할 수있는 모든 문제를 다루지는 않지만 초기에 가장 중요한 문제를 식별하여 효과적으로 처리 할 수 ​​있습니다.
whuber

2
이 정보를 추가하면 한 곳에서 유용합니다. 1. 메타 데이터가 포함 된 비즈니스 규칙 문서를 작성하십시오. 연령과 같은 파생 변수를 생성하는 데 사용되는 규칙을 포함합니다. 2. 특히 관리 데이터베이스 인 경우 시간이지나면서 변수가 변경된다고 가정합니다 (예 : 새 코드 추가). 메타 데이터에서 변경이 발생한시기와 이것이 시계열 작업에 미치는 영향을 설명하십시오. 3. 데이터베이스가 시간이 지남에 추가되면 날짜 및 시간 소인이 데이터베이스로 변경됩니다.
Michelle

3

DataOne 은 태그별로 필터링 할 수있는 유용한 데이터 관리 모범 사례를 제공합니다. http://www.dataone.org/best-practices/quality에 있는 "quality"태그가 붙은 모범 사례 는 @whuber의 여러 가지 요점을 되풀이하고 확장합니다. 다음은 다루는 주제 목록 (알파벳순)입니다.

  • 데이터 품질 커뮤니케이션
  • 메타 데이터에서 데이터와 해당 설명이 일치하는지 확인
  • 통합하는 데이터의 호환성을 고려하십시오
  • 품질 보증 및 품질 관리 계획 개발
  • 입력 한 데이터를 다시 확인하십시오
  • 기본 품질 관리 보장
  • 데이터 백업시 무결성 및 접근성 보장
  • 특이 값 식별
  • 추정 된 값 식별
  • 사용 및 발견을위한 버전 정보 제공
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.