Sonuç Bulunamadı

Aramanız hiçbir sonuçla eşleşmedi

İlişkisel Veritabanı Nedir?

İlişkisel veritabanı, birbirleriyle ilişkili veri noktalarını depolayan ve bu noktalara erişim sağlayan bir veritabanı türüdür. İlişkisel veritabanları, tablolardaki verileri temsil etmenin sezgisel ve basit bir yolu olan ilişkisel modeli temel alır. İlişkisel bir veritabanında tablodaki her satır, anahtar adı verilen, benzersiz bir kimliği olan bir kayıttır. Tablonun sütunlarında verilerin öznitelikleri bulunur ve her kaydın genellikle her bir öznitelik için bir değeri olduğundan, veri noktaları arasında ilişki kurmak kolaylaşır.

İlişkisel Veritabanı Örneği

Aşağıda küçük bir işletmenin ürünleri için siparişleri işlemek üzere kullanabileceği iki tablodan kolay bir örnek görüyorsunuz. İlk tablo, bir müşteri bilgileri tablosudur. Her bir kayıtta bir müşterinin adı, adresi, sevkiyat ve fatura bilgileri, telefon numarası ve diğer iletişim bilgileri bulunmaktadır. Her bir bilgi parçacığı (her bir öznitelik) kendi sütunundadır ve veritabanı, her bir satıra benzersiz bir kimlik (anahtar) atar. Bir müşteri siparişi tablosu olan ikinci tablonun her bir kaydında siparişi veren müşterinin kimliği, sipariş edilen ürün, miktar, seçilen büyüklük ve renk ve benzer bilgiler bulunur ancak müşterinin adı veya iletişim bilgileri bulunmaz.

Bu iki tabloda yalnızca bir şey ortaktır: kimlik sütunu (anahtar). Ancak ilişkisel veritabanı, bu ortak sütun nedeniyle iki tablo arasında ilişki oluşturabilir. Daha sonra şirketin sipariş işleme uygulama yazılımı veritabanına bir sipariş gönderdiğinde veritabanı, müşteri sipariş tablosuna giderek ürün siparişi hakkındaki doğru bilgileri alabilir ve müşterinin müşteri bilgileri tablosunda bulunan fatura ve sevkiyat bilgilerine bakmak için bu tablodaki müşteri kimliğini kullanabilir. Daha sonra veri ambarı doğru ürünü çekebilir, müşteri siparişi zamanında teslim alabilir ve şirket de ödeme alabilir.

İlişkisel Veritabanları Nasıl Yapılandırılır?

İlişkisel model, mantıksal veri yapılarının (veri tabloları, görünümleri ve dizinleri) fiziksel depo yapılarından ayrı olduğu anlamına gelir. Bu ayrım, veritabanı yöneticilerinin fiziksel veri depolama alanını bu verilere erişimi etkilemeden, mantıksal bir yapı olarak yönetebildikleri anlamına gelir. Örneğin, bir veritabanı dosyasını yeniden adlandırmak, kendi içinde depolanan tabloları yeniden adlandırmaz.

Ayrıca, mantıksal ve fiziksel depolama alanı arasındaki ayrım, uygulama yazılımlarının veritabanına ait veri ve yapıları işlemelerini sağlayan, açıkça tanımlanmış işlemler olan veritabanı işlemleri için de geçerlidir. Mantıksal işlemler, bir uygulama yazılımının ihtiyaç duyduğu içeriği belirlemesine olanak tanırken, fiziksel işlemler ise bu verilere nasıl erişilmesi gerektiğini belirleyip ardından görevi yerine getirir.

İlişkisel veritabanları, verilerin her zaman doğru ve erişilebilir olmasını sağlamak için belirli bütünlük kurallarına uyar. Örneğin bir bütünlük kuralı, veritabanına hatalı bilgi girme olasılığını ortadan kaldırmak için bir tabloda yinelenen satırlara izin verilmediğini belirtebilir.

İlişkisel Model

Veritabanlarının ilk yıllarında her uygulama yazılımı, kendi benzersiz yapısında veri depolamıştır. Geliştiriciler, bu verileri kullanmak için uygulama yazılımı oluşturmak istediklerinde ihtiyaç duydukları verileri bulmak için belirli veri yapıları hakkında çok şey bilmek zorundaydılar. Bu veri yapıları, iyi uygulama yazılımı performansı sağlamak için verimsiz olmalarının yanı sıra bunların bakımı ve optimizasyonu da zordu. İlişkisel veritabanı modeli, çoklu rastgele veri yapıları sorununu çözmek için tasarlanmıştır.

İlişkisel model, herhangi bir uygulama yazılımı tarafından kullanılabilecek verileri temsil etmek ve sorgulamak için standart bir yöntem sağladı. Geliştiriciler, başlangıçtan itibaren ilişkisel veritabanı modelinin en önemli artısının, yapılandırılmış bilgileri depolamak ve bu bilgilere erişmek için sezgisel, verimli ve esnek bir yol olan tabloları kullanmaktan geldiğini fark etti.

Zamanla, geliştiriciler bir veritabanında veri yazmak ve sorgulamak için yapılandırılmış sorgu dilini (SQL) kullanmaya başladıkça ilişkisel modelin diğer bir artısı ortaya çıkmıştır. Yıllardır veritabanı sorgu dili olarak SQL yaygın şekilde kullanılmaktadır. İlişkisel cebire dayanan SQL, tüm veritabanı sorgularının performansını iyileştirmeyi kolaylaştıran, kendi içinde tutarlı bir matematik dili sağlamaktadır. Buna karşılık, diğer yaklaşımlar bireysel sorguları tanımlamak zorundadır.

İlişkisel Veritabanlarının Avantajları

Basit ama güçlü ilişkisel model, her tür ve büyüklükteki kuruluşlar tarafından çok çeşitli bilgi ihtiyaçları için kullanılmaktadır. İlişkisel veritabanları; stokları takip etmek, e-ticaret işlemlerini işlemek, çok miktarda önemli müşteri bilgilerini yönetmek ve çok daha fazlasını yapmak için kullanılmaktadır. Veri noktalarının birbiriyle ilgili olduğu ve güvenli, kurallara dayalı ve tutarlı bir şekilde yönetilmesi gereken herhangi bir bilgi ihtiyacı için ilişkisel bir veritabanı düşünülebilir.

İlişkisel veritabanları, 1970'lerden bu yana sahnededir. Günümüzde ilişkisel modelin avantajları, onu veritabanları için en yaygın olarak kabul gören model yapmaya devam ediyor.

Veri Tutarlılığı

İlişkisel model, uygulama yazılımları ve veritabanı kopyaları ( örnekler) arasında veri tutarlılığını korumada en iyisidir. Örneğin, bir müşteri, bir ATM'ye para yatırdıktan sonra bir cep telefonunda hesap bakiyesine baktığında yatırılan paranın hemen güncellenmiş bir hesap bakiyesine yansıdığını görmeyi bekler. İlişkisel veritabanları, bu tür veri tutarlılığında olağanüstü başarılı olduğundan, bir veritabanının birden fazla örneğinin her zaman aynı verilere sahip olmasını sağlar.

Diğer veritabanı türlerinin büyük miktarda veriyle bu zamanında tutarlılık seviyesini sürdürmesi zordur. Günümüzde NoSQL gibi bazı veritabanları, yalnızca “nihai tutarlılığı” destekleyebilmektedir. Bu ilkeye göre veritabanı ölçeklendirildiğinde veya aynı anda birden fazla kullanıcı aynı verilere eriştiğinde verilerin “yakalanması” için bir süre geçmesi gerekmektedir. Bir ürün kataloğunda listeleri tutmak gibi bazı kullanım alanları için nihai tutarlılık kabul edilebilir, ancak alışveriş sepeti işlemleri gibi kritik iş operasyonları için ilişkisel veritabanı hala altın standart değerindedir.

Taahhüt ve Bölünmezlik

İlişkisel veritabanları, iş kural ve politikalarını taahhüt ile ilgili sert politikalarla oldukça ayrıntılı bir seviyede işlemektedir (veritabanı değişmezinde bir değişiklik yapmak gibi). Örneğin, her zaman birlikte kullanılan üç parçayı izleyen bir stok veritabanını düşünün. Bir parça stoktan çekildiğinde diğer ikisinin de çekilmesi gerekir. Üç bölümden biri mevcut değilse hiçbir parça çekilmemelidir. Yani, veritabanı herhangi bir taahhütte bulunmadan önce her üç bölüm de mevcut olmalıdır. İlişkisel veritabanı, üç parçanın tümü için taahhütte bulunabileceğini bilene kadar bir parça için taahhütte bulunmaz. Bu çok yönlü taahhüt özelliğine bölünmezlik denir. Bölünmezlik, verileri veritabanında doğru tutmanın ve verilerin iş kuralları, düzenlemeleri ve politikaları ile uyumlu olmasını sağlamanın anahtarıdır.

ACID ve İlişkisel Veritabanları

İlişkisel veritabanı işlemlerini dört önemli özellik tanımlar: bölünmezlik, tutarlılık, bağımsızlık ve dayanıklılık (genellikle ACID olarak anılır).

  • Bölünmezlik, tam bir veritabanı işlemi oluşturan tüm unsurları tanımlar.
  • Tutarlılık, veri noktalarını bir işlemden sonra doğru durumda tutmaya ilişkin kuralları tanımlar.
  • Bağımsızlık, karışıklığı önlemek için bir işlemin etkisini taahhüt edilene kadar başkalarına görünmez tutmaya devam eder.
  • Kalıcılık, işlem yapıldığında veri değişikliklerinin kalıcı olmasını sağlar.

Prosedürleri Kaydetme ve İlişkisel Veritabanları

Veri erişimi, birçok tekrarlı işlemi içerir. Örneğin, istenen sonucu elde etmek için bir veri tablosundan bilgi almaya yönelik basit bir sorgunun yüzlerce veya binlerce kez tekrarlanması gerekebilir. Bu veri erişim işlevleri, veritabanına erişmek için bir tür kod gerektirir. Uygulama yazılımı geliştiricileri, her yeni uygulama yazılımında bu işlevler için yeni kod yazmak istemezler. Neyse ki ilişkisel veritabanları, basit bir uygulama yazılımı çağrısı ile erişilebilen kod blokları olan prosedürlerin kaydedilmesine izin verir. Örneğin, tek bir kayıtlı prosedür, birden çok uygulama yazılımının kullanıcıları için tutarlı bir kayıt etiketlemesi sağlayabilir. Kayıtlı prosedürler, geliştiricilerin uygulama yazılımındaki bazı veri işlevlerinin belirli bir şekilde uygulanmasını sağlamalarına da yardımcı olabilir.

Veritabanı Kilitleme ve Eşzamanlılık

Birden fazla kullanıcı veya uygulama yazılımı aynı verileri aynı anda değiştirmeye çalıştığında veritabanında çakışma olabilir. Kilitleme ve eşzamanlılık teknikleri, verilerin bütünlüğünü korurken çakışma ihtimalini de azaltır.

Kilitleme, diğer kullanıcıların ve uygulama yazılımlarının veriler güncellenirken verilere erişmesini önler. Bazı veritabanlarında kilitleme, uygulama yazılımı performansı üzerinde olumsuz bir etki yaratan tüm tablo için geçerlidir. Oracle ilişkisel veritabanları gibi diğer veritabanları, kayıt düzeyinde kilitler uygulayarak tablodaki diğer kayıtları mevcut bırakıp daha iyi uygulama yazılımı performansı elde etmeye yardımcı olur.

Eşzamanlılık, birden çok kullanıcı veya uygulama yazılımı aynı anda aynı veritabanında sorgu başlattığında etkinliği yönetir. Bu özellik, kullanıcı ve uygulama yazılımlarına veri kontrolü için tanımlanan politikalara göre doğru erişim sağlar.

İlişkisel Veritabanı Seçerken Nelere Dikkat Edilmelidir?

İlişkisel bir veritabanında depolanan verileri saklamak, yönetmek, sorgulamak ve almak için kullanılan yazılıma ilişkisel veritabanı yönetim sistemi (RDBMSf) denir. RDBMS, kullanıcılar ve uygulama yazılımları ile veritabanı arasında bir arabirimin yanı sıra veri depolama, erişim ve performans yönetimi için yönetim işlevleri sağlar.

Veritabanı türleri ve ilişkisel veritabanı ürünleri arasında seçim yaparken kararınızı çeşitli faktörler yönlendirebilir. Seçtiğiniz RDBMS, iş ihtiyaçlarınıza bağlı olacaktır. Kendinize aşağıdaki soruları sorun:

  • Veri doğruluğu ihtiyaçlarımız nelerdir? Veri depolama ve doğruluğu iş mantığına dayanacak mı? Verilerimizin doğruluğa yönelik katı gereklilikleri var mı (örneğin, finansal veriler ve devlet raporları)?
  • Ölçeklenebilirliğe ihtiyacımız var mı? Yönetilecek verilerin ölçeği nedir ve bu ölçekten beklenen büyüme nedir? Veritabanı modelinin ölçeklenebilirlik için çoğaltılmış veritabanı kopyalarını (ayrı örnekler olarak) desteklemesi gerekecek mi? Eğer öyleyse bu örnekler arasında veri tutarlılığını koruyabilir mi?
  • Eşzamanlılık ne kadar önemlidir? Birden fazla kullanıcı ve uygulama yazılımının eşzamanlı verilere erişmesi gerekecek mi? Veritabanı yazılımı verileri korurken eşzamanlılığı destekliyor mu?
  • Performans ve güvenilirlik ihtiyaçlarımız nelerdir? Yüksek performanslı ve güvenilir bir ürüne ihtiyacımız var mı? Sorgu-yanıt performansına yönelik gereklilikler nelerdir? Satıcının hizmet seviyesi sözleşmelerine (SLA'lar) veya plansız kesintilere yönelik taahhütleri nelerdir?

Geleceğin İlişkisel Veritabanı: Kendi Kendini Yöneten Veritabanı

Yıllar geçtikçe ilişkisel veritabanları daha iyi, daha hızlı, daha güçlü ve birlikte çalışması daha kolay hale geldi. Ancak aynı zamanda daha karmaşık bir hale de geldiler ve veritabanı yönetmek, uzun süredir tam zamanlı bir iş durumunda. Geliştiriciler, işe değer katan yenilikçi uygulama yazılımları geliştirmeye odaklanmak için uzmanlıklarından yararlanmak yerine, zamanlarının çoğunu veritabanı performansını optimize etmek için gereken yönetim etkinliklerine harcamak zorunda kalmışlardır.

Günümüzde kendi kendini yöneten teknoloji, yeni bir ilişkisel veritabanı türü sunmak için ilişkisel modelin güçlü yönleri üzerinde yükselmektedir. Kendi kendini yöneten veritabanı (otonom veritabanı olarak da bilinir) ilişkisel modelin gücünden ve avantajlarından yararlanmaya devam eder ancak sorgu performansını ve yönetim görevlerini izleyip iyileştirmek için yapay zeka (AI), makine öğrenimi ve otomasyonu kullanır. Örneğin, kendi kendini yöneten veritabanı, sorgu performansını artırmak için sorguları daha hızlı hale getirecek dizinler konusunda varsayımda bulunup bu dizinleri test edebilir ve daha sonra en iyi dizinleri tek başına üretime sevk edebilir. Kendi kendini yöneten veritabanı, bu gelişmeleri insan müdahalesine gerek kalmadan, sürekli yapar.

Kendi kendini yöneten teknoloji, geliştiricileri veritabanını yönetmeyle ilgili sıradan görevlerden kurtarır. Örneğin, geliştiriciler artık altyapı gereksinimlerini önceden belirlemek zorunda değiller. Bunun yerine, kendi kendini yöneten bir veritabanıyla, veritabanı büyümesini desteklemek için gerektiğinde depolama alanı ekleyip kaynakları hesaplayabilirler. Geliştiriciler, yalnızca birkaç adımda kolayca kendi kendini yöneten bir ilişkisel veritabanı oluşturarak uygulama yazılımı geliştirme sürecini hızlandırabilirler.