Net-Base Dergi

07.07.2026

BDE-Değiştirme: Mevcut Delphi uygulamalarını operasyon riski olmadan nasıl modernize edersiniz

Bir BDE değişimi nadiren salt bir teknik güncellemedir: Veri, dağıtım, yetkiler, arayüzler ve günlük işletimi etkiler. Bu yazı, şirketlerin Borland BDE'ı kontrollü şekilde devreden çıkarmalarını, paralel işletimdeki riskleri en aza indirmelerini ve veri erişimini ...

07.07.2026

Dergi konusundan proje pratiğine

İçeriğe Uygun Hizmet ve Teknik Sayfalar

Bir BDE-değişimi (BDE = Borland Database Engine) birçok şirkette istek listesinden ziyade risk listesinde yer alır. BDE yıllarca birçok Delphi-mevcut uygulamada arka planda çalıştı: stabil, neredeyse el değmemiş, sık sık Paradox veya dBASE veri saklama ve yerel ağ paylaşımlarıyla sıkı şekilde bağlı. İşletim sistemleri, güvenlik politikaları, merkezi veritabanları, sanallaştırma veya yeni arayüzler ortamı değiştirdiğinde bu sakinlik sorun olur. O zaman sözde bir sürücü değişikliği işletme, veri bütünlüğü ve süreç akışlarına müdahaleye dönüşür.

Bu yazı BDE-değişimini IT yönetimi, idare ve teknik proje sorumluları açısından sınıflandırır: Tipik tetikleyiciler nelerdir? Gerçek riskler nerede ortaya çıkar? Hangi modernizasyon yolları işletme açısından mantıklıdır? Ve veri erişimi, dağıtım (Deployment) ve arayüzler geleceğe uygun hale gelirken, nasıl bir geçiş planlanmalı ki iş mantığı ve kullanıcı iş akışları korunmuş olsun.

Neden BDE kurumsal işletmede risk haline gelir

Tarihsel olarak BDE Delphi uygulamaları için yaygın bir veri erişim katmanıydı. Uygulamada bugün esas olarak bir bağımlılık engelleyici halini almıştır: eskimiş bir sürücü modeline dayanır, sıklıkla yerel yapılandırma dosyalarıyla çalışır ve birçok kurulumda modern işletme ve güvenlik standartlarına karşı hassastır.

Tipik risk alanları açıkça tanımlanabilir:

  • Deployment und Konfiguration: BDE-kurulumları genellikle iş istasyonuna yakın kurulur, yerel alias yapılandırmalarıyla. Bu, standartlaştırılmış roll-out’ları, MSI/Intune stratejilerini veya VDI için „goldene Images“ yaklaşımını zorlaştırır.
  • Rechte- und Pfadprobleme: Birçok BDE/Paradox kurulumları bugün haklı gerekçelerle kısıtlı olan dizinlerde yazma izinleri bekler. Bu, Windows-güncellemeleri veya GPO ayar değişikliklerinden sonra ara sıra ortaya çıkan hata görüntülerine yol açar.
  • Netzwerk- und Datei-Locking: LAN’daki dosya tabanlı veri saklama gecikmelere, çevrimdışı senaryolara, VPN’e, DFS’e veya „opportunistic locking“e karşı hassastır. Belirtiler arasında indeks sorunları, tutarsızlıklar veya kilitlenen kullanıcılar sayılabilir.
  • Begrenzte Zukunftsfähigkeit: Merkezi denetimler, sağlam yedekleme/geri yükleme, replikasyon, raporlama veya API entegrasyonu gibi gereksinimler BDE-odaklı dosya tabanlı veritabanlarıyla ancak sınırlı ve kırılgan şekilde uygulanabilir.

Önemli: Her BDE-uygulamanın “bozuk” olduğu söylenmez. Birçoğu iş mantığı açısından doğru çalışır. Ancak teknik temel, standart işletim, güvenlik ve entegrasyon gereksinimlerine giderek daha az uyar. Bu yüzden BDE-değişimi paniğe dayalı bir acil müdahale değil, kontrollü bir modernizasyon projesi olarak ele alınmalıdır.

BDE-değişimini doğru sınıflandırmak: Sürücü değişikliği mi yoksa mimari karar mı?

Proje pratiğinde BDE-değişimleri nadiren “hangi bileşen BDE’yi değiştirir” sorusu yüzünden başarısız olur; çoğunlukla hedef resmindeki belirsizlik başarısızlığın nedenidir. Ayırt edilmesi gereken en az üç stratejik seviye vardır:

  • Seviye 1 – Teknik ayrıştırma: Uygulama masaüstü ve veritabanına yakın kalır, ancak veri erişimi BDE’den ayrıştırılır (ör. BDE değişimi ile yerel bağlantı gibi modern bir veri erişim katmanı olarak). Veri depolama yerel veya sunucu tabanlı olmaya devam edebilir.
  • Seviye 2 – Veritabanı modernizasyonu: Ek olarak dosya tabanlı veri depolamadan (ör. Paradox) merkezi ilişkisel bir veritabanına (ör. PostgreSQL, SQL Server, MariaDB) geçiş yapılır. Bu, işletim, yedekleme, yetkilendirmeleri ve çoğu zaman veri modeli ayrıntılarını değiştirir.
  • Seviye 3 – Arayüz ve servis mimarisi: Veri erişimi perspektifte servisler aracılığıyla kapsüllenmiş olur (ör. REST-API; REST = HTTP tabanlı program arayüzü), böylece portaller, diğer sistemler veya entegrasyonlar temiz şekilde bağlanabilir.
  • Kurumsal bağlama bağlı olarak Seviye 1 zaten büyük bir kazanım sağlar, çünkü işletim ve bakımı istikrara kavuşturur. Seviye 2 ve 3 ise ek olarak entegrasyon ve ölçeklenme avantajları sunar – ancak planlama yoğunluğu gerektirir. Önemli olan, hedef görüntünün ve risk profilinin işletme gereksinimlerinize uygun olmasıdır.

    Delphi-mevcut uygulamalarda tipik başlangıç durumları

    Geçişten önce sadece „hangi tablolar var“ sorusunu sayan değil, gerçek işletme görünümünü kapsayan yapılandırılmış bir envanter çalışması yapılması faydalıdır. BDE projelerinde sıkça karşılaşılan kalıplar şunlardır:

    Paradox dosya paylaşımında, birden fazla istemci ile

    Veriler bir sunucu sürücüsünde durur, birden fazla istemci eşzamanlı erişir. Bu, stabil LAN’larda çalışır, ancak VPN, WLAN, sanal masaüstleri veya kullanıcı cihazlarının uyku/uyanma durumlarında hassaslaşır. İşletim açısından kritik olanlar burada kilit dosyaları ve aksaklıklardan sonra yapılan indeks yeniden oluşturmalardır.

    Yerel veri depolama ve senkronizasyon mantığı

    Bazı uygulamalar verileri yerel tutar (ör. saha personeli için) ve daha sonra senkronize eder. Burada BDE’nin kaldırılması, çatışma çözümü, zaman damgaları ve benzersiz kimliklerle sıkı şekilde bağlıdır. Teknik geçiş senkronizasyon mantığını „yanlışlıkla“ bozmamalıdır.

    Karışık sürücüler, alias’lar ve özel yollar

    Yıllar içinde özel durumlar büyür: konuma göre farklı alias isimleri, farklı ağ sürücü harfleri, istemcilerde yapılan manuel uyarlamalar. Tam da bu çeşitlilik daha sonra yüksek destek maliyetlerine yol açar. BDE’nin değiştirilmesi, yapılandırmayı merkezileştirmek ve standartlaştırmak için iyi bir fırsattır.

    Pragmatik modernizasyon yolu: önce ayrıştırma, sonra göç

    İyi uygulanmış bir yaklaşım, geçişi açıkça ayrılmış, test edilebilir adımlara bölmektir. Bu, riski azaltır çünkü her seviye devreye alınabilir ve stabil hale getirilebilir, bir sonraki adıma geçilmeden önce.

    Adım 1: Veri erişim katmanını düzgün şekilde kapsülleyin

    Birçok Delphi uygulamasında veri erişimi kodun her yerine dağılmıştır: formlar tabloları doğrudan açar, iş mantığı datasets’lere erişir, raporlar BDE bileşenlerine bağlıdır. Amaç, kullanıcı arayüzü, iş mantığı ve veri erişimi arasında net bir ayrım sağlamaktır (genellikle katmanlı mimari olarak adlandırılır). Bunun için akademik bir hedef mimari oluşturmanıza gerek yoktur, ancak tanımlı bir sınır gerekir: Kim SQL çalıştırabilir? Kim işlemler (transactions) hakkında karar verir? Logging nerede tutulur?

    İşletme ve bakım için bu kapsüllemenin somut avantajları vardır: Daha sonra sürücü- veya DB-özgü değişikliklerin gerekli olduğu yerlerin sayısını azaltırsınız. Ayrıca testler ve paralel işletim kurmak daha gerçekçi hale gelir.

    Adım 2: BDE’yi modern veri erişim bileşenleriyle değiştirmek (ör. FireDAC)

    BDE-Ablosung mit nativer Anbindung farklı veritabanlarını yerel sürücüler aracılığıyla bağlayabilen Delphi içinde yaygın bir veri erişim katmanıdır. BT açısından önemli olan: FireDAC düzgün yapılandırılabilir, modern kimlik doğrulama ve bağlantı desenlerini destekler ve merkezi DB sistemleri için BDE’ye kıyasla açıkça daha uygundur.

    Önemli olan işletme parametrelerinin ayarlanmasıdır: bağlantı yönetimi (Connection-Handling), zaman aşımları (Timeouts), işlemler (Transaktionen), kodlama (Encoding / Zeichensatz) ve hata yönetimi bilinçli olarak tanımlanmalıdır. Aksi halde kesilmiş özel karakterler, ara sıra ortaya çıkan deadlock’lar veya belirsiz rollback durumları gibi „sessiz“ hatalar ortaya çıkar.

    Adım 3: Veri tabanı stratejisini belirleyin (Dosya-DB vs. İstemci-Sunucu)

    En geç bu aşamada soru ortaya çıkar: Veriler dosya formatlarında mı kalacak yoksa bir istemci-sunucu sistemine mi geçilecek? İstemci-sunucu, bir veritabanı sunucusunun (ör. PostgreSQL veya SQL Server) işlemleri, kilitleri, yedekleri ve kullanıcı haklarını merkezi olarak yönettiği anlamına gelir. İşletme açısından genellikle daha sağlam bir yoldur, ancak DB işletimi (patching, monitoring, backup, RESTore-Tests) gerektirir.

    Eğer şu anda Paradox kullanıyorsanız, göç genellikle veri modeli ve veri kalitesinin görünür olduğu noktadır: eksik Constraints (Constraints = kurallar, ör. „Alan boş olamaz“), kopya kayıtlar, belirsiz anahtarlar, tarihsel olarak oluşmuş veri tipleri. Bu konuları göz ardı etmemeli, modernleşmenin bir parçası olarak ele almalısınız.

    Veri migrasyonu: Gerçekten emek gerektirenler

    Bir BDE-Ablösung sırasında veri migrasyonu sıklıkla küçümsenir, çünkü „sadece tablolar“ olduğu düşünülür. Pratikte emek oluşturan, çevresel koşullardır:

    Anahtarlar, özgünlük ve referanslar

    Dosya tabanlı sistemler genellikle tutarsızlıklara toleranslıdır. Merkezi veritabanları daha katıdır – ve bu doğru bir yaklaşımdır. Ancak birincil anahtarların (benzersiz ID’ler) ve yabancı anahtarların (ilişkiler) gelecekte nasıl olacağını netleştirmeniz gerekir. Yeni ID’leri kim üretiyor? Tarihsel kayıtlar nasıl tutarlı hale getirilecek? Kararsız olduğu ortaya çıkan doğal anahtarlar var mı?

    Karakter setleri ve özel karakterler

    Özellikle eski Delphi-/BDE kurulumlarında kodlama (encoding) sorunları yaygındır. Bir göç, hedef kodlamayı belirlemeyi (çoğunlukla Unicode/UTF-8) ve dönüştürmeyi kontrollü şekilde test etmeyi zorunlu kılar. Bu yalnızca bir „görünüm“ meselesi değildir: Yanlış dönüşüm arama fonksiyonlarını, kopya kayıt denetimlerini veya dışa aktarma formatlarını bozabilir.

    Uygulamada değil veritabanında olması gereken iş kuralları

    Birçok kural tarihsel olarak istemci tarafında uygulanmıştır (ör. geçerlilik kontrolleri). Birden fazla istemci ve modern entegrasyon durumunda, en azından kritik kuralları sunucu tarafında güvence altına almak genellikle mantıklıdır (ör. Constraints veya işlemler aracılığıyla). Bu sonraki veri hatalarını azaltır, ancak günlük hata görüntülerini de değiştirir: doğrulama hataları daha „sert“ döner ve kullanıcı arayüzünde (UI) düzgün ele alınmalıdır.

    Kesinti süresi, paralel işletim ve geri dönüş seçeneği

    Şirketler için genellikle önemli olan göçün „tek seferde“ başarılı olup olmadığı değil, kontrol edilebilir bir planın olup olmadığıdır: İşletme ne kadar süre kısıtlı kalacak? Bir geçiş dönemi var mı? Sorun çıkarsa geri dönebilecek misiniz? Gerçekçi bir hedef sıklıkla şudur: deneme çalışmalarıyla göç, bir bakım penceresinde nihai geçiş (finaler Cutover) ve veriler her iki yönde sapmadığı sürece açıkça belgelenmiş bir geri dönüş (fallback).

    Arayüzler ve entegrasyon: değişimin asıl itici gücü

    Yeni gereksinimler ortaya çıktığında BDE değişimi sıklıkla acil hale gelir: ERP, DMS veya CRM entegrasyonları, otomatik dışa aktarımlar, portaller, BI raporları veya Web servisleri. Birden fazla sistem aynı verilere erişmek istediğinde, dosya tabanlı veri saklama ve istemci tarafı iş mantığı darboğaz oluşturur.

    Düzenli bir yol, veri erişimini tanımlı bir arayüz üzerinden sunmaktır. Çoğunlukla bu bir REST-API (Representational State Transfer; uygulamada: veriyi yapılandırılmış sunan ve değişiklikleri kabul eden HTTP uç noktaları) olur. IT işletimi ve güvenlik için sonra önemli olanlar şunlardır:

    • Kimlik doğrulama ve yetkilendirme: Kim ne yapabilir? SAML 2.0 (SAML = Tek Oturum Açma Standardı) veya token tabanlı yöntemler, ortama bağlı olarak tipik bileşenlerdir.
    • İzleme ve loglama: İstekler hata sebepleri ve çalışma süreleri dahil izlenebilir olmalı. İşletmede bu genellikle „güzel“ bir API tasarımından daha değerlidir.
    • İstek hızı sınırlamaları ve kararlılık: Eğer başka sistemler tüketecekse, yük zirvelerinin nasıl karşılanacağı (kuyruklar, sınırlı paralellik, zaman aşımı) açık olmalıdır.

    Önemli: Her BDE değişimi için bir API zorunlu değildir. Ancak orta vadede portaller veya sistemler arası süreçler planlanıyorsa, bu adımı daha sonra çekirdekte tekrar bir yeniden yapılandırma gerektirmeyecek şekilde gerçekleştirmek gerekir.

    BDE sonrası işletim ve dağıtım: „İstemci bakımı“ yerine standartlaştırma

    BDE değişiminin merkezi bir faydası, rollout ve desteği belirgin şekilde planlanabilir hale getirmektir. Birçok ortamda mevcut durum şöyledir: tekil bilgisayarlarda özel yapılandırmalar, manuel takma ad (alias) düzeltmeleri, farklı DLL sürümleri bulunur. Bu, IT zamanını bağlar ve arızaların tekrarlanmasını zorlaştırır.

    Değişiklikten sonra hedef olarak standart mekanizmalara yönelmelisiniz:

    • Merkezi yapılandırma: Bağlantı parametreleri ve ortam değişkenleri dağıtık yerel kurulumlara değil, izlenebilir, sürümlenmiş yapılandırmaya ait olmalıdır.
    • Temiz kurulum paketleri: Onarım/yükseltme yapabilen tanımlı bir kurulum programı, „bilgisayarımda çalışıyor“ ifadesinden işletme açısından daha önemlidir.
    • Windows ve Linux servisleri uygun olduğu yerlerde: Arka plan görevleri (importlar, exportlar, zamanlayıcılar) bir „bir yerde açık kalan istemci“ yerine servis olarak daha iyi kontrol edilir. Bir servis, tanımlı başlatma/durdurma ve loglama ile bir arka plan sürecidir.
    • Yama ve sürüm disiplini: Açık sürüm notlarıyla daha küçük ve daha sık sürümler riski azaltır. Kritik sistemler için staging ortamları ve kabul kriterleri esastır.

    Ayrıca yetkilendirme konusu genellikle daha iyi ele alınır: Birçok kullanıcı için yazma izinli dosya paylaşımları yerine veritabanı rollerini, şema izinlerini ve izlenebilir erişim yollarını kullanabilirsiniz. Bu sadece güvenlik değil, aynı zamanda kasıtlı olmayan veri manipülasyonlarını da azaltır.

    Test stratejisi: BDE değişimi sırasında gerçekten önemli olan testler

    Büyümüş iş yazılımlarında tam otomasyon kısa vadede nadiren gerçekçidir. Yine de pragmatik test paketleriyle en büyük riskleri kapsayabilirsiniz. Belirleyici olan, testlerin sadece „form X’i açmak“ yerine işin temel süreçlerini modellemesidir.

    1) Referans verilerle karşılaştırma testleri

    Temsil edici bir veri seti oluşturun (gerçek işletim anonimliği sağlanmış veya sentetik) ve geçiş öncesi/sonrası sonuçları karşılaştırın: toplamlar, parça listeleri, durum değişiklikleri, arama sonuçları, dışa aktarımlar. Bu süreçte kodlama ve sıralama farklılıkları da ortaya çıkar (sıralama Paradox ile SQL veritabanları arasında farklılık gösterebilir).

    2) Eşzamanlılık ve kilitleme

    Eşzamanlı işlemleri simüle edin: iki kullanıcı aynı kaydı değiştiriyor, bir kullanıcı yazdırma yaparken diğeri kaydı gerçekleştiriyor, bir içe aktarma UI erişimleri sırasında çalışıyor. Client-Server-Systeme burada dosya tabanlı veritabanlarından farklı davranır. Bu test yapılmazsa sorunlar ancak işletmede ortaya çıkar.

    3) Yedekleme/Geri Yükleme Testleri kabul kriteri olarak

    Merkezi veritabanlarında bir yedek ancak geri yükleme düzenli olarak deneniyorsa değerlidir. Belirleyin: RPO/RTO (RPO = zaman cinsinden maksimum veri kaybı, RTO = maksimum kurtarma süresi) ve bu değerleri bir prova geri yüklemesinde test edin. Bu bir IT’ye ilişkin ölçüttür, geliştirici disiplini değildir.

    Karar desteği: Hangi hedef mimari ortamınıza uygundur?

    “Big Bang” ile “her şeyi olduğu gibi bırakmak” karşıtlığı yerine soğukkanlı bir değerlendirme yapılması daha yararlıdır. Aşağıdaki yönlendirici sorular sınıflandırmada yardımcı olur:

    • Süreç ne kadar kritik? Ne kadar kritikse, o kadar çok paralel işletim, kademeli geçiş ve net geri dönüş mekanizmaları önerilir.
    • Kullanım ne kadar dağıtık? Birden fazla lokasyon, VPN ve mobil kullanım Client-Server ve merkezileştirilmiş servisler lehine güçlü argümanlardır.
    • Entegrasyon baskısı ne kadar güçlü? ERP/DMS/portaller bağlanacaksa, veri erişimi konsolide edilmeli ve tanımlı arayüzler üzerinden sunulmalıdır.
    • İşletme organizasyonu nasıl? Veritabanı işletimi kurum içinde oturmamışsa, planlanmalıdır (veya kasıtlı olarak Managed bir yaklaşım seçilmelidir). İşletme konsepti olmayan yeni bir sistem ilave maliyetler doğurur.

    Gerçekçi bir hedef tanımı genellikle şöyledir: “Önce BDE çıkarın, sonra veritabanını konsolide edin, sonra arayüzleri genişletin.” Böylece riski dağıtırsınız ve erken işletme avantajları elde edersiniz.

    Yaygın tuzaklar – ve nasıl önlersiniz

    “Sadece sürücüyü değiştiriyoruz”

    Eğer veri erişimi yıllar içinde düzensiz şekilde büyüdüyse, sadece bir bileşen değişimi hata kumarına dönüşür. En azından bir veri erişim kapsülasyonu ve net işlem kuralları planlayın.

    IT ile iş birimi arasındaki belirsiz sorumluluklar

    BDE değişimi iş süreçlerini etkiler (ör. kilit davranışı, doğrulamalar, raporlar). İş birimi ile IT’nin ortaklaşa taşıyacağı kabul kriterlerini belirleyin: Hangi belgeler aynı olmalı? Hangi farklılıklar kabul edilebilir (ör. sıralama)?

    Raporlama ve dışa aktarımların geç ele alınması

    Birçok eski uygulamanın gelişmiş dışa aktarma yolları vardır (CSV, Excel, yazdırma). Bunlar sıklıkla dolaylı olarak veri erişimine bağlıdır. Raporlama, toplu mektuplar, PDF iş akışları ve harici aktarımları erken kapsamınıza alın; aksi takdirde bu çaba son aşamada bir engel olarak geri döner.

    Güvenliği sonradan eklemek yerine baştan dahil edin

    Zaten veri erişimini modernize ediyorsanız, hemen temiz bir yetkilendirme konsepti tanımlayın: veritabanı rolleri, servis hesapları, parola döngüsü, kayıt tutma. Sonradan yapılan eklemeler genellikle daha pahalıdır çünkü o sırada yeni bağımlılıklar zaten oluşmuştur.

    Sonuç: BDE değişimini kontrollü bir işletme modernizasyonu olarak planlayın

    Bir BDE değişimi en başarılı şekilde modernizasyon olarak ve net işletme hedefleriyle yönetildiğinde olur: tekrarlanabilir dağıtım (Deployment), daha az istemci tarafı özel durum, daha sağlam veri saklama, daha iyi entegrasyon yeteneği ve izlenebilir güvenlik. Teknik olarak BDE’nin değiştirilmesi yalnızca bir yapıtaşıdır. Belirleyici olan, kapsülleme, migrasyon stratejisi, test paketleri ve IT organizasyonunuza uyan bir işletme konseptidir.

    Eğer değişimi adım adım planlar, riskleri paralel işletimle sınırlandırır ve veri migrasyonunu ayrı bir alt proje olarak ciddiye alırsanız, zaman içinde oluşmuş bir Delphi uygulamasını bakımı yapılabilir bir temele aktarabilirsiniz – günlük işletme süreçlerini gereksiz yere riske atmadan.

    Ortamınız için sonraki adımları yapılandırılmış şekilde değerlendirmek isterseniz, analiz, hedef durum ve sağlam bir uygulama planı hakkında bizimle konuşun:

    Uzmanlık bağlamında, Delphi modernizasyonu ve veritabanı migrasyonu da önemli bir rol oynar, özellikle entegrasyonlar, veri akışları ve ileri geliştirme düzgün şekilde birlikte çalışmak zorundaysa.

    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 yapı ve işletme erken aşamada birlikte ele alınmalıdır.

    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 sonraki işler olarak ertelenmez.
    • Hangi yolun ekonomik ve işletme açısından uygulanabilir 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ı 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.