---
title: 'Sektörel Uyumluluk Gereksinimleri'
source: 'https://academia.sh/tr/kurslar/yonetisim-risk-uyumluluk/sektorel-uyumluluk-gereksinimleri'
course: 'Yönetişim, Risk ve Uyumluluk'
language: tr
updated: '2026-08-17T18:08:36+00:00'
license: 'CC BY-SA 4.0'
---

# Sektörel Uyumluluk Gereksinimleri

Uyumluluk gereksinimlerinin veri türüne bağlanması ve kapsam daraltmanın kontrol tarafındaki karşılığı: 16 sistem ve 4 veri türünde tür başına ek kontrollerin ayrı ayrı toplandığında 29, birleşimde 20 çıkması, 9 çok türlü sistemin 129 kontrol yükü taşıması, bir türü bütün sistemlerden kaldırmanın 4 ve 3 kontrol düşürmesine karşılık kısmen kaldırmanın hiç kontrol düşürmemesi, artık kontrollerin geri gelmesi ve üç ayrı ölçünün dört eylemi üç farklı sırayla dizmesi.

Önceki dersin matrisi gereksinimleri kaynaklarından bağımsız aldı: her satır bir cümleydi. Oysa bir
gereksinim listesinin uzunluğunu belirleyen şey çoğu zaman kurumun ne yaptığı değil, **hangi veriye
dokunduğudur**. Aynı mimariyi taşıyan iki sistemden biri ödeme kartı verisi işliyorsa, öteki
işlemiyorsa, ikisinin kontrol listesi eşit olmaz.

Bu ders gereksinimi veri türüne bağlar. Türler burada **veri türü olarak** anılır — ödeme kartı
verisi, sağlık verisi, kişisel veri, ölçüm verisi — ve hiçbir düzenleme, kurum ya da sektör birliği
adı yazılmaz. Ölçülecek üç şey vardır: bir tür kaç ek kontrol getiriyor, aynı sistemde iki tür
birden bulunduğunda listeler nasıl birikiyor, ve kapsamı daraltmanın en sert biçimi — veriyi hiç
tutmamak — kaç kontrolü gerçekten ortadan kaldırıyor.

- **CE21.** Envanter kurgu **bölgesel ölçüm ağı**ndan alınmış 16 sistemdir. Sistemler, veri türleri
  ve kontrol sayıları **kurgudur**.
- **CE22.** Dört veri türü vardır ve her tür bir ek kontrol kümesi getirir. Kümeler kesişir: bir
  kontrol birden çok türde geçebilir.
- **CE23.** Bir sistemin kontrol listesi, taşıdığı türlerin kontrol kümelerinin **birleşimidir**;
  aynı kontrol iki türden geliyorsa bir kez sayılır.
- **CE24.** Her kontrol dönemde belirli sayıda kanıt kalemi üretir ve bunu **her sistem için ayrı**
  üretir; toplam kanıt hacmi sistem-kontrol çiftleri üzerinden toplanır.
- **CE25.** Bir kontrol ancak taşıyan **hiçbir sistem kalmadığında** ortadan kalkar. Türü bazı
  sistemlerden kaldırmak kontrol listesini kısaltmaz.
- **CE26.** Veriyi kaldırmanın **artık kontrolü** olabilir: veriyi dışarı taşıyan sınırın kendisi
  ya da devredilen tarafın değerlendirilmesi yeni bir kontrol olarak geri gelir.

```js
// sektor/veri.mjs — sektorel uyumluluk gereksinimleri veri turune baglanir.
// MODELDIR: bolgesel olcum agi (kurgu); sistemler, kontroller ve sayilar kurgudur.
export const satir = (s) => s.trim().split("\n").map((l) => l.trim().split("|"));
export const gen = (B) => (...h) => h.map((v, j) =>
  (j ? String(v).padStart(B[j]) : String(v).padEnd(B[0]))).join("");

// kod | kontrol | donemde uretilen kanit kalemi
export const KONTROL = Object.fromEntries(satir(`
  C01|beklemede sifreleme|365
  C02|aktarimda sifreleme|365
  C03|ag bolutleme|12
  C04|belirtec sinirinin dogrulanmasi|52
  C05|erisim kaydi|365
  C06|ayricalikli erisim onayi|48
  C07|saklama suresi kosumu|365
  C08|silme istegi akisi|30
  C09|veri envanteri tazeleme|4
  C10|veri akis haritasi|2
  C11|riza kaydi|120
  C12|amac sinirlama incelemesi|4
  C13|ozel nitelikli veriye ek erisim onayi|24
  C14|personel gizlilik taahhudu|1
  C15|ek farkindalik egitimi|2
  C16|saticinin degerlendirilmesi|3
  C17|donemsel sizma testi|1
  C18|gunluk butunlugu|365
  C19|olcum dogrulugu mutabakati|12
  C20|test verisi maskeleme|12`)
  .map(([kod, ad, kalem]) => [kod, { kod, ad, kalem: +kalem }]));

// Veri turu | o turun getirdigi ek kontroller. Duzenleme adi yazilmaz; tur adi yazilir.
export const TUR = Object.fromEntries(satir(`
  odeme-karti|C01 C02 C03 C04 C05 C06 C16 C17 C20
  saglik|C01 C05 C07 C11 C12 C13 C14 C15
  kisisel|C01 C02 C05 C07 C08 C09 C10 C11 C12
  olcum|C05 C18 C19`).map(([t, k]) => [t, k.split(" ")]));

// sistem | tasidigi veri turleri
export const SISTEM = satir(`
  fatura-uygulamasi|odeme-karti kisisel
  fatura-veritabani|odeme-karti kisisel
  odeme-gecidi-baglantisi|odeme-karti
  abone-portali|kisisel
  cagri-merkezi-kaydi|kisisel saglik
  saha-ekip-uygulamasi|kisisel saglik
  is-sagligi-kaydi|saglik
  toplayici-servis|olcum
  dogrulayici-servis|olcum
  saha-sayac-agi|olcum
  raporlama-ambari|odeme-karti kisisel olcum
  yedek-deposu|odeme-karti kisisel saglik olcum
  gunluk-toplama-hatti|kisisel olcum
  kimlik-saglayici|kisisel
  arsiv-deposu|kisisel saglik
  test-ortami|odeme-karti kisisel`).map(([ad, t]) => ({ ad, tur: t.split(" ") }));

export const kontrolleri = (turler) => new Set(turler.flatMap((t) => TUR[t]));
export const gereken = (sistemler) =>
  kontrolleri([...new Set(sistemler.flatMap((s) => s.tur))]);

if (import.meta.url === `file://${process.argv[1]}`) {
  const turAd = Object.keys(TUR);
  console.log(`model: ${SISTEM.length} sistem, ${turAd.length} veri turu, ` +
    `${Object.keys(KONTROL).length} kontrol`);

  const y = gen([13, 9, 11, 10, 12, 14]);
  console.log("\n" + y("veri turu", "sistem", "ek kontrol", "ozgun", "paylasilan", "kanit kalemi"));
  for (const t of turAd) {
    const s = SISTEM.filter((x) => x.tur.includes(t));
    const ozgun = TUR[t].filter((k) => !turAd.some((o) => o !== t && TUR[o].includes(k)));
    console.log(y(t, s.length, TUR[t].length, ozgun.length, TUR[t].length - ozgun.length,
      TUR[t].reduce((a, k) => a + KONTROL[k].kalem, 0)));
  }
  const topla = turAd.reduce((a, t) => a + TUR[t].length, 0);
  const birlesim = gereken(SISTEM);
  console.log(`\ntur basina kontroller ayri ayri toplandiginda ${topla}; birlesim ` +
    `${birlesim.size} — ${topla - birlesim.size} kontrol birden cok turde tekrar ediyor`);

  const z = gen([25, 8, 11, 14, 12]);
  console.log("\n" + z("en yuklu sistem", "tur", "kontrol", "kanit kalemi", "tek turde"));
  const yuklu = [...SISTEM].sort((a, b) => kontrolleri(b.tur).size - kontrolleri(a.tur).size ||
    b.tur.length - a.tur.length).slice(0, 4);
  for (const s of yuklu) {
    const k = [...kontrolleri(s.tur)];
    const tek = k.filter((x) => s.tur.filter((t) => TUR[t].includes(x)).length === 1).length;
    console.log(z(s.ad, s.tur.length, k.length, k.reduce((a, x) => a + KONTROL[x].kalem, 0), tek));
  }
  const cok = SISTEM.filter((s) => s.tur.length > 1);
  console.log(`\ncok turlu sistem ${cok.length}/${SISTEM.length}; bunlarin kontrol yuku ` +
    `${cok.reduce((a, s) => a + kontrolleri(s.tur).size, 0)} kalem, tek turlu ` +
    `${SISTEM.length - cok.length} sistemin yuku ` +
    `${SISTEM.filter((s) => s.tur.length === 1).reduce((a, s) => a + TUR[s.tur[0]].length, 0)}`);
}
```

```
model: 16 sistem, 4 veri turu, 20 kontrol

veri turu       sistem ek kontrol     ozgun  paylasilan  kanit kalemi
odeme-karti          6          9         6           3          1223
saglik               5          8         3           5          1246
kisisel             11          9         3           6          1620
olcum                6          3         2           1           742

tur basina kontroller ayri ayri toplandiginda 29; birlesim 20 — 9 kontrol birden cok turde tekrar ediyor

en yuklu sistem               tur    kontrol  kanit kalemi   tek turde
yedek-deposu                    4         20          2152          14
raporlama-ambari                3         17          2125          14
fatura-uygulamasi               2         15          1748          12
fatura-veritabani               2         15          1748          12

cok turlu sistem 9/16; bunlarin kontrol yuku 129 kalem, tek turlu 7 sistemin yuku 44
```

İlk tablonun okunacak yeri dördüncü ve beşinci sütunlardır. Ödeme kartı verisi dokuz ek kontrol
getiriyor ve bunların altısı yalnız o türe özgüdür; sağlık verisi sekiz kontrol getiriyor ama yalnız
üçü özgündür, beşi başka türlerle paylaşılır. Bu, uyum çalışmasının en çok yanlış hesaplanan
kalemidir: türler ayrı ayrı toplandığında 29 kontrol çıkıyor, birleşim ise 20'dir. Dokuz kontrol
birden çok türde tekrar ediyor, yani **ikinci veri türünü almanın kontrol maliyeti birincisinden
düşüktür.** Beklemede şifreleme üç türde birden geçer; bir kez kurulup üç yükümlülüğe birden yanıt
verir.

Paylaşımın ters yüzü de sayılmalıdır. Bir kontrol birden çok türden geliyorsa, o kontrolü
gevşetmenin bedeli de birden çok yükümlülüğe yayılır: erişim kaydı dört türün dördünde birden
geçiyor, dolayısıyla tek bir kayıt akışının bozulması dört ayrı gereksinimi aynı anda kanıtsız
bırakır. Önceki dersin kaldıraç ölçüsü burada veri türü tarafından yeniden üretiliyor — ortak
kontrol hem tasarrufun hem kırılganlığın kaynağıdır.

İkinci tablo bu birikimi sistem düzeyinde gösteriyor. Yedek deposu dört türü birden taşıdığı için
yirmi kontrolün **tamamını** üzerine alıyor; envanterdeki hiçbir sistem bu kadar yük taşımıyor ve
yedek deposu kendi başına hiçbir iş yapmıyor — yalnız başka sistemlerin verisini tutuyor. Raporlama
ambarı ve test ortamı da aynı sınıftandır. Veri türü listeleri bu üç yerde birikiyor, çünkü
üçü de veriyi **kaynağından bağımsız** topluyor. Son satır aynı şeyi toplu olarak söylüyor: dokuz
çok türlü sistem 129 kontrol yükü taşırken, yedi tek türlü sistem 44 taşıyor.

## Veriyi Hiç Tutmamak

Kontrol listesini kısaltmanın en sert yolu veriyi hiç tutmamaktır: türü sistemden çıkarmak, dışarıya
devretmek ya da tanımlayıcıları kaldıracak biçimde toplulaştırmak. Aşağıdaki dosya dört eylemi aynı
envanterde koşturuyor ve her birinin gerçekten kaç kontrolü düşürdüğünü sayıyor.

```js
// sektor/daraltma.mjs — veriyi hic tutmamanin kac kontrolu ortadan kaldirdigi.
import { KONTROL, TUR, SISTEM, kontrolleri, gereken, gen } from "./veri.mjs";

// Bir sistemin donemde urettigi kanit kalemi: tasidigi turlerin kontrolleri
const hacim = (kume) => kume.reduce((a, s) =>
  a + [...kontrolleri(s.tur)].reduce((x, k) => x + KONTROL[k].kalem, 0), 0);

// eylem | kaldirilan veri turu | dokunulan sistemler ("*" = tumu) | artik kontrol | gun
const EYLEM = [
  ["belirtec ve gecidin devri", "odeme-karti", "*", ["C04", "C16"], 30],
  ["saglik kaydinin devri", "saglik", "*", ["C16"], 14],
  ["raporda toplulastirma", "kisisel",
    ["raporlama-ambari", "yedek-deposu", "test-ortami", "arsiv-deposu"], ["C09"], 20],
  ["olcumun sahada ozetlenmesi", "olcum",
    ["raporlama-ambari", "yedek-deposu", "gunluk-toplama-hatti"], [], 10],
];

const ONCE_K = gereken(SISTEM), ONCE_H = hacim(SISTEM);
const uygula = (tur, hedef, artik) => {
  const yeni = SISTEM.map((s) => (hedef === "*" || hedef.includes(s.ad))
    ? { ...s, tur: s.tur.filter((t) => t !== tur) } : s);
  const k = gereken(yeni);
  for (const a of artik) k.add(a);
  return { yeni, k };
};

console.log(`baslangic: ${ONCE_K.size} kontrol, donemde ${ONCE_H.toLocaleString("tr-TR")} ` +
  `kanit kalemi, ${SISTEM.length} sistem`);
const y = gen([28, 10, 10, 9, 14, 7, 12]);
console.log("\n" + y("eylem", "sistem", "kontrol", "kalkan", "kanit kalemi", "gun",
  "kalem / gun"));
const sonuc = [];
for (const [ad, tur, hedef, artik, gun] of EYLEM) {
  const { yeni, k } = uygula(tur, hedef, artik);
  const h = hacim(yeni) + artik.reduce((a, x) => a + KONTROL[x].kalem, 0);
  const dokunulan = SISTEM.filter((s) => (hedef === "*" || hedef.includes(s.ad)) &&
    s.tur.includes(tur)).length;
  sonuc.push({ ad, kalkan: ONCE_K.size - k.size, dusen: ONCE_H - h, gun });
  console.log(y(ad, dokunulan, k.size, ONCE_K.size - k.size, h.toLocaleString("tr-TR"), gun,
    ((ONCE_H - h) / gun).toFixed(0)));
}

const sira = (f) => [...sonuc].sort((a, b) => f(b) - f(a)).map((s) => s.ad);
const sK = sira((s) => s.kalkan), sH = sira((s) => s.dusen), sV = sira((s) => s.dusen / s.gun);
console.log(`\nkalkan kontrole gore : ${sK.join(" > ")}`);
console.log(`dusen kaleme gore    : ${sH.join(" > ")}`);
console.log(`birim gune gore      : ${sV.join(" > ")}`);

// Turu butun sistemlerden kaldirmakla kismen kaldirmak arasindaki fark
const kismi = sonuc.filter((s) => s.kalkan === 0);
console.log(`\nturu butun sistemlerden kaldiran ${sonuc.length - kismi.length} eylem kontrol ` +
  `dusuruyor; kismen kaldiran ${kismi.length} eylem hic kontrol dusurmuyor ama ` +
  `${kismi.reduce((a, s) => a + s.dusen, 0).toLocaleString("tr-TR")} kanit kalemi eksiltiyor`);
const artik = ["C04", "C16"];
const ikisi = uygula("odeme-karti", "*", artik).yeni
  .map((s) => ({ ...s, tur: s.tur.filter((t) => t !== "saglik") }));
const kIki = gereken(ikisi);
for (const a of artik) kIki.add(a);
console.log(`iki turu birden kaldirmak: ${ONCE_K.size} kontrolun ${ONCE_K.size - kIki.size} ` +
  `tanesi ortadan kalkiyor, ${kIki.size} tanesi kaliyor; artik kontrol olarak ` +
  `${artik.map((k) => KONTROL[k].ad).join(" ve ")} geri geliyor`);
console.log(`kalan ${kIki.size} kontrolun ${TUR["kisisel"].length} tanesi kisisel veri ` +
  `turunden geliyor; donemdeki kanit kalemi ` +
  `${[...kIki].reduce((a, k) => a + KONTROL[k].kalem, 0).toLocaleString("tr-TR")}`);
```

```
baslangic: 20 kontrol, donemde 24.394 kanit kalemi, 16 sistem

eylem                           sistem   kontrol   kalkan  kanit kalemi    gun kalem / gun
belirtec ve gecidin devri            6        16        4        22.586     30          60
saglik kaydinin devri                5        17        3        23.043     14          97
raporda toplulastirma                4        20        0        22.911     20          74
olcumun sahada ozetlenmesi           3        20        0        23.263     10         113

kalkan kontrole gore : belirtec ve gecidin devri > saglik kaydinin devri > raporda toplulastirma > olcumun sahada ozetlenmesi
dusen kaleme gore    : belirtec ve gecidin devri > raporda toplulastirma > saglik kaydinin devri > olcumun sahada ozetlenmesi
birim gune gore      : olcumun sahada ozetlenmesi > saglik kaydinin devri > raporda toplulastirma > belirtec ve gecidin devri

turu butun sistemlerden kaldiran 2 eylem kontrol dusuruyor; kismen kaldiran 2 eylem hic kontrol dusurmuyor ama 2.614 kanit kalemi eksiltiyor
iki turu birden kaldirmak: 20 kontrolun 7 tanesi ortadan kalkiyor, 13 tanesi kaliyor; artik kontrol olarak belirtec sinirinin dogrulanmasi ve saticinin degerlendirilmesi geri geliyor
kalan 13 kontrolun 9 tanesi kisisel veri turunden geliyor; donemdeki kanit kalemi 2.052
```

Dördüncü sütun dersin sert sonucudur. Kişisel veriyi dört sistemden ve ölçüm verisini üç sistemden
kaldıran eylemler **hiçbir kontrolü ortadan kaldırmıyor.** Nedeni CE25'tir: bir kontrol ancak onu
gerektiren hiçbir sistem kalmadığında düşer; kişisel veri on bir sistemde geçtiği için dördünden
çıkarmak listeyi kısaltmaz. Bu iki eylem yine de işe yarıyor — 2.614 kanıt kalemi eksiltiyorlar —
ama kazandıkları şey kontrol listesi değil, **kanıt hacmidir**. İki farklı kazanç ve iki farklı
karar; ikisini tek başlıkta toplamak, "veriyi azalttık, uyum yükümüz düştü" gibi ölçülemeyen bir
cümle üretir.

Türü bütün sistemlerden kaldıran iki eylem gerçekten kontrol düşürüyor: ödeme kartı verisi dört,
sağlık verisi üç. Ama düşen sayı türün getirdiği sayıdan azdır. Ödeme kartı verisi dokuz kontrol
getirmişti; kaldırıldığında altı özgün kontrol düşüyor, ardından ikisi **artık kontrol** olarak geri
geliyor — veriyi dışarıda tutan belirteç sınırının doğrulanması ve devredilen tarafın
değerlendirilmesi. Veriyi devretmek yükümlülüğü sıfırlamaz; onu **sınırın kendisine** taşır.

Üç sıralama üç farklı liste veriyor ve hiçbiri yanlış değildir. Kalkan kontrole göre belirteç
eylemi birincidir; birim güne göre en son sıradadır ve ölçümün sahada özetlenmesi öne geçer. Otuz
günlük bir çabayla dört kontrol düşürmek ile on günlük bir çabayla hiç kontrol düşürmeyip 1.131
kanıt kalemi eksiltmek arasındaki seçim, kurumun neyi darlık olarak yaşadığına bağlıdır: denetim
listesinin uzunluğu mu, yoksa kanıt derleme emeği mi. Son satır sınırı yazıyor — iki türü birden
kaldırdıktan sonra bile yirmi kontrolün on üçü ayakta kalır ve dokuzu kişisel veri türünden gelir.

## Özet

- Uyumluluk gereksinimlerinin bir bölümü kurumun ne yaptığından değil, hangi veri türüne
  dokunduğundan doğar; dört tür sırasıyla 9, 8, 9 ve 3 ek kontrol getiriyor.
- Türler ayrı ayrı toplandığında 29, birleşimde 20 kontrol çıkıyor: dokuz kontrol birden çok türde
  tekrar ettiği için ikinci veri türünün kontrol maliyeti birincisinden düşüktür.
- Kontrol yükü, veriyi kaynağından bağımsız toplayan sistemlerde birikiyor: yedek deposu dört türü
  birden taşıdığı için yirmi kontrolün tamamını üzerine alıyor; dokuz çok türlü sistemin yükü 129,
  yedi tek türlü sistemin yükü 44.
- Bir kontrol ancak onu gerektiren hiçbir sistem kalmadığında düşer: kişisel veriyi dört, ölçüm
  verisini üç sistemden kaldırmak hiçbir kontrolü ortadan kaldırmıyor, yalnız 2.614 kanıt kalemi
  eksiltiyor.
- Türü bütünüyle kaldırmak dört ve üç kontrol düşürüyor, ama artık kontroller geri geliyor: veriyi
  devretmek yükümlülüğü sıfırlamaz, sınırın kendisine taşır. İki tür birden kaldırıldığında yirmi
  kontrolün on üçü ayakta kalıyor.
- Kalkan kontrol, düşen kanıt kalemi ve birim güne düşen kazanç üç farklı sıralama üretiyor; en çok
  kontrol düşüren eylem birim çabada sonuncudur.

## Sonraki Adım

Bu dersin dört türünden biri diğerlerinden farklı davrandı: kişisel veri on bir sistemde geçiyor,
hiçbir daraltmayla ortadan kalkmıyor ve kaldırma denemelerinden sonra bile kalan on üç kontrolün
dokuzunu tek başına taşıyor. Nedeni yalnız yaygınlığı değildir. Öteki türlerde yükümlülük **veriyi
tutan tarafa** yazılır; kişisel veride yükümlülüğün bir bölümü **verisi tutulan kişiye** bir hak
olarak verilir ve o hak istendiği anda kullanılır.

Sonraki ders bu hakları kalem olarak sayar: kaç ayrı talep türü var, bir talep karşılanırken kaç
sistemde arama yapılıyor, envanterde olmayan bir sistem yüzünden kaç talep eksik yanıtlanıyor. İşleme
ilkeleri de aynı biçimde ele alınır — her ilke bir kontrole ve bir kanıt kalemine bağlanır.
