Bir veritabanı için kalite güvencesi ve kalite kontrol (KG / KK) yönergeleri


18

Arka fon

Birincil literatürden bir veri tabanına veri girişini denetliyorum . Veri girişi süreci hataya açıktır, özellikle kullanıcılar deneysel tasarımı yorumlamalı, grafik ve tablolardan veri çıkarmalı ve sonuçları standartlaştırılmış birimlere dönüştürmelidir.

Veriler MySQL veritabanına bir web arayüzü üzerinden girilir. Şimdiye kadar> 20 değişken,> 100 tür ve> 500 alıntıdan 10 binden fazla veri noktası dahil edilmiştir. Sadece değişken verilerin değil, aynı zamanda her bir veri noktasıyla ilişkili türler, çalışmanın yeri gibi arama tablolarında bulunan verilerin kalitesini kontrol etmem gerekiyor.

Veri girişi devam etmektedir, bu nedenle KG / KK'nin aralıklı olarak çalıştırılması gerekecektir. Veriler henüz kamuya açıklanmadı, ancak önümüzdeki birkaç ay içinde bunları yayınlamayı planlıyoruz.

Şu anda KG / KK'm üç adımdan oluşuyor:

  1. ikinci bir kullanıcı her veri noktasını kontrol eder.
  2. histogramdaki her değişkeni aykırı değerlerle görsel olarak inceleyin.
  3. sahte sonuçlar elde edildikten sonra kullanıcılar şüpheli verileri rapor eder.

Sorular

  1. Bu veritabanı için sağlam bir KG / KK prosedürü geliştirmek için kullanabileceğim yönergeler var mı?
  2. İlk adım en çok zaman alan; bunu daha verimli hale getirmek için yapabileceğim bir şey var mı?

1
Buradaki okuyucular da aşağıdaki konu ile ilgilenecektir: Temel veri kontrol testleri .
gung - Monica'yı eski haline getirin

Yanıtlar:


25

Bu yanıt ikinci soruya odaklanır, ancak süreçte ilk soruya kısmi bir cevap (KG / KK prosedürü) ortaya çıkacaktır.

Şimdiye kadar yapabileceğiniz en iyi şey, giriş denendiğinde veri kalitesini kontrol etmektir. Kullanıcı kontrolleri ve raporları emek-yoğundur ve bu nedenle, mümkün olduğu kadar geç süreçte ayrılmalıdır.

Aşağıda, kapsamlı deneyimlerden türetilen bazı ilkeler, yönergeler ve öneriler bulunmaktadır (sizinkine benzeyen ve sizinkinden çok daha büyük birçok veritabanının tasarımı ve oluşturulması). Bunlar kural değildir; başarılı ve verimli olabilmek için onları takip etmek zorunda değilsiniz; ama hepsi mükemmel nedenlerle buradalar ve onlardan sapma konusunda çok düşünmelisiniz.

  1. Entelektüel olarak talepkar faaliyetlerden veri girişini ayırın . Veri girişi operatörlerinden eşzamanlı olarak herhangi bir şeyi kontrol etmelerini, herhangi bir şeyi saymalarını vb. İstemeyin. Çalışmalarını, verilerin bilgisayar tarafından okunabilir bir faksı oluşturmakla sınırlandırın, başka bir şey yapmayın. Özellikle, bu ilke veri giriş formlarının, verileri depolamayı planladığınız formatı değil, orijinal olarak veriyi aldığınız formatı yansıtması gerektiği anlamına gelir. Bir biçimi daha sonra başka bir biçime dönüştürmek nispeten kolaydır, ancak veri girerken dönüşümü anında denemek hataya açık bir süreçtir.

  2. Bir veri denetim izi oluşturun : veri giriş aşamasından başlayarak, verilere her ne zaman bir şey yapılırsa, bunu belgeleyin ve prosedürü geri dönüp neyin yanlış gittiğini kontrol etmeyi kolaylaştıracak şekilde kaydedin (işler ters gidecektir). Zaman damgaları, veri giriş operatörleri tanımlayıcıları, orijinal veriler için kaynak tanımlayıcıları (raporlar ve sayfa numaraları gibi) vb. Alanları doldurmayı düşünün. Depolama alanı ucuzdur, ancak bir hatayı izleme süresi pahalıdır.

  3. Her şeyi otomatikleştirin . Herhangi bir adımın (Murphy'nin Yasasına göre mümkün olan en kötü zamanda) yeniden yapılması gerektiğini varsayalım ve buna göre plan yapın. Elle birkaç "basit adım" uygulayarak zaman kazanmaya çalışmayın.

  4. Özellikle, veri girişi için destek oluşturun : veri almak için net, basit ve tekdüze bir yol sağlayan her tablo için bir ön uç (hatta bir elektronik tablo güzelce yapabilir). Aynı zamanda ön uç "işinizi "Yani, olabildiğince çok basit geçerlilik denetimi yapmalıdır. (Ör., PH, 0 ile 14 arasında olmalıdır; sayımlar pozitif olmalıdır.) İdeal olarak, ilişkisel bütünlük kontrollerini uygulamak için bir DBMS kullanın (örneğin, bir ölçümle ilişkili her tür veritabanında gerçekten var).

  5. Sürekli olarak şeyleri sayın ve sayıların tamamen aynı olduğunu kontrol edin . Örneğin, bir çalışmanın 10 türün niteliklerini ölçmesi gerekiyorsa, 10 türün gerçekten rapor edildiğinden (veri girişi tamamlanır tamamlanmaz) emin olun. Sayımları kontrol etmek basit ve bilgilendirici olmasa da, yinelenen ve atlanan verilerin algılanmasında mükemmeldir.

  6. Veriler değerli ve önemliyse, tüm veri kümesini bağımsız olarak iki kez girmeyi düşünün . Bu, her bir öğenin etkileşimde bulunmayan iki farklı kişi tarafından ayrı zamanlarda girileceği anlamına gelir. Bu, yazım hatalarını, eksik verileri vb. Yakalamak için harika bir yoldur. Çapraz kontrol tamamen otomatik hale getirilebilir. Bu, hataları yakalamada daha hızlı, daha iyi ve% 100 manuel çift kontrolden daha verimlidir. ("Kişiler" veri girişi, OCR'li tarayıcılar gibi cihazları içerebilir.)

  7. DBMS kullanmaVerileri depolamak ve yönetmek için . E-tablolar veri girişini desteklemek için mükemmeldir, ancak verilerinizi e-tablolardan veya metin dosyalarından ve mümkün olan en kısa sürede gerçek bir veritabanına alın. Bu, otomatik veri bütünlüğü kontrolleri için çok sayıda destek eklerken her türlü sinsi hatayı önler. Gerekirse, veri depolama ve yönetimi için istatistiksel yazılımınızı kullanın, ancak özel olarak ayrılmış bir DBMS kullanmayı düşünün: daha iyi bir iş çıkarır.

  8. Tüm veriler girilip otomatik olarak kontrol edildikten sonra resimler çizin : sıralanmış tablolar, histogramlar, dağılım grafikleri vb. Yapın ve hepsine bakın. Bunlar, tam teşekküllü istatistik paketleriyle kolayca otomatikleştirilir.

  9. İnsanlardan bilgisayarın yapabileceği tekrarlayan görevleri yapmalarını istemeyin . Bilgisayar bunlarda çok daha hızlı ve daha güvenilirdir. Hemen tamamlanamayan herhangi bir görevi yapmak için küçük komut dosyaları ve küçük programlar yazma (ve belgeleme) alışkanlığı edinin. Bunlar denetim takibinizin bir parçası olacak ve işin kolayca yeniden yapılmasını sağlayacaktır. Konforlu olduğunuz ve göreve uygun olan platformu kullanın. (Yıllar boyunca, neyin mevcut olduğuna bağlı olarak, bu tür platformları geniş bir yelpazede kullandım ve hepsi CK ve Fortran programlarından AWK ve SED komut dosyalarına, Excel ve Word için VBA komut dosyalarına ve özel ilişkisel veritabanı sistemleri, CBS ve R ve Stata gibi istatistiksel analiz platformları için yazılmış programlar.)

Bu yönergelerin çoğunu izlerseniz, veritabanına veri alma çalışmalarının yaklaşık% 50-80'i veritabanı tasarımı ve destekleyici komut dosyaları yazma olacaktır. Böyle bir projede% 90 elde etmek ve% 50'den az tamamlamak, ancak yine de zamanında bitirmek olağandışı değildir: her şey kurulduktan ve test edildikten sonra, veri girişi ve kontrolü inanılmaz derecede verimli olabilir.


4
Bu cevaba çok aşığım. Vurgulamak isterim ki, aşağıdaki 4. adımda, kontrolleri basit tutmalısınız - giriş verilerinizin girebilmesi gereken, ancak öngöremeyeceğiniz gerçek verilerde genellikle çok az tutarsızlık vardır. Örneğin, tarihlerin tarih olarak girildiğinden emin olurum; ancak tarih aralıklarıyla ilgili zor kurallara sahip olmayı bıraktım ve bunun yerine raporlarla kontrol ettim ve veri girişini kimin yaptığını sınır dışı değerler takip ettim.
Matt Parker

5
Birisinin doğru olduğuna inandığı bir değeri girmesini engellemek, onu tespit etmek ve araştırmaktan daha fazla hata verebilir.
Matt Parker

+1, harika cevap. Kabul ediyorum Matt, ben de bu cevabı çok seviyorum :)
mpiktas

1
@Matt İyi ikisi de ikisi. Tamamen katılıyorum. Birincisi ile ilgili olarak, iyi bir yaklaşım, verilerin küçük bir temsili alt kümesinde veri giriş prosedürlerini test etmek ve ortaya çıkan tüm sorunları iyice gözden geçirmektir. Bu, ortaya çıkabilecek her şeyi ele almaz, ancak en önemli sorunları erkenden tespit eder ve onlarla etkili bir şekilde başa çıkmanızı sağlar.
whuber

2
Bu bilgi olarak eklemek tek bir yerde kullanışlıdır. 1. Meta verileri içeren bir iş kuralları belgesi oluşturun. yaş gibi türetilmiş değişkenleri üretmek için kullanılan kuralları içerir. 2. Bu özellikle bir yönetimsel veritabanı ise, değişkenlerin zaman içinde değişeceğini varsayalım, örneğin yeni kodlar eklenir. Meta verilerde, değişikliğin ne zaman gerçekleştiğini ve bunun herhangi bir zaman serisi çalışmasını nasıl etkileyebileceğini açıklayın. 3. Veritabanı zaman içinde eklenecekse, tarih ve zaman damgası veritabanında değişir.
Michelle

3

DataOne , etikete göre filtrelenebilecek yararlı bir veri yönetimi en iyi uygulamaları seti sunar. "Kalite" ile etiketlenen en iyi uygulamalar, http://www.dataone.org/best-practices/quality adresinde bulundu ve @whuber tarafından yapılan birçok noktayı tekrarladı ve genişletti. Burada ele alınan konuların bir listesi (alfabetik sırayla):

  • Veri kalitesini iletme
  • Meta verilerdeki veriler ve açıklamaları arasındaki eşleşmeyi onaylayın
  • Entegre ettiğiniz verilerin uyumluluğunu düşünün
  • Kalite güvencesi ve kalite kontrol planı geliştirmek
  • Girdiğiniz verileri iki kez kontrol edin
  • Temel kalite kontrolünü sağlamak
  • Veri yedeklemesi yaparken bütünlüğü ve erişilebilirliği sağlayın
  • Aykırı değerleri belirleme
  • Tahmini değerleri tanımlayın
  • Kullanım ve keşif için sürüm bilgisi sağlama
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.