Kitap 04
Veritabanları
Verinin nasıl saklandığı, sorgulandığı ve tutarlı tutulduğu: SQL, NoSQL, indeksler ve transaction'lar.
İçindekiler
- 01ACIDAtomiklik, Tutarlılık, Yalıtım, Dayanıklılık1ACID; atomiklik, tutarlılık, yalıtım ve dayanıklılıktan oluşan, hata ya da çökme olsa bile veritabanı transaction'larını güvenilir tutan dört garantidir.
- 02Birincil Anahtar2Birincil anahtar, bir veritabanı tablosundaki her satırı benzersiz biçimde tanımlayan, asla boş ya da tekrarlı olamayan bir sütun veya sütun kümesidir.
- 03CAP TeoremiTutarlılık, Erişilebilirlik, Bölünme Toleransı3CAP teoremi, ağ arızası dağıtık bir veritabanını böldüğünde sistemin tutarlılık ile erişilebilirlikten birini seçmesi gerektiğini söyler; ikisi birden olamaz.
- 04Connection PoolBağlantı Havuzu4Connection pool, bir uygulamanın istekler arasında yeniden kullandığı açık veritabanı bağlantıları önbelleğidir; her seferinde bağlantı açma maliyetini önler.
- 05Çizge Veritabanı5Çizge veritabanı, veriyi ilişkilerle bağlı düğümler olarak saklar; arkadaşların arkadaşları ya da öğe bağımlılıkları gibi bağlantıları izlemeyi hızlandırır.
- 06Data LakeVeri Gölü6Data lake, büyük miktarda ham veriyi, yapılandırılmış olsun ya da olmasın, biri analiz etmek isteyene kadar özgün biçiminde tutan merkezi bir depolama alanıdır.
- 07Data WarehouseVeri Ambarı7Data warehouse, birçok kaynaktan geçmiş veriyi toplayan ve ekiplerin büyük raporlama sorgularını hızla çalıştırdığı analitik amaçlı merkezi bir veritabanıdır.
- 08Denormalizasyon8Denormalizasyon, sık okumalar daha az birleştirme gerektirsin diye verinin tablo ya da dokümanlara bilerek çoğaltılmasıdır; bedeli daha karmaşık yazmalardır.
- 09Doküman Veritabanı9Doküman veritabanı, kayıtları genellikle JSON benzeri, kendi içinde bütün dokümanlar olarak saklayan, alanları kayıttan kayda değişebilen NoSQL veritabanıdır.
- 10DynamoDBAmazon DynamoDB10Amazon DynamoDB, öğeleri anahtarla saklayan, otomatik ölçeklenen ve sorguları tek haneli milisaniyelerde yanıtlayan, AWS'de tam yönetilen NoSQL veritabanıdır.
- 11Elasticsearch11Elasticsearch, JSON belgelerini indeksleyip büyük veri üzerinde hızlı tam metin arama, filtreleme ve toplama yapan dağıtık bir arama ve analiz motorudur.
- 12ETLÇıkar, Dönüştür, Yükle (Extract, Transform, Load)12ETL, kaynak sistemlerden veriyi çıkaran, temiz ve tutarlı bir biçime dönüştüren ve bir hedef depoya yükleyen bir veri entegrasyonu sürecidir.
- 13Firebase13Firebase, Google'ın web ve mobil uygulamalara veritabanı, kimlik doğrulama, depolama, hosting ve fonksiyonları backend yönetmeden sunan platformudur.
- 14İlişkisel Veritabanı14İlişkisel veritabanı, veriyi satır ve sütunlardan oluşan tablolarda saklar, tabloları anahtarlarla bağlar ve veriyi SQL ile sorgulayıp birleştirmeyi sağlar.
- 15İyimser Kilitleme15İyimser kilitleme, transaction'ları kilit tutmadan ilerleten ve çakışmaları kayıt anında sürüm numarasına bakarak yakalayan bir eşzamanlılık tekniğidir.
- 16Key-Value StoreAnahtar-Değer Deposu16Key-value store, her veriyi benzersiz bir anahtar altında saklayan bir NoSQL veritabanıdır; uygulama veriyi bu anahtarla çok hızlı okuyup yazabilir.
- 17MongoDB17MongoDB, veriyi tablo satırı yerine esnek, JSON benzeri belgelerde saklayan bir belge veritabanıdır; aynı koleksiyondaki kayıtların alanları farklı olabilir.
- 18MySQL18MySQL, SQL ile sorgulanan popüler, açık kaynaklı bir ilişkisel veritabanıdır; uzun süredir WordPress'in ve klasik LAMP yığınının veritabanı olarak bilinir.
- 19N+1 Sorgu Sorunu19N+1 sorgu sorunu, kodun bir listeyi tek sorguyla yükleyip sonra her öğe için bir sorgu daha çalıştırdığı, hepsini birden getirmediği bir performans hatasıdır.
- 20Nihai Tutarlılık20Nihai tutarlılık, yeni güncelleme yapılmazsa dağıtık bir sistemdeki bir verinin tüm kopyalarının zamanla özdeş hale geleceğine dair bir garantidir.
- 21NoSQLNot Only SQL (Yalnızca SQL Değil)21NoSQL, veriyi ilişkisel tablolar yerine doküman, anahtar-değer çifti, geniş sütun ya da çizge gibi başka modellerde saklayan veritabanı ailesidir.
- 22OLAPÇevrimiçi Analitik İşleme22OLAP (online analytical processing), büyük miktarda geçmiş veri üzerindeki karmaşık analitik sorulara hızla yanıt vermek için kurulmuş sistemleri anlatır.
- 23OLTPÇevrimiçi İşlem İşleme23OLTP (online transaction processing), sipariş vermek gibi günlük işlemlerin çok sayıda küçük, hızlı okuma ve yazması için kurulmuş veritabanlarını anlatır.
- 24ORMNesne-İlişkisel Eşleme24ORM, veritabanı tablolarını programlama dilinizdeki nesnelere eşleyen ve ham SQL yerine kodla veri okuyup yazmanızı sağlayan bir kütüphanedir.
- 25PartitioningBölümleme25Partitioning (bölümleme), büyük bir tabloyu tarih aralığı gibi bir kurala göre partition'lara böler; sorgular ilgisiz veriyi atlar, eski veri kolayca silinir.
- 26PostgreSQL26PostgreSQL, güvenilirliği, standartlara sıkı uyumu ve eklentileriyle bilinen ücretsiz, açık kaynaklı ilişkisel veritabanıdır; web uygulamalarında yaygındır.
- 27RedisRemote Dictionary Server27Redis, okuma ve yazmayı milisaniyenin çok altında yapan bellek içi bir anahtar-değer deposudur; önbellek, oturum deposu ve mesaj aracısı olarak yaygındır.
- 28Sharding28Sharding, bir veritabanının verisini shard adı verilen birkaç sunucuya bölerek ölçeklendirme yöntemidir; her biri toplamın yalnızca bir kısmını saklar ve işler.
- 29SQLYapılandırılmış Sorgulama Dili29SQL, ilişkisel veritabanlarıyla çalışmanın standart dilidir; tablo oluşturmak ve içindeki veriyi eklemek, sorgulamak, güncellemek ve silmek için kullanılır.
- 30SQL JOIN30SQL JOIN, iki ya da daha fazla tablonun satırlarını yabancı anahtar gibi ilişkili sütunlar üzerinden eşleştirerek tek bir sonuçta birleştiren sorgu işlemidir.
- 31SQL ServerMicrosoft SQL Server31Microsoft SQL Server, T-SQL lehçesiyle sorgulanan, iş uygulamalarında özellikle .NET ve Windows ile yaygın kullanılan, Microsoft'un ilişkisel veritabanıdır.
- 32SQLite32SQLite, uygulamanızın içinde çalışan ve bütün bir veritabanını tek bir dosyada saklayan küçük bir SQL veritabanı motorudur; yönetilecek ayrı sunucu yoktur.
- 33Stored ProcedureSaklı Yordam33Stored procedure, veritabanında saklanan adlandırılmış bir SQL ifadeleri kümesidir; uygulamalar her sorguyu göndermek yerine onu tek çağrıyla çalıştırabilir.
- 34Supabase34Supabase, veritabanı, kimlik doğrulama, depolama, gerçek zamanlı güncelleme ve anında API sunan, PostgreSQL tabanlı açık kaynaklı bir backend platformudur.
- 35Tam Metin Arama35Tam metin arama, verilen sözcükleri ya da ifadeleri içeren dokümanları bir metin indeksinde arayarak bulan ve sonuçları alaka düzeyine göre sıralayan tekniktir.
- 36TransactionVeritabanı İşlemi36Transaction, tek bir bütün olarak başarılı ya da başarısız olan veritabanı işlemleri grubudur; böylece veri asla yarım kalmış, tutarsız bir durumda bırakılmaz.
- 37Veritabanı37Veritabanı, bilgisayarda düzenli biçimde saklanan ve uygulamaların verimlice kaydedip arayıp güncelleyebildiği, bir yazılımla yönetilen veri topluluğudur.
- 38Veritabanı İndeksi38Veritabanı indeksi, tüm tabloyu taramadan satırları hızla bulmayı sağlayan, bir kitabın sonundaki dizine benzeyen bir veri yapısıdır.
- 39Veritabanı Migration'ı39Veritabanı migration'ı, bir sütun eklemek gibi veritabanı şemasını değiştiren sürümlü bir betiktir; her ortam aynı değişiklikleri aynı sırayla uygular.
- 40Veritabanı Normalizasyonu40Veritabanı normalizasyonu, her bilginin yalnızca bir kez saklanması için tabloları düzenleme sürecidir; tekrarlı veriyi azaltıp tutarsız güncellemeleri önler.
- 41Veritabanı Replikasyonu41Veritabanı replikasyonu, verinin bir sunucudan diğerlerine sürekli kopyalanmasıdır; böylece birkaç sunucu güvenilirlik ve ölçek için aynı veriyi tutar.
- 42Veritabanı Şeması42Veritabanı şeması, bir veritabanının tablolarını, sütunlarını, veri türlerini, ilişkilerini ve saklanan verinin uyması gereken kuralları tanımlayan planıdır.
- 43Veritabanı Trigger'ıVeritabanı Tetikleyicisi43Veritabanı trigger'ı, bir tabloda ekleme, güncelleme ya da silme gibi seçilmiş bir olay gerçekleştiğinde otomatik çalışan, veritabanında saklanan koddur.
- 44Veritabanı View'ıVeritabanı Görünümü44Veritabanı view'ı, sanal bir tablo gibi davranan kayıtlı bir SQL sorgusudur; alttaki sorguyu her seferinde tekrarlamak yerine ondan adıyla seçim yapabilirsiniz.
- 45Yabancı Anahtar45Yabancı anahtar, bir veritabanı tablosunda başka bir tablonun birincil anahtarına başvuran sütundur; ilişkili satırları bağlar ve başvuruları geçerli tutar.
- 46Yalıtım Düzeyi46Yalıtım düzeyi, eşzamanlı transaction'ların birbirinin değişikliklerini ne kadar görebileceğini belirleyen ve katılıkla hızı dengeleyen veritabanı ayarıdır.
- 47Zaman Serisi Veritabanı47Zaman serisi veritabanı, sensör okumaları ya da metrikler gibi zaman damgalı ölçümleri sırayla saklayıp sorgulamak için optimize edilmiş bir veritabanıdır.