Ana içeriğe geç

Veritabanı Yapısı

Qapu veritabanı yapısı, tek bir ürünün ihtiyacına göre zamanla büyümüş bir tablo kümesi olarak değil; birden fazla IoT ürün hattını aynı omurga üzerinde taşıyabilecek platform veri modeli olarak ele alınır. Bu nedenle burada asıl mesele tablo sayısı değil, sorumlulukların doğru ayrılmasıdır. Hangi veri hangi bağlamda yaşar, hangi tablo ailesi hangi yaşam döngüsünü taşır ve hangi katman nerede başlar sorusu, yapının temelini oluşturur.

Qapu’nun veritabanı modeli katmanlıdır; çünkü platformun taşıdığı problemler de katmanlıdır. Kimlik ve yetki başka hızda değişir, cihaz ve altyapı başka doğruluk mantığı ister, telemetri başka hacimde akar, kural ve aksiyon başka türde durum yönetir, mesajlaşma ve finans gibi alanlar ise sistemin kullanıcı ve işletme yüzünü oluşturur. Bunların tek parça düşünülmesi kısa vadede kolay görünür; fakat büyüme başladığında hem geliştirme hem bakım maliyeti hızla kontrolden çıkar.

Bu yüzden veri modeli domain ailelerine ayrılır. Bu ayrım yalnız dokümantasyon düzeni için değil, sistemin bounded context sınırlarını net tutmak için yapılmıştır. Her tablo ailesi kendi bağlamında okunur, düzenlenir ve geliştirilir; ama hepsi aynı operasyon omurgasının parçasıdır.

Yüksek seviye veri omurgası

Qapu içindeki temel veri hareketi birkaç büyük blok etrafında döner. Kimlik ve yetki katmanı, kullanıcı ve erişim omurgasını taşır. Cihaz, altyapı ve IoT katmanı sahadaki fiziksel varlıkları ve onların haberleşme bağlamını tanımlar. Telemetri ve ölçüm katmanı ham veriyi kabul eder, normalize eder ve anlamlı ölçüm kayıtlarına dönüştürür. Kural ve aksiyon katmanı bu ölçümleri iş kurallarına ve sistem reaksiyonlarına bağlar. Mesajlaşma, finans, not ve log gibi uygulama katmanları ise bu operasyonun kullanıcıya, yönetime ve sistem gözlemlenebilirliğine bakan yüzlerini oluşturur.

Bu akış, veritabanının yalnız veri saklayan bir yapı olmadığını gösterir. Veri önce bağlama oturur, sonra işlenir, ardından karar ve aksiyon katmanına taşınır. Veritabanı yapısı da tam olarak bu yaşam döngüsünü yansıtacak şekilde bölünmüştür.

Domain sınıflandırması

Qapu içindeki tablo aileleri aynı veritabanında yaşasa da aynı seviyede görülmemelidir. Bazı alanlar doğrudan platform çekirdeğidir. Bazıları birden fazla ürün tarafından paylaşılabilen ortak servis katmanıdır. Bazıları ise ürün uzantısı veya uygulama yüzü niteliğindedir. Bu ayrımı baştan net koymak, ileride platform çekirdeğinin ürün ihtiyaçlarıyla şişmesini ve servis sınırlarının bulanıklaşmasını önler.

Core platform domains

Core alanlar, ürün değişse bile ayakta kalması gereken omurgadır. Kullanıcı ve yetki, cihaz ve detay, IoT altyapı, IoT iletişim, telemetri ve ölçüm çekirdeği, kural ve aksiyon ile log/audit aileleri bu sınıfa girer. Bunlar Qapu’nun gerçek platform omurgasını oluşturur. Bir ürünün yaşam döngüsünden bağımsız düşünülmeli, platform kararı olarak korunmalıdır.

Shared platform services

Mesajlaşma ve bildirim katmanı, adres ve konum yapısı ve bazı ortak sözlük tabloları çekirdek kadar sert değildir; ancak farklı ürünlerin ortak kullanabileceği servis alanlarıdır. Bu nedenle bunlar çekirdekten ayrı düşünülmeli, ama ürünlere özel geçici detay muamelesi de görmemelidir.

Product extension domains

Tarım, saha, arazi ve sulama bağlamı taşıyan tablolar ile bazı ölçüm uzantıları ürün kimliğine daha yakındır. Bunlar platform tarafından taşınabilir; fakat platformun temel tanımı bu alanlarla yapılmamalıdır. Qapu bu tür product extension alanlarını desteklemeli, ancak çekirdeğin sınırlarını bu alanlara göre yeniden şekillendirmemelidir.

Application surface domains

Finans, notlar ve kullanıcıya dönük bazı uygulama katmanları veri modelinin üst yüzünde yer alır. Bunlar platformla aynı veritabanında yaşasa bile çekirdek veri motoruyla aynı sınıfta düşünülmemelidir. Bu ayrım, ileride hangi alanın bağımsız servis veya modül haline gelebileceğini de daha erken görünür kılar.

Mimari disiplin

Bir tablo ailesi yeni eklenirken ilk soru şu olmalıdır: bu alan gerçekten Qapu çekirdeği mi, yoksa paylaşılan servis, ürün uzantısı ya da uygulama yüzü mü? Bu soru sorulmadan yapılan her ekleme, zamanla platformun sınırlarını belirsizleştirir.

Tablo detayları

Veri modelinin kolon, ilişki ve tablo bazlı detayları ayrı sayfalarda tutulur. Bu tercih, büyüyen veritabanı anlatısını tek bir dev dökümanda boğmak yerine domain aileleri halinde düzenli tutmak için yapılmıştır.

Tablo aileleri

Asagidaki sira, tables/*/index.mdx dosyalarindaki sidebar_position degerlerinden gelir:

SiraDizinBaslik
1tables/kullanici-ve-yetkiKullanici ve Yetki Tablolari
2tables/mesajlasma-ve-bildirimMesajlasma ve Bildirim Tablolari
3tables/adres-ve-konumAdres ve Konum Tablolari
4tables/sozlukSozluk Tablolari
5tables/altyapiAltyapi Tablolari
6tables/cihaz-ve-detayCihaz ve Detay Tablolari
7tables/logLog Tablolari
8tables/iot-altyapiIoT Altyapi Tablolari
9tables/iot-iletisimIoT Iletisim Tablolari
10tables/telemetri-ve-olcumTelemetri ve Olcum Tablolari
11tables/kural-ve-aksiyonKural ve Aksiyon Tablolari
12tables/finans-uygulamasiFinans Uygulamasi Tablolari
13tables/not-uygulamasiNot Uygulamasi Tablolari

Tum detayli tablo listesi: Tablolar Detaylari

Alt dizin başlık haritası

Aşağıdaki yapı, tablo ailelerinin yalnız klasör olarak değil, sorumluluk alanı olarak nasıl ayrıldığını gösterir. Bu bölümün amacı her alt dizini tek tek yeniden yazmak değil; hangi başlığın hangi problem alanını tuttuğunu görünür kılmaktır.

1. Kullanici ve Yetki

Dokuman odagi:

  • kullanici/rol/yetki modeli
  • authority ve izin katmanlamasi

Belgede yer alan ana bolumler:

  • Kullanici Durum Akislari
  • Tablolar

Sayfa: Kullanici ve Yetki

2. Mesajlasma ve Bildirim

Dokuman odagi:

  • inbox, read-state ve push akislarinin davranissal modeli
  • notes alaninin ayri katman oldugu ayrimi

Belgede yer alan ana bolumler:

  • Katmanin Amaci
  • Genel Akis
  • Katmandaki Temel Tasarim Kararlari
  • Sonuc
  • Tablolar

Sayfa: Mesajlasma ve Bildirim

3. Adres ve Konum

Dokuman odagi:

  • adres hiyerarsisi ve koordinat modeli

Belgede yer alan ana bolumler:

  • Tablolar

Sayfa: Adres ve Konum

4. Sozluk

Dokuman odagi:

  • sistem genelinde kullanilan ortak referans sozlukleri

Belgede yer alan ana bolumler:

  • Tablolar

Sayfa: Sozluk

5. Altyapi

Dokuman odagi:

  • saha topolojisi, parsel ve pompa/pano iliskileri

Belgede yer alan ana bolumler:

  • Tablolar

Sayfa: Altyapi

6. Cihaz ve Detay

Dokuman odagi:

  • cihaz envanteri, grup modeli, proje ve firmware baglami

Belgede yer alan ana bolumler:

  • Tablolar

Sayfa: Cihaz ve Detay

7. Log

Dokuman odagi:

  • servis ve seviye baglaminda operasyonel loglama

Belgede yer alan ana bolumler:

  • Tablolar

Sayfa: Log

8. IoT Altyapi

Dokuman odagi:

  • SIM/modem envanteri, atama ve baglanti durum takibi

Belgede yer alan ana bolumler:

  • Tablolar

Sayfa: IoT Altyapi

9. IoT Iletisim

Dokuman odagi:

  • cihaz komutu, otomasyon ve calistirma gecmisi

Belgede yer alan ana bolumler:

  • Tablolar

Sayfa: IoT Iletisim

10. Telemetri ve Olcum

Dokuman odagi:

  • ingest zinciri, duplicate kontrolu, transaction boundary, failure davranisi ve sentez kurallarinin telemetri kapsaminda uygulanmasi

Belgede yer alan ana bolumler:

  • Genel Akis
  • Duplicate Identity Spesifikasyonu
  • Transaction Boundary
  • Failure Matrix
  • Sonuc
  • Tablolar

Sayfa: Telemetri ve Olcum

11. Kural ve Aksiyon

Dokuman odagi:

  • alarm kural tanimi, cihaz atamasi, state, event ve reaksiyon aksiyon modeli

Belgede yer alan ana bolumler:

  • Tablo Iliski Ozeti
  • Genel Kural Akisi
  • Tablolar

Sayfa: Kural ve Aksiyon

12. Finans Uygulamasi

Dokuman odagi:

  • finans hareketleri ve detay baglami

Belgede yer alan ana bolumler:

  • Tablolar

Sayfa: Finans Uygulamasi

13. Not Uygulamasi

Dokuman odagi:

  • not kayitlari ve not yasam dongusu

Belgede yer alan ana bolumler:

  • Tablolar

Sayfa: Not Uygulamasi

Katmanlar arası özet akış

Bu sayfa neyi özetler?

Bu sayfa dört şeyi aynı anda toplar: dizin yapısını ve sidebar sırasını, her alt klasörün konu sınırını, alt dokümanlardaki ana başlık haritasını ve domainler arası yüksek seviye veri akışını. Böylece okuyucu, tablo kolon detayına geçmeden önce büyük resmi görür.

Bu sayfa bilinçli olarak tablo kolon detayına girmez. Kolon, index, ilişki nüansı ve örnek kayıt detayları ilgili alt dizin dokümanlarında yaşar. Buradaki amaç, detayları tek sayfaya yığmak değil; detayların nereye ait olduğunu ve sistem içindeki yerini net göstermektir.

Master ERD

Tum tablo iliskilerini tek referans noktada gormek icin:

Migration Sirasi ve Ortam Tutarliligi

Migrationlarin deterministik sirada calismasi ve tum ortamlarda birebir ayni sonucu vermesi icin:

Uctan Uca Test Data Seti

Ingestten rule ve aksiyona kadar tek senaryoda dogrulama icin:

Not: Bu sayfa mevcut tablo dokumanlarini birlestirmez veya yerine gecmez; yalnizca iliski haritasini merkezilesir.