www.fatihkabakci.com

Personal Website and Computer Science TUR EN

VERITABANI NORMALIZASYONU

Last update: 10/25/2012 4:11:00 AM

Yazan:Fatih KABAKCI

Normalizasyon veritabanı tasarımında en önemli parametrelerden bir tanesidir.Oluşturulacak veritabanını doğru tasarlamak ve belirli kurallara bağlı kalmak,sonrasında ilgili veritabanından veri sorgulamayı ve o veritabanını verimli kullanmayı daha kolay ve daha esnek hale getirecektir.Herşeyden önemlisi iyi bir normalizasyon,veritabanı yönetim sistemini kolaylaştıran önemli bir unsurdur.

Normalizasyon veritabanını sunucu üzerinde etkili çalıştırır ve o veritabanından iyi performans alınmasını sağlar.Bu performans,hem veritabanının sunucu üzerinde hızlı çalışması ve/veya bellek tasarrufu sağlaması hem de kullanıcıların o veritabanından yapacağı sorgulara en hızlı ve kolay cevap vermesi ile ilgilidir.

Normalizasyonun temelinde yatan asıl hedef,veritabanı tablolarını küçük parçalara ayırıp,onlar arasında ilişki kurarak,verileri daha kolay yönetme mantalitesi yer almaktadır.Bu hedefi bir örnek ile inceleyelim.Person adında bir tablomuz olsun ve bu tablo bir takım kişilerin temel bilgilerini içersin(kişilerin isim ve soy isim,adres,telefon gibi).Böyle bir tablo hiç bir normalizasyon kuralına bağlı kalmadan yapılırsa,aşağıdaki gibi en yalın halde tasarlanacaktır.



Yukarıdaki tabloda toplam 4 adet kayıt yer almaktadır.Dikkat edilirse tablo şu haliyle bile bir şeylerin yanlış gittiğini bize göstermektedir.Tabloda,City,Country ve Gender alanları üç aşağı beş yukarı birbirlerini tekrar eden veri grupları barındırmaktadır.Tekrar eden veri grupları olmasa dahi,bu veriler girilen karakter uzunluğu kadar büyüklüğe sahip String veri türlerine sahiptir.Hatırlanacağı üzere bilgisayar sistemlerinde tam sayılar bu veri türlerinden daha az büyüklüğe sahiptirler.Yani en bilinen ismiyle int veri türü ki,genel olarak 4 byte büyüklüğe sahiptir,şehir ve ülke gibi girilen verilere nazaran daha küçük alanda yer kaplamaktadır.

Örnek olarak ASCII karakter setini kullanan bir VTY sisteminde United Kingdom 14 byte yer kaplarken,1,2,2e32 gibi sayılar yalnızca 4 byte yer kaplamaktadır.

Bu gerçek göz önüne alındığında,'kelimeleri rakamlar ile ifade etmek' fikri ilk olarak 1970 yılında Edgar F.Codd'un aklına gelmiştir.Örneğimize geri dönecek olursak,en yalın haliyle yukarıdaki tablonun normalize edilmesi kaçınılmaz olacaktır.Şehir,ülke ve cinsiyet alanları ayrı bir tablo şeklinde tasarlanarak,primary key-foreign key ilişkisi oluşturulabilir.Böylelikle Edgar F.Codd'un 'kelimeleri rakamlar ile ifade etmek' fikri gerçeklenmiş olacaktır.



Yukarıdaki tasarım en etkin gerçeklemeyi göstermektedir.City,Country ve Gender artık tablo haline gelerek ilişkisel veritabanı kuramı en etkin şekilde sağlanmış olacaktır.Bellek tasarrufu adına yapılan bu optimizasyon,sorgulara daha hızlı cevap verme avantajıda sağlar.Aynı zamanda veriler arasında ilişki kurulmasıyla da,fonksiyonel geçişlilikte sağlanmış olur.

Yukarıdaki bu çalışma,veri gruplarının tekrarlarını önleyerek,verileri birer anahtar değerleri ile temsil ettiği için normalizasyon,bellek tasarrufu adına verileri tam sayı formatında yazarak daha hızlı işlem gücü kazanmasından dolayı optimizasyon,veriler arasında ilişki kurarak farklı tablolarda saklamasından dolayı ise ilişkisel veritabanı modeli kavramlarının tümünü karşılamaktadır.İlişkisel veritabanı modelinde kullanılan bir takım normalizasyon kurallarını iyi kavramak adına,yukarıdaki örneğin ve anlatımların iyi kavranması gerekmektedir.

İlişkisel modelin kurucusu olan Edgar F.Codd 1970 yılında ilk olarak Birinci Normal Form olarak bilinen modeli öne sürmüştür.Veritabanı normalizasyonunda standartlar haline gelen bu formlar tasarım konusunda birer referans niteliği kazanmıştır.

Normalizasyonlar birer standart haline gelmiş olup aşağıda açıklanmaktadır.
MemberCommentDate:
Fatih KABAKCI
Tum kurallari tablo tasarimi sirasinda yapiyor olmaniz gerekmektedir. Yani tablo oluşumları sırasında hepsini birden göz önünde bulundurarak 
tablonuzu tasarlamalisiniz. Yazıda paylaşılan tablolar hayali birer örnek olduğu için fiziksel bir veritabanından alınmamıştır. 

Başarılar,
Fatih

10/24/2016 7:07:00 AM
guest
Merhaba;
NF 1,2,3 konularında sql tablo oluşturma yaptıktan sonra bu tabloları normalizasyon 
kurallarına göre nasıl birleştirme yapabiliriz. Kodlarını ya da bu verdiğiniz 
tabloların sql dosyası varsa atabilirmisiniz.

Mehmet

10/22/2016 4:29:00 PM
Fatih KABAKCI
Sorunuz tasarım ile alakalı olduğundan yorumunuz Veritabanı Tasarımı adlı makaleye taşınmıştır.
canada drug pharmacy coupon link walgreen coupons online
walgreens deals this week j50.org online discount pharmacy
pfizer viagra coupon blog.alpacanation.com coupons for viagra printable
vepesid 50 mg vepesid price vepesid
nizoral emulsiovoide movidafm.net nizoral tabletti
12/26/2013 9:56:00 AM
damla
bir bilgisayar firmasına ait veri tabanı nasıl hazırlayabilirim yardım edebilir  misiniz? lütfen çok acil :( :(
cvs weekly sales open cvs promo
online cialis coupons blog.suntekusa.com free cialis coupon
lamisil cream singapore site lamisil cream
cialis sample coupon acantheschool.com prescription drug discount cards
12/25/2013 8:07:00 PM

Name:


Question/Comment
   Please verify the image




The Topics in Computer Science

Search this site for





 

Software & Algorithms

icon

In mathematics and computer science, an algorithm is a step-by-step procedure for calculations. Algorithms are used for calculation, data processing, and automated reasoning.

Programming Languages

icon

A programming language is a formal constructed language designed to communicate instructions to a machine, particularly a computer. It can be used to create programs to control the behavior of a machine. Java,C, C++,C#

Database

icon

A database is an organized collection of data. The data are typically organized to model aspects of reality in a way that supports processes requiring information.

Hardware

icon

Computer hardware is the collection of physical elements that constitutes a computer system. Computer hardware refers to the physical parts or components of a computer such as the monitor, memory, cpu.

Web Technologies

icon

Web development is a broad term for the work involved in developing a web site for the Internet or an intranet. Html,Css,JavaScript,ASP.Net,PHP are one of the most popular technologies. J2EE,Spring Boot, Servlet, JSP,JSF, ASP

Mobile Technologies

icon

Mobile application development is the process by which application software is developed for low-power handheld devices, such as personal digital assistants, enterprise digital assistants or mobile phones. J2ME

Network

icon

A computer network or data network is a telecommunications network that allows computers to exchange data. In computer networks, networked computing devices pass data to each other along data connections.

Operating Systems

icon

An operating system is software that manages computer hardware and software resources and provides common services for computer programs. The OS is an essential component of the system software in a computer system. Linux,Windows

Computer Science

icon

Computer science is the scientific and practical approach to computation and its applications.A computer scientist specializes in the theory of computation and the design of computational systems.