Bir Tek Dize İçinden Kullanılabilir Adres
, Şehir
, Eyalet
ve Posta Kodu
Nasıl Ayrıştırılır
Access veritabanından SQL Server 2005’e veri taşırken, yaygın bir zorluk ortaya çıkar: tek bir adres alanını bireysel bileşenlerine ayrıştırmak. Örneğin, bir adres bir kullanıcıdan veya mevcut bir veritabanından karmaşık bir dize olarak alınabilir, şöyle:
A. P. Croll & Son 2299 Lewes-Georgetown Hwy, Georgetown, DE 19947
İşlenecek yaklaşık 4,000 kayıtla, görev bunaltıcı hale gelebilir. Bu blog yazısı, bir adres dizesini kullanılabilir parçalara ayırmanın pratik ve etkili yöntemlerini sunmaktadır: sokak adresi, şehir, eyalet ve posta kodu.
Problemi Anlamak
Zorluk
Ana zorluk, adres biçimlerinin öngörülemezliğinde yatmaktadır. Her biri aşağıdakileri içerebilir:
- Sokak adreslerinin sunumundaki değişiklikler (örneğin, alıcıların veya daire numaralarının dahil edilmesi)
- Eyaletler için kısaltmalar
- Olası yazım hataları ve biçimlendirme tutarsızlıkları
- Standart 5 haneli posta kodları veya genişletilmiş zip+4 kodları
Varsayımlar
Bir ayrıştırma çözümü oluştururken varsayıyoruz ki:
- Adresler ABD içinde.
- Bazı kayıtlar alıcı isimleri veya ikincil adres satırları (örneğin, “Daire B”) içerebilir.
- Çeşitli kısaltmalar ve olası yazım hataları vardır.
Adım Adım Ayrıştırma Stratejisi
1. Posta Koduyla Başlayın
Ayrıştırmaya adres dizesinin sonundan başlayın. Posta kodu genellikle dizenin sonunda yer alır ve genelde şu iki bilinen formatta görünür:
- XXXXX (5 haneli)
- XXXXX-XXXX (zip+4)
Eğer bu formatların hiçbiri yoksa, hala şehir veya eyalet bölümünde olmanız muhtemeldir.
2. Eyaleti Çıkarın
Posta kodunun hemen önünde eyalet yer alır. Bu ya:
- İki harfli bir kısaltma (örneğin, Delaware için DE)
- Daha az yaygın olarak tamamen yazılmış bir kelime olabilir
ABD eyalet kısaltmalarının referans listesini kullanmak sonuçları normalleştirmeye yardımcı olabilir. Yazım hatalarını azaltmak için eyalet isimleri üzerinde Soundex algoritması kullanarak yazım düzeltmesi yapabilirsiniz.
3. Şehri Tanımlayın
Genellikle şehir adı eyaletin hemen önünde yer alır. Ayrıştırma sırasında, çıkarılan posta kodunu posta kodu veritabanı ile karşılaştırarak geçerliliğini onaylayabilirsiniz. Bu, şehir-eyalet bağlantısını kontrol etmek için bir çift kontrol mekanizması görevi görür.
4. Sokak Adresini Belirleyin
Sokak adresi genellikle dizein başında bulunur. Eğer birden fazla satır varsa, ikinci satır genellikle bir daire numarası veya P.O. Box (posta kutusu) içerir. Bu bölümü, yaygın kalıpları tanıyarak parçalarına ayırın (örneğin, virgül gibi karakterler ve satır sonları).
5. Adres Satırı İsimlendirme
İsimler veya alıcıları tanımlamak zor olabilir. Uygulanabilecek potansiyel bir kural:
- Eğer bir satır bir numara ile başlamıyorsa veya “attn:” veya “attention to:” gibi terimlerle başlıyorsa, bunun adres yerine bir isim olma olasılığı yüksektir.
Son Adımlar ve Görsel Kontrol
Ayrıştırdıktan sonra sonuçları görsel olarak incelemek iyi bir fikirdir. Kaynak verilerden kaynaklanan hata ve biçimlendirme varyasyonları nedeniyle, manuel bir inceleme önemli tutarsızlıkların olmadığını garanti edebilir.
Sonuç
Tek bir dizeyi doğru adres bileşenlerine ayrıştırmanın zorlukları, tutarsızlıklar ve olası hatalar nedeniyle mevcut olsa da, yapılandırılmış bir yaklaşımı takip etmek süreci önemli ölçüde kolaylaştırabilir. Posta kodundan geriye çalışarak ve bilinen verilerle karşılaştırmalar yaparak, değerli adres bilgilerinin verimli bir şekilde çıkarılmasını sağlayabilirsiniz.
Bu yöntemleri uygulamak, SQL Server’daki kayıtlarınız için düzenli ve normalleştirilmiş bir tablo tutmanıza olanak sağlayacak, böylece gelecekteki veri işlemlerini çok daha kolay hale getirecektir. İyi ayrıştırmalar!