POWER DESIGNER İLE VERİTABANI TASARIMI
POWER DESIGNER; Veritabanımızı modellememizi yani görsel
olarak tasarlamamızı sağlayan bir araçtır. Sadece bununla da kalmayıp
referential integrity i sağlayan trigger ları ve stored procedure leri de
oluşturabilmektedir. Yani tek bir tuşla veritabanımızı oluşturan bütün öğeleri
(MetaData) seçilen veritabanımızın yönetim aracına aktarabiliyoruz . Bu öğeler;
tablo , primary key , index , trigger , stored procedure , alan (column) v.b.
elemanlardır .
Bu modelleme aracı başlıca 3 çeşit model ortamını
desteklemektedir . Bunlar;
-
Conceptual Data Model (CDM) : Herhangi bir yazılımdan veya
veri depolama yapısından bağımsız genel
anlamda bir mantıksal modeldir. Daha sonra PDM ye veya OOM ye çevrilebilir.
-
Physical Data Model (PDM) : Herhangi bir DBMS yazılımı veya
veri depolama yapısını göz önüne alarak veritabanı yapısını fiziksel olarak
oluşturur. Daha sonra CDM ye veya OOM ye çevrilebilir.
-
Object Oriented Model (OOM): Java veya diğer nesneye yönelik
dilleri göz önüne alarak yapılan nesne tabanlı (object-oriented) modelleme .
Daha sonra PDM ye veya CDM ye çevrilebilir.
Biz burada Fiziksel Modellemeyi kullanarak yeni bir veri
tabanı oluşturalım,
POWER DESIGNER ı başlatıyoruz .
File -> New ile yeni bir model oluşturulur ve Physical
Data Model seçilir .
VeriTabanımız DBMS seçilir . Burada görüldüğü gibi ilgili
veri tabanlarının hepsi bulunmaktadır (Sadece FireBird yok , o da
Interbase 6.0 seçilerek halledilebilir.
) .
OK lendikten sonra artık yeni veritabanımız oluşmuş demektir
.
Burada sol tarafta Object Browser ımızı ve sağ tarafta ise
tablolarımızı oluşturacağımız çalışma alanımız görülüyor. Palette yazan küçük
pencere ise Tablo eklememize , tabloları ilişkilendirmemize v.b. işlere yarayan
araç paletidir.
Tablo oluşturma: Paletteki table simgesine tıklayıp çalışma
alanında uygun bir yere tıklayalım ve sağ tuşla fareyi eski haline getirelim.
Aynı işlemleri yaparak bir ikinci tablo oluşturalım.
Her bir tablonun üzerine çift tıklayarak o tabolaya ait özellikleri
belirleyebiliriz. Ve General tabından tablonun adını belirleyelim ,
Not: Yaptığımız her işlem için yukarda ki pencerede de
görüldüğü gibi UYGULA butonu ile değişiklikleri uygulayalım..
Sıra geldi bu tabloya ait olacak olan kolonlar yani alanları
oluşturmaya.. Yine aynı yerde Columns tabından ilgili kolonları oluşturalım .
Name kısmına alanın adı ve DataType kısmına ise veri tipini girelim . Eğer
alanımız Birincil Alan olacak ise P kutucuğunu işaretleyelim. Alanımız Not Null
yani mutlaka değer girilmesi gereken bir alan ise M (Mandatory - Zorunlu) kutucuğunu işaretleyelim.
Her kolonun Properties özelliğinden veya kolon isminin
üzerine çift tıkladığımızda karşımıza Column Properties gelecektir , burada
ilgili alanın özelliklerini daha kapsamlı olarak oluşturabiliriz veya
değiştirebiliriz .
Görüldüğü gibi alanın ismini , veri tipini eğer bir Domain
oluşturmuşsak o domaini veri tipi olarak atayabiliriz .
Domain oluşturmak aynı kolon yani alan oluşturmak gibidir . Bunun için Model -> Domains
menüsüne gidilerek oluşturulabilir.
Tekrardan kolon oluşturmaya dönelim . Detail tabından
Computed yani hesplanmış alan oluşturulabilir (Computed kutucuğu işaretli olmak
kaydı ile). Standart Checks tabından ise o alnın Minimum , Maximum , Default ,
Format v.b. gibi özellikleri oluşturulabilir.
Herhanig bir veya birden fazla alanı INDEX lemek için Index
tabından index oluşturulur ve üzerine çift tıklayarak açılan properties
penceresinden indexin adını , hangi alana ait olduğunu belirtebiliriz.
Interbase de herhangi bir alanı Autoincrement yapmak için
ise Model -> Sequences dan otomatik olarak artacak olan değer oluşturulur.
( Sybase de bu işlem Colunun özelliğini Identity yaparak
belirlenebiliyor )
Ve bu değeri ilgili alana atamak için ise Column Properties
den Sequence comboboxundan oluşturduğumuz Autoincrement seçilir ve uygulanır.
(Apply)
Yukardaki adımları takip ederek MUSTERI ve SATIS adında ve
alanları belirlenmiş tablolarımızı oluşturalım .
Tablolarımızı biribirine bağlama işini ise Reference ile
yapacağız .
Burada, MUSTERI (Ana Tablo) tablosunda ki MUSTERI_NO ile
SATIS (Detay Tablo) tablosunda ki MUSTERI_NO alanları vasıtası ile bu iki
tablomuzu ilişkilendirelim. Böylece bir Referential Intergrity oluşturmuş
olacağız .
Tool Palette deki Reference ikonuna tıklayalım ve
detay tablodan başlayarak ana tabloya doğru sürükleyelim. Bağlantı hazır .
Bağlantının özelliklerine girmek için üzerine gelip çift tıklayalım.
General tabından ; Bağlantının adını (Name) , Ana Tabloyu
(Parent Table) ve Detay Tabloyu (Child Table) kontrol edelim.
Joins tabından ise bağlantının hangi alan ile kurulacağını
kontrol edelim.
Integrity tabında ise Referential Integrity nin trigger ile
nasıl sağlanacağını belirleyebiliriz.
Kayıt Güncellenirken tetiklenecek sınırlandırma (Update
Constraint) ve Kayıt Silinirken tetiklenecek sınırlandırma (Delete Constraint)
belirlenir.
Son olarakta bu işlemler için oluşturulacak Trigger ları
oluşturulur .
Tools -> Rebuild Triggers
ve bu oluşturulan Referential Integrity nin hangi tablolar
için oluşturulması gerektiği belirilenir.
File -> SaveAll ile çalışmamızı kaydedelim.
Oluşturduğumuz bu modeli VeriTabanımıza aktaralım:
Database -> Generate Database
Tamam dedikten sonra Veritabanımıza ait oluşturduğumuz
elemanları *.TEXT olarak daha sonra bir script ile kullanılmak üzere
kaydediyoruz.
Aynı işlemler Trigger ve Stored Procedure oluşturmak için de
yapıyoruz .
Database -> Generate Triggers and Porcedures
Anlaşılmayan yerler olabilir , bunun için şimdiden özür dilerim
.
Saygılar..