Merhaba arkadaşlar bu ayki yazımda sizlere ilişkisel veritabanlarının özelliklerinden bahsedeceğim. Geçen sefer olduğu gibi konumuza başlamadan önce kısa bir giriş yapalım.
Veritabanı Nedir?
Veritabanı (database) en basit şekliyle verilerin tutulduğu, depolandığı bir sistemdir. Bilgisayar terminolojisinde yönetilebilir, güncellenebilir, taşınabilir bilgiler topluluğu olarak da adlandırılır. Veritabanlarını yöneten sistemlere de veritabanı yönetim sistemleri (VTYS, database management sytems) adı verilir. VTYS, yeni bir veritabanı yaratmak, veritabanlarını düzenlemek, güncelleme yapmak ve geliştirmek gibi birçok işlemin yapılmasını sağlar. Kullanıcı ile veritabanı arasında bir köprü görevi görür ve kullanıcının istediği bilgilere ulaşmasına yardımcı olur. Günümüzde en çok kullanılan başlıca veritabanları şunlardır; MySQL, Oracle, Microsoft SQL Server. Veritabanları yapısal olarak aynı değildirler. Verilere erişim ve verileri depolama bakımından farklılık gösterirler. Bunları 3 ana başlık altında toplayabiliriz. Hiyerarşik veritabanları, ilişkisel veritabanları ve nesneye yönelik veritabanları. Hiyerarşik veritabanları verileri bir ağaç yapısı şeklinde depolar. Yani kök konumunda bulunan bir kayıt ve buna bağlı dallar içeren bir yapısı vardır. Nesnesel veritabanlarında ise veriler nesneler halinde depolanır. Günümüzde tam olarak nesneye yönelik bir veritabanı yaygın değildir. Şimdi ilişkisel veritabanlarını inceleyelim.
İlişkisel Veritabanları
İlişkisel veritabanı mantığı 1970 yılında Dr. Edgar F. Codd tarafından yazılan “A Relational Model of Data for Large Shared Data Banks” adlı makalede ortaya atılmıştır. Bu makalede Codd; ilişkisel mantığı tanıtarak, gerçek hayattaki nesnelerin tablo olarak nasıl ifade edilebileceğini, bunların nasıl kullanılabileceğini anlatmıştır. İlişkisel sözcüğü veritabanında yer alan herhangi bir kaydın tek bir konu hakkında ve sadece o konuyla ilgili bilgileri içermesi gerektiğini ifade eder. İlişkisel veritabanlarındaki yapıda veriler tablolar halinde saklanır. Tablolar alanlardan (fields) ve alanlardaki kayıtlardan (records) oluşur. Bir tablodaki alanlar esas anahtar (primary key) olarak tanımlanabilirler. Kayıtlar ise tanımlanan anahtara göre sıralanırlar. Tablolar arasındaki ilişkiler belirtilir ve bunlar matematiksel ilişkilerle (bağıntı) temsil edilir. Bu ilişkiler iki tabloda da ortak bulunan alanlar aracılığıyla sağlanır. Ayrıca iki farklı konuyla ilgili bilgiler, mesela teklifler ve o teklife ait kalem bilgileri (döviz fiyatı, döviz kuru vs.), ilişkili veri değerlerine bağlı bir bütün olarak yönetilebilir. Örnek vermek gerekirse, verilen her teklifin firma adı ve firma adresini saklamak gereksiz olur. Bir teklif numarası gibi bir alan oluşturularak buna ait bilgileri kalem bilgilerinin bulunduğu tabloda tutarsak ve bunları birbirine bağlarsak gereksiz kalabalıktan kurtulmuş oluruz. İlişkisel veritabanları verinin hızlı geri alınımını sağlamasıyla birlikte daha birçok özelliğe sahiptir.
Verilerin bağlanması. İlişkisel veritabanı modeli ‘Anahtarlar’ (keys) kullanarak farklı içerikteki tabloların birbirlerine bağlanmasına izin verir. Sql dili kullanılarak çeşitli tablolardaki birbirine bağlı veriler tek seferde seçilebilir. Örneğin,
SELECT * FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.TEKLIFNO = TABLE2.TEKLIFNO
Verilerin etkin ve verimli depolanması. İlişkisel veritabanı modeline uyan bir veritabanı tasarımında her veri parçası sadece bir defa saklanır, yani sadece bir yerde. Sonuç olarak, her veri parçası (örneğin firma adı) veritabanındaki sadece bir yerden değiştirilebilir, eklenebilir veya kaldırılabilir.
Veri bütünlüğü. Alan özelliklerini ayarlayarak, tabloları birbiriyle ilişkilendirip bağlayarak ve veri bütünlüğü kurallarını uygulayarak verinin güvenilirliği arttırılabilir.
Kullanıcı izinleri. Birçok ilişkisel veritabanı sistemi hakların farklı kullanıcılara atanabildiği uygun bir yapı sunar. Bir kullanıcıya izin verilebilien veya izin verilemeyen bazı işlemler şunlardır; SELECT, INSERT, DELETE, ALTER vb. Bu haklar Sql dili kullanılarak yapılabilen işlemlere karşılık gelmektedir.
İlişkisel model bir standarttır. İlişkisel modelin kurallarına bağlı kalınarak verilerin kolay bir şekilde diğer ilişkisel veritabanı sistemlerine aktarılması mümkündür.
Veritabanındaki işlemleri yapmak için, mesela yeni veri saklamak, mevcut verileri seçmek veya mevcut verileri değiştirmek, Sql sorguları kullanılır. Sql dili anlaşılması kolay bir dildir ve farklı tablolardaki birbirine bağlı verileri seçmek gibi ileri düzeyde veritabanı işlemlerine izin verir.
Özetlemek gerekirse ilişkisel veritabanı yönetim sistemlerinde(RDBMS), tüm veriler tablolar içersinde yönetilir. Tablolar bir konuyla ilgili bilgileri saklar. Ayrıca iki veya daha çok tabloyu birleştirilebilir ve bunlardan istenilen bilgileri elde edilebilir. İlişkisel veritabanı yönetim sistemi veritabanlarının yapısını düzenler. Bununla birlikte, verilerin doğru ve etkin bir biçimde saklanılması, veri bütünlüğü ve değişiklik kayıtları adlı yöntemi sayesinde herhangi bir problemde verilerin kurtarılması sağlanır. Ve böylece verilerin ilişkisel veritabanı modelinin amacı olan yüksek verimlilik sağlanmış olur.
Evet arkadaşlar bir yazımızın daha sonuna geldik. İlişkisel veritabanı modelinin içerdiği verimlilik ve bütünlük dünya üzerinde bir tabu olma yolunda bir adım daha önde bence. Çünkü şu an birçok sistem, bilgilerini saklamak için bu modeli örnek almaktadır. Bunlar arasında mali kayıtlar, işyerlerindeki personel kayıtları belli başlıcalarıdır. Herkese iyi bayramlar dileyerek bir sonraki yazımızda tekrar görüşmek üzere şimdilik hoşçakalın :)
Kaynaklar:
• http://en.wikipedia.org/wiki/Relational_database • http://en.wikipedia.org/wiki/Relational_database_management_system • http://www.tekstenuitleg.net/en/articles/database_design_tutorial/3 • http://esntypc.forumlari.net/isletim-sistemleri-f82/veritabani-nedir-t331.html