Not: Bu yazı 01.01.2016 tarihinde Mysql Workbench Community version 6.1 için güncellenmiştir.
Mysql’de veritabanı tasarımı yaparken ilişkilerin doğru şekilde belirlenmesi için bir tasarım aracına ihtiyaç duyuluyor, bu yüzden workbench kullanıyoruz. Workbench, sql sorgusu yazmadan ER (Varlık-İlişki) diyagramına göre veritabanınızı şekillendiriyor. Tablo ve ilişkileri oluşturuyor. Değişiklikleri de otomatik şekilde güncelleyebiliyor.
Programı çok beğenmeme rağmen sorunları da yok değil. Örneğin, çalışma yaparken donmalar gerçekleşiyor ve programı kapatmak zorunda kalıyorsunuz. Ben Ubuntu kullandığım için sorunun ondan kaynaklandığını düşüyordum. Fakat Windows kullanan arkadaşlarıma sorduğumda aynı sorunu yaşadıklarını söylediler. Düzelmesi için kapatıp açmanız yetiyor, önceki çalışmanızı da genelde sorunsuz bir biçimde kurtarabiliyorsunuz.
Workbench’de karşımıza üç ayrı araç çıkıyor. Bunlardan ilki sql development, diğeri data modelling, sonuncusu ise server administration.
Sql Development kullanarak istediğiniz veritabanındaki tablolardan sql kullanarak sorgulama yapabilirsiniz, bu sql sorgularını istediğiniz gibi düzenleyebilirsiniz.
Server administration, veritabanı sunucusunu yönetmenizi sağlar. Hata loglarına bakabilir, yapılan işlemleri görebilir, sunucunun durumunu takip edebilirsiniz.
Bizim en çok kullandığımız data modelling (veri modelleme) kısmı ise tablo oluşturmaya, tablolar arası ilişki kurmaya, tasarımı veritabanıyla senkronize etmeye, trigger yazmaya, view oluşturmaya ve bunun gibi bir çok veritabanı işlemi yapmaya yarar. Programın diğer bölümleri çok açıklamaya ihtiyaç bırakmayacak şekilde sade ve basit bu yüzden bunların üzerinde çok durmayacağım.
Yeni Mysql Workbench 6.1 Community versiyonunda File menüsü altındaki “New Model” veya aşağıdaki şekilde gösterilen “+” işareti kullanılabilir.
Aynı işi aşağıdaki şekilde de yapabilirsiniz.
Daha sonra karşımıza aşağıdaki gibi bir ekran gelmektedir. Add Diagram’a tıklayarak ER diyagramlarını oluşturacağımız çalışma sayfasına geçeceğiz. Tıklamadan önce ufak bir püf noktası vermek istiyorum. Veritabanı kayıtlarında karakter sorunu ile karşılaşmak istemiyorsanız veritabanı ismine(aşağıdaki şekilde “mydb” yazan yer) çift tıklayın.
“Schema” isimli bir sekme açıldığını göreceksiniz. “Default Collation” kısmını utf8-utf8_general_ci şeklinde seçin. Veritabanında karakter sorunu ile karşılaşmayacaksınız.
“Add Diagram” düğmesine bastıktan sonra aşağıdaki gibi bir çalışma alanıyla karşılacağız.
File menüsünde bilinen dosya işlemleri gerçekleştirilir. Sayfa yazdırma için boyut ayarları buradan yapılır. Edit menüsünde, kopyalama, yapıştırma seçme gibi işlemler gerçekleştirilir. Burada üzerinde durulması gereken bu menü altındaki “Preferences” seçeneği. Buradan çalışma alanıyla ilgili ayarlar gerçekleştirilebilir.
Mysql depolama motoru da buradan değiştirilmektedir. “Model:Mysql” sekmesi altında istediğimiz depolama motorunu seçebiliriz. Biz Foreign Key barındırdığı için ve trigger kullanacağımız için InnoDB kullanacağız. O yüzden onu seçiyoruz. Eğer referanslarla çalışmak istiyorsanız MyIsam motorunu kullanabilirsiniz. MyIsam InnoDB’den daha hızlıdır, sadece CRUD işlemlerini yapacaksınız yeterlidir. Fakat trigger ve fonksiyon yazmak gibi bir düşünceniz varsa InnoDB kullanmalısınız.
“Arrange” menüsü altında, çalışma alanındaki tabloları düzenlemeye yarayan seçenekler bulunmaktadır.
“Model” menüsü önemli bir menüdür. Burada aynı veritabanı üzerinde çalışacak farklı diyagramlar ekleyebilirsiniz. “Create Diagram from Catalog Objects” ise aynı database üzerindeki farklı çalışma alanlarındaki tabloları, aynı çalışma alanında toplamaya yarar. Eğer veritabanı tasarımınız üç ayrı koldan yapılıyorsa tasarımları açıp bu şekilde birleştirebilirsiniz. “User Defined Types…” seçeneği ise tablolardaki tiplerle ilgili özel tanımlamalar yapmak için kullanılır. Örneğin, Mysql veritabanında para ile ilgili özel bir veri tipi bulunmamaktadır. Bu seçeneği tıklayarak kendinize para isminde bir tip oluşturabilirsiniz.
Yukarıda bunun bir örneği gösterilmiştir. DECIMAL(10,2) yerine geçecek, money isminde bir tip belirlenmiştir. “Add” butonuna tıkladıktan sonra tablolarda artık “money” isminde bir değişken tipini kullanabileceğiz.
“Model” menüsü altında “Object Notation” ve “Relation Notation” şeklinde ayar bulunmaktadır. Obje notasyonu tabloların şekillerini belirleyen bir seçenekken ilişki notasyonu ise ilişkilerin şekillerinin nasıl olacağını belirleyen bir seçenektir. Burada hangi notasyonun seçileceği kullanıcıya bırakılmıştır. Hangi notasyonu biliyorsanız ona göre seçim yapabilirsiniz.”Diagram Properties and Size” çalışma alanının boyutunu ayarlamak için kullanılır. Alanın yetmediği yerde bu seçeneği kullanarak ek yapabilirsiniz. “Model Options” seçeneği varsayılan olarak Edit menüsündeki Preferences genel ayarları ile aynı olarak işaretlenmiştir. İsterseniz bu global ayarları kullanmayabilir kendiniz ayarlayabilirsiniz.
Araç çubuğundaki Database sekmesi veritabanına bağlanma ayarlarını, senkronizasyon ayarlarını, çeşitli veritabanı göç araçlarını içerisinde barındırır.
“Manage Connections…” seçeneğinde belirlediğiniz bağlantılar, bir daha ayar yapmanıza gerek kalmadan kullanılmak için saklanır.
“Reverse Engineer…” veritabanındaki tabloları okuyup sql kodlarını import(dahil) etmeye yararken, “Forward Engineer…” ise çalışma alanınızda bulunan diyagramların veritabanına export(ihraç) edilmesini sağlar. “Synchronize Model…” çalışma alanınızdaki değişikliklerin veritabanıyla eşitlenmesini sağlar. “Synchronize Model with Any Source…” ise herhangi bir kaynaktan alınan tabloları senkronize eder. “Generate Catalog Diff Report…” iki kaynak arasındaki farklılıkları bulur. Bunlar iki sql script dosyası veya iki veritabanının karşılaştırılması şeklinde olabilir.
“Plugins” menüsü eklentilerin yönetildiği yerdir. “Scripting” seçeneği bize bir shell sağlayarak tekrarlayan işleri programlayıp, workbench’e yaptırmamızı sağlar. “Community” seçeneği, blog adresini, sıkça sorulan soruları, tartışmaları takip edebileceğiniz adresleri barındırır. “Help” görsellerle desteklenmiş bir yardım menüsüdür. Programla ilgili seçeneklerin, menülerin, araç çubuklarının ayrıntılarını buradan öğrenebilirsiniz.
Çalışma alanındaki dikey araç çubuğuna bakacak olursak:
Taşıma işlemleri için kullanılır.
Silme işlemleri için kullanılır.
Birbiriyle ilişkili tabloların aynı renk altındaki bir katmanda toplanmasını sağlamak için yapılmış bir araç.
Çalışma alanına yazı eklemek için kullanılır.
Çalışma alanına resim yerleştirmek için kullanılır.
Tablo oluşturmak için kullanılır.
View oluşturmak için kullanılır.
Routin yazmak için kullanılır.
Tablolar arasında tanımsız bire-bir ilişki kurmak için kullanılır.
Tablolar arasında tanımsız bire-çok ilişki kurmak için kullanılır.
Tablolar arasında tanımlı bire-bir ilişki kurmak için kullanılır.
Tablolar arasında tanımlı bire-çok ilişki kurmak için kullanılır.
Tablolar arasında çoka-çok ilişki kurmak için kullanılır.
Varolan kolonları kullanarak ilişki oluşturmak için kullanılır.
Öncelikle bu kadar sade, kolay anlaşılır ve ayrıntılılarıda unutmadan yazdığınız için çok teşekkür ederim. Artık internette böyle tek yerden tüm işini görecek bilgi bulmak çok zor. Elinize emeğinize sağlık
Ellerinize sağlık. Paylaşımınız çok faydalı ve anlaşılır bir kaynak özelliği taşıyor.
Es Selamü Aleyküm Omer Hocam,
6.3 kullanıyorum lakin result grid alanı bir türlü gelmiyor. Örneğin creat table dedim, sonra personel tablosu oluşturdum içini personelid, personelad vs. doldurdum. Apply dedim sırasıyla. Tablo oluşturuldu. personel tablosuna sağ tuş select rows limit 1000 diyorum, diğer arkadaşlara bakıyorum result grid alanı geliyor ve değerler girebiliyorlar örnegin personel adını vs. alanları doldurabiliyorlar. ben ise o alana dahi ulaşamıyorum. yardımcı olabilir misiniz?
Aleyküm Selam, İşletim sistemi olarak ne kullanıyorsunuz? Apple ve GNU/Linux’lerde versiyon 6.3 için bu tarz problemler rapor ediliyor. En kestirme çözüm Workbench’i, 6.1’e downgrade etmek.