Skip to content

Mysql Workbench 5.2 Kullanımı-2

mysql_logoWorkbench kullanımıyla ilgili temel bilgileri bir önceki yazımda bulabilirsiniz. Orada menülerin ve araç çubuklarının yeterli şekilde açıklaması yapıldı.

Şimdi tablo oluşturmakla işe başlayacağız.

Aşağıdaki resimde sarı renk ile vurgulanan yere bir kere tıklıyoruz. Daha sonra çalışma alanında istediğimiz yere tek tıklamayla tablo oluşturuyoruz.

create_table

Tablo ilk oluştuğunda aşağıdaki gibi görünmektedir. Burada tablo ismi otomatik olarak program tarafından belirlenmiştir. Bunu değiştirmek için tablonun üstüne çift tıklıyoruz.

created_table

Aşağıdaki gibi bir görüntü ortaya çıkması gerekiyor. Burada table yazan yerin özelliklerinin değiştirilebileceği bir sekme açılıyor. “Name” yazan yerin karşısındaki table yazan yeri değiştirdiğimizde isim değişecektir.

named_table

İsmi “stok” olarak belirledik. Daha sonra nitelikleri Table sekmesinin yanındaki Coloumns sekmesinden ekleyebiliriz. Eklediğimiz niteliklerin veri tiplerini ve çeşitli özelliklerini buradan belirleyebiliriz.

PK->Primary Key,

NN->Not Null,

UQ->Unique(Benzersiz),

BIN->Binary,

UN->Unsigned(işaretsiz-sayılarda pozitif olma durumunu belirler),

ZF->Zero Fill,

AI->Auto Increment(Otomatik artırma) manasına gelir.

table_properties2

Indexes, Foreign Keys gibi sekmeler şu an işimize yaramayacak. Sadece izinler konusunda bir şeyler yapmak istiyorsanız. Privileges kısmı size bunu sağlamaktadır. Biz diyagram çizerken indexleme ve foreign key’ler otomatik olarak oluşturulacaktır. Örneğin, aşağıda stoklar ve stok sorumluları arasında bire-çok ilişki kurdum ve foreign key otomatik şekilde oluştu.

stok_sorumlu

İlişki oluşturmak için aşağıdaki araç çubuğundan faydalanırız, bu araç çubuğundaki seçenekler daha önce anlatılmıştı. Yukarıdaki ilişkiyi oluşturmak için  onetomany tıklarız. Bu bire-çok ilişki oluşturacağımız manasına gelmektedir. “Çok” ilişki kuracağımız tabloya önce tıklıyoruz. Sonra da “bir” ilişki kurulacak tabloya tıklıyoruz ve arada kesik çizgili bire-çok ilişkinin kurulduğunu artık görebiliriz. Bu tanımsız bire-çok ilişkidir. İlişkiler için tanımlı olanları düz çizgiyle, tanımsız olanları kesik çizgiyle belirtilir. Yukarıdaki resimde iki çizgiyle gösterilen taraf bir, ok işaretiyle gösterilen taraf ise çok ilişkiyi tanımlamak için kullanılır.

Bunların dışında Mysql workbench’te ilişkiler tanımlı ve tanımsız olarak kurulabilmektedir. Tanımlı, tanımsız ayrımını örneklerle anlatırsak:

Bir kitap bir sahibe aittir ve bir sahip çok kitaba sahip olabilir. Ama kitap sahipsiz var olabilir ve sahibini değiştirebilir. Kitap ve sahibi arasındaki bu bağıntı tanımsız bağıntıdır. ( non-identifying)

Bir kitap bir yazar tarafından yazılmış olmasına rağmen, bir yazar birçok kitap yazmış olabilmektedir. Ama kitap yazarsız yazılamaz. Böylece kitap ve yazar arasındaki ilişki tanımlı ilişki olmuş oluyor. (identifying relation)

Bir bağıntının tanımlı veya tanımsız olmasının veritabanında bir karşılığı vardır. Eğer bir ilişkiyi tanımlı olarak belirlerseniz, foreign key hem kendi görevini yapar hem de primary key gibi davranır. defined_relatins

relations

Şimdi ilişkiyi inceleyelim. Daha önce kurduğumuz ilişkinin üzerine çift tıkladığımızda(tabloların değil) yukarıdaki resimdeki gibi bir ayar penceresi altta ortaya çıkacaktır. “Relationship” ve “Foreign Key” olmak üzere iki sekme vardır. “Relationship” sekmesinde bu ilişkinin görünülürlüğüyle ilgili ayarlar yapılabilir. İlişkilerin hepsi gözüksün diyorsanız “Fully Visible”, çizgilerin gözükmesini istemiyorsanız, ama ilişkiler gözüksün diyorsanız “Draw Split”, hiçbir şey gözükmesin diyorsanız “Hide” seçeneğini seçebilirsiniz. “Foreign Key” sekmesini açtığımızda ise aşağıdaki gibi bir görüntüyle karşılaşırız. Burada kurduğumuz ilişkinin tanımlı veya tanımsız olma durumunu “Identifying Relation” check box’ını kullanarak değiştirebiliriz. Mandatory foreign keylerin zorunluluk durumlarını belirler. Bunun veritabanındaki karşılığı null olma/olmama durumudur. Eğer zorunluluk check box’ları işaretli olursa bu foreign key’in null olamayacağı manasına gelmektedir. Kendi tasarımınıza göre istediğiniz şekilde değiştirebilirsiniz.

foreing_key

Şimdi view oluşturmaya göz gezdirelim.Bunun için araç çubuğundan view seçeneğine tıklıyoruz. View1 şeklinde otomatik olarak oluşuyor. Tablo oluşturmaya benzer şekilde bir etiket çıkıyor. Bu etiketin üzerine çift tıkladığımızda bizden DDL (Data Definition Language) ifadesi yazmamızı bekler. Burada deneme amaçlı olarak view’in ismini deneme yaptık ve stok id ve sorumlu id’nin eşit olduğu yerden birleştirdik. Yeni oluşan viewdastok.id, stok.item, stok.pcs, sorumlu.name, sorumlu.surname alanları bulunacaktır. View oluşturmaktaki amaç yeni bir tablo oluşturmak değildir. Çok kullanılan farklı tablo alanlarını sanal olarak birleştirmek ve sorgulardaki karmaşıklığı azaltmak için kullanılır. Normalde bir tablo üzerindeki niteliklerin birbiriyle ilişkili olması gerekir. View’da böyle olmak zorunda değildir.

view_sample

Trigger’lar, bazı işlemleri kayıt öncesi ve sonrasında otomatik olarak yaptırmak için kullanılmaktadır. Buradaki amaç yazılıma bağımlılığı mümkün olduğunca azaltmaktır. Çünkü veritabanı tasarımı programlama dilinden bağımsızdır. Trigger tablolarla doğrudan ilgili olduğu için, tabloların içinde yer alır. Herhangi bir tabloya çift tıkladığınızda aşağıda tablo özellikleri açılır ve onların arasında trigger da vardır.

Aşağıda bir trigger örneği görülmektedir. Stok için girilen her kayıt için audit tablosuna otomatik olarak bir satır ekler. Workbench’te hatalı bir trigger yazdığınızda bunu göstermektedir.

wrong_trigger

Düzelttiğinizde aşağıdaki gibi bir sonuç elde edersiniz:

trigger

Son olarak değişikliklerin veritabanıyla senkronize olmasını isteyebilirsiniz. Bunun için Database menüsünden “Synchronize Model…” seçeneğini seçiyoruz.

Karşımıza aşağıdaki gibi bir ayar menüsü çıkıyor. Bu ayar menüsünden, veritabanı servisimiz hangi hostname sahip ve hangi portu kullanıyorsa onları dolduruyoruz. Varsayılan olarak karşınıza gelen hostname ve port localhost olarak ayarlanmıştır.

senkronize_et_database

Eğer TCP/IP protokolünden bağlanmak sorun oluşturuyorsa, Local Socket veya Ssh kullanarak veritabanı hizmetinizi güncelleyebilirsiniz.

Özetle Mysql Workbench kullanımı bu şekildedir. Temel olarak anlatmaya çalıştım umarım faydalı olur.

3 Comments

  1. mali mali

    Elinize sağlık, çok güzel bir çalışma olmuş. Sitenizi takipteyim.

  2. Ahfa Ahfa

    Gerçekten çok açıklayıcı ve faydalı bir çalışma olmuş. Elinize sağlık.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir