Veritabanı motoru tam olarak nedir?


14

Http://en.wikipedia.org/wiki/Database_engine tanımını birkaç kez geçtim :

Bir veritabanı motoru (veya "depolama motoru"), bir veritabanı yönetim sisteminin (DBMS) veritabanından veri oluşturmak, okumak, güncellemek ve silmek (CRUD) için kullanılan temel yazılım bileşenidir .

Anlamadığım şey ne kaldı, veritabanlarının yaptığı gibi CRUD değil mi?

Veritabanı motoru bu işlevleri yerine getirirse, veritabanının geri kalanı ne işe yarar?


Kalın olarak sorulan soruya doğrudan bir cevap ( veritabanının geri kalanı ne işe yarar ? ) İçin Bryan'ın cevabına bakınız. Bir veritabanı motorunun ne yaptığı konusunda daha fazla netlik için CRUD'nin yanı sıra Leigh'in cevabına bakınız.
nealmcb

Yanıtlar:


15

CRUD, kalıcı depolama ile ilgili olduğu için bir veritabanı için gerekli özellikleri tanımlamayı amaçlamaktadır. Bir veritabanı motoru tarafından yapılabilecek her şeyi açıklamak değildir.

Bir karşılaştırma yapmak için, temel olarak bir araç, nakliye için kullanılan bir cihazdır. Doğru olsa da, bu tanım kesinlikle modern bir otomobilde yer alan tüm detayları içermez.

Bir veritabanı motoru, birden fazla kullanıcıyı, işlemleri , MVCC (Çok Amaçlı Eşzamanlılık Kontrolü) , tamponları ve önbellekleri, ACID'yi (atomisite, tutarlılık, izolasyon, dayanıklılık) ve farklı izolasyon seviyelerini işleyebilir . Okuma, verileri istekte bulunan uygulamaya sunmak için birden çok açık ve / veya kapalı kod yolu aracılığıyla SQL kullanarak SQL'den işleyen diskteki bellekten, uzak veritabanlarından ve birden çok tablodan alabilir. Bir oluşturma, veri depolamadan önce depolama alanı, provizyon yapıları, değerler atayabilir ve kendi işlemlerini yapabilir. Vb.


Bu çok kompakt ama eksiksiz bir cevaptır. +1 !!!
RolandoMySQLDBA

BTW Belirli araç tipine karşı araç hakkında hoş bir benzetme.
RolandoMySQLDBA

Bence İşlemler, ACID garantisi, izolasyon seviyeleri, Eşzamanlılık kontrolü, tamponlar, önbelleklerin tümü Veritabanı Motorunun kendisi tarafından ele alınır. Neden böyle söylüyorum? ... Bu linux.org/threads/an-introduction-to-mysql-storage-engines adresini ziyaret
Shatu

@Yüksek, Eşzamanlılık (eksiklik) DBMS'nin değil , depolama motorunun bir özelliği değil mi? DBMS'nin bir özelliği varsa, neden MariaDB / MySQL MyISAM gibi bazı depolama motorları için işlem yapamıyordu?
Pacerier

@Pacerier - Bu, DBMS ve depolama motoru arasında bir ayrım yapan sistemler için geçerli olabilir, diğerleri için bu ayrım anlamsızdır.
Leigh Riffel

12

Bazı veritabanları, işe en uygun olana bağlı olarak birçok motoru çalıştırabilir. Örneğin, uygulamalarımın çoğu InnoDB'yi çoğu veri için (anahtar kısıtlamaları ve satır düzeyi kilitleme), oturum verileri için MyISAM (hızlı, daha az işleme) ve denetim izi için ArchiveDB (yalnızca sıkıştırılmış ve ekle / seç, güncelleme / silme yok) kullanır.

Veritabanı yazılımının "geri kalanı", API'ler veya terminaller aracılığıyla kullanım için ortak bir arayüz sağlar, karmaşık eylemlere (birleşimler, alt sorgular vb.) İzin verir ve dahil edilen motorların durumunu / durumunu ve yapılandırmasını yönetir. Bir motorun beslenmesi ve bakımı için çok şey vardır ve veritabanı yazılımı tüm bu karmaşıklığı gizler.


Cesurca sorulan soruyu cevapladığınız için teşekkürler!
nealmcb
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.