Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Göç Rehberi

Bu rehber, diğer veritabanı sistemlerinden MenzeletDB’ye geçiş yaparken dikkat edilmesi gerekenleri içerir.

SQL Server’dan Göç

SQL ServerMenzeletDBNot
CREATE DATABASE xCREATE DATABASE xAynı
USE xUSE xAynı
CREATE TABLE t (id INT IDENTITY)CREATE TABLE t (id INT)IDENTITY yok, uuid() kullanılabilir
ALTER TABLE t ADD col INTALTER TABLE t ADD COLUMN col INTADD/DROP COLUMN, SET NOT NULL, RENAME desteklenir
CREATE VIEW v AS ...CREATE VIEW v AS ...Desteklenir (CREATE VIEW / DROP VIEW / SHOW VIEWS)
CREATE PROCEDURE p ...Desteklenmiyorİstemci tarafında uygula
CREATE TRIGGER tr ...DesteklenmiyorUygulama katmanında event handler
BEGIN TRAN ... COMMITBEGIN ... COMMITINSERT tamponlama desteklenir (DDL transaction icinde engellenir)
GETDATE()NOW()Yerleşik fonksiyon
ISNULL(x, y)COALESCE(x, y)SQL standardı
TOP 10LIMIT 10SQL standardı
NEWID()uuid()Yerleşik fonksiyon
LEN(str)LENGTH(str)SQL standardı
CHARINDEX(a, b)STRPOS(b, a)Parametre sırası farklı
DATEDIFF(day, a, b)date_part('epoch', b) - date_part('epoch', a)Manuel hesaplama
DATEADD(day, 10, d)d + INTERVAL '10 days'Interval aritmetiği
CONVERT(type, val)CAST(val AS type)SQL standardı
@@ROWCOUNTDesteklenmiyor

Veri Tipi Eşlemesi

SQL ServerMenzeletDB
INTINT
BIGINTBIGINT
SMALLINTSMALLINT
TINYINTTINYINT
FLOATFLOAT
REALFLOAT32
VARCHAR(n)VARCHAR (sabit uzunluk yok)
NVARCHAR(n)VARCHAR (UTF-8 varsayılan)
BITBOOL
DATEDATE
DATETIMETIMESTAMP
DATETIMEOFFSETTIMESTAMPTZ
DECIMAL(p,s)DECIMAL (38,10 sabit)
VARBINARYBLOB
UNIQUEIDENTIFIERUUID

PostgreSQL’den Göç

PostgreSQLMenzeletDBNot
CREATE DATABASECREATE DATABASEAynı
CREATE TABLE ... SERIALCREATE TABLE ... INTSERIAL yok, uuid() kullanılabilir
ALTER TABLEALTER TABLEADD/DROP COLUMN, SET NOT NULL, RENAME TO desteklenir
CREATE VIEWCREATE VIEWDesteklenir (CREATE VIEW / DROP VIEW / SHOW VIEWS)
CREATE FUNCTIONDesteklenmiyor200+ yerleşik fonksiyon
CREATE TRIGGERDesteklenmiyorUygulama katmanında
BEGIN ... COMMITBEGIN ... COMMITINSERT tamponlama desteklenir (DDL engellenir)
gen_random_uuid()uuid()Yerleşik fonksiyon
NOW()NOW()Aynı
EXTRACT(...)EXTRACT(...)Aynı
string_agg()string_agg()Aynı
array_agg()array_agg()Aynı

Oracle’dan Göç

OracleMenzeletDBNot
SYS_GUID()uuid()Yerleşik fonksiyon
SYSDATENOW()UTC döndürür
NVL(x, y)COALESCE(x, y)SQL standardı
ROWNUM <= 10LIMIT 10SQL standardı
DECODE(x, a, b, c)CASE WHEN x=a THEN b ELSE c ENDSQL standardı
TO_CHAR(date, fmt)to_char(date, fmt)Benzer
CREATE SEQUENCEDesteklenmiyoruuid() veya istemci-taraflı
CREATE SYNONYMDesteklenmiyor
CREATE MATERIALIZED VIEWDesteklenmiyor

MySQL’den Göç

MySQLMenzeletDBNot
AUTO_INCREMENTDesteklenmiyoruuid() veya istemci-taraflı
IFNULL(x, y)COALESCE(x, y)SQL standardı
UUID()uuid()Aynı işlevsellik
CONCAT(a, b)CONCAT(a, b)Aynı
GROUP_CONCAT(...)string_agg(...)Farklı isim
LIMIT x OFFSET yLIMIT x OFFSET yAynı
NOW()NOW()Aynı
CREATE INDEX idx ON t(col)INDEX BUILD t col btreeFarklı sözdizimi

Genel Göç Stratejisi

  1. Şema taşınması: Kaynak veritabanındaki tablo yapılarını MenzeletDB CREATE TABLE sözdizimine dönüştürün
  2. Veri aktarımı: Kaynak veritabanından CSV/Parquet olarak dışa aktarın, MenzeletDB’ye INSERT ile yükleyin
  3. Sorgu uyarlama: SP ve Trigger’ları uygulama-taraflı mantığa dönüştürün (VIEW desteklenmektedir)
  4. Test: Sorgu sonuçlarını karşılaştırın

Desteklenen Özellikler

ÖzellikMenzeletDB Karşılığı
VIEWCREATE VIEW, DROP VIEW, SHOW VIEWS
TransactionBEGIN / COMMIT / ROLLBACK (INSERT tamponlama, DDL engellenir)
ALTER TABLEADD COLUMN, DROP COLUMN, SET NOT NULL, RENAME TO (ALTER TYPE hariç)

Desteklenmeyen Özellikler İçin Alternatifler

ÖzellikAlternatif
Stored Procedureİstemci/uygulama mantığı
TriggerUygulama katmanında event handler
ALTER TABLE (ALTER TYPE)DROP TABLE + CREATE TABLE ile yeniden oluşturma
AUTO_INCREMENT / SERIALuuid() veya istemci-taraflı sayaç
Sequenceİstemci-taraflı sayaç