LexerLang ekosisteminin veritabanı
Tek kabuk, çok tane.
Tek bir .ndbc kapsayıcısında şemalar, indeksler ve dağıtım haritası; yazma günlüğüyle çökmeye dayanıklı. SQL yerine zincirleme bir dil: create_schema, from, insert_one.
NarDB Shell
cd nardb_shell && go build -o nardb . && ./nardb
SQL değil, zincir
Şema da sorgu da aynı zincirleme dille yazılır. .commit() olmadan bir şema yalnızca doğrulanır; hatalar satır ve sütunla, çoğu zaman bir çözüm önerisiyle gelir.
create_schema('uyeler')
.fields({
'id': {type: string, max_length: 32, guid: true, primary_key: true},
'name': {type: string, max_length: 50},
'email': {type: string, max_length: 100, index: {unique: true}},
'birth': {type: date, format: 'dd.mm.yyyy'}
})
.commit();from('uyeler').insert_one({name: 'Osman 🍉', email: 'osman@example.com', birth: '23.09.1981'});
from('uyeler', 'u')
.where({'u.email': 'osman@example.com'})
.fields({CAST('u.name', 'ad'), FORMAT('u.birth', 'dd-mm-yyyy')})
.get();Başlangıç
Şema
- create_schema Alanlar, türler, uzunluklar, karakter kodlaması ve indeksler.
- Doğrulama check kuralları, nullable, default ve parola alanları.
- alter_schema Alan ve indeks eklemek, güncellemek, yeniden adlandırmak ve silmek.
- Partition ve dağıtım Veriyi aralıklara bölmek ve her aralığın nerede durduğunu .ndbc içine yazmak.
Sorgu
Yönetim
- Kullanıcılar privileges sistem şeması, Argon2id parola özetleri ve shell'e giriş parolası.
- Havuz ayarları Bağlantı sayısı, eşzamanlı sorgu sınırı ve sorgu zaman aşımı.
- Şifreleme Diskte şifreleme, anahtarın nerede durduğu, parola değişimi ve anahtar yenileme.
- Yedekleme Şifreli, sıkıştırılmış .ndbz yedekleri almak ve başka bir makinede geri yüklemek.
- Sunucu (nardbd) Veritabanlarını mTLS'li gRPC ile sunmak — sertifikalar, ayarlar, yetkiler ve denetim kaydı.