VERİTABANI TASARIMI Birinci Normalizasyon Kuralı

advertisement
VERİTABANI
Veritabanı Tasarımı
VERİTABANI TASARIMI
TASARIM BASAMAKLARI
Güçlü ve performanslı bir veritabanı için gerçekçi ve disiplinli bir tasarım
oluşturulmalıdır. Veritabanı oluşturulurken belirli kurallara uyulması
gerekir. Bu kurallara uyulması, iyi bir veritabanı oluşturmak için çok
önemlidir. Çünkü veritabanında tasarımdan kaynaklanan sorunların
giderilmesi daha sonra oldukça zordur. Bu nedenle veritabanı
oluşturulmadan önce hangi özelliklere sahip bir veritabanı oluşturulmak
istendiği iyi saptanmalı ve bu şekilde tasarımı yapılmalıdır.
Veritabanı tasarımı yapılırken veri tekrarı olmamasına ve veri
bütünlüğünün sağlanmasına dikkat edilmelidir. Çünkü veri tekrarı
hafızada fazladan yer kaplayacağı gibi aynı zamanda raporlama ve ekleme,
silme, güncelleştirme gibi diğer işlemlerde hatalara ve tutarsızlıklara
neden olacaktır. Eğer veri bütünlüğü sağlanamazsa istenilen veriler
raporlandığında yanlış bilgiler içerecek ve kullanıcılar yanlış
bilgilendirilmiş olacaktır.
VERİTABANI TASARIMI
İyi bir veritabanı tasarımı, verileri veri tekrarını önlemek için
gruplandırarak tablolara böler. Bu tablolar arasındaki ilişkileri kurarak,
gerektiğinde tüm bilgilere doğru ve eksiksiz ulaşılmasını sağlar. Veri
bütünlüğünü koruyarak istenilen işlemlerin ve raporlamaların yapılmasını
gerçekleştirir. Kullanışlı ve yararlı bir veritabanı oluşturması için tasarım
aşamasında aşağıdaki sorular yanıtlanmalıdır.
• Veritabanı oluşturmaktaki amaç nedir?
• Hangi verileri içerecektir?
• Hangi tablolardan oluşacaktır?
• Oluşturulan tablolarda hangi alanlar bulunacaktır?
• Hangi alanlar anahtar alan olacaktır?
• Tablolar arasındaki ilişkiler nasıl olacaktır?
• Normalizasyon kuralları geçerlimi?
VERİTABANI TASARIMI
VERİTABANI OLUŞTURMAKTAKİ AMAÇ
Veritabanının oluşturulmasındaki
tasarımındaki en önemli aşamadır.
amacın
belirlenmesi,
veritabanı
Genel anlamada veritabanı, el ile yapılan işlemlerin bilgisayar ortamında
daha hızlı ve güvenli şekilde yapılmasını amaçlamaktadır. Bu nedenle
öncelikle el ile yapılan iş ve işlemler analiz edilmeli, bu iş ve işlemlerde
kullanılan tüm bilgi ve belgeler toplanmalı, iş ve işlemlerin sıralaması ve
önemi belirlenmelidir.
Veritabanında istenilen veriler ve raporlamaların neler olduğu,
veritabanını kullanacak kişiler ile ortak çalışılarak onların isteklerine göre
belirlenmelidir. Toplanılan tüm bu bilgiler ve yapılan analizler ile
veritabanı oluşturmaktaki amaç ortaya çıkar. Veritabanının amacının
belirlenmesi, tasarımdaki diğer aşamalar için de yol gösterici olacaktır.
VERİTABANI TASARIMI
VERİTABANI OLUŞTURMAKTAKİ AMAÇ
Örneğin Nüfus ve Vatandaşlık İşleri Genel Müdürlüğünün adres kayıt
sistemi kapsamında bir veritabanına gereksinim duyulduğunu varsayalım.
Bu veritabanının kurulmasındaki amaç, kişiler ile adreslerinin elektronik
ortamda tutulmasını sağlamak olacaktır.
Oluşturulan veritabanından kişiler ve adreslerinin sorgulanabilmesi,
ikametgâh belgesi, nüfus cüzdanı örneği vb. belgelerin verilmesi de bu
veritabanının kurulma amaçlarından olabilir.
VERİTABANI TASARIMI
VERİTABANI TASARIMI
VERİTABANI TASARIMI
KULLANILACAK VERİLERİN BELİRLENMESİ
Veritabanının oluşturulma amacı belirlendikten sonra bu amaç
doğrultusunda veritabanının hangi verileri içereceği belirlenmelidir.
Örneğin Nüfus ve Vatandaşlık İşleri Genel Müdürlüğünün adres kayıt
sistemi kapsamında oluşturacağı veritabanında, adres bilgileri ve kişi
bilgileri bulunacaktır.
Ancak bu veriler hedeflenen amaç doğrultusunda belirlenmelidir.
Önceden el ile hazırlanan tüm belgeler incelenmeli ve her belgede
bulunması gereken veriler saptanmalıdır.
VERİTABANI TASARIMI
KULLANILACAK VERİLERİN BELİRLENMESİ
Adresin doğru bir şekilde belirlenebilmesi için ;
Ülke
Bulvar/ Cadde/Sokak
İl
Kapı No
İlçe
Blok
Köy
Daire No
Mahalle
Posta Kodu
gibi verilere gereksinim vardır. Bu nedenle tüm bu verilerin veritabanında
yer alması gereklidir.
VERİTABANI TASARIMI
Örneğin el ile hazırlanan
nüfus
cüzdanı
örneği
incelenerek hangi verilerin
gerekli olduğu kolayca
belirlenebilir.
VERİTABANI TASARIMI
VERİTABANI TASARIMI
VERİTABANI TASARIMI
TABLOLARIN OLUŞTURULMASI
Veritabanında bulunması gerekli olan veriler belirlendikten sonra veri
tekrarı olmayacak ve veri bütünlüğünü bozmayacak şekilde veriler
gruplandırılmalı ve tablolara bölünmelidir. Veritabanındaki tabloların
belirlenmesi veritabanı tasarım sürecinde en zor adım olabilir. Veritabanı
oluşturduktan sonra hangi verilere hangi sıklıkla gereksinim duyulacağı,
hangi formların ve raporların oluşturulacağı gibi soruların yanıtlarını
bilmek tabloların oluşturulması aşamasında tasarımcıya çok faydalı
olacaktır.
Örneğin Nüfus ve Vatandaşlık İşleri Genel Müdürlüğünün adres kayıt
sistemi kapsamında oluşturacağı veritabanında kişinin kimlik bilgileri ile
adres bilgileri tek bir tabloda tutulabilir. Fakat bu şekilde oluşturulacak
tablo, veri tekrarlarına neden olur. Çünkü aynı adreste birden fazla kişi
oturuyor olabilir ve tabloda bulunan bu kişilerin hepsinde aynı adres
bilgisi yer alacaktır. Bu nedenle adres ve kimlik olmak üzere iki tablo
oluşturulması gereklidir.
VERİTABANI TASARIMI
VERİTABANI TASARIMI
VERİTABANI TASARIMI
VERİTABANI TASARIMI
ALANLARIN BELİRLENMESİ
Veritabanındaki tabloların alanlarını belirlemek için tabloda hangi
verilerin bulunacağına karar vermek gereklidir. Belirlenen verilere göre
tabloda alanlar oluşturulur. Oluşturulan alanların isimleri açıklayıcı
olmalıdır. Örneğin kişinin adının bulunduğu alanın ismi "ADI" şeklinde
olabilir. Bu şekilde tanımlanan alan içindeki verilerin neler olduğu çok
daha kolay anlaşılır.
VERİTABANI TASARIMI
Veritabanında bulunan tablolarda aynı verileri içeren alanlar mevcut ise
bu alanların isimlerinin de aynı olması gereklidir.
Örneğin T.C. Kimlik numarasını içeren tüm tablolardaki alanların isimleri
"T_C_KIMLIK_NO" şeklinde olmalıdır.
Ayrıca alanlar isimlendirilirken alanın başına veya sonuna eklenecek
açıklayıcı bilgiler o alanda hangi verilerin bulunduğunun anlaşılmasında
kolaylık sağlayacaktır. Örneğin personel ve müşterilerin kaydedildiği bir
tabloda personelin adının olduğu alan "PER_ADI" ve müşterinin
bulunduğu alan "MUS_ADI" şeklinde isimlendirilebilir.
Veritabanmda tablolardaki alanların isimleri belirlenirken Türkçe
karakterlerin, özel işaretlerin ('/', '%', '&' vb.) ve veritabanı yönetim
sistemi yazılımı tarafından kısıtlanmış olan sözcüklerin kullanılmamasına
dikkat edilmelidir.
Tablolarda tekrarlayan alanların bulunması, veri tekrarına neden
olacağından tekrarlayan alanlar da bulunmamalıdır.
VERİTABANI TASARIMI
Tabloda bulunan bir alan içerisinde birden fazla veri bulundurabilir. Ancak
bu şekilde oluşturulan alanlarda veri tutarsızlıkları oluşmaktadır. Bu
nedenle birden fazla veri içeren alanlar mümkün olduğu kadar çok alana
bölünmeli, her alanda sadece tek bir veri olacak şekilde oluşturulmalıdır.
Örneğin kişinin adı ve soyadı tek bir alanda tutulabilir. Fakat kişinin çift
isimli olduğu veya kişinin çift soyisimli olduğu durumlarda, bu alandan
elde edilecek veride karmaşıklıklar oluşacaktır. Bu nedenle bu alan, adı ve
soyadı olmak üzere iki alan şeklinde oluşturulmalıdır.
Aynı şekilde adres alanını ele alalım. Adres ülke, il, ilçe, mahalle, cadde,
sokak, kapı no, daire no vb. verilerin birleşmesinden oluşmaktadır. Eğer
adres tek bir alanda tanımlanırsa veriler arasında tutarsızlık olur.
VERİTABANI TASARIMI
Örneğin iki kişinin adresleri tabloya kaydedilmiş, ancak tek bir alanda
kayıt yapıldığı için iki adres arasında kullanıcı girişinden kaynaklanan
hatalar oluşmuştur. Birinci kişinin adresinde ilçe bilgisi yazılmamış, ikinci
kişide ise mahalle bilgisi daire bilgisinden sonra yazılmıştır. Bu nedenle
adres ülke, il, ilçe, mahalle, cadde, sokak, kapı no, daire no vb.şekilde
mümkün olan en fazla alana bölünerek, kullanıcı hataları en aza
indirilebilir ve veritabanında sorgulama işlemleri çok daha kolay bir
şekilde yapılabilir
VERİTABANI TASARIMI
Alanlar oluşturulurken, bu alanların içinde bulunacak verilerin tiplerine
göre tanımlanmalıdır.
Örneğin T.C. Kimlik Numarası 11 rakamdan oluşan bir sayıdır. Bu nedenle
T.C. Kimlik Numarasının bulunduğu alan, 11 karakter uzunluğunda bir sayı
olarak tanımlanmalıdır.
Alanlar oluştururken diğer verilerden hesaplanarak elde edilen veriler için
alan oluşturulmamalıdır.
Örneğin kişinin doğum tarihi alanı tabloda oluşturulmuşken, yaşı alanının
da oluşturulması doğru olmaz.
VERİTABANI TASARIMI
ANAHTAR ALANLARIN BELİRLENMESİ
Tablo, her satırı tanımlayan özellikli bir alan içermelidir. Bu alan genellikle
kimlik numarası, ürün numarası gibi benzersiz verilerden oluşur. Bu alan
birincil anahtar olarak adlandırılır. Birden fazla tablodaki verilere ulaşmak
için, tablolar arasında ilişkilendirmelerde birincil anahtar alan kullanılır.
Birincil anahtar alanın benzersiz olması gereklidir.
Örneğin kimlik tablosunda T.C. Kimlik Numarası her kişi için farklıdır ve
birincil anahtar olarak tanımlanabilir. Ancak ad alanı benzersiz veriler
içermez. Aynı isimli birden çok kişi olabilir. Bu nedenle ad alanı birincil
anahtar olarak tanımlanamaz. Ayrıca birincil anahtar alanda her satır için
her zaman bir değer olmalı ve değeri değişmemelidir.
VERİTABANI TASARIMI
ANAHTAR ALANLARIN BELİRLENMESİ
Birincil anahtar tabloda bulunan alanlardan olmak zorunda değildir.
Örneğin adreslerin bulunduğu tabloda yeni bir alan oluşturup bu alan
"ADRES_ID" şeklinde isimlendirilerek her adres için farklı bir adres
numarası oluşturularak birincil anahtar alan yaratılabilir. Anahtar alan
1,2,3,4,... şeklinde devam eden otomatik sayı şeklinde de tanımlanarak
oluşturulabilir.
VERİTABANI TASARIMI
ANAHTAR ALANLARIN BELİRLENMESİ
Bazı durumlarda bir tabloda bulunan iki veya daha fazla alan, birincil
anahtar olarak tanımlanabilir. Bu tip anahtarlara birleşik anahtar denir.
Örneğin adı ve soyadı alanları birlikte birincil anahtar olabilir. Burada
dikkat edilmesi gereken adı ve soyadı aynı olan kişilerin tabloda
bulunmamasıdır.
VERİTABANI TASARIMI
VERİTABANI TASARIMI
TABLOLAR ARASINDAKİ İLİŞKİLERİN TANIMLANMASI
Veritabanında veriler, tablolara bölünmüş olarak depolanmaktadır.
İstenilen verilere ulaşılması için bazen iki veya daha fazla tablodaki
verilerin birleştirilmesi gerekebilir. Bu gibi durumlarda tablolar arasında
ilişkiler tanımlanmalıdır.
Örneğin adres ve kimlik tabloları olan bir veritabanında Eskişehirli kişileri
sorgulamak için adres ve kimlik tabloları arasında ilişki kurulmalıdır.
Tablolar arasındaki ilişki, anahtar alanlar yardımı ile yapılır.
VERİTABANI TASARIMI
NORMALİZASYON İŞLEMLERİNİN UYGULANMASI
Veritabanındaki tablolar, alanlar ve tablolar arasındaki ilişkiler
tanımlandıktan sonra, örnek veri girişi yapılarak veritabanının
normalizasyon kurallarına uyup uymadığı kontrol edilmelidir.
Tablo doğru şekilde tasarlanmış ise normalizasyon kurallarına uyacaktır.
Uymuyor ise normalizasyon kurallarına göre tekrar düzenlenmelidir.
Yaygın olarak kullanılan beş normalizasyon kuralı vardır.
VERİTABANI TASARIMI
Birinci Normalizasyon Kuralı: Tabloda bulunan her satırdaki, her alanda
tek bir veri bulunmalıdır. Örneğin adres alanı tek bir alandan oluşmamak,
ülke, il, ilçe, mahalle, cadde, sokak, kapı no, daire no vb. alanlara
bölünmelidir. Veritabanındaki tabloların birinci normalizasyon kuralına
uyması, veritabanının sorgulama, ekleme, silme, güncelleme gibi işlemleri
yapamasında performansı arttırmaktadır.
ikinci Normalizasyon Kuralı: Tabloda birincil anahtar olmayan tüm alanlar
birincil anahtar alana bağlı olmalıdır. Örneğin kimlik tablosunda birincil
anahtar T.C. Kimlik Numarasının bulunduğu alan ise diğer alanlar bu alan
ile ilişkili alanlar olmalıdır. Kişinin adı, soyadı, baba adı vb. alanlar kimlik
numarasıyla ilişkilidir. Ancak bu tabloda kişinin adresinin yer alması ikinci
normalizasyon kuralına aykırıdır.
VERİTABANI TASARIMI
Üçüncü Normalizasyon Kuralı: Tabloda anahtar alan olmayan alanlar,
birbiriyle ilişkili olmamalıdır. Örneğin adres tablosunda il adı ve il plaka
kodu alanları bulunmamalıdır. Ayrı bir il tablosu oluşturulmalı, adres
tablosunda bu alanlardan sadece bir tanesi bırakılmalıdır.
Dördüncü Normalizasyon Kuralı: Tabloda birincil anahtar alan ile diğer
alanlar arasından bire-bir ilişki olmalıdır. Birden çok ilişki durumunda ayrı
bir tablo oluşturulmalıdır.
Beşinci Normalizasyon Kuralı: Veritabanında bulunan tüm tablolar
mümkün olduğu kadar küçük parçalara bölünmelidir. Bu şekilde veri
tekrarları önlenmiş olur.
Download
Study collections