Database Management Systems Northwind DB

MySQL ve İlk Veritabanını Yükleyerek Hazırlanıyoruz

Veritabanı sorgulama uygulamalarımızı ve sunucularımızı yükledik ve artık veritabanında çalışmaya hazırız. Veritabanlarında çalışmadan önce ufak bir giriş ile tabloları (tables) ve aralarındaki ilişkileri (relationships) inceleyelim.

Tabloların nasıl oluşturulduğu veya ilişkilerin nasıl oluşturulduğundan veritabanı oluşturma yazılarımda bahsedeceğim ancak ilk olarak tablo yapısına bir bakalım.

Yukarıdaki şemadan gördüğümüz üzere bir profesör tablosu, sınıf tablosu, room yani sınıf numaraları gibi düşünebilirsiniz ve course (ders adı) şeklinde görüyoruz. Tabloların arasındaki ilişkileri oklar ile gösterildiğini fark etmişsinizdir. Bu tip diyagramlara Crows-feet Notation adı verilir ve yine ileride veritabanı oluştururken bunları oluşturmayı öğreneceğiz.

Şemada gördüğümüz bir kursun birden çok sınıfta olabileceği, bir profesörün birden çok sınıfta ders verebileceği, ve her sınıfın da bir room yani derslik kullandığını anlayabiliriz. Ancak buralardaki CREATE TABLE tablo oluşturmak içindir. Buralar kafanızı karıştırmasın hepsini öğreneceğiz.

Bir veritabanı oluşturmadan önce var olan bir tabloda sorgulama yapmayı öğreneceğiz. Aşağıda linkini vermiş olduğum Northwind database adında büyük bir veritabanında işlemlerimizi yürüteceğiz.
İlk önce sorgulamaları öğrenmemizin amacı bu şekilde bir veritabanı oluşturmanın zamanımızı verimli kullanmamızı engelleyecektir. Bu yüzden üstünde çalışma yapabileceğimiz hazır tabloları kullanıyoruz.

Sorgulama işlemlerine geçmeden önce bilmeniz gerektiğini düşündüğüm bir nokta var. Tablo yaratılırken PROFESSOR tablosunu incelerseniz PROF_ID NUMBER PRIMARY KEY, olarak belirlenmiş.
Primary Keyler genellikle verilerin ID’leri için kullanılırlar ve asla değiştirilemezler. Peki neden buna ihtiyaç duyuldu ?

Üniversitede çalışan iki adet profesörün adının aynı olduğunu varsayalım ki bu çok büyük projelerde mümkün olabilecek bir şeydir. Bu iki profesörün birbirinden ayrılabilmesi için özel ID’leri olması gereklidir ve bu ID’lerin primary key olarak tanımlanması gereklidir. Çünkü bu ID’ler onlara özgü değiştirilemez bir kimliktir gibi düşünebiliriz.
Veritabanı oluşturmadan önce bunlar karmaşık gelebilir ancak var olan tablolar ile sorgulama yaptıktan sonra tablo oluşturmaya geldiğimizde öğreneceğiniz her şeyin hızı artacak o yüzden şimdi bunlar üzerinde takılmaya gerek yok.

İlk olarak yazılarımda belirtmiş olduğum gibi MySQL Workbench kullanacağım ve örnekleri bunun üzerinden yapacağız ama tabiki kullandığınız editörün pek bir önemi yok. Biraz farklılıklar gösterebilir ve aynı şeyleri yapamazsanız Google yardımınıza koşacaktır :).

MySQL database ve server kurduktan sonra MySQL Workbench giriyoruz ve aşağıdaki ekran görüntüsünde gördüğünüz MySQL Connections kısmından yeni yerel sunucunuzu yarattıktan sonra neredeyse yapacağınız her şey bitmiş oluyor.

Northwind Github

Vermiş olduğum linkteki Northwind veritabanındaki verileri ilk olarak yüklemeyi öğrenelim. Github linkindeki northwind.sql ve northwind-data.sql dosyalarını açalım ve raw şeklinde görüntülediğimiz kodları indirelim. Sql dosyaları bilgisayarımıza indikten sonra,

Ekran görüntüsünde görülen yerdeki open sql script kısmından her iki dosyadaki verilerimizi yüklüyoruz ve artık veritabanımız kullanılmaya hazır.

Northwind veritabanını incelemek için aşağıdan Schemas kısmına tıklayalım. Northwind tablomuz buraya düşecektir. Eğer gözükmez ise üstteki SCHEMAS yazan kısmın sağ tarafındaki yenile kısmından yenilediğinizde gelecektir.

Northwind veritabanında customers (müşteriler), employees (çalışanlar), inventory_transaction (envanterdeki satılan ürünler), orders (siparişler), products (ürünler) v.b görmüşsünüzdür. Oldukça büyük bir veritabanı olan Northwind veri tabanı ile SQL dilinde sorgulamalarımıza (Query) başlayalım.

Sol üst köşedeki +SQL butonundan ilk sorgulama ekranımızı açalım.

Evet artık kurulumumuzu yaptığımızı, veritabanını yüklediğimizi varsayıyorum ve artık sorgulama dilini öğrenme zamanımız geldi. Baştan yapanlar için buralar zaman alabileceği için bu yazımı burada sonlandırıyorum sonraki yazılarımızda sorgulama dilini öğrenmeye başlayacağız.