Deneyin!
Veritabanları ve web uygulamaları, işinizle ilgili önemli avantajlar sağlayabilir. Çalışan bilgilerini yönetme, veriler için haftalık raporlar sağlama veya müşteri siparişlerini takip etme gibi hedeflerinize ulaşmak için veritabanı tasarımı önemli bir aşamadır. Veritabanı tasarımını anlamak için zaman ayırmak, ilk andan itibaren doğru çalışan ve değişen ihtiyaçlara ayak uydurabilen veritabanları oluşturmanıza yardımcı olur.
Önemli: Access web uygulamaları, masaüstü veritabanlarından farklıdır. Bu makalede web uygulaması tasarımı ele alınmamıştır.
Kavramlar ve terimler
Bazı temel terimleri ve kavramları öğrenerek başlayalım. Kullanışlı veritabanları tasarlamak için, tek bir konuya odaklanan tablolar oluşturmanız gerekir. İlgili konu için gerekli olan tüm verileri tablolarınızda, mümkün olan en küçük veri birimini barındıran alanlar halinde tutarsınız.


İlişkisel veritabanları


Verilerin tablolara bölünen ve elektronik tablolargibi bir tür olan veritabanı. Her tablonun müşteriler (bir tablo) veya ürünler (başka bir tablo) gibi yalnızca bir konusu vardır.


Kayıtlar ve alanlar


Depolama verileri için veri kaynağı. Satırlar (veyakayıtlar ) her benzersiz veri noktasını, örneğin müşterinin adını depolar. Sütunlar (veya alanlar), her veri noktası hakkında yakalanan bilgileri mümkün olan en küçük birim olarak yalıtabilirsiniz; ad bir sütun ve soyadı da başka bir sütun olabilir.


Birincil anahtar


Her kaydın benzersiz olmasını sağlayan bir değerdir. Örneğin, adı Elif Yıldız olan iki müşteriniz olabilir. Ancak birinin kaydının birincil anahtarı 12 iken, diğerininki 58 olabilir.


Üst-alt ilişkileri


Tablolar arasında genel ilişkiler. Örneğin, tek bir müşterinin birden fazla siparişi olabilir. Ana tabloların birincil anahtarları vardır. Alt tabloların ise alt tablo kayıtlarının ana tabloya nasıl bağlı olduğunu gösteren, birincil anahtardan gelen değerlerden oluşan yabancı anahtarları vardır. Bu anahtarlar bir ilişki ile birbirlerine bağlıdır.
İyi veritabanı tasarımı nedir?
İyi veritabanı tasarımı için temel iki ilke şunlardır:
-
Yinelenen bilgilerden kaçının Gereksiz veriler olarak da bilinen bu tür bilgiler, alanı boşa harcar ve hata olasılığını artırır.
-
Verilerin doğruluğundan ve tam olduğundan emin olmak. Eksik veya hatalı bilgiler; sorgu ve raporlarda yer alabilir ve hatalı kararlar verilmesine neden olabilir.
Bu sorunları çözmek için:
-
Veritabanı bilgilerini konuya göre dar odaklı tablolara bölün. Bilgileri birden fazla tabloda çoğaltmaktan kaçının. (Örneğin, müşteri isimleri yalnızca bir tabloda bulunmalıdır.)
-
Verileri çoğaltmak yerine anahtarları kullanarak tabloları birleştirin.
-
Veritabanındaki bilgilerin doğruluğunu ve bütünlüğünü destekleyip sağlayan işlemleri ekleyin.
-
Veritabanınızı veri işleme ve raporlama gereksinimlerinize uygun olarak tasarlayın.
Veritabanlarınızın daha uzun bir süre boyunca kullanılmasını sağlamak için bu beş tasarım adımını uygulayın:
1. Adım: Veritabanınızın amacını belirleme
Başlamadan önce veritabanınız için bir hedef belirleyin.
Tasarımınızın odaklanmış olmasını sağlamak için veritabanının amacını özetleyin ve bu özete sık sık başvurun. Örneğin ev ofis biçimindeki işletmeniz için küçük bir veritabanı istiyorsanız, şöyle bir şey yazabilirsiniz: “Müşteri veritabanında posta ve rapor oluşturma amaçlı müşteri bilgileri listesi bulunuyor.” Kurumsal bir veritabanı için farklı rollere sahip kişilerin veritabanını ve veritabanındaki verileri ne zaman ve nasıl kullanacağını açıklayan birden fazla paragrafa ihtiyacınız olabilir. Tasarım işlemi sırasında başvurmak için net ve ayrıntılı bir hedef tanımı oluşturun.
2. Adım: Gerekli bilgileri bulma ve düzenleme
Kaydetmek istediğiniz ürün adı ve sipariş numaraları gibi tüm bilgi türlerini toplayın.
Mevcut bilgilerinizi ve izleme yöntemlerinizi kullanarak başlayın. Örneğin, şu anda satın alma siparişlerini bir deftere kaydediyor veya müşteri bilgilerini kağıt formlarda tutuyor olabilirsiniz. Bu kaynakları kullanarak şu anda topladığınız bilgileri listeleyin (örneğin formlarınızdaki bütün kutular). Şu anda toplamadığınız önemli bilgiler konusunda, hangi ayrık bilgilere ihtiyacınız olduğunu düşünün. Her veri türü veritabanınızda bir alan olur.
İlk listenizi mükemmel yapmak için endişelenmeyin; zamanla ince ayar da ekleyebilirsiniz. Ancak, bu bilgileri kullanan tüm kişilerin dikkate almak ve onların fikirlerini almak istiyorum.
Sonra, veritabanından ne istediğinizi, hangi tür rapor veya postalar üretmek istediğinizi düşünün. Ardından, bu amaçları karşılayan bilgileri topladığınızdan emin olun. Örneğin, bölgeye göre satışları gösteren bir rapor oluşturmak istiyorsanız, satış verilerini bölge düzeyinde toplamalısınız. Gerçek bilgiler kullanarak raporun görmek istediğiniz şekildeki bir taslağını oluşturmaya çalışın. Ardından, raporu oluşturmak için ihtiyacınız olan verileri listeleyin. Veritabanından istediğiniz posta veya diğer çıktılar için de aynı işlemi yapın.
Örnek
Müşterilere düzenli e-posta güncelleştirmelerini kabul etme (veya geri çevirme) izni verdiğinizi ve kabul eden kişilerin bir listesini yazdırmak istediğinizi varsayalım. Müşteri tablosunda Evet ve Hayır değerleri bulunan bir E-posta Gönder sütunu olması gerekir.
E-posta almak isteyenlerin e-posta adresine ihtiyacı vardır ve bu da bir alan gerektirir. Uygun bir selamlama eklemek için (Bay, Sayın veya Ms. gibi), Selamlama alanı dahil etmek. Müşterilere e-postalarda adlarıyla hitap etmek için bir Ad alanı ekleyin.
İpucu: Her bilgi parçasını, müşteri tablosu için ad ve soyadı gibi kullanışlı en küçük parçasına kesmeyi unutmayın. Genel olarak, bir bilgi öğesi (müşteri soyadı gibi) temel alarak sıralamak, aramak, hesaplamak veya rapor etmek için bu öğeyi kendi alanına koyabilirsiniz.
3. Adım: Bilgileri tablolara bölme
Bilgi öğelerinizi ürünler, müşteriler ve siparişler gibi ana varlıklara veya konulara ayırın. Her konu bir tablo olur.
Gerekli bilgilerin listesini oluşturduktan sonra verilerinizi düzenlemeniz gereken ana varlıkları (veya konuları) belirleyin. Varlıklar arasında verileri çoğaltmaktan kaçının. Örneğin, bir ürün satış veritabanının listesi başlangıçta şöyle görünebilir:
Ana varlıklar şunlardır: müşteriler, tedarikçiler, ürünler ve siparişler. Bu nedenle ilk önce bu dört tabloyla çalışmaya başlayın: müşterilerle ilgili bilgiler için bir tablo, tedarikçilerle ilgili bilgiler için bir tablo daha ve diğerleri. Bu tasarımınızın son hali olmayabilir, ancak iyi bir başlangıçtır.
Not: En iyi veritabanları birden fazla tablo içerir. Tüm bilgilerinizi tek bir tabloya koymaktan kaçının. Bu, yinelenen bilgilere, büyük veritabanı boyutlarına ve çok sayıda hataya yol açar. Her bilgiyi bir kez kaydedecek şekilde tasarlayın. Tedarikçi adresi gibi bir bilginin tekrarlandığını görürseniz, bu bilgiyi ayrı bir tabloya koymak için veritabanınızı yeniden yapılandırın.
Birden çok tablo kullanmanın az sayıda tablo kullanmaktan daha iyi olmasının nedenini anlamak için şu tabloyu inceleyin:
Her satırda hem ürün hem de tedarikçisi hakkında bilgi bulunuyor. Aynı tedarikçinin birçok ürünü olabileceğinden, tedarikçi ad ve adres bilgilerinin birkaç kez tekrarlanması gerekir. Bu işlem gereksiz yer kullanır. Bunun yerine, tedarikçi bilgisini ayrı bir Tedarikçiler tablosuna yalnızca bir kez kaydedin ve bu tabloyla Ürünler tablosu arasında bir bağlantı oluşturun.
Bu tasarımla ilgili diğer bir sorun ise tedarikçiyle ilgili bilgileri değiştirmeniz gerektiğinde ortaya çıkar. Bir tedarikçinin adresini değiştirmeniz gerektiğini varsayalım. Bu bilgi birçok yerde bulunduğundan, adresi bir yerde değiştirip diğer yerlerde değiştirmeyi unutabilirsiniz. Tedarikçinin adres bilgisini tek bir yerde kaydetmek bu sorunu çözer.
Son olarak, Coho Winery tarafından sağlanan tek bir ürün olduğunu ve ürünü silmek, ancak sağlayıcının ad ve adres bilgilerini korumak istediğinizi varsayalım. Bu tasarımla, sağlayıcı bilgilerini kaybetmeden ürün kaydını nasıl silersiniz? Silemezsiniz. Her kayıtta bir ürünle ilgili bilgilerle birlikte sağlayıcıyla ilgili bilgiler de olduğundan, diğer kaydı silmeden silmek imkansızdır. Bu bilgileri ayrı tutmak için, bu tabloyu ikiye bölün: ilk tablo ürün bilgileri için ve ikincisi de sağlayıcı bilgileri için. Daha sonra bir ürün kaydını silebilirsiniz; sağlayıcıyla ilgili bilgileri değil, yalnızca ürünle ilgili bilgileri silersiniz.
4. Adım: Bilgi öğelerini sütunlara dönüştürme
Her tabloda hangi bilgileri depolamanız gerektiğine karar verin. Bu ayrık veri parçaları, tabloda alanlar haline gelir. Örneğin, bir Çalışanlar tablosu Soyadı, Ad ve İşe Giriş Tarihi gibi alanlar içerebilir.
Veritabanı tablosu için bir konu seçildikten sonra, tablodaki sütunlar yalnızca o konu hakkında bilgi depolamalıdır. Örneğin, bir ürün tablosunda tedarikçi bilgileri değil, yalnızca ürün bilgileri bulunmalıdır.
Tabloda hangi bilgiyi izleyeceğinize karar vermek için önceden oluşturduğunuz listeyi kullanın. Örneğin, Müşteriler tablosunda şunlar bulunabilir: Ad, Soyadı, Adres, E-posta Gönder, Selamlama ve E-posta Adresi. Tablodaki her kayıt (müşteri) aynı sütun kümesine sahiptir, böylece her müşteri için aynı türden bilgiyi depolarsınız.
İlk listenizi oluşturun, sonra gözden geçirin ve geliştirin. Bilgileri mümkün olan en küçük alanlara kesmeyi unutmayın. Örneğin, ilk listenizin alanı Adres ise, bu alanı Sokak Adresi, Şehir, Eyalet ve Posta Kodu olarak ya da müşterileriniz küreselse daha da fazla alana ayrılın. Bu şekilde, örneğin postalamaları uygun biçimde veya eyalete göre siparişler üzerinde raporlaabilirsiniz.
Her tablodaki sütunları iyileştirdikten sonra, tabloların birincil anahtarlarını seçebilirsiniz.
5. Adım: Birincil anahtarları belirtme
Her tablonun birincil anahtarını seçin. Birincil anahtar, Ürün Kimliği veya Sipariş Kimliği gibi her kaydı benzersiz bir şekilde tanımlar. Belirgin ve benzersiz bir tanımlayıcınız yoksa, Access’in sizin yerinize bir anahtar oluşturmasını sağlayın.
Her tablodaki her satırı benzersiz bir şekilde tanımlamak için bir yol bulmalısınız. İki müşterinin de aynı ada sahip olduğu örneği hatırlıyor musunuz? Adları aynı olduğundan ikisini ayırt etmek için bir yol bulmanız gerekiyordu.
Bu yüzden her tablo, her satırı benzersiz bir şekilde tanımlayan sütun (veya sütunlar kümesi) içermelidir. Bu birincil anahtar olarak adlandırılır ve bu anahtar genellikle çalışan kimlik numarası veya seri numarası gibi benzersiz bir numaradır. Access, birincil anahtarları, birden çok tablodan aldığı verileri hızla ilişkilendirmek ve verileri sizin için bir araya getirmek için kullanır.
Bazen birincil anahtar iki veya daha çok alandan oluşur. Örneğin, siparişlerin satır öğelerini depo kullanan Sipariş Ayrıntıları tablosu birincil anahtarında şu iki sütunu kullanıyor olabilir: Sipariş Kimliği ve Ürün Kimliği. Birincil anahtar birden çok sütun olduğunda, buna bileşik anahtar da denir.
Tablodaki bilgiler için, kataloğunuzdaki her ürünü benzersiz bir şekilde tanımlayan ürün numarası gibi benzersiz bir tanımlayıcınız varsa ve değerler şu birincil anahtar kurallarını karşılıyorsa bunu kullanabilirsiniz:
-
Tanımlayıcı her zaman her kayıt için farklı olacaktır. Birincil anahtarda yinelenen değerler kullanılamaz.
-
Öğe için her zaman bir değer vardır. Tablodaki her kaydın bir birincil anahtarı olması gerekir. Anahtarı oluşturmak için birden çok sütun kullanıyorsanız (Parça Aile ve Parça Numarası gibi), her iki değerin de mevcut olması gerekir.
-
Birincil anahtar değişmeyen bir değerdir. Anahtarlara diğer tablolarda da başvurulduğundan, bir tabloda birincil anahtarın değişmesi, anahtarın başvurulduğu diğer yerlerde de değişeceği anlamına gelir. Sık yapılan değişiklikler hata riskini artırır.
Belirgin bir tanımlayıcınız yoksa, birincil anahtar olarak rastgele, benzersiz bir numara kullanın. Örneğin, her siparişe, siparişi kolayca tanımlayabilmek için benzersiz bir sipariş numarası verebilirsiniz.
İpucu: Birincil anahtar olarak benzersiz bir numara oluşturmak için, Otomatik Sayı veri türünü kullanarak bir sütun ekleyin. Otomatik Sayı veri türü otomatik olarak her kayıt için benzersiz sayısal bir değer atar. Bu tür bir tanımlayıcı, temsil ettiği satırı açıklayıcı türde bir bilgi içermez. Birincil anahtar için ideal olan budur çünkü telefon numarası veya müşteri adı gibi satır hakkında bilgiler içeren bir birincil anahtarın aksine, numaralar değişmez.