Veritabanı motoru - Database engine

Bir veritabanı altyapısı (veya depolama motoru ) bir temeldeki yazılım bileşenidir veritabanı yönetim sistemi (DBMS) kullandığı için , güncelleme ve silme, oluşturma okumak (CRUD) verileri bir gelen veritabanı . Çoğu veritabanı yönetim sistemi , kullanıcının DBMS'nin kullanıcı arayüzünden geçmeden temel motorlarıyla etkileşime girmesine izin veren kendi uygulama programlama arayüzünü (API) içerir.

"Veritabanı motoru" terimi, sıklıkla " veritabanı sunucusu " veya "veritabanı yönetim sistemi" ile birbirinin yerine kullanılır . Bir "veritabanı örneği", çalışan veritabanı motorunun süreçleri ve bellek yapılarını ifade eder .

Depolama motorları

Modern DBMS'lerin çoğu, aynı veritabanı içinde birden çok depolama motorunu destekler. Örneğin, MySQL destekleyen InnoDB yanı sıra MyISAM .

Bazı depolama motorları işlemseldir .

İsim Lisans işlemsel
Arya GPL Numara
Şahin GPL Evet
InnoDB GPL Evet
MyISAM GPL Numara
InfiniDB GPL Numara
TokuDB GPL Evet
kablolu kaplan GPL Evet
XtraDB GPL Evet
RocksDB GPL v2 veya Apache 2.0 Evet

Ek motor türleri şunları içerir:

Tasarım konuları

Bir veritabanındaki bilgiler, verili donanım özelliklerine göre verimli bir şekilde okunabilen ve bunlara yazılabilen depolamadaki veri yapıları olarak düzenlenmiş bitler olarak depolanır . Tipik olarak, depolamanın kendisi, veritabanları da dahil olmak üzere, depolamayı kapsamlı bir şekilde kullanan çeşitli alanların gereksinimlerini karşılamak üzere tasarlanmıştır. Çalışmakta olan bir VTYS , ilgili yerleşim yöntemleriyle birlikte çeşitli depolama türlerini (örneğin, bellek ve harici depolama) her zaman aynı anda kullanır.

Prensipte, veritabanı depolaması, bu adres alanında her veri bitinin benzersiz adresine sahip olduğu doğrusal bir adres alanı olarak görülebilir . Uygulamada, adreslerin yalnızca çok küçük bir yüzdesi ilk referans noktaları olarak tutulur (bu da depolama gerektirir); çoğu veriye, yer değiştirme hesaplamaları (referans noktalarından bit cinsinden uzaklık) ve ihtiyaç duyulan tüm verilere erişim yollarını tanımlayan (işaretçiler kullanarak) veri yapıları kullanılarak, ihtiyaç duyulan veri erişim işlemleri için optimize edilmiş, dolaylı yoldan erişilir.

Veritabanı depolama hiyerarşisi

Bir veritabanı, çalışırken, aynı anda birkaç depolama türünde bulunur ve bir depolama hiyerarşisi oluşturur . Çağdaş bilgisayarların doğası gereği, VTYS'yi barındıran bir bilgisayarın içindeki veritabanı bölümünün çoğu geçici depolamada bulunur (kısmen çoğaltılır). İşlenen/manipüle edilen veriler (veritabanının parçaları) bir işlemcinin içinde, muhtemelen işlemcinin önbelleklerinde bulunur . Bu veriler, tipik olarak bir bilgisayar veriyolu (şimdiye kadar tipik olarak geçici depolama bileşenleri) aracılığıyla belleğe okunur/yazılır . Bilgisayar belleği, tipik olarak standart depolama arabirimleri veya ağlar (örneğin, fiber kanal , iSCSI ) aracılığıyla harici depolamaya (buna/bundan aktarılan) verileri iletir . Bir depolama dizisi , ortak bir harici depolama birimi, tipik olarak (yine standart arabirimler aracılığıyla) sürücülere, muhtemelen farklı hızlarda bağlanan ( geçici ve hızlı) DRAM'den oluşan hızlı bir önbellekten, tipik olarak kendi depolama hiyerarşisine sahiptir , gibi flash sürücüler ve manyetik disk sürücüleri (uçucu olmayan). Sürücüler, tipik olarak üzerinde büyük bir veri tabanının en az aktif kısımlarının bulunabileceği manyetik bantlara veya veri tabanı yedekleme nesillerine bağlanabilir.

Tipik olarak, şu anda depolama hızı ve fiyat arasında bir korelasyon bulunurken, daha hızlı depolama tipik olarak değişkendir.

Veri yapıları

Veri yapısı, verileri iyi tanımlanmış bir şekilde yerleştiren soyut bir yapıdır. Verimli bir veri yapısı, verilerin verimli yollarla işlenmesine izin verir. Veri işleme, çeşitli modlarda veri ekleme, silme, güncelleme ve geri almayı içerebilir. Belirli bir veri yapısı türü, belirli işlemlerde çok etkili ve diğerlerinde çok etkisiz olabilir. VTYS geliştirmesi üzerine, içerdiği veri türleri için gereken işlemleri en iyi şekilde karşılamak üzere bir veri yapısı türü seçilir. Belirli bir görev için seçilen veri yapısı türü, tipik olarak içinde bulunduğu depolama türünü de dikkate alır (örneğin, erişim hızı, erişilen depolama yığınının minimum boyutu, vb.). Bazı DBMS'lerde veritabanı yöneticileri, performans nedenleriyle kullanıcı verilerini içerecek veri yapısı seçenekleri arasından seçim yapma esnekliğine sahiptir. Bazen veri yapıları, veritabanı performansını ayarlamak için seçilebilir parametrelere sahiptir.

Veritabanları, verileri birçok veri yapısı türünde depolayabilir. Yaygın örnekler şunlardır:

Veri yönlendirme ve kümeleme

Geleneksel satır oryantasyonu tersine, ilişkisel veri tabanları da olabilir kolon odaklı veya ilişkisel da herhangi bir yapıda veri depolamak şekilde.

Genel olarak, genellikle birlikte kullanılan farklı türdeki veritabanı nesneleri, "kümelenmiş" olarak depoya yakın bir yere yerleştirilirse, önemli performans artışı elde edilir. Bu genellikle gerekli ilgili nesnelerin minimum sayıda girdi işlemiyle (her biri bazen büyük ölçüde zaman alan) depolamadan alınmasına izin verir. Bellek içi veritabanları için bile kümeleme, bellekteki giriş-çıkış işlemleri için büyük önbelleklerin ortak kullanımı nedeniyle benzer sonuç davranışıyla performans avantajı sağlar.

Örneğin, stoktaki bir "ürün" kaydını, ilgili tüm "sipariş" kayıtlarıyla birlikte kümelemek faydalı olabilir. Belirli nesnelerin kümelenip kümelenmeyeceğine ilişkin karar, nesnelerin kullanım istatistiklerine, nesne boyutlarına, önbellek boyutlarına, depolama türlerine vb. bağlıdır.

Veritabanı indeksleme

Dizin oluşturma, bazı depolama motorlarının veritabanı performansını artırmak için kullandığı bir tekniktir. Birçok dizin türü, bir sorgu çalıştırırken her girişi inceleme ihtiyacını azaltma ortak özelliğini paylaşır. Büyük veritabanlarında bu, sorgu süresini/maliyetini büyüklük sıralarına göre azaltabilir. En basit dizin biçimi , bir kitabın arkasındaki dizine benzer şekilde, girdinin konumuna bitişik bir referansla ikili arama kullanılarak aranabilen sıralanmış bir değerler listesidir . Aynı veriler birden fazla dizine sahip olabilir (bir çalışan veritabanı, soyadı ve işe alma tarihine göre dizine eklenebilir).

Endeksler performansı etkiler, ancak sonuçları etkilemez. Veritabanı tasarımcıları, uygulama mantığını değiştirmeden dizin ekleyebilir veya kaldırabilir, bu da veritabanı büyüdükçe ve veritabanı kullanımı geliştikçe bakım maliyetlerini azaltır. Dizinler veri erişimini hızlandırabilir, ancak veritabanında yer kaplarlar ve veriler her değiştirildiğinde güncellenmeleri gerekir. Bu nedenle dizinler veri erişimini hızlandırabilir, ancak veri bakımını yavaşlatabilir. Bu iki özellik, belirli bir endeksin maliyete değip değmediğini belirler.

Referanslar

Dış bağlantılar