İlişkisel Veritabanı Yönetim Sistemleri (İVTYS)

Günümüzde sıkça kullandığımız bir çok veritabanı sistemi mimari olarak ilişkisel veritabanı  modelini kullanmaktadır. İlişkisel Veritabanı Yönetim Sistemi (Relational Database Management System kısaca RDBMS) olarak adlandırılan bu sistemler veritabanının sağlıklı şekilde çalışması ,veri tutarlılığı ve veri bütünlüğü gibi konularda bize oldukça büyük faydalar sağlar.

# Veritabanı kavramı hakkında yeterli bilginiz yoksa Veritabanı Nedir? makalemizi okumanızı tavsiye ederiz.


İlişkisel Veritabanı Yönetim Sistemi (İVTYS) Nedir

İlişkisel Veritabanı Yönetim Sistemlerinde(İVTYS) veriler tablolar içerisinde satırlar ve sütunlarda tutulur. Birbiri ile ilişkili verileri tuttuğumuz tablolar arasında ilişki (bağ) kurarak veritabanımızı inşa etmemizi sağlayan sistemlere ise İlişkisel Veritabanı Yönetim Sistemleri denir.

Peki tablolar arasında bu ilişkilendirmeleri yapmak bize ne gibi faydalar sağlıyor? Bundan bahsetmeden önce kavramların anlaşılması için tablo gibi kullandığımız çeşitli yapılardan bahsetmekte fayda var. 


Veritabanında Tablo Nedir

İliskisel Veritabanı Sistemleri Tablo
Firma personellerinin ve çalıştıkları departman verisinin kayıtlı olduğu veritabanı tablosu
  • Tablo, satır ve sütunlardan oluşan verilerin tutulduğu veritabanı elemanıdır.
  • Bir veritabanı içerisinde birden fazla tablo bulunabilir. Oluşturulan sisteme göre tablo sayınız değişiklik gösterebilir.

Bilgiler (İsmi,Soyismi,Şehir,Tel,Fiyat gibi) sütunlar ile ifade edilir. Kayıta ait bilginin tümüne ise satırlar ile ulaşılmaktadır.

Örn: FirstName sütunu Personel isimleri bilgisini, LastName sütunu Personel soy isimleri bilgisini tutmaktadır. Fakat Personel Ken’e  ait tüm bilgilere(kayıta) ulaşmak için 1. Satıra  yada Roberto’nun soyadı ve departmanı gibi bilgileri öğrenmek için 3.Satıra bakmalıyız.Tablo konusunu da anladığımıza göre artık tablolar arasında ilişkileri nasıl kurduğumuz konusuna geçebiliriz.

Veritabanında İlişki (Relation) Nedir

İlişkilerimizi tabloların anahtar sütunları arasında bağlantılar kurarak yaparız. Peki nedir bu anahtar sütunlar?

Tablomuzda tuttuğumuz her bir kayıta ait verilere ulaşmak için bir yada birden fazla sütunu seçerek o sütun üzerinden verilerimize ulaşırız.Yani belirlediğimiz sütun bizim kayıta ulaşmamız için bir nevi aracı görevi görür.

Personel No Adı SoyadıTelefonŞehir
1MuratYılmaz455-5444İstanbul
2SadiSonar555-6666Bursa
3YeşimGüler888-8888İstanbul

Yukarıdaki Tablodan yola çıkalım. Murat’ın Bilgilerine ulaşmak istediğimizde veritabanımız dan adı “Murat” olan kişinin bilgilerini getirmesini isteriz. Veritabanı Adı sütununa giderek buradaki veriler içerisinde “Murat” verisini arar. Arama sonucu olumlu ise bulduğu sonucu bize gösterir.  Bu şekilde yaptığımız aramalar bazı sorunları da beraberinde getirmektedir.

Aynı isimde yada soy isimde farklı çalışanlarımız olabilir. Böyle bir durumda adı “Murat” olarak kayıtlı tüm kişilerin bilgileri bize gösterilir. Bu sorunu önlemek için her bir kayıtı eşsiz ve benzersiz şekilde tanımlayan (Yani aynı ve boş (NULL) veri içermeyen) sütun belirler. İşlemlerimizi o sütun üzerinden yaparız.

Yukarıdaki tablomuzda “Personel No” sütunu bu görevi görmektedir.

“Personel No = 3” olan kayıtı görmek istediğimizde karşımıza Yeşim Güler’in kayıtı çıkacaktır.  Bu şekilde her bir kayıtı eşsiz ve benzersiz şekilde tanımlayan sütunlar Anahtar Sütunlardır.

Günlük hayatımızda kayıtlarımız sırasında bize verilen Okul No, Üniversite No, Üye No gibi bilgilerde aslında bizim sistemde kayıtlı bilgilerimize ulaşmak için kullanılan anahtar verilerdir.
Not: Şuan konumuz olmasa da ön bilgi olması açısından fayda var. Anahtar sütun olarak belirlediğimiz bu sütunu veritabanımıza bildirmemiz gerekir. Yukarıdaki personel tablomuzu veritabanımızda oluştururken “Personel No” sütunumuzu Primary Key olarak belirleriz bu sayede Personel No sütunun anahtar görevinde kullanılacağını VTYS sistemimiz anlamış olur.
# Primary Key – Foreign Key Nedir  Makalemizde anahtarlar hakkında daha detaylı bilgi bulabilirsiniz.

->Anahtar Sütunlar ile İlişkilendirme Örnek

İliskisel Veritabanı Nedir
Yukarı Personel ve Personellerin bölüm bilgisini tutan Bölüm Tablosu yer almaktadır. – İliskisel Veritabanı

Yukarıdaki resimde personel bilgisini tutan Personel tablomuzu  ve firmamızdaki bölümlerin bilgisini tutan Bölüm tablosunu görüyoruz. Ebru Semiz’in hangi bölümde çalıştığını sorduklarında Bölüm nolarını karşılaştırarak Pazarlama bölümünde çalıştığı cevabını verirsiniz. Fakat veritabanımız biz ona hangi sütunlara bakarak bu karşılaştırmayı yapması gerektiğini belirtmediğimiz sürece böyle bir işlem gerçekleştiremez. Bu yüzden Bölüm Tablosunun Primary Keyi(Anahtar Sütunu) Olan Bölüm No Sütunu ile Personel Tablosundaki Bölüm No sütunu VTYS üzerinden ilişkilendirilir.  

Bu sayede Personel tablosundaki Yağız Yıldız’ın çalıştığı “4” nolu bölüm, Bölümler tablosundaki “4” nolu bölüm olan Üretim ile eşleşir.  İlişki sayesinde veritabanı artık Yağız Yıldız’ın Üretim bölümünde çalıştığı bilgisinide depolamış olur .

Not: “Bölüm Tablosunun” Primary Keyini(Bölüm No) “Personel Tablosundaki” Bölüm No sütunu ile ilişkilendirdiğimizde “Personel tablosundaki” Bölüm No sütunun Foreign Key(Yabancı Anahtar) olarak belirlemiş olduk. Yani Bir Tablodaki Primary Key diğer tablo ile ilişkilendiriliyorsa, ilişki kurulan taraftaki kısım bizim Foreign Key(Yabancı Anahtarımız) olmuş oluyor.
Kafanızda neden iki farklı tablo oluşturma gereği duyduğumuz ile ilgili sorular oluşmuş olabilir. Tek tabloda personel isminin yanına çalıştığı bölüm bilgisini yazarak hiç ilişki ile uğraşmadan da bu veriyi tutabilirdik diye düşünebilirsiniz. Ama maalesef her zaman işler öyle yürümüyor. 🙂 Merak etmeyin dostlar ilerleyen makalelerde bu kullanım şeklinin mantığını daha iyi anlayacaksınız bu yüzden şimdilik bu konuyu düşünmeden ilişki kurulumuna odaklanmaya çalışın 🙂

İlişkisel Veritabanı Yönetim Sistemlerinin Faydaları

–  Bazı kavramların anlaşılması adına yukarıdaki tablo üzerinden örnek verilerek açıklanmıştır.

  • Veri Tekrarı (Data Redundancy): Aynı verilerin tekrarlanması önlenir.
  • Veri Tutarlılığı (Data Consistency): Personel tablosuna personelin bölümü yazıldığında sistem böyle bir bölümün Bölüm tablosunda olup olmadığını kontrol eder. Eğer yanlış bir giriş yapılmışsa hata ile karşılaşırız. Aynı zamanda verinin farklı yerlerde kopyasının bulunmasından kaynaklı güncelleme sorunuda çözüme kavuşur. Güncelleme sorununun anlaşılması için bir örnek verelim.

Örn: Üretim bölümünde 100 kişinin çalıştığını ve Bölüm No ile ilişkilendirilmiş iki tablo kullanmak yerine her çalışanın isminin yanına çalıştığı bölümü yazarak  tek tablomuzu oluşturduğumuzu düşünelim.

Personel NoİsimBölüm Adı
1Ömer ToprakHalkla İlişkiler
2Yağız YıldızÜretim

Gördüğünüz şekilde oluşturduğumuz tabloda üretim bölümünün adı değiştiğinde 100 kişi için Bölüm Adı bilgisini güncellemek zorunda kalırız. Fakat Bölüm No üzerinden ilişkilendirdiğimiz yukarıdaki tablomuzda bölüm bilgisine ulaşmak için her defasında Bölüm Tablosunun “4” nolu kaydına gidilir.

Bu sayede Bölümler tablosundaki Üretim bilgisini güncellememiz yeterli olur. “Üretim” yerine “Ürün İmal Bölümü” olarak güncellediğimiz varsayalım. “4” nolu kayıta gelen her veri “Ürün İmal Bölümü” ile karşılaşacağı için tüm kayıtlar için güncelleme sağlanmış  veri tutarlılığı korunmuş olur.

  • Veri Bütünlüğü (Data Integrity): Verinin farklı tablolarda ayrıldığı durumlarda,  verilerin tümünün bir bütün olarak kullanılmasını sağlar. Örneğin: Üretim Bölümü silinmek istendiğinde o bölümle ilişkilendirilmiş personeller varsa sistem bizi uyarır. Aksi halde üretim bölümünü sildiğimiz de o bölümde çalışan personellerin çalıştıkları bölüm bilgisi boş kalacaktır. Dilersek tüm üretimle ilişkili verileri silebilir yada silme işleminden vazgeçebiliriz.
  • Veri Güvenliği (Data Security): Yetkilendirme sistemi sayesinde hangi verilere kimin ulaşabiliceğini belirleyerek verileri koruma altına alırız.
  • Veri Paylaşımı | Eşzamanlılık (Concurrency): Bir veritabanına veri bütünlüğü ve tutarlılığı bozulmadan ağ üzerinden binlerce kullanıcı tarafından erişim sağlanabilir.
  • Veri Bağımsızlığı (Data Independence): Kullanıcıdan arka planda verilerin fiziksel alan üzerinde nasıl depolandığı yada ne tarz algoritmalar ile organize olduğunun gizlenmesidir. Sadece veriler üzerinden işlemlerini gerçekleştirebilir.

Yararlanılan Bazı Kaynaklar: “A Relational Model of Data for Large Shared Data Banks” , Vikipedia – RDBMS

Ümit Köysu

Hayatını kitaplar ve oyunlar arasında geçirmekten zevk alan, bilim kurgu aşığı her nevi yazılımcı, bir nevi mühendis kişi Bilgi paylaştıkça çoğalır felsefesi ile Başkakabirkod.com okurlarına içerikler hazırlamaya devam ediyor.

Bir cevap yazın

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

Başa dön tuşu