ACID Nedir? Acid Yazılım Prensipleri Nelerdir? Mülakat Soruları
Tags: programming, beginners, tutorial, productivity
Published: 2024-01-07 06:05:00


**Atomicity**
ÖZET: İşlem sırasında birden fazla veritabanı/tablodaki verinin güncellenmesi gerçekleşiyor ise tüm bunların hepsi birden başarılı olacaktır veya başarısız olacaktır.
Transaction işlemini bir bütün olarak görür.
**Consistency**
ÖZET: Transaction tam anlamı ile gerçekleşinceye kadar (constraints, cascades, triggers) işlemden etkilenen verilerin değerlerinin bir önceki geçerli değeri vermesidir.
Veritabanındaki verinin geçerli durumunun, bir sonraki geçerli duruma geçmesidir.
**Isolation**
Transaction'ların birbirlerinin işlemlerinden etkilenmemesi için işlemler Seri olarak yapılması gerekir. Transaction sırasında ilgili ve etkilenecek veri setleri kilitlenir. Taki işlem başarılı ve başarısız olarak sonuç dönünceye kadar.
Aynı anda aynı veri üzerinde birden fazla Transaction değiştirme gereksinimi olabilir.
**Durability**
ÖZET: Transaction sırasında fiziksel veya işlemsel bir hata olması durumunda sistemin kendisini bir önceki geçerli veri durumuna döndürebilme kabiliyetidir.

Soru 1: ACID ne anlama gelir ve veritabanı işlemlerinde ACID özellikleri neden önemlidir?

ASİT Atomiklik, Tutarlılık, İzolasyon ve Dayanıklılık anlamına gelir. ACID özellikleri, veritabanı işlemlerinin bütünlüğünü ve güvenilirliğini sağlamak için çok önemlidir.

Soru 2: Two-Phase Commit (2PC) dağıtılmış işlemlerde ACID özelliklerinin elde edilmesine nasıl katkıda bulunur?

İki Aşamalı Taahhüt, dağıtılmış işlemlerde birden fazla katılımcıyı koordine ederek Atomiklik ve Tutarlılık sağlar. Anlaşma için bir hazırlık aşamasını ve katılımcıların oylarına dayalı bir taahhüt/iptal aşamasını içerir.

Soru 3: Hangi senaryolarda kesin tutarlılık yerine nihai tutarlılık tavsiye edilir ve neden?

Yüksek kullanılabilirlik ve performansın önceliklendirildiği dağıtılmış sistemlerde nihai tutarlılık önerilir. Örnekler arasında sosyal medya platformları ve e-ticaret web siteleri yer alır; geçici farklılıklar eninde sonunda tutarlı bir duruma dönüşür.

Soru 4: İyimser ve kötümser eşzamanlılık kontrolü arasındaki fark nedir ve her biri ne zaman kullanılmalıdır?

İyimser eşzamanlılık kontrolü, çakışmaların minimum düzeyde olduğunu varsayar ve düşük çekişme senaryoları için uygundur. Kötümser eşzamanlılık kontrolü kaynakları kilitler ve yüksek çekişme durumları için idealdir. Çatışma olasılığına ve çekişme düzeylerine göre seçim yapın.

Soru 5: ACID uyumlu bir sistemde kilitlenmeleri nasıl halledersiniz ve hangi stratejiler uygulanabilir?

Stratejiler arasında zaman aşımlarının kullanılması, kilitlenme tespiti, kilit sıralaması, ayrıntı düzeyi kontrolü, iyimser eşzamanlılık kontrolü ve iptal edilen işlemlerin yeniden denenmesi yer alır.

Soru 6: Veritabanı günlük kaydı, ACID özelliklerinin elde edilmesine nasıl katkıda bulunur?

Yazma öncesi günlük kaydı gibi teknikler yoluyla veri tabanı günlük kaydı, Atomiklik, Tutarlılık, Yalıtım ve Dayanıklılık sağlar. İşlemleri ve bunların veritabanı üzerindeki etkilerini kaydederek kurtarmaya ve bütünlüğü korumaya yardımcı olur.

Soru 7: Uzun süren işlemlerin veritabanı performansı üzerindeki etkisi nedir ve bu sorunu nasıl azaltabilirsiniz?

Uzun süren işlemler performansı olumsuz etkiler. Azaltma, işlem mantığının optimize edilmesini, uygun izolasyon seviyelerinin kullanılmasını, zaman aşımlarının uygulanmasını ve alternatif mimarilerin dikkate alınmasını içerir.

Soru 8: timestamp-based eşzamanlılık kontrolü, veritabanı işlemlerinde Atomikliğin ve Tutarlılığın korunmasına nasıl katkıda bulunur?

Timestamps, işlem yürütme sırasını oluşturarak çakışmaları önlemeye yardımcı olur. Güncelleştirmelerin kaybolmasını önlemek ve tutarlılığı korumak için eski işlemler önceliklidir.

Soru 9: Eşzamanlılık ve ACID özelliklerinin dengelenmesinde çoklu sürüm eşzamanlılık kontrolünün (MVCC) rolünü açıklayın.

MVCC, işlemler için ayrı veri sürümleri oluşturarak eşzamanlı erişime izin verir, çok kullanıcılı ortamlarda performansı artırırken yalıtımı ve tutarlılığı teşvik eder.

Soru 10: Saklı prosedürler (stored procedures) ve tetikleyiciler (triggers) ACID özelliklerinin korunmasına nasıl katkıda bulunabilir ve bunların uygulanmasından ne gibi zorluklar ortaya çıkabilir?

Saklı prosedürler (stored procedures)  ve tetikleyiciler (triggers) atomikliği, izolasyonu ve dayanıklılığı zorlar. Zorluklar performans sorunlarını, kilitlenmeleri ve dikkatli tasarım ve bakım ihtiyacını içerebilir.