Net-Base Dergi

29.05.2026

BDE-Değişimi: Delphi uygulamalarını veri ve operasyonel risk olmadan nasıl modernize edersiniz

Birçok Delphi uygulaması hâlâ Borland Database Engine (BDE) kullanıyor — bunun bedelini işletme zorlukları, sürücü problemleri, güvenlik riskleri ve engellenmiş platform güncellemeleriyle ödüyor. Bu makale, bir BDE ikamesinin teknik açıdan nasıl düzgün planlanacağını gösterir: Veri migrasyonu...

29.05.2026

Dergi konusundan proje pratiğine

İçeriğe Uygun Hizmet ve Teknik Sayfalar

Eine BDE-değişimi steht in vielen Unternehmen nicht auf der Wunschliste – aber irgendwann auf der Risiko-Landkarte. Die Borland Database Engine (BDE) ist ein historischer Datenzugriffs-Stack für Delphi-uygulamalar, der in gewachsenen Umgebungen häufig noch Paradox-Tabellen oder ältere Datenbankanbindungen bedient. Solange alles „irgendwie läuft“, wirkt das Thema beherrschbar. In der Praxis sind es aber meist Betrieb, Updates und Schnittstellen, die zuerst kippen: 64-Bit-Umstellungen, neue Windows-Versionen, moderne Datenbanken, Sicherheitsanforderungen, Terminalserver/VDI oder einfach der Wunsch nach stabiler, nachvollziehbarer Administration.

Dieser Beitrag ordnet ein, woran eine BDE-basierte Anwendung heute realistisch scheitert, wie Sie die Ablösung so planen, dass Daten, Schnittstellen und Prozesse sauber weiterlaufen, und welche Migrationspfade sich in der Praxis bewährt haben. Fokus ist nicht „Code-Kosmetik“, sondern Betriebssicherheit, Datenqualität, Wartbarkeit und die Möglichkeit, die Anwendung schrittweise zu modernisieren – ohne unnötigen Big-Bang.

Warum die BDE im Betrieb zum Problem wird

Die BDE ist nicht nur „alt“, sondern passt in mehreren Dimensionen nicht mehr zu aktuellen IT-Standards. Das zeigt sich selten an einem einzelnen großen Knall, sondern an vielen kleinen Reibungsverlusten, die IT-Teams Zeit kosten und Risiken erhöhen.

Technische und organisatorische Symptome

  • Instabile oder schwer wartbare Client-Installationen: BDE-Konfiguration, Alias-Verwaltung, Pfade, Schreibrechte und Abhängigkeiten sind häufig nicht sauber paketierbar. In Terminalserver- oder VDI-Setups eskalieren diese Themen schnell.
  • Treiber- und Kompatibilitätsgrenzen: Moderne Datenbanken und Sicherheitskonfigurationen (z. B. TLS-Standards, Authentifizierungsverfahren) lassen sich über BDE-Connectivity nicht mehr robust abbilden.
  • 32-/64-Bit-Konflikte: Viele Unternehmen wollen aus guten Gründen 64-Bit-Clients, neue Office-Versionen, aktuelle Druck-/PDF-Stacks oder ARM64-Geräte einsetzen. Die BDE wird dabei zum Bremsklotz.
  • Security und Hardening: Alte Datenpfade, lokale Dateien, unklare Rechteanforderungen, fehlende Verschlüsselungs- oder Audit-Fähigkeiten passen schlecht zu heutigen Sicherheits- und Compliance-Erwartungen.
  • Fehlende Zukunftsfähigkeit bei Schnittstellen: Sobald APIs (REST), zentrale Identity (z. B. SAML 2.0 als Standard für Single Sign-on) oder servicebasierte Integration gefordert sind, wirkt ein BDE-Kern wie ein Anker am Legacy-Client.

Entscheidend: Eine BDE-değişimi ist selten „nur“ ein Austausch einer Bibliothek. Sie berührt Datenmodelle, Transaktionen, Locking (Sperrverhalten), Nebenläufigkeit, Fehlerbehandlung, Deployments und häufig auch das Berechtigungsmodell.

BDE-Ablösung realistisch einordnen: Was genau wird ersetzt?

In Bestandsanwendungen ist „BDE“ meist ein Sammelbegriff. Für eine belastbare Planung muss klar sein, welche Rollen die BDE im konkreten System erfüllt:

  • Datenzugriffsschicht: Veri setleri, sorgular, saklı yordam çağrıları, cursor davranışı, parametre bağlama.
  • Sürücü-/Bağlantı katmanı: Paradox, dBASE, InterBase/Firebird veya SQL Server/Oracle’a eski sürücü yolları üzerinden bağlantı.
  • Yapılandırma: BDE-Administrator, Aliases, NetDir, yerel yollar, paylaşılan dizinler.
  • Semantik: Nasıl kilitleniyor? Tarih-/sayı formatları nasıl yorumlanıyor? Tarihsel olarak hangi alan tipleri ve indeksler kullanıldı?

BT yönetimi ve sistem yöneticileri için bu açıklama „küçük bir güncelleme“ ile yapılandırılmış bir modernizasyon girişimi arasındaki farkı ortaya koyar. Bu belirlemeden sonra, yalnızca veri erişimi modernizasyonunun yeterli olup olmadığı veya eşzamanlı olarak bir veritabanı göçü ya da mimari temizlik yapılmasının uygun olup olmadığı kararlaştırılabilir.

BDE sonrasında hedef mimariler: tipik yollar

Tek bir ikame yok. Uygulamada, birbirleriyle birleştirilebilen üç yol öne çıkmıştır:

1) Mevcut veritabanıyla doğrudan FireDAC’ye geçiş

BDE’nin yerel bağlantıyla kaldırılması, Delphi için çeşitli veritabanlarını ve sürücüleri destekleyen modern bir veri erişim kütüphanesidir ve günlük işletmede BDE yapılandırmalarına kıyasla otomasyonu önemli ölçüde kolaylaştırır. Bu yol, veritabanı kendi başına sağlam ise ve birincil risk eski erişim katmanında bulunuyorsa uygundur. Bu bağlamda bağlantı parametreleri, işlemler ve tip eşlemeleri (ör. String/Unicode, Tarih/Saat) titizlikle test edilmelidir.

2) Paradox/dosya tabanlı yapılardan İstemci-Sunucu’ya göç (PostgreSQL, SQL Server, MariaDB)

Eğer hâlâ Paradox tabloları veya diğer dosya tabanlı yapılar kullanılıyorsa, BDE’nin kaldırılması genellikle merkezi bir veritabanına geçiş için doğru zamandır. İstemci-Sunucu burada şu anlama gelir: işlemler sunucu tarafında güvence altına alınır, yedeklemeler merkezi olarak yönetilir, yetkilendirmeler veritabanı düzeyinde tanımlanır ve eşzamanlı erişimler daha kontrollü işletilebilir. İşletme ve güvenlik açısından bu genellikle en büyük etkiyi sağlar.

3) Servisler üzerinden ayrıştırma: REST-API’yi mevcut mantığın önüne koyma

İstemciyi hemen tamamen yeniden yapılandırmak yerine, bir REST servisi (REST ‚Representational State Transfer‘ anlamına gelir; HTTP tabanlı arayüzler için yaygın bir stil) entegrasyon katmanı olarak kullanılabilir. Böylece portaller, dış sistemler veya yeni modüller, her erişimin doğrudan legacy istemciden gelmesine gerek kalmadan bağlanabilir. Uygulamanın kademeli olarak modüler mimariye doğru büyümesi istendiğinde bu yol özellikle yararlıdır.

Başarıyı veya duraklamayı belirleyen ön hazırlıklar

Bir BDE’nin kaldırılması nadiren teknik imkânsızlıktan başarısız olur; daha çok veri ve süreçlerdeki şeffaflığın eksikliğinden kaynaklanır. Aşağıdaki ön hazırlıklar proje ve işletme riskini hissedilir şekilde azaltır.

Mevcut durum tespiti: Veriler, Fonksiyonlar, İşletme

  • Veri envanteri: Hangi tablolar, dosyalar, indeksler, referanslar ve özel alanlar mevcut? Veri hacimleri ne kadar, ne kadar hızlı büyüyorlar, bugün nerede duruyorlar?
  • İşlem sınırları: Uzman süreç hangi noktada „ya hep ya hiç“ bekliyor? Hangi yerlerde şimdiye kadar sessizce kısmi güncellemelerle idare edildi?
  • Toplu ve yan süreçler: İçe/Dışa aktarım, raporlama, PDF çıktıları, gece çalıştırmaları, arayüz işleri. Bu parçalar göçlerde genellikle gerçek kesinti kaynaklarıdır.
  • İşletme görünümü: Nasıl dağıtılıyor (MSI, Copy-Deploy, yazılım dağıtımı)? İstemcilerde hangi izinlere ihtiyaç var? Hangi loglar mevcut? Destek nasıl veriliyor?

Bu aşama için bilinçli olarak yönetici bilgisini dahil etmek faydalıdır: „Bir istemci değişiminde ne olur?“, „Bozuk verilere nasıl tepki veririz?“, „Geri yükleme ne kadar sürer?“ – bunlar daha sonra dağıtımı belirleyecek sorulardır.

Veri kalitesini ve örtük kuralları görünür kılmak

Özellikle Paradox veya tarihsel olarak büyümüş veri modellerinde birçok kural örtük olarak mevcut olur: değer aralıkları, özel kodlar, anlam taşıyıcı olarak kullanılan „boş“ alanlar veya gerçek yabancı anahtarları olmayan referanslar. PostgreSQL/SQL Server/MariaDB’ye göçte hangi kuralların bundan sonra teknik olarak zorlanacağı (Constraints) ve hangilerinin ilk aşamada yalnızca doğrulanacağı (ör. doğrulama işleri üzerinden) kararlaştırılmalıdır. Bu karar akademik bir nokta değildir: Çok katı kurallar üretim içe aktarmasını engelleyebilirken, çok gevşek kurallar uzun vadede hataları korur.

BDE-nin ikamesiyle ilgili teknik temel sorular

Karar vericiler için „veri erişimini değiştirmek“ çoğu zaman doğrudan bir iş gibi görünür. Pratikte ise işletme, kararlılık ve destek yüküne doğrudan etki eden birkaç teknik ayar vardır.

Veri tipleri, Unicode ve sıralama

Birçok legacy uygulama ANSI dönemlerinden gelen miraslar taşır. Modernizasyon sırasında karakter setleri, sıralama düzenleri (Collation), büyük/küçük harf duyarlılığı ve özel karakterler (ümlaütler, ß) açık ve net şekilde tanımlanmalıdır. Aksi halde „hayalet hatalar“ ortaya çıkar: aramalar farklı sonuç döndürür, kopyalar (dubletten) oluşur, dışa aktarmalar sapar. Bu nedenle bir Unicode göçü genellikle ikame sürecinin parçasıdır — mutlaka bir Big Bang şeklinde değil, ancak bilinçli planlanmış bir aşama olarak.

İşlemler ve kilit davranışı (Locking)

Dosya tabanlı veri tutma, istemci-sunucu modelinden farklı davranır. SQL veritabanlarında izolasyon seviyeleri, satır kilitleri ve deadlock yönetimi eşzamanlılığı belirler. İşletme açısından bunun anlamı şudur: Hangi işlemlerin uzun sürdüğünü, hangi tabloların „hotspot“ olduğunu ve nerede uygun indeksler, daha kısa işlemler veya optimize sorgular ile çalışılması gerektiğini bilmek gerekir. Burada sadece „geç hissetme“ yerine düzgün bir monitoring fayda sağlar.

Hata senaryoları: İstemci diyalogundan kontrollü loglamaya

Birçok eski uygulama veritabanı hatalarını doğrudan diyaloglarla bildirir veya kullanışsız mesajlar yazar. BDE-nin ikamesinden sonra hataların merkezi olarak izlenebilir olması gerekir: Hangi sorgu, hangi kullanıcı, hangi işlem, hangi veritabanı mesajı? Yönetim için önemli olan, hataların tek tek istemcilerde „düzeltme“ yapmadan tekrarlanabilir şekilde daraltılabilmesidir. Servis tabanlı bileşenlerde buna ek olarak yapısal loglar (ör. JSON) ve korelasyon ID’leri gelir; böylece istekler birden fazla bileşen üzerinden takip edilebilir.

Deployment und Konfiguration: weg von Alias-Wildwuchs

Sık rastlanan bir hedef yapılandırmanın standartlaştırılmasıdır: Bağlantı ayarlarının artık her istemci için BDE-yönetiminde değil, merkezi olarak veya en azından yazılım dağıtımı ile ayarlanan konfigürasyon dosyaları/kayıt defteri girdileri üzerinden sağlanması. Terminal sunucular için bu özellikle önemlidir. Ayrıca sertifikalar, TLS parametreleri ve proxy konuları da elle yönetilmemelidir.

Geçiş stratejisi: Aşamalı yerine Big Bang

Bir ikame etaplara ayrılarak gerçekleştirilebilir. Bu, kesinti riskini azaltır ve uygulama kullanılmaya devam ederken işletmede erken iyileştirmelere olanak tanır.

Aşama 1: Değiştirilebilir bir katman olarak kararlı veri erişimi

Birçok Delphi uygulamasında veri erişimi kullanıcı arayüzü boyunca dağınık olur. Pratik bir ara adım, net şekilde ayrılmış bir veri erişim katmanıdır (genellikle „Layer“ olarak adlandırılır; bir Layer-3 mimarisinde UI, iş mantığı ve veri erişimi ayrılır). Amaç akademik saflık değil, sürdürülebilirliktir: Tüm veritabanı erişimleri birkaç noktada toplandığında sürücüler, parametreler ve işlem yönetimi tutarlı şekilde değiştirilebilir.

Aşama 2: Paralel işletim ve karşılaştırma testleri

Özellikle veri göçlerinde paralel işletim çok değerlidir: Tanımlı bir veri seti yeni veritabanına alınır, temel kullanım senaryoları her iki sisteme karşı test edilir, sapmalar sistematik olarak analiz edilir. Testleri yalnızca „formu açma“ ile sınırlamamak, yan süreçleri de dahil etmek önemlidir: İçe/Dışa aktarım, raporlama, toplu işleme, yazdırma/PDF, yetki testleri.

Aşama 3: Kesin geçiş (Cutover) ve geri dönüş stratejisi

Geçiş noktası (Cutover) işletme açısından pratik şekilde planlanmalıdır: bakım pencereleri, veri dondurma, tanımlı kontrol listeleri, izleme ve net bir „Rollback“ senaryosu. Rollback, istenildiği kadar ileri geri geçmek anlamına gelmez; sorun durumunda düzenli biçimde yeniden çalışır hale gelmeyi sağlar. Buna yedeklemeler, geri yükleme testleri ve geri dönüş sonrası veri tutarlılığının nasıl sağlanacağına dair bir plan dahildir.

Veritabanı göçü ayrıntıları: BT ve işletmenin dikkat etmesi gerekenler

BDE’nin yerine geçişi kapsamında Paradox veya diğer dosya tabanlı yapılardan merkezi bir SQL veritabanına göç edilirken, BT ekipleri işletme maliyetlerini ve desteği ileride belirleyecek bir dizi kararın önünde olur.

Şema Tasarımı: 1:1 aktarmak mı yoksa hedefli iyileştirme mi?

1:1 aktarım kısa vadede riski azaltır, ancak genellikle eksiklikleri muhafaza eder: eksik birincil anahtarlar, tutarsız veri tipleri, „anlamın stringlerde saklanması“, tarihsel olarak oluşmuş alan uzunlukları. Gerçekçi bir yaklaşım iki aşamalıdır: Önce stabil şekilde göç etmek (minimum değişikliklerle), sonra kontrollü adımlarla konsolide etmek. Bunun için değişikliklerin takip edilebilir şekilde uygulanabilmesi adına şemanın sürümlenmesine (migrasyonlara) ihtiyaç vardır.

Performans: İndeksleri ve tipik sorguları erken inceleyin

Paradox ve BDE’ye özgü erişim desenleri nadiren 1:1 olarak SQL’e uyar. Belirleyici olan, en önemli kullanım senaryolarını erken ölçmektir: arama formları, listeler, kayıt girişleri, toplu işlemler. Bunlardan indeksler, sorgu optimizasyonları ve gerekirse materyalize edilmiş görünümler türetilir. Yönetim açısından önemli olan, performansın „rastgele“ ortaya çıkmadığı; ölçümler ve izlenebilir önlemlerle sağlandığıdır.

Yedekleme/Geri Yükleme ve Yüksek Erişilebilirlik

Merkezi bir veritabanıyla oyun kuralları değişir: Yedeklemeler tutarlı olmalı, düzenli olarak test edilmeli ve hızlıca geri yüklenebilir olmalıdır. Geri yükleme testleri bir lüks değil, güvenilir RTO/RPO hedeflerinin temelidir (RTO = kurtarma süresine kadar geçen süre, RPO = zaman cinsinden maksimum veri kaybı). Kritikliğe bağlı olarak replikasyon, standby örnekleri veya net tanımlanmış bakım pencereleri devreye girer. BDE’nin yerine geçişi, bu işletim gereksinimlerini nihayet temiz şekilde tanımlamak için iyi bir zamandır.

Arabirimler ve entegrasyon: sıklıkla küçümsenen bölüm

Birçok mevcut uygulama izole yaşamaz. Bir DMS’i besler, bir ERP’ye bağlıdır, BI/raporlama için veri sağlar veya makineler/araçlarla iletişim kurar. BDE’nin yerine geçişi ile arayüzler nadiren iş mantığı açısından değişir; ancak teknik olarak değişirler.

İçe/Dışa Aktarımın İstikrara Kavuşturulması

Tipik hata kaynakları sabit yollar, yerel sürücüler, Excel formatları, CSV kodlaması ve eksik doğrulamadır. Modernizasyon sırasında içe/dışa aktarma işlemlerini tanımlı, test edilebilir bir işlev olarak ele almak faydalıdır: açık format tanımı, kayıt tutma, hata listeleri, yeniden çalıştırma. Bu, hataların artık „sessizce“ sızmasını engellediği için destek vakalarını önemli ölçüde azaltır.

REST-API’leri entegrasyon dayanağı olarak

Yeni sistemler bağlanacaksa, bir REST API genellikle pragmatik bir yoldur. Önemli olan yalnızca uç noktalar değil, işletimsel konulardır: kimlik doğrulama (ör. Windows/AD, SAML 2.0 üzerinden SSO), istek sınırları (Rate Limits), kayıt tutma (Logging), API sürümlendirmesi ve geri uyumluluğu bozan değişiklikler için bir konsept. Sürümlendirme olmadan devreye alınan bir API, ileride gereksiz bağımlılıklar oluşturur.

Değişim sonrası güvenlik ve yetkilendirmeler

BDE-in sona ermesiyle birlikte yetkileri daha tutarlı hale getirme fırsatı doğar. Legacy sistemlerde haklar sıklıkla kısmen uygulama içinde, kısmen „dosya yolları“ aracılığıyla uygulanmış olur. Modern hedef mimariler açıkça ayırır:

  • Kimlik doğrulama: Kullanıcı kimdir? (ör. Windows/AD, SAML 2.0 üzerinden SSO)
  • Yetkilendirme: Uygulamada neler yapabilir? (roller, haklar, tenantlar)
  • Veritabanı izinleri: Uygulama erişimi teknik DB-kullanıcıları üzerinden yürütülür, son kullanıcı hesapları üzerinden değil; hassas yönetici işlemleri ayrılmıştır.
  • Denetim ve izlenebilirlik: Önemli değişiklikler protokollanabilir olmalı (kim, ne, ne zaman), her detayın log dosyalarında „gözden kaçmaması“ sağlanarak.

BT yöneticileri için önemli olan: güvenlik „daha fazla diyalog“ ile değil, açık sorumluluklar ve denetlenebilir kurallar ile sağlanır. İşte bu, yapılandırılmış bir BDE-değişimi sayesinde çoğu kez ilk kez mümkün olur.

Test ve Rollout-Planı: pratikte gerçekten önemli olanlar

Modernizasyonlarda test edilebilirlik bir işletim kriteridir. Ne kadar az tekrarlanabilirse, destek yükü o kadar artar. Pragmatik bir rollout planı teknik ve organizasyonel önlemleri birleştirir.

Planlamanız gereken test türleri

  • Çekirdek süreçlerin regresyon testleri: kayıtlar, ana veriler, arama, raporlamalar, yazdırma/PDF.
  • Veri doğrulama: örneklemeler ve otomatik kontroller (adet, toplamlar, referanslar, çift kayıtlar).
  • Yük/performans testleri: „benchmark“ olarak değil, gerçek tepe zamanları ve toplu işlem koşuları boyunca.
  • İşletim testleri: kurulum, güncelleme, geri alma (rollback), log rotasyonu, yedekleme/geri yükleme, izleme olayları.

Pilot uygulama ve kademeli rollout

Belirli kullanıcı grupları ve tanımlı destek yolları olan bir pilot riski azaltır. Önemli olan, geri bildirimi yapılandırılmış şekilde toplamaktır: Hangi hatalar gerçek arızalar, hangileri sıralama/Unicode’dan kaynaklanan davranış değişiklikleri, hangileri süreç kaynaklı sorular? Temiz bir ticket ve önceliklendirme süreci, projenin „her şey aynı derecede önemli“ modunda takılmasını engeller.

BDE-değişimi özellikle ne zaman anlamlı – ve ne zaman daha fazlası gerekir?

Eyleme geçmemenin harekete geçmekten daha maliyetli olduğu açık tetikleyiciler vardır:

  • Planlanan 64 bit geçişi veya istemci işletiminde yeni Windows nesilleri
  • Sık destek vakaları nedeniyle istemci kurulumu, yollar, yetkilendirme veya terminal sunucu ortamları
  • Merkezi veri saklama, düzgün yedekleme/geri yükleme ve takip edilebilir denetimler ihtiyacı
  • Arayüzler için yeni gereksinimler (portallar, BI, dış ortaklar) ve güvenlik

Bazen BDE-yenilemesi ancak ilk adım olabilir: aynı anda UI/UX, süreç mantığı veya yetkilendirme modeli köklü şekilde yenilenmesi gerekiyorsa, girişim modüler planlanmalıdır. „Hepsi bir kerede“ etkili görünse de birçok şirkette uzun donma (freeze) dönemlerine ve zor test edilebilen ara durumlara yol açar. Daha iyi olan, işletme avantajlarını erken görünür kılan bir yol haritasıdır: daha stabil veri erişimi, merkezi veritabanı, daha iyi loglar, ardından kademeli olarak daha fazla modernizasyon (ör. portallar veya servisler).

Sonuç: BDE-yenileme kontrollü bir modernizasyon yolu olarak

Bir BDE-yenilemesi sadece teknik bir refaktöringden daha fazladır. Doğru planlandığında, bu daha iyi işletilebilen iş yazılımına yönelik kontrollü bir adımdır: standartlaştırılmış dağıtımlar, izlenebilir veri yönetimi, daha net arayüzler, geliştirilmiş güvenlik ve denetim yetenekleri ve REST-servisleri veya portalları bağlama seçeneği. Anahtar, güvenilir bir envanter çıkarması, kademeli bir göç stratejisi ve işletmeyi ve veri kalitesini işlevsellikle aynı ciddiyetle ele alan bir rollout’tur.

Yenilemenizi yapılandırılmış şekilde değerlendirmek ve gerçekçi bir göç yolu belirlemek istiyorsanız, bizimle görüşün:

Uzmanlık alanında, entegrasyonlar, veri akışları ve devam eden geliştirme uyumlu çalışması gerektiğinde, Borland Database Engine’in değiştirilmesi ve Delphi Modernizasyonu da önemli bir rol oynar.

Proje veya modernizasyon girişimini Net-Base ile görüşün.

Sonraki adım

Konu gerçek bir projeye dönüştüğünde, mimari, mevcut sistemler ve işletme erken dönemde birlikte değerlendirilmelidir.

Bireysel sorularda destek vermekle kalmıyoruz; kaynak kodu parçacıklarından, legacy konularından veya portal fikirlerinden sağlam bir kurumsal projeye dönüşene kadar da destek veriyoruz.

  • Mevcut durum, hedef durum ve teknik riskler birlikte değerlendirilir.
  • REST, veri erişimi, portallar ve Rollout daha sonra ortaya çıkan sonuçlar olarak ertelenmez.
  • Hangi yolun ekonomik ve işletme açısından sürdürülebilir olduğunu erken görürsünüz.

Gönderiyi paylaş

Bu gönderiyi doğrudan paylaş

LinkedIn, X, XING, Facebook, WhatsApp ve e-posta hemen kullanılabilir. Instagram için bağlantıyı ve kısa metni doğrudan hazırlıyoruz.

E-posta

Instagram yeni bir sekmede açılır. Bağlantı ve kısa metin önceden panoya kopyalanır.