İçindekiler
Veritabanı Tasarımı
Veri tabanı tasarımında veri değerlerinin veri alanlarında nasıl saklanacağı ve yönetileceği tasarımı etkileyen temel unsurlardır. Veri değerlerinin yönetilmesinde 3 temel yöntem kullanılmaktadır.
- Basit Liste Yönetimi (Örnek: Cinsiyet, Medeni Hal, Askerlik Durumu vb.)
- Bileşik Liste Yönetimi (Meslek Tanımı, Pozisyon Tanımı vb.)
- İlişkili Liste Yönetimi (Ülke, Şehir, İlçe vb.)
Basit Liste Yönetimi
Örnek olarak "Cinsiyet" veri alanını aldığımızda bu alan "Erkek ve Kadın" olmak üzere iki farklı değeri sabit olarak almaktadır. Bu alanın veri tipi ve veri değerlerinin giriş yöntemine göre 4 farklı senaryo üzerinden veri tabanı tasarımı farklılıkları aşağıda tabloda özetlenmiştir.
Senaryo | Tablo Adı | Veri Alanı | Veri Tipi | Liste Tipi | Veri Tabanı Modeli | Açıklama | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | personel sicil tablosu | cinsiyet | metin (string) | Veri alanına girilen verilerden referansla listenin oluşturulması (Kendine Lookup) | İlk veri girişinde liste boş olarak gelir, veri girdikçe liste oluşmaya devam eder. Veri değerlerinin net olarak bilinmediği durumlarda tercih edilebilir ancak kontrollü bir liste oluşması çok zordur. Bireysel hatalara çok açıktır, aynı verinin farklı bir çok versiyonu zamanla sistemde oluşur. Raporlama ve bakım maliyeti yüksektir. Metnin harf olarak uzunluğu kadar sistemde yer kaplar. | |||||||||||||||||||||||||||
2 | personel sicil tablosu | cinsiyet | metin (string) | Farklı bir tablodan listenin alınması (Lookup) Cinsiyet Tablosu, [Veri Değeri] alan tipi metin | Cinsiyet veri alanının değeri Cinsiyet tablosundan seçilerek girilir. Liste sabittir, kullanıcı hatalarına kapalıdır. Bu modelde ana veri tablolarındaki sabit bir listeden seçilerek veri girişi yapılan her alan için veri tablosu açmak gerekir. Metnin harf olarak uzunluğu kadar sistemde yer kaplar. | |||||||||||||||||||||||||||
3 | personel sicil tablosu | cinsiyet | tam sayı (integer) | Farklı bir tablodan listenin alınması (Lookup) Cinsiyet Tablosu, [Kod] alan tipi tam sayı Cinsiyet Tablosu, [Veri Değeri] alan tipi metin | Açılan listeden seçilen Erkek veya Kadın veri değerine karşılık gelen [Kod] değeri {1 veya 2} personel sicil tablosundaki cinsiyet alanına kayıt edilir. İki tablo arasındaki ilişki cinsiyet ve kod alanları üzerinden sağlanır. Bu modelde ana veri tablolarındaki sabit bir listeden seçilerek veri girişi yapılan her alan için veri tablosu açmak gerekir. Metin değerlerin değişken uzunluklarda saklanmasına karşılık bu senaryoda sabit uzunlukta sayısal değerler saklanır. Veri değerinin sistemdeki kapladığı yer ve performans yönetimi açısından bu senaryonun kullanılması tercih edilir. | |||||||||||||||||||||||||||
4 | personel sicil tablosu | cinsiyet | tam sayı (integer) | Tüm liste ögelerinin farklı tek bir tablodan alınması (Lookup) Tanım Listesi Tablosu, [Kod] alan tipi tam sayı Tanım Listesi Tablosu, [Üst Kod] alan tipi tam sayı Tanım listesi Tablosu, [Veri Değeri] alan tipi metin | Listeler Tanım Listesi Tablosunun [Üst Kod] değerine göre altındaki liste elemanları seçilerek oluşturulur. Personel sicil tablosuna seçilen liste elemanının [Kod] değeri kayıt edilir. Örnek veri listesi aşağıdaki gibidir,
Veri saklama modeli senaryo 3 ile aynıdır. Veri tabanındaki liste tablolarını azaltmak, daha basit bir veri tabanı modeli geliştirmek için bu senaryo tercih edilir. |
Bileşik Liste Yönetimi
Bileşik listeler basit listelerdeki veri alanlarını da kullanarak grup olarak yeni bir liste oluşturan yapılardır. Örnek olarak aynı gruba ait farklı iki şirketteki "İdari İşler Asistanı" pozisyonu bilgisi tek başına yeterli bir anlam ifade etmemektedir. Pozisyon olarak değerlendirildiğinde Grup Adı, Şirket Adı, Bölüm Adı, Üst Departmanı, Üst Yöneticisi vb. bilgiler pozisyona bağlı olarak gerçekleştirilecek işlemlerde bileşik olarak kullanılması gereken bilgilerdir. Birlikte işlem görecek bu tip veri alanları için özel tablolar hazırlamak basit liste senaryolarına göre daha kullanışlı olmaktadır.
Tablo Adı | Veri Alanı | Veri Tipi | Liste Tipi | Veri Tabanı Modeli | Açıklama |
---|---|---|---|---|---|
Personel Hareket Tablosu | Pozisyon Kodu | Tam Sayı (integer) | Farklı tablodan çoklu veri değerinin görüntülenerek listenin oluşturulması (Lookup) | Listeyi oluşturan tablodaki veri alanlarının bir veya birden fazlasının değeri personel hareket tablosuna tek seferde kayıt edilebilir. Üstteki tablonun veri tabanı görüntüsü aşağıdaki şekilde oluşmaktadır. Pozisyon Adı, İşletme Adı, Bölüm ve Unvanı basit liste olarak çalışmaktadır. |
İlişkili Liste Yönetimi
İlişkili listeler seçilen bir veri değerine göre başka bir listenin filtre edilerek veri değerlerini otomatik olarak oluşturan yapılardır. Örnek olarak il listesine bağlı olarak o ile ait ilçelerin listesini oluşturmak istediğimizde bu yöntem daha kolay bir çalışma tekniği ortaya koyar.
Tablo Adı | Veri Alanı | Veri Tipi | Liste Tipi | Veri Tabanı Modeli | Açıklama |
---|---|---|---|---|---|
İl Tablosu | Kod | Tam Sayı (integer) | İl Tablosundan tüm listenin alınması (Lookup) | Veri seçme işleminde İl Tablosundan --> İlçe Tablosuna eylem gerçekleşmektedir. Veri girme işleminde İl Tablosu bağımsız olarak çalışmakta iken İlçe tablosunda ise [İl Kodu] alanı basit liste olarak İl Tablosundan [İl Adı] nın seçilmesi ve [Kod] değerinin kayıt edilmesiyle İlçeden --> İle doğru eylem gerçekleşmektedir. | |
İlçe Tablosu | İl Kodu | Tam Sayı (integer) | İl Tablosundaki seçilen ile göre ilçe listesinin oluşturularak alınması (Dinamik Lookup) |