Veritabanı (DATABASE)
MenzeletDB klasör bazlı yaklaşım kullanır: her veritabanı dosya sisteminde bir klasördür (data/<db_adı>/).
Oluşturma (CREATE DATABASE)
CREATE DATABASE musteri_db
data/musteri_db/klasörü oluşturulur- Veritabanı adı küçük harf, boşluksuz olmalıdır
- Aynı isimli veritabanı varsa hata döner
Birden fazla veritabanı oluşturma:
CREATE DATABASE satis_db
CREATE DATABASE analitik_db
CREATE DATABASE test_db
Seçme (USE)
USE musteri_db
- Sonraki tüm tablo işlemleri seçilen veritabanı üzerinde çalışır
USEkomutu çalıştırılmadan tablo işlemleri yapılamaz (masterDB dışında)
Listeleme (SHOW DATABASES)
SHOW DATABASES
Örnek çıktı:
master
musteri_db
satis_db
analitik_db
Silme (DROP DATABASE)
DROP DATABASE test_db
data/test_db/klasörü ve içindeki tüm Parquet/WAL/flush dosyaları silinir- Bu işlem geri alınamaz
Koruma Kuralları
| Kural | Örnek | Sonuç |
|---|---|---|
master DB silinemez | DROP DATABASE master | Hata |
| Aktif bağlantısı olan DB silinebilir | DROP DATABASE musteri_db | Başarılı (dikkatli kullanın) |
Güncelleme
MenzeletDB’de veritabanı adı değiştirme (ALTER DATABASE RENAME) komutu desteklenmez.
Alternatif yöntem:
-- 1. Yeni veritabanı oluştur
CREATE DATABASE musteri_db_v2
-- 2. Yeni veritabanında tabloları oluştur ve verileri taşı
USE musteri_db_v2
CREATE TABLE siparisler (id INT NOT NULL, tutar FLOAT)
INSERT INTO siparisler SELECT * FROM menzelet.musteri_db.siparisler
-- 3. Eski veritabanını sil
DROP DATABASE musteri_db
Hiyerarşik ad alanı: Tablolara tam nitelikli isimle de erişilebilir:
menzelet.<db_adı>.<tablo_adı>. Bu sayede farklı veritabanlarındaki tablolaraUSEkomutu olmadan erişmek mümkündür.
Dosya Sistemi Eşlemesi
| SQL Komutu | Dosya Sistemi İşlemi |
|---|---|
CREATE DATABASE x | mkdir data/x/ |
DROP DATABASE x | rmdir data/x/ (tüm içerikle birlikte) |
USE x | Session’ın aktif DB’sini değiştir |
SHOW DATABASES | data/ altındaki klasörleri listele |
master Veritabanı
master, MenzeletDB’nin sistem veritabanıdır. İlk kurulumda (bootstrap) otomatik oluşturulur ve silinemez.
İçindeki sistem tabloları:
| Tablo | İçerik |
|---|---|
mnz_users | Kullanıcılar (şifreler hash + salt ile korunur) |
mnz_roles | Roller (4 yerleşik + kullanıcı tanımlı) |
mnz_user_roles | Kullanıcı-rol eşlemeleri |
mnz_role_permissions | Rol-permission eşlemeleri |
mnz_tables | Tablo katalog meta verileri |