İlişkisel Veritabanı

yagmurcurku
5 min readNov 8, 2023

--

İlişkisel veritabanının ne olduğunu anlamak için öncelikle Veri nedir? Veritabanı nedir? Veritabanı Yönetim Sistemi nedir? sorularına cevap verelim, daha sonra da veritabanı ilişkilerini inceleyelim.

Veri Nedir?

Veri için, elimizdeki bilginin işlenmemiş ve herhangi bir anlam taşımayan yani anlamlı hale getirilmemiş halidir diyebiliriz. Bir işlem yapmak, analiz yapmak veya bir bilgi üretmek için veriler kullanılır. Böylece verileri kullanarak bir amaca hizmet ederiz ve onları anlamlı hale getirmiş oluruz.

Veritabanı Nedir?

Bir bilgisayar sisteminde elektronik olarak depolanan, yapılandırılmış bilgi veya veriden oluşan, içerisinde satır ve sütunlar barındıran tablolardan oluşan düzenli bir koleksiyondur. Yani veritabanları verileri belirli bir düzen içinde tutan ve bu düzen ile verilere daha etkili bir şekilde erişmeyi sağlayan yapılardır.

Veritabanı Yönetim Sistemi Nedir? (DBMS)

Veritabanları, verileri düzen içinde tutmaya yararken, bu veriler üzerinde çalışma yapmamızı sağlayan yapı ise Veritabanı Yönetim Sistemi yani Database Management System (DBMS)’dir. Veri tabanı yönetim sistemleri verileri düzenlemeye, saklamaya, güncellemeye, erişmeye vb. işlemlere yardımcı olan yazılım veya sistemlerdir. Temel görevleri veritabanlarını etkili bir şekilde kullanmak için bir arayüz sağlamalarıdır.

İlişkisel Veritabanı Nedir? (RDBMS)

İlişkisel veritabanı yani Relational Database Management System (RDBMS), verileri birbirleri ile organize olacak bir şekilde tutan ve veriye en hızlı en esnek şekilde ulaşmayı sağlayan sistemlerdir.

İlişkisel veritabanlarında bulunan tablolar ve bu tablolarda bulunan veriler belli başlı bazı kurallara göre yapılandırılarak belirli bir düzen içerisinde tutulurlar. Bu düzen verilere erişim sağlamak isteyen kullanıcıya kolaylık sağlamaktadır.

Bahsettiğimiz bu düzeni sağlayabilmek için kullanılan bazı anahtar türleri bulunmaktadır. Bu anahtar türleri veriler arasında bağlantı oluşturarak verilerin ilişkilendirilmesini sağlamaktadır. Sıkça kullanılan en temel anahtar kelimelerden bahsedecek olursak bunlar : Primary Key, Foreign Key ve Unique Key’dir.

  • “PK” — Primary Key (Birincil Anahtar): Tablodaki her satırın eşsiz yani benzersiz olmasını sağlayan bir anahtardır. Bu anahtar sayesinde her bir yeni kayıt oluşturulduğunda bu kayıt benzersiz olacaktır. Primary key olarak işaretlenmiş bir alan NULL değer alamaz.
  • “FK” — Foreign Key (Yabancı Anahtar): Yabancı anahtarlar bulunduğu tabloda, başka bir tablonun PK alanını tutar. Bu sayede diğer tablodaki PK alanına ait birden fazla kayıt oluşturulabilir ve oluşturulan bu kayıtların diğer tablodaki hangi alanla ilişkili olduğu tanımlanabilir. Yani FK kullanımı ile iki tablo arasında ilişki kurulabilir.
  • “UK” —Unique Key (Benzersiz Anahtar): Benzersiz olarak işaretlenen alanlar sayesinde bir tabloya girilen bir kayıt birdaha girilemez. Yani bu anahtar her kaydın tabloda yalnızca bir kez tutulabilmesini sağlar bu sayede veri tekrarı engellenerek veri bütünlüğü sağlanmış olur. Benzersiz anahtar ile işaretlenen alanlar NULL değer alabilir.

İlişkisel bir veritabanındaki tablolar arasında ilişki kurmak için üç farklı yöntem mevcuttur. Bunlar “One to One”, “One to Many” ve “Many to Many”dir.

One to Many

Bu ilişki türü en çok kullanılan ilişki türüdür. Bire çok ilişkilerde, bir A tablosundaki bir satıra ait B tablosunda birden çok kaydın bulunmasıdır diyebiliriz. Örnek olarak bir öğrencinin birden çok okul bilgisinin olmasını (A tablosu : Öğrenci, B tablosu : Okul) veya bir müşterinin birden fazla siparişinin olmasını (A tablosu : Müşteri, B tablosu : Sipariş) verebiliriz.

One to One

Bu ilişki türünde bir A tablosundaki bir satıra ait, B tablosunda yalnızca bir kaydın bulunmasıdır diyebiliriz. Örnek olarak bir kullanıcının yalnızca bir tane TC kimlik numarasının olmasını (A tablosu : Kullanıcı, B tablosu : Kimlik Bilgisi) verebiliriz.

Many to Many

Bu ilişki türüne iki tane One to Many ilişkiden dolayı ortaya çıkan bir ilişki türüdür diyebiliriz. Çoka çok ilişkilerde doğrudan iki tablo arasında ilişki kurulmaz, bunun yerine mutlaka bir tane ara tablo oluşturulur ve bu tablo üzerinden her iki tablonun da PK kolonları kullanılarak çoka çok ilişki sağlanır. Yani iki tablo arasında doğrudan bir ilişki olmaz, dolaylı bir ilişki olur. Örneğin bir A tablosu ile C tablosunun bire çok ilişkisi olsun ve bir B tablosu ile tekrardan C tablosunun bire çok ilişkisi olsun. Bu durumda A ve B tabloları çoka çok ilişkilendirilmiş olur. Bir örnek verecek olursak bir kişiye ait birden çok şirket olabileceği gibi bir şirkete ait birden çok personel(kişi) olabilir.

Şimdi tüm bu anlattıklarımızı bir örnek üzerinde pekiştirelim ve yazıyı sonlandıralım.

Örneğimizde bir araç kiralama sisteminin veritabanı diyagramını inceleyeceğiz.

RentACar ER Diagram

Verilen görselde görüldüğü üzere diagramda 7 tane tablo bulunmaktadır. Bu tablolar → Cars, Models, Brands, Users, Rentals, RentalDetails ve PaymentDetails’tır. Bu tablolar arasındaki bağlantıları gelin tek tek inceleyelim.

Öncelikle Rentals tablosuna bakalım. Her bir kiralama işlemi bu tabloda tutulmaktadır ve her bir kiralamanın bir ödeme bilgisi ve bir kiralama detayı bulunmaktadır. İşte burada iki tane One to One ilişki kullanılmıştır. RentalDetails tablosonun Id’si ile Rentals tablosunun Id’si eşleştirilmiş. Bu sayede bu iki tablo arasında bire bir ilişki kurulmuştur. Yani her bir Rentals satırı için sadece bir tane RentalDetails satırı oluşturulabilmektedir. Aynı işlem PaymentDetails tablosu ile Rentals tablosu arasında da yapılmıştır. İki tablonun da Id’leri eşleştirilmiştir. Bu sayede her bir Rentals satırı için sadece bir tane PaymentDetails satırı oluşturulabilmektedir.

Şimdi de Rentals, Cars ve Users tablolarına bakalım. Burada Cars ve Users tablolarının Id yani PK alanlarının Rentals tablosunda FK olarak verildiğini görüyoruz. Bunun sebebi burada bir Many to Many ilişkisinin olmasıdır. Bu ilişki Cars ve Users arasındadır, Rentals ise burada bu iki tablo arasındaki ilişkiyi kurmayı sağlayan ara tablodur. Bu ilişkinin mantığını düşünecek olursak her bir arabayı birden fazla kişi kiralayabilir ve her bir kişi birden fazla araba kiralayabilir şeklinde düşünebiliriz. Yani Many to Many ilişki kurmak için iki tablo arasında köprü görevi görecek başka bir tablo kullanılır ve diğer iki tablonun PK alanları bu tabloda FK olarak kullanılır.

Son olarak da Cars tablosu ile Models tablosu arasındaki ilişkiye ve Models tablosu ile Brands tablosu arasındaki ilişkiye bakalım. Burada iki tane One to Many ilişkisinin kullanıldığını görmekteyiz. Models tablosunun PK alanı Cars tablosunda FK olarak kullanılmıştır. Bunun sebebi, bir modelin birden fazla arabada kullanılabilecek olmasıdır. Yani bu sistemde aynı modele ait birden fazla araba bulunabilir. Bir diğer One to Many ilişki ise Brands ile Models tabloları arasındadır. Burada da Brands tablosunun PK alanı Models tablosunda FK olarak kullanılmıştır. Yani bunun anlamı bir markaya ait birden fazla model bulunabileceğidir.

NOT: İlişkili tablolarda ana tablodaki değerler silinmek istendiğinde hata alınacaktır. Bunun sebebi alt tablolarda ana tablodaki verilere bağlı verilerin bulunuyor olmasıdır. Bu işlem ile veri tutarlılığı sağlanmaktadır.

Umarım keyifli ve açıklayıcı bir okuma olmuştur. Hepinize iyi çalışmalar diliyorum.. ✨

--

--