RDMS ~ Relational Database Management Systems

Feyzaerat
3 min readNov 6, 2023

--

Verilerin her geçen gün büyümesi, veri çeşitliliğinin artması, kullanım alanlarının genişlemesi, gelişen teknolojiler vb. gibi faktörler, veritabanı yönetimini zorlaştırmış ve önemini arttırmıştır.

Bu probleme çözm bulmak için, veritabanı yönetimini daha kolay ve anlaşılır hale getirebilmek için ilişkisel veri tabanları ortaya çıkmıştır.

Peki ilişkisel veri tabanı tam olarak nedir ?

Bir veritabanında, tabloların statik olarak her veriyi barındırması yerine, kategorize ederek tabloları ayırmak, tekrar eden verileri gruplandırarak, bunları ayrı tablolarda tutmaktır. Bu tablolardaki veriler, birbirlerinin kimlik numaralarıyla birbirlerine bağlanırlar. Böylece daha sade ve yönetimi daha kolay bir yapı elde edilmiş olur.

Bu alanda yeniyseniz, bu teorik anlatım ilk başta biraz karmaşık gelebilir. Yapacağımız örnekler ve görsellerle, çok daha iyi oturacaktır. Ama örneklendirmeden önce, göz atmamız gereken bazı kavramlar var.

Primary Key : Genel olarak Identification number (id) olarak kullanılan primary key, bir veritabanında, tablolardaki verilere verilen benzersiz değerlerdir. Bu alan NULL olamaz ve tüm değerler birbirinden farklı olmalıdır. Aşağıdaki şemada görüldüğü gibi id alanı eşsizdir. Bir id, sadece tek bir kullanıcıya ait olabilir.

Foreign Key : İkincil anahtar olarak da bilinen foreign key, ilişki kurulan tablonun birincil anahtarıdır. İki tablo arasında ilişki kurmak istediğimde, birinci tablonun birincil anahtarını, ikinci tabloda ikincil anahtar olarak tanımlarız.Aşağıdaki şemada görüldüğü üzre user_role_id, foreign key’dir. Bu alan, user_roles tablosunda primary key’dir.

Veritabanı İlişki Türleri : Tablolar arasındaki ilişkiler bire-bir ilişki, bire-çok ilişki ve çoka-çok ilişki olmak üzere, 3 çeşittir. Bunlardan en sık kullanılan bire-bir ilişki tipidir. Bire-çok ilişki de epey sık kullanılır.

Bire - Bir : İki tablo arasındaki ilişkiyi kurmak için kullandığımız alanların ikisi de kendi tablolarında birincil anahtardır. Şemada görüldüğü gibi user_roles tablosundaki id (primary key), users tablosunda foreign key olarak verilmiştir.

Bire - Çok : İki tablo arasındaki ilişkiyi sağlamak için kullanacağımız alanlardan birisi birincil anahtar, diğeri ikincil anahtar ise bire çok ilişki olur. Aşağıdaki örnekte ilk tablo log kayıtlarını tutmaktadır. Id burada primary key iken, user_id froreign key olarak kullanılmıştır. logs tablosunda foreign key olarak tutulan user_id, users tablosunda primary key’dir.

Çoka - Çok : Bu tipte ilişki çok yönlü olduğundan, karmaşıklık yaratması muhtemeldir. Bu nedenle bu tip çok fazla tercih edilmez ve bire-çok ilişki tipine dönüştürülmesi önerilir. Aşağıda görüldüğü gibi, id alanı primary key’dir. Yine log kaydı tutmak amacı ile, kaydın hangi kullanıcı tarafından oluşturulduğunu göstermek amacıyla, createdBy_id alanı foreign key olarak verilmiştir. Bu createdBy_id, örneğin yukarıdaki gibi products tablosunda olsaydı, users ve products tabloları arasında bire-bir ilişki kurulmuş olacaktı. Fakat users tablosunda id hem primar hem foreign key olarak kullanıldı. Bu durum karmaşıklığa sebep olabilir.

--

--