Ders 10 / 10
Veri Yönetişimi
Sahiplik boşluğunun ve saklama politikasının sayılması: kaynağıyla birlikte altı konum taşıyan hatta beş aşamanın üçü bir sahip taşıyor, ama altı bozulmanın altısı da sahipsiz bir konumda yakalanıyor, çünkü denetimler yalnız kaynakta ve özet katmanında koşuyor. Bulgu aşağıya yürüyerek bir sahibe ulaşıyor ve altı bulgunun üçü onarabilecek sahibe gidiyor; kalan üçünde alıcı onarım yerinden bir ile beş aşama uzakta ve kanıta erişimi yok. Onarım yeri sahipsiz olan üç sınıf, kusurlu denetim kümesiyle hiç yakalanmayan üç sınıfla birebir aynı. Altı dönemlik saklama penceresi altı dönem siliyor ama geriye dönük denetlenemez dönem yediye çıkıyor, özet 55 hücreden 25'e iniyor, soyağacının 4400 tüketim bağının 2200'ü silinmiş satıra işaret ediyor ve doğru bölüm denetimi sağlam veride yanlış alarm veriyor. Ders kursun kapanışıdır.
İçindekiler
Bir önceki derste arama kaynağa kadar indi ve orada durdu. Soyağacı hangi satırların eksik
olduğunu söyledi, kayıp aşamasının kaynak olduğunu yazdı ve sustu. Kırk satırın neden gelmediği
ve bulgunun kime iletileceği kaydın söyleyemeyeceği şeylerdi. Hattın beş aşaması var, kaynak da
sayılırsa altı; bunların kaçı bir sahip taşıyor.
Bu dersin ölçtüğü şey bir boşluktur: bir bozulmanın yakalandığı yer ile onarılabileceği yer arasındaki mesafe. Boşluk üç sayıyla okunur — bulgu kime gidiyor, o rol onarımı yapabiliyor mu, kanıta bakabiliyor mu. İkinci ölçü aynı boşluğu zaman ekseninde okur: saklama penceresi daraldığında kaç dönem geriye dönük denetlenemez hâle geliyor. Bütün sayılar sayımdır; oran basılmaz.
- VK47. Kaynak, beş aşamalı hat, bozulma sınıfları ve sahiplik haritası kurgudur ve ders içinde tanımlanır. Hiçbir depo, katalog ürünü, orkestratör ya da politika metni çağrılmaz. Tohum 20260218.
- VK48. Sahip, bir konumun çıktısını değiştirme yetkisi olan rol sınıfıdır; kişi ya da kurum değildir. Erişim, bir rolün hangi konumun satırlarını okuyabildiğidir.
- VK49. Bir bulgu yakalandığı konumda doğar. Konumun sahibi yoksa bulgu aşağı doğru ilk sahipli konuma yürür; sahipli konum kalmamışsa bulgu kimseye gitmez.
- VK50. Onarım yeri, bozulmanın giderilebileceği en erken konumdur ve bulgunun alındığı konumla aynı olmak zorunda değildir. Uzaklık ikisi arasındaki aşama sayısıdır.
- VK51. Yakalayan denetim ve yakalama gecikmesi bu kursun birinci dersinde ölçüldü; burada yeniden ölçülmez, girdi olarak alınır. Erişim denetimi, saklama politikası ve kişisel veri yordamı Siber Güvenlik müfredatındaki Kimlik, Erişim ve Kriptografi ile Yönetişim, Risk ve Uyumluluk kurslarında ölçüldü; tekrarlanmaz.
- VK52. Saklama penceresi son N dönemi tutar, öncesini siler. Bir dönem, tüketim satırı kalan kaynaktan yeniden hesaplanabiliyorsa geriye dönük denetlenebilir sayılır.
Sahiplik Haritası ve Bulgunun Yürüdüğü Yol
Sahiplik bir belge değil bir eşlemedir: hangi konumun çıktısını kim değiştirebilir. Aşağıdaki harita iki rol tanır, kalan konumlar boştur. Boşluk uydurma değil hattın doğal sonucudur; ara katmanlar kimsenin ürünü sayılmaz.
# KURGUDUR. Sahiplik, erisim ve onarim haritasi ders icinde tanimlanir; hicbir # duzenleme metni, kurum, katalog urunu ya da orkestrator cagrilmaz. KONUM = ["kaynak", "ayikla", "tekille", "tuketim", "ozet", "sun"] # Sahip bir kisi degil bir rol sinifidir; sahipsiz konumun degeri None'dir. SAHIP = {"kaynak": None, "ayikla": "hat ekibi", "tekille": "hat ekibi", "tuketim": None, "ozet": None, "sun": "raporlama ekibi"} ERISIM = {"hat ekibi": {"ayikla", "tekille", "tuketim", "ozet"}, "raporlama ekibi": {"ozet", "sun"}} # Yakalayan denetim ve yakalama gecikmesi (asama) bu kursun birinci dersinde olculdu. YAKALAMA = {"gec_gelen": ("dagilim", 4), "yinelenen": ("tekillik", 0), "sema_degisti": ("sema", 0), "birim_degisti": ("dagilim", 4), "eksik_bolum": ("bolum_donem", 0), "kayan_tip": ("tip", 0)} # Bozulmanin gercekten onarilabilecegi en erken konum. ONARIM = {"gec_gelen": "kaynak", "yinelenen": "tekille", "sema_degisti": "ayikla", "birim_degisti": "kaynak", "eksik_bolum": "kaynak", "kayan_tip": "ayikla"} # Kusurlu denetim kumesiyle hic yakalanmayan siniflar, yine birinci dersten. KACAN = {"gec_gelen", "birim_degisti", "eksik_bolum"} def yonlendir(i): """Bulgu yakalandigi konumda dogar; konum sahipsizse ilk sahipli konuma yurur.""" for j in range(i, len(KONUM)): if SAHIP[KONUM[j]]: return j, SAHIP[KONUM[j]] return None, None def eh(x): return "evet" if x else "hayir" print(f"bes asamanin {sum(1 for a in KONUM[1:] if SAHIP[a])} tanesi sahipli ;" " kaynak konumu hattin disinda ve sahipsiz") print("\nbozulma yakalayan gecikme konum sahibi bulgu kime onarim" " uzaklik yetki erisim kusurlu kumede") yetkili = erisen = 0 for s, (yak, g) in YAKALAMA.items(): j, alici = yonlendir(g) o = ONARIM[s] yetki, eris = SAHIP[o] == alici, o in ERISIM[alici] yetkili, erisen = yetkili + yetki, erisen + eris print(f"{s:<13} {yak:>11} {g:>8} {SAHIP[KONUM[g]] or 'yok':>12} {alici:<17}" f" {o:<7} {abs(KONUM.index(o) - j):>7} {eh(yetki):>5} {eh(eris):>6}" f" {'kaciyor' if s in KACAN else 'yakalaniyor':>14}") sahipsiz = {s for s in ONARIM if SAHIP[ONARIM[s]] is None} print(f"\nbulguyu alan sahip {yetkili} bozulmada onarabiliyor ," f" {erisen} bozulmada kanita erisimi var") print(f"onarim yeri sahipsiz olan {len(sahipsiz)} sinif , kusurlu kumeyle hic yakalanmayan" f" {len(KACAN)} sinif , ayni kume mi: {eh(sahipsiz == KACAN)}")
bes asamanin 3 tanesi sahipli ; kaynak konumu hattin disinda ve sahipsiz bozulma yakalayan gecikme konum sahibi bulgu kime onarim uzaklik yetki erisim kusurlu kumede gec_gelen dagilim 4 yok raporlama ekibi kaynak 5 hayir hayir kaciyor yinelenen tekillik 0 yok hat ekibi tekille 1 evet evet yakalaniyor sema_degisti sema 0 yok hat ekibi ayikla 0 evet evet yakalaniyor birim_degisti dagilim 4 yok raporlama ekibi kaynak 5 hayir hayir kaciyor eksik_bolum bolum_donem 0 yok hat ekibi kaynak 1 hayir hayir kaciyor kayan_tip tip 0 yok hat ekibi ayikla 0 evet evet yakalaniyor bulguyu alan sahip 3 bozulmada onarabiliyor , 3 bozulmada kanita erisimi var onarim yeri sahipsiz olan 3 sinif , kusurlu kumeyle hic yakalanmayan 3 sinif , ayni kume mi: evet
Tablonun en sert sütunu dördüncüsüdür ve tek bir değer taşır: yok. Beş aşamanın üçü sahipli olduğu hâlde altı bozulmanın hiçbiri sahipli bir konumda yakalanmıyor. Nedeni denetimlerin yerleşimidir: yedi denetimin altısı kaynakta, biri özet katmanında koşuyor ve iki konum da sahipsiz. Sahiplik hattın ürettiği yere yazılmış, denetimin baktığı yere yazılmamıştır. Bir konumu sahiplendirmek ile orada denetim koşturmak iki ayrı karardır; örtüşmemeleri ölçülebilir bir kusurdur.
Bulgu yürüdüğü için yine de bir alıcı buluyor, ama alıcı çoğu zaman yanlış roldür. Üç bozulmada hat
ekibi hem yetkili hem erişimlidir: yinelenen tekilleştirmede, sema_degisti ve kayan_tip
ayıklamada onarılır. Kalan üçünde onarım yeri kaynaktır ve kaynağın sahibi yoktur. eksik_bolum
bulgusu bir aşama uzağa düşer; gec_gelen ile birim_degisti beş aşama uzağa, elinde yalnız
sapmış bir sunum değeri olan raporlama ekibine gider.
Son satır bu dersin en dar bulgusudur. Onarım yeri sahipsiz olan üç sınıf, kusurlu denetim kümesiyle hiç yakalanmayan üç sınıfla birebir aynıdır. İki liste bağımsız çıktı: biri denetimlerin kapsamından, öbürü rol haritasından. Aynı olmaları, en zayıf denetlenen konumun en zayıf sahiplenilen konum olduğunu gösterir.
Saklama Penceresi ve Geriye Dönük Denetim
Sahiplik boşluğunun ikinci yüzü zamandadır. Silinen satır yalnız yer boşaltmaz, geriye dönük denetimin dayanağını da götürür. Aşağıdaki blok aynı kurgu kaynağı beş saklama penceresiyle koşturur.
# KURGUDUR. Olcum aginin sayac okumalari ders icinde uretilir. Saglam kaynakta # ilk iki asama satir dusurmedigi icin tuketim dogrudan kaynaktan hesaplanir. TOHUM, M32 = 20260218, 0xFFFFFFFF def uretec(t): x = ((t ^ (t >> 16)) * 2246822507) & M32 x = ((x ^ (x >> 13)) * 3266489909) & M32 s = [(x ^ (x >> 16)) & M32] def sonraki(): s[0] = (s[0] * 1664525 + 1013904223) & M32 return s[0] / 4294967296 return sonraki BOLGE = ["dogu", "bati", "kuzey", "guney", "merkez"] TIP = ["mesken", "isyeri"] DONEM = [f"2026-{a:02d}" for a in range(1, 13)] ABONE = {} for i in range(200): r = uretec(TOHUM + 37 * i) ABONE[f"A{i + 1:03d}"] = {"bolge": BOLGE[int(r() * 5)], "tip": TIP[int(r() * 2)], "baslangic": 10000 + int(r() * 60000)} def kaynak_uret(): kayit = [] for i, (ab, a) in enumerate(ABONE.items()): e = a["baslangic"] for d in DONEM: r = uretec(TOHUM + 101 * i + 7 * DONEM.index(d)) e += 4 + int(r() * 46) kayit.append({"abone": ab, "donem": d, "bolge": a["bolge"], "tip": a["tip"], "endeks": e, "birim": "m3"}) return kayit def ad(k): return (k["abone"], k["donem"]) def a3_tuketim(v): """Donem farkindan tuketim; onceki donem yoksa satir hesaplanamaz.""" tablo, cikti = {ad(k): k for k in v}, [] for k in v: i = DONEM.index(k["donem"]) onceki = tablo.get((k["abone"], DONEM[i - 1])) if i else None if onceki is not None: cikti.append(dict(k, m3=k["endeks"] - onceki["endeks"])) return cikti def d_bolum_donem(v): """Dogru bolum denetimi: her donemde her bolge yazilmis mi.""" return {(k["bolge"], k["donem"]) for k in v} != {(b, d) for b in BOLGE for d in DONEM} def sakla(kayit, pencere): """Saklama politikasi: yalniz son `pencere` donem tutulur, oncesi silinir.""" tutulan = set(DONEM[len(DONEM) - pencere:]) return [k for k in kayit if k["donem"] in tutulan], tutulan kaynak = kaynak_uret() # Her tuketim satirinin iki atasi vardir: kendi donemi ve bir onceki donem. BAG = [x for k in a3_tuketim(kaynak) for x in (ad(k), (k["abone"], DONEM[DONEM.index(k["donem"]) - 1]))] print(f"kaynak {len(kaynak)} satir , tuketim satiri {len(a3_tuketim(kaynak))} ," f" tuketim bagi {len(BAG)}") print("\npencere silinen kalan yeniden uretilebilen denetlenemez" " 2026-07 alarm askida") for p in (12, 9, 6, 3, 1): kalan, tutulan = sakla(kaynak, p) uretilebilen = sum(1 for i, d in enumerate(DONEM) if i and d in tutulan and DONEM[i - 1] in tutulan) anahtar = {ad(k) for k in kalan} durum = ("silinmis" if "2026-07" not in tutulan else "atasi silinmis" if "2026-06" not in tutulan else "denetlenebilir") print(f"{p:>7} {12 - p:>7} {len(kalan):>5} {uretilebilen:>20}" f" {12 - uretilebilen:>12} {durum:>15}" f" {eh(d_bolum_donem(kalan)):>5} {sum(1 for b in BAG if b not in anahtar):>6}")
kaynak 2400 satir , tuketim satiri 2200 , tuketim bagi 4400
pencere silinen kalan yeniden uretilebilen denetlenemez 2026-07 alarm askida
12 0 2400 11 1 denetlenebilir hayir 0
9 3 1800 8 4 denetlenebilir evet 1000
6 6 1200 5 7 atasi silinmis evet 2200
3 9 600 2 10 silinmis evet 3400
1 11 200 0 12 silinmis evet 4200
Saklama politikası sildiğinden bir fazla dönemi denetlenemez kılıyor: altı dönem silindiğinde
denetlenemez dönem yedi, dokuz silindiğinde on. Fazladan gelen dönem her zaman pencerenin en
eskisidir; satırları duruyor ama tüketim bir farktır ve o farkın öteki ucu silinmiştir. Altı
dönemlik pencerede 2026-07 satırları hâlâ yerinde, buna karşın yeniden hesaplanamıyor ve özet
katmanı 25 hücreye iniyor. Bir saklama süresi “son altı dönem denetlenebilir” diye okunursa yanlış
okunmuştur; denetlenebilir olan beş dönemdir.
Son sütun bir önceki dersin bıraktığı soruyu yanıtlar. Soyağacı 4.400 tüketim bağı yazmıştı; altı dönemlik pencerede bunun 2.200’ü artık var olmayan bir satıra işaret ediyor ve 200 tanesi tam da sınır döneminin atalarıdır. Kaydın korunması izlenebilirliği korumaz; bağın gösterdiği satır silinmişse kayıt yalnız kaybın yerini bildirir.
Alarm sütunu ikinci bedeldir. Dönem duyarlı bölüm denetimi bu kursta doğru denetim olarak
kuruldu. Saklama uygulandığında beklediği dönem kümesi gerçekleşmiş kümeden büyük kalıyor ve
denetim sağlam veride ateşliyor: bozulma yok, bulgu var. Doğru bir denetim, bakması gereken alan
daraltıldığında yanlış alarm üreticisine dönüşüyor, çünkü beklenen dönem kümesini politikayla
birlikte güncelleyen olmadı. Bunun kimin işi olduğu ilk bölümün sorusudur: politikanın uygulandığı
konum kaynaktır ve sahibi yoktur.
Özet
- Sahiplik, bir konumun çıktısını değiştirme yetkisidir; beş aşamanın üçü sahipli olsa da altı bozulmanın altısı sahipsiz bir konumda yakalanır, çünkü denetimler kaynakta ve özet katmanında koşar, sahiplik ise üretilen katmanlara yazılmıştır.
- Bulgu aşağı yürüyerek alıcı bulur ama üç bozulmada alıcı onarımı yapamaz;
gec_gelenilebirim_degistionarım yerinden beş aşama uzaktaki bir role gider ve o rolün kanıta erişimi yoktur. - Onarım yeri sahipsiz olan üç sınıf, kusurlu denetim kümesiyle hiç yakalanmayan üç sınıfla birebir aynıdır: en zayıf denetlenen konum en zayıf sahiplenilen konumdur.
- Saklama politikası sildiğinden bir fazla dönemi denetlenemez kılar; altı dönem silindiğinde denetlenemez dönem 7 olur, özet 25 hücreye iner ve pencerenin en eski dönemi satırları dururken yeniden hesaplanamaz.
- Kayıt saklamadan bağımsız değildir: 4.400 tüketim bağının 2.200’ü silinmiş satıra işaret eder ve doğru bölüm denetimi yanlış alarma dönüşür.
Kurs Kapanışı
| Ders | Denetimsiz hat | Denetimli hat | Bedel |
|---|---|---|---|
veri-yasam-dongusu/01 — yakalanan bozulma |
0 yakalama, gecikme tanımsız | yedi denetim sağlam kaynakta sessiz, yanlış alarm 0 | iz 2400/2400/2200/55/5; değer başına 480 satır (588 / 372) |
veri-yasam-dongusu/02 — bozulmayı gören aşama (6 sınıf) |
sun her sınıfta 5 değer: 0 |
ayikla 1, tekille 1 (+2) |
tuketim eksik satırı ikiye katlar: 40→80, 46→92, 200→400 |
veri-yasam-dongusu/03 — iki ölçüt: satır ve sapma (m3) |
satır: sema_degisti 2200→1800, en gürültülü |
sapma: aynı sınıf 0,003, gec_gelen 0,105 — sıralama tersine döner |
eksik_bolum sapmayı 10,832 → 10,829 düşürür |
veri-yasam-dongusu/04 — kaynak sınıfının taşıdığı bozulma sınıfı |
hoşgörülü dış servis 6 sınıf, gecikme 8 aşama | bildirimli tür, birincil anahtar, tutarlı okuma 3 sınıf (−3), 4 aşama (−4) | hoşgörülü ayrıştırmada 200 satır bozulur, yakalayan olmaz; satır sayısı denetimi 0,05 payla hiçbirini yakalamaz |
veri-yasam-dongusu/05 — bozulmanın görüldüğü dönem (kip) |
toplu: dönem gecikmesi 1, 5 aşama, 13200 satır | akış: 0 (−1), 8 aşama (+3), 2400 satır (−10800) | akış 2600 girdi taşır; geç gelen satırda toplu 55 hücreyi doğru bırakır, akış 10’unu kirletir |
veri-kalitesi/01 — yakalama gecikmesi (aşama) |
0 yakalama, gecikme tanımsız | altı sınıfın altısı yakalanır (+6), gecikme 4/0/0/4/0/0 | kusurlu küme üç sınıfı hiç yakalamaz; bolum 46 satır eksikken yeşil kalır |
veri-kalitesi/02 — kaybın yakalandığı aşama |
sözleşmesiz: 200 + 200 satır sessizce düşer, özet 55→45 | sözleşmeli: aşama 0, özet yine 45 — çıktı düzelmez | katı sözleşme 1200 iyi satır engeller (özet 25); yük düzeyi 2200 engeller, çıktı yok |
veri-kalitesi/03 — ham satır ve sunulan değer |
ekleyen depo 2400 → 4800 → 7200 | anahtarlayan yazma 2400 sabit, çoğalan satır 0 (−4800) | kuzey üç koşumda da 1212,55; kusurlu tekilleştirmede 2425,09 ve 3637,64 |
veri-kalitesi/04 — kaynağa giden aramada bakılan satır |
kayıtsız 9260 satır, hedeften bağımsız | soyağacıyla 94–155 satır (60–99 kat az) | 11455 bağ, satır başına 1,21; gelmemiş satıra bağ yazılamaz |
veri-kalitesi/05 — sahiplik boşluğu ve denetlenemez dönem |
sahiplik yazılmamış: bulgunun alıcısı yok, denetlenemez dönem 1 | beş aşamanın 3’ü sahipli, altı bulgunun 3’ü onarabilen sahibe gider (+3) | altı yakalama konumunun 0’ı sahipli; altı dönemlik saklama denetlenemez dönemi 7’ye çıkarır (+6), askıda bağ 2200 |
Tablo tek bir kuralın on kez yazılmasıdır. Bir veri hattının sayısı taşıdığı satır değil, yanlış satırın kaç adım sonra yakalandığıdır; bozulmayı yakalayan denetimi yazılmayan hat ölçülmemiş sayılır. Denetimsiz sütunundaki hiçbir sayı kötü bir kodun sonucu değildir; hepsi, taşınan satır sayıldığı hâlde doğru olup olmadığının sorulmadığı bir düzenin sayılarıdır.
İkinci iddia da aynı tablodan okunur: eklenen denetim de bozar. Adıyla yazan satırlar şunlardır.
veri-kalitesi/02’de katı sözleşme zararsız bir alan eklemesinde 1200 iyi satırı engeller ve özeti
25 hücreye düşürür — üstelik yakalanan bozulma sıfırken; aynı derste yük düzeyinde uygulama 2200
iyi satırı engelleyip hiç çıktı vermez. veri-kalitesi/01’de bolum denetimi 46 satır
yazılmamışken yeşil kalır: yanlış güvence denetimsizlikten pahalıdır. veri-yasam-dongusu/04’te
satır sayısı denetimi 0,05 payla hiçbir sınıfı yakalamaz. veri-yasam-dongusu/05’te akış kipi geç
gelen satırda 10 özet hücresini kalıcı kirletir, toplu kip aynı bozulmada 55 hücreyi doğru bırakır.
veri-kalitesi/03’te tekilleştirme düzeltilmiş yükü yutar. veri-kalitesi/05’te saklama
politikası doğru bölüm denetimini yanlış alarma çevirir.
Üçüncü iddia sunulan sayıya bakmanın neden yetmediğidir ve üç bozulma adıyla sayılır.
yinelenen beş değeri birebir aynı bırakır, çünkü tekilleştirme fazlalığı yutar;
veri-yasam-dongusu/02, veri-kalitesi/01 ve veri-kalitesi/03 bunu ayrı ayrı ölçtü. kayan_tip
aynı şeyi tür dönüşümünde yapar. birim_degisti en sessizidir: özetin on hücresini 1812946491 ile
−1812944121 arasına taşır, iki dönem birbirini iptal eder ve kuzeyin değeri 1212,55’te kalır. Üçü
de sunuma bakan hiçbir gözlemle görülemez.
On derste hattın taşıdığı satır sayıldı ve bozulmanın kaç aşama sonra yakalandığı ölçüldü. Bir şey hiç sorulmadı: bu satırların nerede durduğu. Kaynak 2400 satır, özet 55 hücre, bağ 11455 kayıt olarak anıldı — ama hangi düzende yazıldıkları, bölümlere ayrılıp ayrılmadıkları ve o düzenin bir sorguyu kaça katladığı bir kez bile sayılmadı. Sonraki kurs bu düzeni bir ölçüm nesnesine dönüştürür.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.