AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Veritabanı › Kullanım Haritası › DBMAP-INDEX

Database Usage Map — ERPGOLD Veritabanı Kullanım Haritası

DBMAPERPGOLD_COREACTIVEHIGHDERIVED
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

ERPGOLD V2'nin kullandığı SQL nesneleri, geçişli bağımlılıklar ve temizlik sınıflandırması (A–F). Doğrudan 362 · gerekli 419 · unused aday 39.

Ne anlatır? ERPGOLD V2 uygulamasının SQL Server'da hangi nesneleri kullandığını, bu nesnelerin başka hangi nesnelere bağlı olduğunu (geçişli kapanım) ve kalan nesnelerin neden "kullanılmıyor" denemeyeceğini tek yerde toplar. Temel kural: SAFETY > CLEANUP — bir nesneyi gereksiz bırakmak kabul edilebilir, gerekli bir nesneyi yanlışlıkla gereksiz saymak kabul edilemez.

ÜÇ SAYI
1. ERPGOLD’un doğrudan kullandığı SQL nesnesi (ROOT SET): 362
2. Dolaylı bağımlılıklarla birlikte ERPGOLD için gerekli toplam nesne: 419 (+4 alias tip = 423)
3. ERP ile hiçbir doğrudan/dolaylı bağı bulunamayan UNUSED CANDIDATE: 39

Kategoriler (696 katalog nesnesi)

KategoriAdetAçıklama
A — ERPGOLD CORE362kod 327 · DB içi rapor/tasarım SQL 35
B — INDIRECT DEPENDENCY57modül 45 · tetikleyici 12 (+4 alias tip: tislemkodu/tislemturu/tislemtipi/tfiyattipi)
C — POSSIBLE CORE2iki kurulumda var, kod referansı yok
D — CUSTOMER CUSTOM13DynamicForms runtime tabloları + tek kurulum tabloları; müşteri adlı şemalar ayrıca 06 listesinde
E — UNUSED CANDIDATE39hiçbir doğrudan/dolaylı bağ yok — DROP adayı (ön koşullarla)
F — MANUAL REVIEW223dış ürün şemaları, olası menü raporu hedefleri, olası job, pasif küme, zayıf eşleşme

A+B = 419 nesne ERPGOLD_REQUIRED_DATABASE_OBJECTS kümesidir; bunların hiçbiri "unused" değildir.

Bölüm sayfaları

Yöntem

  1. ROOT SET: Kaynak kodun doğrudan kullandığı nesneler — ERPPRO tam çözüm statik taraması (InternalDb/SqlCommand/CommandText/EXEC/dinamik SQL/string birleştirme dahil), KB-v1 sınıf ve ekran makaleleri (dosya:satır kanıtlı), TECHNICAL_WIKI kolon→kod dosyası eşlemesi, DAO haritası. Ayrıca veritabanında satır olarak saklanan ve ERPGOLD'un çalıştırdığı SQL (AifaDev.Reports, ReportsFilter, Design.PopupGrid, Dashboard, FaturaDesign) → A-STORED_SQL.
  2. Bağımlılık grafı: sys.sql_expression_dependencies kökenli wiki tabloları (META) + her modülün SQL tanımında şema.ad taraması (TEXT; dinamik SQL ve metadata'nın kaçırdığı referanslar için) + tetikleyici → tablo bağı (DDL).
  3. Geçişli kapanım: Seviye-0 → Seviye-1 → … yeni nesne bulunmayana kadar (BFS; DependencyDepth köke en kısa yol).
  4. Kalanların sınıflandırılması: güvenlik bayrakları (trigger, fk, computed, crossdb, external), dinamik SQL metin eşleşmesi, pasif küme, iki kurulum varlığı ve satır sayısı, ad kalıpları (Old/_/XXX/test), kırık referans, nesne türü (yordam → olası job; TVF/görünüm → olası rapor hedefi).
  5. Kolon kullanımı: TECHNICAL_WIKI FIELDS (44 tablo / 793 kolon: kod dosyası, UI kontrolü, DAO property), gerekli SQL modüllerinde kolon adı, SELECT * ve kolon listesiz INSERT → tüm kolonlar USED.

Güven puanı

PuanAnlamı
100ERP kaynak kodundan doğrudan çağrılıyor
95ERP’nin kullandığı SQL nesnesi tarafından doğrudan kullanılıyor (META kenarı, derinlik 1) / DB içi rapor SQL’i / tetikleyici bağı
90Bağımlılık grafıyla kesin ulaşılıyor (derinlik ≥ 2)
85Yalnız SQL metin taramasıyla (TEXT) ulaşılıyor
70İki referans kurulumda ortak ama kod referansı yok / dbo şemasız zayıf eşleşme
50Olası menü raporu hedefi / olası job — kurulum bazlı veri kontrolü gerekir
40Yalnız bir kurulumda var / zayıf ad eşleşmesi / veri var yazan yok
20Dinamik SQL ihtimali nedeniyle belirsiz

Sınırlar

  • Kaynak kod ve canlı SQL Server bu üretimde erişilebilir değildi; kanıt, aynı kaynaklardan daha önce üretilmiş wiki verisidir (yeni kod sürümleri taranmadı).
  • AifaDev.Reports / Design SQL'i V2 demo kurulumunun satırlarıdır; başka müşteride farklı raporlar olabilir → sonuç kümesi döndüren referanssız TVF/görünümler F'de tutuldu.
  • SQL Agent job kontrol edilemedi (demo Express; msdb erişimi yok). Üretim Standard sunucusunda msdb.dbo.sysjobsteps taraması her DROP'un ön koşuludur.
  • Synonym / sequence / CLR / tip envanteri wiki kataloğunda yoktur (GAP-DBMAP-01); alias tipler kolon tiplerinden çıkarıldı.

Cleanup öncesi zorunlu kontrol (salt okunur, her müşteri DB'sinde)

DECLARE @ad nvarchar(200) = N'FN.MonthName';  -- Unused Candidates listesindeki her nesne için
DECLARE @k nvarchar(200) = N'%' + PARSENAME(@ad,1) + N'%';
SELECT 'AifaDev.Reports' AS kaynak, Id, ReportName AS ad FROM AifaDev.Reports WHERE [SQL] LIKE @k
UNION ALL SELECT 'AifaDev.ReportsFilter', Id, CAST(ReportId AS nvarchar(20)) FROM AifaDev.ReportsFilter WHERE [SQL] LIKE @k
UNION ALL SELECT 'Design.PopupGrid', Id, Caption FROM Design.PopupGrid WHERE [SQL] LIKE @k
UNION ALL SELECT 'AifaDev.Dashboard', Id, ReportName FROM AifaDev.Dashboard WHERE Layout LIKE @k
UNION ALL SELECT 'AifaDev.FaturaDesign', Id, ReportName FROM AifaDev.FaturaDesign WHERE Layout LIKE @k
UNION ALL SELECT 'AifaDev.DynamicForms', Id, ProjectName FROM AifaDev.DynamicForms WHERE TableName LIKE @k OR Code LIKE @k OR Script LIKE @k
UNION ALL SELECT 'sys.sql_modules', object_id, OBJECT_SCHEMA_NAME(object_id)+'.'+OBJECT_NAME(object_id) FROM sys.sql_modules WHERE definition LIKE @k
UNION ALL SELECT 'msdb job', 0, j.name FROM msdb.dbo.sysjobs j JOIN msdb.dbo.sysjobsteps st ON st.job_id=j.job_id WHERE st.command LIKE @k;

Kaynak: ERPGOLD Kurumsal Wiki kataloğu (696 nesne; ERPPRO tam çözüm statik taraması 1.029 .vb / 1.468 SQL ifadesi; sys.sql_expression_dependencies + SQL tanımı metin taraması; AifaDev.Reports / Design DB içi SQL; ERPGOLDV2 ↔ ERPGOLDV2_KUYUMCU tablo karşılaştırması). Üretim: dbmap/extract.py → analyze.py → columns.py → report.py · 13.09.2026. Canlı DB bağlantısı ve kaynak kod bu üretimde yoktu; msdb (SQL Agent) kontrol edilemedi. Hiçbir DDL/DML çalıştırılmadı.