Настанови щодо забезпечення якості та контролю якості (QA / QC) для бази даних


18

Фон

Я контролюю введення даних з первинної літератури в базу даних . Процес введення даних схильний до помилок, особливо тому, що користувачі повинні інтерпретувати експериментальний дизайн, витягувати дані з графіки та таблиць та трансформувати результати в стандартизовані одиниці.

Дані вводяться в базу даних MySQL через веб-інтерфейс. Поки що було включено понад 10 тис. Точок даних із> 20 змінних,> 100 видів та> 500 цитат. Мені потрібно запустити перевірку якості не тільки змінних даних, а й даних, що містяться в таблицях пошуку, таких як види, пов’язані з кожною точкою даних, місцезнаходження дослідження тощо.

Введення даних триває, тому QA / QC потрібно буде працювати з перервами. Дані ще не оприлюднені, але ми плануємо оприлюднити їх у найближчі кілька місяців.

Наразі мій QA / QC включає три етапи:

  1. другий користувач перевіряє кожну точку даних.
  2. візуально огляньте гістограму кожної змінної на предмет залишків.
  3. користувачі повідомляють сумнівні дані після отримання помилкових результатів.

Запитання

  1. Чи є вказівки, які я можу використовувати для розробки надійної процедури контролю якості та контролю якості для цієї бази даних?
  2. Перший крок - найбільш трудомісткий; Чи можу я щось зробити, щоб зробити це більш ефективним?

1
Читачів тут також зацікавить наступний потік: Основні тести перевірки даних .
gung - Відновіть Моніку

Відповіді:


25

Ця відповідь зосереджена на другому питанні, але в процесі з'явиться часткова відповідь на перше питання (вказівки щодо процедури забезпечення якості та контролю якості).

На сьогодні найкраще, що ви можете зробити, це перевірити якість даних під час спроби введення. Користувацькі перевірки та звіти трудомісткі, тому їх слід зарезервувати для подальшого процесу, як тільки це можливо.

Ось декілька принципів, вказівок та пропозицій, що випливають із великого досвіду (із створенням та створенням багатьох баз даних, порівнянних та значно більших за ваші). Вони не правила; не потрібно дотримуватися їх, щоб бути успішними та ефективними; але всі вони знаходяться з відмінних причин, і вам слід подумати над тим, щоб від них відхилитися.

  1. Окремий введення даних від усіх інтелектуально вимагаючих заходів . Не вимагайте від операторів введення даних одночасно нічого перевіряти, рахувати що-небудь тощо. Обмежуйте свою роботу створенням факсимільного файлу даних, що читається на комп'ютері, більше нічого. Зокрема, цей принцип передбачає, що форми введення даних повинні відображати формат, у якому ви спочатку отримуєте дані, а не формат, у якому ви плануєте зберігати дані. Пізніше перетворити один формат в інший порівняно просто, але це схильний до помилок процес спроби перетворення під час руху під час введення даних.

  2. Створіть слід аудиту даних : щоразу, коли що-небудь зроблено з даними, починаючи з етапу введення даних, документуйте це та записуйте процедуру таким чином, щоб полегшити процес повернення назад і перевірити, що пішло не так (адже все піде не так). Розгляньте можливість заповнення полів часових відміток, ідентифікаторів операторів введення даних, ідентифікаторів джерел для вихідних даних (таких як звіти та їхні сторінки) тощо. Зберігання коштує дешево, але час для виявлення помилки дорогий.

  3. Автоматизуйте все. Припустимо, що будь-який крок доведеться переробляти (у найгірший можливий час, згідно із Законом Мерфі), і планувати його відповідно. Не намагайтеся зараз економити час, зробивши вручну кілька «простих кроків».

  4. Зокрема, створіть підтримку для введення даних : зробіть передню частину для кожної таблиці (навіть електронна таблиця може зробити непогано), яка забезпечує чіткий, простий, рівномірний спосіб отримання даних. У той же час передній кінець повинен примусити ваш "бізнес" правила: "тобто він повинен виконати стільки простих перевірок дійсності. (Наприклад, рН повинен бути від 0 до 14; підрахунки повинні бути позитивними.) В ідеалі використовуйте СУБД для здійснення перевірки реляційної цілісності (наприклад, кожен вид, пов'язаний з вимірюванням, дійсно існує в базі даних).

  5. Постійно рахуйте речі і переконайтеся, що підрахунки точно узгоджуються. Наприклад, якщо дослідження повинно вимірювати атрибути 10 видів, переконайтеся (як тільки введення даних завершиться), що 10 видів справді повідомляються. Хоча перевірка підрахунків проста та неінформативна, вона чудово виявляє дублювані та пропущені дані.

  6. Якщо дані цінні та важливі, розгляньте самостійне подвійне введення всього набору даних . Це означає, що кожен елемент буде введено в окремий час двома різними людьми, які не взаємодіють. Це чудовий спосіб ловити помилки на помилках, відсутні дані тощо. Перехресна перевірка може бути повністю автоматизована. Це швидше, краще вловлювати помилки та ефективніше, ніж 100% ручна подвійна перевірка. (Введення даних "люди" може включати такі пристрої, як сканери з OCR.)

  7. Використовуйте СУБД для зберігання та управління даними. Електронні таблиці чудово підходять для підтримки введення даних, але якнайшвидше дістаньте свої дані з електронних таблиць або текстових файлів і в реальну базу даних. Це запобігає всіляким підступним помилкам, додаючи багато підтримки для автоматичної перевірки цілісності даних. Якщо потрібно, використовуйте статистичне програмне забезпечення для зберігання та управління даними, але серйозно подумайте про використання спеціальної СУБД: це зробить кращу роботу.

  8. Після того, як всі дані будуть введені та автоматично перевірені, намалюйте фотографії : зробіть відсортовані таблиці, гістограми, розсіювачі тощо, і перегляньте їх усі. Вони легко автоматизуються з будь-яким повноцінним статистичним пакетом.

  9. Не просіть людей робити повторювані завдання, які може виконувати комп’ютер . Комп'ютер набагато швидше і надійніше. Увійдіть у звичку писати (і документувати) маленькі сценарії та невеликі програми, щоб виконувати будь-які завдання, які неможливо виконати негайно. Вони стануть частиною вашого аудиторського сліду, і вони дозволять легко переробляти роботу. Використовуйте будь-яку платформу, якою вам подобається, і яка підходить до цього завдання. (Протягом багатьох років, залежно від того, що було в наявності, я використовував широкий спектр таких платформ, і всі вони були ефективними на своєму шляху, починаючи від програм C і Fortran, через сценарії AWK і SED, сценарії VBA для Excel і Word та користувацькі програми, написані для реляційних систем баз даних, ГІС та платформ статистичного аналізу, таких як R і Stata.)

Якщо ви будете дотримуватися більшості цих рекомендацій, приблизно 50% -80% роботи над введенням даних у базу даних буде розробляти базу даних та писати допоміжні сценарії. Незвичайно отримати 90% за рахунок такого проекту та бути менш ніж 50% завершеним, але все-таки закінчити вчасно: як тільки все буде налаштовано та протестовано, введення даних та перевірка можуть бути надзвичайно ефективними.


4
Ну, я дуже закоханий у цю відповідь. Я хотів би підкреслити, що в наступному пункті 4 ви повинні зберігати перевірки простими - у справжніх даних часто є невеликі недоліки, до яких повинні бути введені ваші учасники, але які ви не зможете передбачити. Наприклад, я переконуюсь, що дати вводяться як дати; але у мене перестали існувати жорсткі правила щодо діапазонів дат, і замість цього перевіряйте це у звітах та виконайте подалі значення значень поза межами меж, у кого хто робив введення даних.
Метт Паркер

5
Запобігання введенню комусь значення, яке, на їхню думку, є правильним, може ввести більше помилок, ніж виявити та дослідити його.
Метт Паркер

+1, чудова відповідь. Я погоджуюся з Меттом, я теж люблю цю відповідь :)
mpiktas

1
@Matt Хороші бали, обидва. Я повністю згоден. Щодо першого - хорошим підходом є перевірка процедур введення даних на невеликому репрезентативному наборі даних та ретельно проаналізувати всі виникаючі проблеми. Це не стосується всього, що може виникнути, але воно визначає більшість основних питань на початку та дозволяє ефективно вирішувати їх.
whuber

2
Додавання, оскільки ця інформація корисна в одному місці. 1. Створіть документ із правил бізнесу, який містить метадані. включаючи правила, які використовуються для отримання похідних змінних, таких як вік. 2. Якщо це зокрема адміністративна база даних, припустімо, що змінні змінюватимуться з часом, наприклад, додаються нові коди. У метаданих поясніть, коли відбулася зміна, і як це може вплинути на будь-яку роботу часових рядів. 3. Якщо база даних буде додана до часу, дата та часова мітка змінити базу даних.
Мішель

3

DataOne пропонує корисний набір найкращих практик управління даними, які можна відфільтрувати за тегами. Найкращі практики, позначені як "якість", знайдені на веб- сайті http://www.dataone.org/best-practices/quality , повторюючи та розширюючи багато питань, викладених @whuber. Ось перелік розглянутих там тем (в алфавітному порядку):

  • Якість передачі даних
  • Підтвердьте відповідність між даними та їх описом у метаданих
  • Розглянемо сумісність даних, які ви інтегруєте
  • Розробити план забезпечення якості та контролю якості
  • Двічі перевірте введені вами дані
  • Забезпечити базовий контроль якості
  • Забезпечте цілісність та доступність під час створення резервних копій даних
  • Визначте інших людей
  • Визначте значення, які оцінюються
  • Надайте інформацію про версію для використання та виявлення
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.