Not Defteri

Akılda duracagına burda dursun

Veritabani Normalizasyon - I

Veritabanı Normalizasyonu - Bölüm-III
Bu yazı birkaç seriden oluşmaktadır. Başlıklardan konulara kolayca erişebilirsiniz.

  • Bölüm 1 - Veritabanı normalizasyonu konusunu ele alış ve Hastane örneğinin çıkışı. HASTALAR tablosunun oluşturulması ve ilişkilerinin oluşturulması.
  • Bölüm 2 - Doktor bilgilerini tutacagımız DOKTORLAR tablosunu ve tüm ilişkileirni anlatmaya devam ediyoruz.
  • Bölüm 3 - Muayene, Poliklinik tablolarını oluşturup tablo ilişkilerini sonlandırıyoruz.
  • Bölüm 4 - Testler, örnek data girişi, sorgulamalar vs.
  • Veritabanı normalizasyonu ilel ilgili olarak yazmama yazgeliştir.com da İlyas Bural abinin yazmış olduğu Baştan Sona SQL Veritabanı Oluşturmak başlıklı yazısı ilham oldu. Kendisine çok teşekkür ederim. Bir hastanede muayene sistemini örnekleyerek çok faydalı bir yazı yazmış. Konuyu okuduktan sonra bu örneği dahada geliştirilebileceğini düşünmeye başladım. İlerleyen yazılarda bu Database'i kullanarak ASP.NET ve Silverlight3 uygulamalar geliştrimeyi ve bu blog üzerinden yayınlamayı düşünüyorum. Şimdi örnek Database'i oluşturmaya başlayalım. ilk olarak oluşturugum Database üzerinde HASTALAR adında bir Table bulunduruacağım. HASTALAR tablosunda hastanemize başvuran hastalarımızın kişisel bilgileri saklanacak.

    HASTALAR Tablosunda HastaNo alanı Primary Key ve identity si 1 artacak şekilde ayarlıyorum. Tabloda Adres alanı text olmakla beraber relation yapıya bu alandan itibaren başlıyor olacağız. Bir adres bilgisi IL, ilce bilgisi de içerir. Bu nedenle adres kolonuna ek olarak Plaka ve ilceNo adinda iki kolon daha ekliyeceğim. Daha sonra bu alanları Oluşturacağımız ILLER ve ILCELER tablosu ile ilişkilendireceğiz.

    ILLER tablosunun Plaka kolonu Char(2) tipinde çünkü Plakalar 06, 34 gibi iki rakamdan oluşuyor. Bu alnı int olarak da tanımlayabilirdik fakat 06 ankara için uygulamalalarımısın her alanında Ankara 6 olarak görünmesine neden oluruz. bu nedenle Char(2) formatında ve Primary-Key olacak.ILLER tablosunu oluşturduktan sonra bu illere bağlı olacak ilceleri de tutacağımız ILCELER tablosunu ILLER tablosu ile ilişkilendirerek oluşturacağım.

    HASTLAR, ILLER ve ILCELER tabloları hazır sayılır şimdi bu tabloları birbirleriyle ilişkilendirerek data bütünlüğünü oluşturmaya çalışacağız. Fakat bunu yapmadan önce HASTALAR tablosuna Plaka ve ilceNo alanlarını eklemiz gerekiyor. Nihayetinde oluşacak yapı aşağıdaki gibi olacak.

    Relationları kısaca açıklamak gerekirse; ILLER tablosunun Plaka (PrimaryKey) kolunu ile ILCELER tablosundaki Plaka kolunu 1' e n ilişkilidir. Yani bir ilçe yanlızca bir ilçeye bağlı olabilir demek kabaca. Bu şu anlama gelmiyor, Darica ilcesi kaydını oluşturuken, bu ilçey KOCAELI iline bağlayabilirim. Fakat Darica adında bir ilce daha oluşturup Bunu YOZGAT ilinede atayabilirim. Burda 1'e n den kasıt 41 - Darica bir tane olabilir demek. Eğer Sadece bir tane Darica girilebilsin istersek ki bu örnekte çok mantıklı değil, ilceAdi alnını Uniq olarak yarlamak gerekir.

    HATLAR tablosundaki, Plaka ile ILLER Tablosundaki Plaka, ILCELER tablosundaki ilceNo ile de HASTALAR tablosundaki ilceNo kolonu ilişkilidir. Bu ilişkileri ve tüm DB scriptlerini konu sonunda paylaşaıyor olacağım.

    Yazının Devamı II. Bölümde. Bölüm II ye Git

    Posted: Aug 09 2009, 21:10 by kkaradag | Comments (0) RSS comment feed |
    • Currently 5/5 Stars.
    • 1
    • 2
    • 3
    • 4
    • 5
    Filed under: SQL Server

    Add comment


    (Will show your Gravatar icon)

      Country flag

    biuquote
    • Comment
    • Preview
    Loading