---
title: 'Yönetilen İlişkisel Veritabanı'
source: 'https://academia.sh/tr/kurslar/bulut-depolama/yonetilen-iliskisel-veritabani'
course: 'Bulutta Depolama ve Veri'
language: tr
updated: '2026-08-17T18:06:56+00:00'
license: 'CC BY-SA 4.0'
---

# Yönetilen İlişkisel Veritabanı

Elle işletilen bir ilişkisel veritabanı ile yönetilen hizmetin kalem kalem karşılaştırılması: yirmi sekiz kararın kaçının sağlayıcıya devredildiği, kaçının elde kaldığı ve kaçının hiç erişilemez hâle geldiği sayılır, elde kalan kalemlerin kaç tanesinin tek yönlü olduğu ayrılır, devralma penceresi sağlayıcı payı ile uygulama payına bölünüp düşen istek sayısı beş önbellek ömründe ölçülür ve verinin çıkışı mantıksal dışa aktarım süresi ile çıkış ücreti olarak hesaplanır.

Önceki konu nesnelerin nereye konacağını ve o nesnelere kimin, ne kadar süreyle erişeceğini
sayılarla çözdü. Geriye sorulmamış bir şey kaldı: sayaç okumalarının özetlendiği, iş emirlerinin
durum değiştirdiği ve fatura belgelerinin bağlandığı **sorgulanan** veri hâlâ elle kurulmuş bir
ilişkisel veritabanında duruyor. O veritabanının makinesi kiralanmış olabilir, ama yedeği alan,
yamasını geçen, arıza anında ikinciyi birinci yapan hâlâ bir insan.

Bu dersin sorusu "yönetilen hizmet daha iyi mi" değil. Ölçülecek şey daha dar ve daha somut:
veritabanı kiralandığında **hangi kararlar el değiştiriyor**. Karar üç yere gidebilir —
sağlayıcıya devredilir, elde kalır, ya da hiç kimsede kalmaz: erişilemez hâle gelir. Üçüncü küme
bu dersin asıl konusudur, çünkü kendi işlettiğin veritabanında böyle bir küme yoktur.

## Karar Üç Kümeye Ayrılır

Elle işletilen bir veritabanında yirmi sekiz kalemin yirmi sekizi de eldedir: donanımın hangi
diskle kurulacağı da, çekirdek ayarının ne olacağı da. Yönetilen hizmet bu listeyi böler.
**Devredilen** kalemler artık sağlayıcının işidir ve sonucundan o sorumludur. **Elde kalan**
kalemler ayar olarak durur; değiştirilebilir. **Erişilemez** kalemler ne devredilmiştir ne
eldedir: ayar yüzeyinden çıkarılmıştır, sağlayıcı bir sayı seçmiştir ve o sayı görülmez.

Bu ayrım soyut değildir. Bir arıza gecesinde erişilemez sütundaki bir kalem, gecenin ne kadar
süreceğini belirler ve o kaleme dokunulamaz.

Kataloğu kurarken tek ölçüt kullanıldı: kalemi değiştirmek için ne yapmak gerekir. Bir istekle
değişiyorsa elde, sağlayıcının bir bildirimiyle değişiyorsa devredilmiş, hiçbir yoldan
değişmiyorsa erişilemez sayıldı. Sınır kimi kalemlerde incedir — yedekleme sıklığı elde ama
yedeğin nasıl alındığı devredilmiş, disk büyütme elde ama küçültme erişilemez. Bu incelik
kataloğun kusuru değil, ölçülen şeyin kendisidir: yönetilen hizmet kararları tek parça hâlinde
almaz, **her kalemi ayrı ayrı böler**.

## Düzenek

**YV1 — kurgu bölgesel ölçüm ağının iş emri veritabanı 220 GB'dir ve saniyede 1.400 istek
alır.** Bütün sayılar kurgudur. **YV2 — sağlık denetimi 5 saniyede bir koşar, üst üste üç
başarısız denetim devralmayı tetikler ve ilk denetim arızadan 2,4 saniye sonraya düşer.** **YV3 —
kopyanın birincile yükseltilmesi 20 saniye sürer.** **YV4 — uygulama tarafında uç nokta adının
çözümleme önbelleği T saniye yaşar; on altı uygulama örneğinin yenileme anları T aralığına eşit
yayılmıştır.** **YV5 — her örnek 120 bağlantılık bir havuz taşır, bir bağlantı 25 ms'de kurulur
ve sekiz bağlantı koşut kurulabilir.** **YV6 — çıkış ücreti kurgu birimdir: bölge içi 0,
bölgeler arası 2, internet 9 birim/GB.** YV2 ve YV3 sağlayıcının, YV4 ve YV5 uygulamanın
tarafındadır; ölçüm bu sınırı ortaya çıkarmak için kurulmuştur.

```js
// yv/model.mjs — yonetilen iliskisel veritabani MODELI. Kurgu bolgesel olcum aginin is emri
// veritabani uzerinde tanimli karar katalogu ve devralma zaman cizelgesi. Gercek bir urun ya da
// olcum degil; rastgelelik yoktur, her kosumda ayni sayilar cikar.
// Ucuncu sutun: karar yonetilen hizmette KIMDE. Dorduncu sutun: geri alinabilir mi.
export const KARAR = [
  ["donanim secimi ve yerlesimi", "devredildi", true],
  ["isletim sistemi yamasi", "devredildi", true],
  ["kucuk surum yamasi", "devredildi", true],
  ["yedek alma bicimi", "devredildi", true],
  ["anlik goruntu deposu", "devredildi", true],
  ["zaman noktasina donus altyapisi", "devredildi", true],
  ["bellek havuzu boyutu", "devredildi", true],
  ["cogaltma duzeni", "devredildi", true],
  ["ana surum yukseltme karari", "elde", false],
  ["yama penceresi", "elde", true],
  ["yedekleme sikligi", "elde", true],
  ["yedek saklama suresi", "elde", true],
  ["devralmayi elle tetikleme", "elde", true],
  ["baglanti ust siniri", "elde", true],
  ["planlayici maliyet ayarlari", "elde", true],
  ["listedeki uzantinin kurulmasi", "elde", true],
  ["disk buyutme", "elde", false],
  ["yerlesim bolgesi secimi", "elde", false],
  ["karakter kumesi ve harmanlama", "elde", false],
  ["kabuk erisimi", "erisilemez", null],
  ["dosya sistemi duzeni", "erisilemez", null],
  ["veri dizini yolu", "erisilemez", null],
  ["devralma esigi", "erisilemez", null],
  ["yazma onu gunlugu esigi", "erisilemez", null],
  ["listede olmayan uzanti", "erisilemez", null],
  ["disk kucultme", "erisilemez", null],
  ["gunluk dosyalarina dogrudan erisim", "erisilemez", null],
  ["cekirdek ayari", "erisilemez", null],
];

// Devralma zaman cizelgesi. Saglayicinin belirledigi iki adim sabittir; ucuncu adim uygulamanin
// cozumleyici onbellek omrune (T) baglidir ve ORNEK BASINA degisir.
export const SAGLIK_ARALIK = 5, SAGLIK_FAZ = 2.4, ESIK = 3, YUKSELTME = 20;
export const ORNEK = 16, ISTEK = 1400, HAVUZ = 120, BAGLANTI_MS = 25, KOSUT = 8;

export const algilama = () => SAGLIK_FAZ + (ESIK - 1) * SAGLIK_ARALIK;
export const havuzKurma = () => (HAVUZ * BAGLANTI_MS) / KOSUT / 1000;

// Her uygulama ornegi kendi onbellegini farkli anda yeniler; fazlar T araligina esit yayilmistir.
// Ornek, yukseltme bittikten SONRAKI ilk yenilemede yeni ucu ogrenir, sonra havuzunu kurar.
export function devralma(T) {
  const hazirlik = algilama() + YUKSELTME;
  const ornekler = [];
  for (let i = 0; i < ORNEK; i += 1) {
    const faz = (i * T) / ORNEK;
    const ogrenme = faz + T * Math.max(0, Math.ceil((hazirlik - faz) / T));
    ornekler.push(ogrenme + havuzKurma());
  }
  const dusen = ornekler.reduce((t, x) => t + x * (ISTEK / ORNEK), 0);
  return { hazirlik, enKotu: Math.max(...ornekler),
    ortalama: ornekler.reduce((a, b) => a + b, 0) / ORNEK, dusen: Math.round(dusen) };
}
```

```js
// yv/olc.mjs — devredilen karar sayimi ve devralma penceresi
import { KARAR, devralma, algilama, havuzKurma, ORNEK, ISTEK, HAVUZ, YUKSELTME } from "./model.mjs";

const s = (x, n) => String(x).padStart(n);
const say = (k) => KARAR.filter(([, v]) => v === k).length;
console.log(`karar katalogu: ${KARAR.length} kalem. Kendi islettigin veritabaninda hepsi elde.\n`);
console.log("yonetilen hizmette      | kalem | pay   | ornek");
console.log("------------------------|-------|-------|--------------------------------------------");
for (const k of ["devredildi", "elde", "erisilemez"]) {
  const liste = KARAR.filter(([, v]) => v === k).map(([a]) => a);
  console.log(`${k.padEnd(23)} | ${s(liste.length, 5)} | ` +
    `${s("%" + (100 * liste.length / KARAR.length).toFixed(1), 5)} | ${liste.slice(0, 2).join(", ")}`);
}
const geriAlinamaz = KARAR.filter(([, v, g]) => v === "elde" && g === false);
console.log(`\nelde kalan ${say("elde")} kalemin ${geriAlinamaz.length} tanesi tek yonludur:`);
for (const [a] of geriAlinamaz) console.log(`  - ${a}`);
console.log(`erisilemez ${say("erisilemez")} kalem, kendi islettiginde ayar; burada hic yok.\n`);

console.log(`devralma: saglik denetimi ile algilama ${algilama().toFixed(1)} sn, yukseltme ` +
  `${YUKSELTME} sn -> saglayici payi ${(algilama() + YUKSELTME).toFixed(1)} sn (sabit).`);
console.log(`havuz kurma ${(havuzKurma() * 1000).toFixed(0)} ms, ${ORNEK} ornek x ${HAVUZ} ` +
  `baglanti = ${ORNEK * HAVUZ} yeni baglanti yeni birincile ayni anda gelir.`);
console.log(`istek hizi ${ISTEK}/sn; devralma boyunca hepsi duser.\n`);
console.log("onbellek omru T | saglayici payi | uygulama payi | kesinti (ort) | kesinti (en kotu) | dusen istek");
console.log("----------------|----------------|---------------|---------------|-------------------|------------");
for (const T of [5, 15, 30, 60, 120]) {
  const r = devralma(T);
  console.log(`${s(T + " sn", 15)} | ${s(r.hazirlik.toFixed(1) + " sn", 14)} | ` +
    `${s((r.ortalama - r.hazirlik).toFixed(1) + " sn", 13)} | ${s(r.ortalama.toFixed(1) + " sn", 13)} | ` +
    `${s(r.enKotu.toFixed(1) + " sn", 17)} | ${s(r.dusen, 11)}`);
}
const a = devralma(5), b = devralma(120);
console.log(`\nkosumdan bagimsiz: saglayici payi ${a.hazirlik.toFixed(1)} sn ile sabit; T 5'ten 120'ye ` +
  `cikinca kesinti ${a.ortalama.toFixed(1)} -> ${b.ortalama.toFixed(1)} sn, dusen istek ` +
  `${a.dusen} -> ${b.dusen}.`);
console.log(`devralma esigi erisilemez oldugu icin algilama suresi kisaltilamaz; kisaltilabilen tek ` +
  `sey uygulama tarafindaki T.`);

// Cikis: anlik goruntu bicimi erisilemez oldugu icin veri ancak MANTIKSAL disa aktarimla cikar.
const BOYUT_GB = 220, OKUMA_MBS = 40, YUKLEME_MBS = 26, TARIFE = { "bolge ici": 0, "bolgeler arasi": 2, "internet": 9 };
const saat = (mbs) => (BOYUT_GB * 1024) / mbs / 3600;
console.log(`\ncikis: ${BOYUT_GB} GB is emri verisi, mantiksal disa aktarim ${OKUMA_MBS} MB/sn, ` +
  `geri yukleme ${YUKLEME_MBS} MB/sn (indeksler yeniden kurulur).`);
console.log(`sure: disa aktarim ${saat(OKUMA_MBS).toFixed(2)} sa + yukleme ${saat(YUKLEME_MBS).toFixed(2)} sa = ` +
  `${(saat(OKUMA_MBS) + saat(YUKLEME_MBS)).toFixed(2)} sa. Anlik goruntu tasinamaz: bicim erisilemez sutunundadir.`);
console.log("hedef            | cikis ucreti (kurgu birim/GB) | toplam (kurgu birim)");
console.log("-----------------|-------------------------------|---------------------");
for (const [ad, birim] of Object.entries(TARIFE))
  console.log(`${ad.padEnd(16)} | ${s(birim, 29)} | ${s(birim * BOYUT_GB, 20)}`);
```

```
karar katalogu: 28 kalem. Kendi islettigin veritabaninda hepsi elde.

yonetilen hizmette      | kalem | pay   | ornek
------------------------|-------|-------|--------------------------------------------
devredildi              |     8 | %28.6 | donanim secimi ve yerlesimi, isletim sistemi yamasi
elde                    |    11 | %39.3 | ana surum yukseltme karari, yama penceresi
erisilemez              |     9 | %32.1 | kabuk erisimi, dosya sistemi duzeni

elde kalan 11 kalemin 4 tanesi tek yonludur:
  - ana surum yukseltme karari
  - disk buyutme
  - yerlesim bolgesi secimi
  - karakter kumesi ve harmanlama
erisilemez 9 kalem, kendi islettiginde ayar; burada hic yok.

devralma: saglik denetimi ile algilama 12.4 sn, yukseltme 20 sn -> saglayici payi 32.4 sn (sabit).
havuz kurma 375 ms, 16 ornek x 120 baglanti = 1920 yeni baglanti yeni birincile ayni anda gelir.
istek hizi 1400/sn; devralma boyunca hepsi duser.

onbellek omru T | saglayici payi | uygulama payi | kesinti (ort) | kesinti (en kotu) | dusen istek
----------------|----------------|---------------|---------------|-------------------|------------
           5 sn |        32.4 sn |        2.8 sn |       35.2 sn |           37.6 sn |       49306
          15 sn |        32.4 sn |        7.8 sn |       40.2 sn |           47.3 sn |       56306
          30 sn |        32.4 sn |       15.8 sn |       48.2 sn |           62.3 sn |       67463
          60 sn |        32.4 sn |       29.9 sn |       62.3 sn |           90.4 sn |       87150
         120 sn |        32.4 sn |       61.7 sn |       94.1 sn |          150.4 sn |      131775

kosumdan bagimsiz: saglayici payi 32.4 sn ile sabit; T 5'ten 120'ye cikinca kesinti 35.2 -> 94.1 sn, dusen istek 49306 -> 131775.
devralma esigi erisilemez oldugu icin algilama suresi kisaltilamaz; kisaltilabilen tek sey uygulama tarafindaki T.

cikis: 220 GB is emri verisi, mantiksal disa aktarim 40 MB/sn, geri yukleme 26 MB/sn (indeksler yeniden kurulur).
sure: disa aktarim 1.56 sa + yukleme 2.41 sa = 3.97 sa. Anlik goruntu tasinamaz: bicim erisilemez sutunundadir.
hedef            | cikis ucreti (kurgu birim/GB) | toplam (kurgu birim)
-----------------|-------------------------------|---------------------
bolge ici        |                             0 |                    0
bolgeler arasi   |                             2 |                  440
internet         |                             9 |                 1980
```

## Erişilemez Sütun En Kalabalık İkinci Kümedir

Devredilen kalem sayısı 8, yani kataloğun yüzde 28,6'sı. Yönetilen hizmete geçmenin sattığı şey
bu sütundur ve içindekiler gerçekten iş yükünü azaltır: işletim sistemi yaması, küçük sürüm
yaması, yedek alma biçimi, çoğaltma düzeni artık başkasının gece nöbetidir.

Beklenmedik olan üçüncü sütundur: **9 kalem, yüzde 32,1**. Bu kalemler devredilmedi; ortadan
kalktı. Kabuk erişimi yok, veri dizini yolu yok, günlük dosyalarına doğrudan bakılamıyor. Bunların
bir kısmı yokluğunda fark edilmez. Bir kısmı, kaybedildiği gün fark edilir: **devralma eşiği**
bu sütundadır. Sağlık denetiminin kaç saniyede bir koştuğu ve kaç başarısızlıktan sonra devralma
tetiklendiği okunamaz, ayarlanamaz. Aynı sütunda **yazma önü günlüğü eşiği** ve **listede olmayan
uzantı** var: uygulamanın ihtiyaç duyduğu bir uzantı sağlayıcının listesinde yoksa, kurulmasının
yolu yoktur — kendi işlettiğin veritabanında bu bir paket kurma işidir.

Elde kalan 11 kalem ise yanıltıcı bir rahatlık verir. Dördü **tek yönlüdür**: ana sürüm
yükseltmesinden geri dönülmez, büyütülen disk küçültülmez, seçilen yerleşim bölgesi veri
taşımadan değişmez ve karakter kümesiyle harmanlama seçimi tabloları yeniden yazmadan
düzeltilmez. Bu dördü kurulum ekranında birer açılır listedir; sonuçları veritabanının ömrü
boyunca sürer.

## Devralmanın Ölçülen Yanı Kesinti Değil, Kesintinin Kime Ait Olduğudur

Devralma yönetilen hizmetin en çok anlatılan özelliğidir ve genellikle tek bir sayıyla anılır.
Tablo o tek sayının iki parçadan oluştuğunu gösteriyor.

**Sağlayıcı payı beş satırda da 32,4 saniyedir.** Algılama 12,4 saniye (2,4 saniyelik faz artı iki
denetim aralığı), yükseltme 20 saniye. Bu sayı hiçbir ayarla değişmez, çünkü onu üreten kalem
erişilemez sütunundadır.

**Uygulama payı 2,8 saniyeden 61,7 saniyeye çıkıyor.** Fark yalnızca uç nokta adının çözümleme
önbelleğinin ömründen geliyor. T 5 saniyeyken ortalama kesinti 35,2 saniye ve 49.306 istek düşüyor;
T 120 saniyeyken ortalama 94,1 saniye ve 131.775 istek düşüyor. Aynı devralma, aynı sağlayıcı,
2,67 katı kayıp. En kötü örnek sütunu daha da açıktır: T 120'de bir uygulama örneği 150,4 saniye
boyunca ölü bir adrese bağlanmayı deniyor.

Buradan çıkan kural devredilen kararın sınırını çiziyor: **devralma devredildi, devralmanın
uygulamada bittiği an devredilmedi.** Havuz satırı da aynı yere bakıyor — on altı örnek ayağa
kalktığında yeni birincil 1.920 bağlantı isteğini aynı anda karşılar; bağlantı üst sınırı elde
kalan kalemlerdendir ve bu sayının altındaysa devralma, devralmanın kendisiyle biten bir kesintiye
dönüşür.

## Çıkışın Bedeli Biçimin Kilitli Olmasıdır

Son blok kursun tekrar eden kalemini bu derse uyguluyor. Veriyi başka bir yere taşımak
gerektiğinde anlık görüntü işe yaramaz: anlık görüntü biçimi devredilen sütunda alınıp erişilemez
sütununda okunamaz hâle gelir. Geriye tek yol kalır, **mantıksal dışa aktarım**: 220 GB veri 40
MB/sn ile 1,56 saatte çıkar, hedefte 26 MB/sn ile 2,41 saatte yüklenir — indeksler yeniden
kurulduğu için yükleme okumadan yavaştır. Toplam 3,97 saat, üstüne çıkış ücreti: bölge içinde 0,
bölgeler arasında 440, internet üzerinden 1.980 kurgu birim.

Bu üç sayının oranı kursun sonuna kadar aynı kalacak. Veri girerken hiçbir ücret ödemedi; aynı
verinin dışarı çıkması bölge sınırını geçtiği anda ücretlendi. Sürenin kendisi de bir bedeldir:
3,97 saat boyunca ya iki dizge koşut yazılır ve aradaki fark elle kapatılır, ya da iş emri
kayıtları donar. Yerleşim bölgesinin tek yönlü kalemler arasında sayılmasının sebebi budur —
bölge değiştirmek, bu dört saatlik pencereyi bir kez daha ödemek demektir.

## Özet

- Yirmi sekiz kararın 8'i sağlayıcıya devredildi, 11'i elde kaldı, **9'u erişilemez hâle geldi**;
  üçüncü küme kendi işlettiğin veritabanında yoktur.
- Elde kalan 11 kalemin 4'ü tek yönlüdür: ana sürüm yükseltmesi, disk büyütme, yerleşim bölgesi ve
  harmanlama seçimi veri yeniden yazılmadan geri alınmaz.
- Devralma kesintisinin 32,4 saniyesi sağlayıcının payıdır ve sabittir; devralma eşiği erişilemez
  olduğu için kısaltılamaz.
- Uygulama payı 2,8 saniyeden 61,7 saniyeye çıkabiliyor: aynı devralmada düşen istek 49.306'dan
  131.775'e, en kötü örnekteki kesinti 37,6 saniyeden 150,4 saniyeye yükseliyor.
- Anlık görüntü biçimi erişilemez olduğu için çıkış mantıksal dışa aktarıma zorlar: 220 GB için
  3,97 saat, artı internet üzerinden 1.980 kurgu birim çıkış ücreti.

## Sonraki Adım

Bu ders tek bir birincil veritabanı varsayarak ölçüm yaptı: devralma anında yükü karşılayacak
başka bir kopya yoktu, ikinci makine yalnızca beklemedeydi. Oysa iş emri veritabanının istek
karışımının büyük bölümü okumadır — sayaç okuma özetleri, fatura sorguları, saha fotoğrafı
kütükleri. Bekleyen bir kopyayı okumaya açmak yükü dağıtır, ama o kopya birincilin gerisinde
kalır. Sonraki ders bu gecikmeyi tarar ve her değerde kaç okumanın bayat döndüğünü sayar; ardından
"kendi yazdığını oku" gereksinimi olan istekleri ayırıp birincile yönlendirmenin kaç isteği
kurtardığını ve birincilin yükünü ne kadar artırdığını ölçer.
