Sybase, bugün resmi adıyla SAP Adaptive Server Enterprise (SAP ASE) olarak bilinen, ilişkisel bir veritabanı yönetim sistemidir (RDBMS). İstemci/sunucu mimarisinin öncülerinden biri olan bu ürün, özellikle yüksek işlem hacmine sahip finansal sistemlerde onlarca yıldır sahada kullanılıyor. Bu yazıda Sybase'in ne olduğunu, nereden geldiğini ve Microsoft SQL Server ile paylaştığı ortak geçmişi tarafsız biçimde açıklıyoruz.
İlgili içerikler: Veritabanı türleri rehberi · Microsoft SQL Server (MS SQL) nedir? · Oracle Database nedir? · SAP HANA nedir?
Sybase (SAP ASE) Nedir?
Adaptive Server Enterprise, satırları tablolarda saklayan, SQL diliyle sorgulanan ve ACID ilkelerine (atomiklik, tutarlılık, izolasyon, kalıcılık) uyan tam kapsamlı bir ilişkisel veritabanıdır. Tasarım önceliği çevrimiçi işlem işleme (OLTP): çok sayıda kısa, eşzamanlı işlemi düşük gecikmeyle ve güvenilir biçimde yürütmek. Stored procedure, tetikleyici (trigger), view, kısıt (constraint) ve işlem günlüğü (transaction log) gibi kurumsal veritabanlarında beklenen tüm yapıları sağlar.
Sistem; Linux, çeşitli Unix türevleri ve Windows üzerinde çalışabilir. Sorgu dili olarak, Microsoft SQL Server ile aynı kökten gelen Transact-SQL (T-SQL) kullanılır. Bu ortak dil, iki ürünün ortak tarihinin en görünür mirasıdır.
ASE'yi açık kaynak ilişkisel veritabanlarından ayıran en belirgin nokta, ticari bir ürün olması ve tarihsel olarak kurumsal, işlem yoğun ortamlara odaklanmasıdır. Karşılaştırma için açık kaynak dünyasından PostgreSQL ve MySQL yazılarımıza da bakabilirsiniz; her sistemin kendi tasarım önceliği vardır.
Kısa Tarihçe: Sybase'ten SAP ASE'ye
Sybase, 1980'lerde kurulan ve ilk sürümünü o dönemde yayımlayan bir yazılım şirketiydi. Ürün ilk çıktığında Sybase SQL Server adını taşıyordu ve döneminin öne çıkan istemci/sunucu ilişkisel veritabanlarından biriydi.
- İlk dönem: Ürün "Sybase SQL Server" adıyla, istemci/sunucu mimarisini yaygınlaştıran öncü ürünlerden biri olarak konumlandı.
- Microsoft ile ortaklık: Microsoft, Sybase'in kod tabanını lisansladı ve bu iş birliği Microsoft SQL Server'ın temelini oluşturdu. İki ürün zamanla ayrı kod tabanları olarak birbirinden ayrıştı.
- Yeniden adlandırma: Ayrışmanın ardından Sybase, kendi ürününü karışıklığı önlemek için Adaptive Server Enterprise (ASE) adıyla anmaya başladı.
- SAP dönemi: SAP, 2010 yılında Sybase'i satın aldı. Ürün bugün SAP Adaptive Server Enterprise (SAP ASE) adıyla sürdürülüyor.
Mimari ve Temel Kavramlar
SAP ASE, tek bir sunucu süreci (dataserver) etrafında örgütlenir. Bu süreç, kendi bellek havuzlarını, iş parçacığı/motor yapısını ve disk erişimini kendisi yönetir; işletim sistemine mümkün olduğunca az bağımlı kalarak öngörülebilir başarım hedefler. Veriler mantıksal olarak veritabanlarına, veritabanları da segment ve device adı verilen depolama birimlerine yerleştirilir.
- Sayfa ve extent: Veri, sabit boyutlu sayfalarda tutulur; sayfalar extent adı verilen kümeler hâlinde ayrılır.
- Transaction log: Her veritabanının, kurtarma ve dayanıklılık için işlem günlüğü vardır.
- Stored procedure ve trigger: İş mantığı T-SQL ile sunucu tarafında saklanabilir; bu, ağ gidiş-dönüşünü azaltır.
- Sistem veritabanları: master, model, tempdb ve sybsystemprocs gibi veritabanları sunucunun yönetimi için ayrılmıştır.
- Data cache: Sık erişilen sayfalar bellekte tutularak disk giriş/çıkışı azaltılır.
Transact-SQL (T-SQL)
SAP ASE'de sorgular ve prosedürel mantık Transact-SQL ile yazılır. Standart SQL'in üzerine değişkenler, akış kontrolü (if/else, while), hata yönetimi ve stored procedure tanımları eklenir. Aşağıda basit bir tablo, bir stored procedure ve bir sorgu örneği yer alıyor:
-- Basit bir tablo
CREATE TABLE musteri (
id INT NOT NULL,
ad VARCHAR(100) NOT NULL,
bakiye NUMERIC(12,2) DEFAULT 0,
PRIMARY KEY (id)
)
go
-- Stored procedure ile bakiye guncelleme
CREATE PROCEDURE bakiye_ekle @id INT, @tutar NUMERIC(12,2)
AS
BEGIN
UPDATE musteri SET bakiye = bakiye + @tutar WHERE id = @id
END
go
-- Cagirma
EXEC bakiye_ekle @id = 1, @tutar = 250.00
goKilitleme ve Eşzamanlılık
Yüksek eşzamanlılık, OLTP sistemlerinin can damarıdır. SAP ASE, tabloların ihtiyacına göre seçilebilen birden çok kilit şeması sunar. Doğru şemayı seçmek, aynı anda çalışan çok sayıda işlemde bekleme ve çakışmayı azaltır.
| Kilit şeması | Tanım | Tipik kullanım |
|---|---|---|
| Allpages | Veri ve indeks sayfaları birlikte kilitlenir | Eski tablolar, düşük eşzamanlılık |
| Datapages | Yalnızca veri sayfaları kilitlenir | Orta düzey eşzamanlılık |
| Datarows | Satır düzeyinde kilitleme (row-level) | Yüksek eşzamanlı OLTP yükleri |
Satır düzeyinde kilitleme (datarows), aynı sayfadaki farklı satırlar üzerinde çalışan işlemlerin birbirini beklememesini sağlar; buna karşılık kilit yönetimi biraz daha fazla ek yük getirir. Şemanın iş yüküne göre seçilmesi önerilir.
Yüksek Erişilebilirlik ve Replikasyon
Kesintiye tahammülü düşük ortamlar için SAP ASE, felaket kurtarma ve iş sürekliliği yetenekleri sunar. Ürün ailesindeki Replication Server, işlemleri bir sunucudan diğerine aktararak yedek kopya, coğrafi dağıtım veya raporlama kopyaları oluşturmayı sağlar. Ayrıca birincil/yedek (HADR benzeri) yapılandırmalarla, birincil düğüm devre dışı kaldığında hizmetin yedek düğümden sürdürülmesi hedeflenir.
Bu tür kurgular; işlem günlüğüne dayalı çoğaltma, düzenli yedekleme (dump/load) ve izleme ile birlikte tasarlanır. Ayrıntılı topoloji ve sürüm yetenekleri kuruluma göre değiştiğinden, planlama aşamasında güncel resmi belgelere bakmak gerekir.
Sybase Ürün Ailesi
"Sybase" adı yalnızca ASE'yi değil, tarihsel olarak bir ürün ailesini kapsar. SAP satın almasının ardından bu ürünlerin çoğu SAP markası altında sürdürülmüştür:
| Ürün | Rolü |
|---|---|
| SAP ASE (Adaptive Server Enterprise) | OLTP odaklı ilişkisel veritabanı sunucusu |
| SAP IQ (Sybase IQ) | Sütun tabanlı (columnar) analitik/veri ambarı motoru |
| SQL Anywhere | Gömülü ve mobil senaryolara yönelik hafif veritabanı |
| Replication Server | Sunucular arası işlem çoğaltma |
| PowerBuilder | Uygulama geliştirme ortamı (IDE) |
Analitik iş yükleri için sütun tabanlı SAP IQ, tekil ve karmaşık sorgularda satır tabanlı ASE'den farklı bir tasarıma dayanır. Analitik motor karşılaştırmaları için SAP HANA yazımız da ilgili bir okuma olabilir.
Yönetim ve Veri Araçları
SAP ASE ile birlikte gelen komut satırı araçları, günlük yönetimin çekirdeğini oluşturur. En sık kullanılan ikisi, sorgu çalıştırmak için isql ve toplu veri aktarımı için bcp (bulk copy) programlarıdır.
# isql ile sunucuya baglanip sorgu calistirma
isql -U kullanici -P sifre -S SUNUCU_ADI
# bcp ile bir tabloyu dosyaya aktarma (out)
bcp veritabani..musteri out musteri.dat -c -U kullanici -P sifre -S SUNUCU_ADI
# bcp ile dosyadan tabloya yukleme (in)
bcp veritabani..musteri in musteri.dat -c -U kullanici -P sifre -S SUNUCU_ADIGrafik yönetim için ise geçmişte Sybase Central, güncel dönemde ise SAP Control Center gibi araçlar kullanılmıştır. Yedekleme, Backup Server bileşeni üzerinden dump/load komutlarıyla yürütülür.
Performans ve Ölçeklenme
SAP ASE'nin OLTP odağı, mimarideki birçok tercihe yansır. Sunucu, kendi iş parçacığı/motor modeliyle CPU çekirdeklerini kullanır; sık erişilen veriyi bellekteki data cache'te tutar ve stored procedure'lerin derlenmiş sorgu planlarını yeniden kullanarak tekrar eden işlerde ek yükü azaltır. Bu tasarım, çok sayıda kısa işlemin öngörülebilir gecikmeyle yürütülmesini hedefler.
- Named cache: Belirli tablo veya indeksler için ayrı bellek havuzları tanımlanarak sıcak veri yalıtılabilir.
- Bölümleme (partitioning): Büyük tablolar parçalara ayrılarak bakım ve paralel erişim kolaylaşır.
- Sorgu planı yeniden kullanımı: Stored procedure planlarının önbelleğe alınması, tekrar eden çağrılarda derleme maliyetini düşürür.
- İzleme sayaçları (MDA tabloları): Sunucunun iç metrikleri sorgulanarak darboğazlar analiz edilebilir.
Nerede Kullanılır?
SAP ASE, özellikle güvenilirlik ve tutarlı işlem başarımının kritik olduğu alanlarda köklü bir kullanıcı tabanına sahiptir:
- Bankacılık ve finansal hizmetler; işlem yoğun çekirdek sistemler
- Telekomünikasyon ve faturalama sistemleri
- Kamu ve büyük kurumsal uygulamalar
- SAP iş uygulamaları için arka uç veritabanı seçeneklerinden biri olarak
- Onlarca yıldır çalışan, üzerine iş mantığı yerleşmiş eski (legacy) sistemlerin sürdürülmesi
Diğer Veritabanlarıyla Karşılaştırma
Aşağıdaki tablo, SAP ASE'yi yaygın ilişkisel veritabanlarıyla kaba hatlarıyla konumlandırır. Amaç "en iyi"yi seçmek değil, tasarım vurgularını göstermektir; doğru seçim iş yüküne ve ekosisteme bağlıdır.
| Sistem | Sorgu dili | Öne çıkan vurgu | Lisans modeli |
|---|---|---|---|
| SAP ASE | Transact-SQL | OLTP başarımı, finansal sistemlerde köklü kullanım | Ticari |
| Microsoft SQL Server | Transact-SQL | Ortak T-SQL kökeni, Windows/.NET ekosistemi | Ticari |
| Oracle Database | PL/SQL | Geniş kurumsal özellik seti | Ticari |
| PostgreSQL | PL/pgSQL | Açık kaynak, genişletilebilirlik | Açık kaynak |
| MySQL / MariaDB | SQL/PL | Web uygulamalarında yaygınlık | Açık kaynak / ikili |
Güçlü ve Zayıf Yönleri
| Güçlü yönler | Dikkat edilecekler |
|---|---|
| Yüksek işlem hacminde kararlı ve öngörülebilir başarım | Ticari lisans; toplam sahip olma maliyeti planlanmalı |
| Düşük kaynak ayak izi ve olgun, kanıtlanmış çekirdek | Açık kaynak seçeneklere göre daha küçük topluluk |
| T-SQL ile tanıdık geliştirme deneyimi | Yeni projelerde tercih sıklığı geçmişe göre azalmıştır |
| Finans/kritik sistemlerde uzun yıllara dayanan saha geçmişi | Uzman iş gücü havuzu, yaygın açık kaynak ürünlere göre dardır |
Sık Sorulan Sorular
Sybase ile SAP ASE aynı şey mi?
Pratikte evet. SAP, Sybase'i satın aldıktan sonra Adaptive Server Enterprise ürününü SAP ASE adıyla sürdürdü. "Sybase" hem tarihsel şirket/marka adını hem de günlük dilde bu veritabanını ifade eder.
Sybase ve Microsoft SQL Server neden bu kadar benzer?
Çünkü ortak bir kod tabanından doğdular. Microsoft SQL Server'ın erken sürümleri Sybase teknolojisine dayanıyordu. Ürünler ayrıştıktan sonra da Transact-SQL ve birçok kavram ortak kaldı.
Sybase hâlâ destekleniyor mu?
SAP ASE, SAP tarafından ticari bir ürün olarak sürdürülmektedir. Belirli sürümlerin destek durumu ve yaşam döngüsü zamanla değiştiği için güncel bilgiyi resmi SAP kaynaklarından doğrulamak gerekir.