npm package: 7945db
Description: basit ve yenilikçi noSQL database
Author: sbusiedcake7945
Latest version: 1.0.2

# 7945DB - Güvenli ve Okunamaz Database Sistemi

7945DB, `.7945db` uzantılı tamamen okunamaz database dosyaları ve `.7945d` uzantılı özel fonksiyon dosyaları ile çalışan güvenli bir Node.js database modülüdür.

## 🚀 Özellikler

- 🔒 **Tamamen Okunamaz**: `.7945db` dosyaları şifrelenmiş formatta
- 📝 **Özel Fonksiyon Desteği**: `.7945d` dosyaları ile özel database fonksiyonları
- 🛡️ **Güvenli**: AES-256 şifreleme ile veri koruması
- 🔧 **Esnek API**: Basit ve anlaşılır metodlar
- 📊 **Zengin Fonksiyonlar**: Arama, istatistik, analiz ve daha fazlası

## 📦 Kurulum

```bash
npm install 7945db
```

## 🎯 Hızlı Başlangıç

### Temel Kullanım

```javascript
const db7945 = require('7945db');
const db = db7945();

// Database dosyasını ayarla
db.file('./veritabanım.7945db');

// Tablo ve değişken ekle
db.add({ type: 'table', name: 'kullanıcılar' });
db.add({ 
    type: 'variable', 
    name: 'kullanıcı-adı', 
    table: 'kullanıcılar', 
    value: 'str', 
    cstm_value: 'admin' 
});
db.add({ 
    type: 'variable', 
    name: 'şifre', 
    table: 'kullanıcılar', 
    value: 'str', 
    cstm_value: '123456' 
});

// Değer oku
const kullanici = db.get({ table: 'kullanıcılar', name: 'kullanıcı-adı' });
console.log('Kullanıcı:', kullanici); // "admin"

// Değer güncelle
db.set('kullanıcılar', 'şifre', 'yeniŞifre123');

// Database'i göster
db.show();
```

### Gelişmiş Fonksiyonlar

```javascript
// Tüm tabloları listele
const tablolar = db.listAllTables();
console.log('Tablolar:', tablolar);

// Tablo detaylarını getir
const tabloBilgisi = db.getTableInfo({ tableName: 'kullanıcılar' });
console.log('Tablo Bilgisi:', tabloBilgisi);

// Değer ara
const sonuçlar = db.searchDatabase({ searchTerm: 'admin' });
console.log('Arama Sonuçları:', sonuçlar);

// İstatistikler
const istatistikler = db.getDatabaseStatistics();
console.log('İstatistikler:', istatistikler);

// Değişkenleri listele
const değişkenler = db.listTableVariables({ tableName: 'kullanıcılar' });
console.log('Değişkenler:', değişkenler);
```

## 📁 Dosya Yapısı

### .7945db Dosyaları
- 🔒 Tamamen şifrelenmiş ve okunamaz
- 📁 Kullanıcı tarafından belirlenen herhangi bir yerde olabilir
- 💾 Otomatik kaydetme özelliği

### .7945d Dosyaları
- 📝 Özel database fonksiyonlarını içerir
- 🔧 Modülün çekirdek fonksiyonlarını tanımlar
- 🎯 Okuma, arama, analiz fonksiyonları

## 🛠️ API Referansı

### Temel Metodlar

#### `db.file(path)`
Database dosyasını ayarlar.

```javascript
db.file('./veritabanım.7945db');
```

#### `db.add(options)`
Tablo veya değişken ekler.

```javascript
// Tablo ekle
db.add({ type: 'table', name: 'ürünler' });

// Değişken ekle
db.add({ 
    type: 'variable', 
    name: 'fiyat', 
    table: 'ürünler', 
    value: 'num', 
    cstm_value: 100 
});
```

#### `db.get(options)`
Değişken değerini okur.

```javascript
const deger = db.get({ 
    table: 'ürünler', 
    name: 'fiyat' 
});
```

#### `db.set(table, variable, value)`
Değişken değerini günceller.

```javascript
db.set('ürünler', 'fiyat', 150);
```

#### `db.show()`
Database içeriğini konsola yazdırır.

```javascript
db.show();
```

### Gelişmiş Fonksiyonlar

#### `db.listAllTables()`
Tüm tabloları listeler.

#### `db.getTableInfo({ tableName })`
Tablo detaylarını getirir.

#### `db.listTableVariables({ tableName })`
Tablonun tüm değişkenlerini listeler.

#### `db.searchDatabase({ searchTerm })`
Database'de değer arar.

#### `db.getDatabaseStatistics()`
Database istatistiklerini getirir.

#### `db.readVariable({ tableName, varName })`
Değişken değerini okur.

#### `db.conditionalRead({ tableName, conditions })`
Koşullu okuma yapar.

## 🔒 Güvenlik

7945DB, verilerinizi çok katmanlı şifreleme ile korur:

- 🔑 AES-256-CBC şifreleme
- 🎯 Özel binary format
- 📁 Dosya bütünlük kontrolleri
- ⚡ Otomatik şifreleme/çözme

## 💡 Örnek Senaryolar

### Kullanıcı Yönetimi
```javascript
const db = require('7945db')();
db.file('./kullanıcılar.7945db');

// Kullanıcı tablosu oluştur
db.add({ type: 'table', name: 'kullanıcılar' });
db.add({ type: 'variable', name: 'email', table: 'kullanıcılar', value: 'str' });
db.add({ type: 'variable', name: 'şifre', table: 'kullanıcılar', value: 'str' });
db.add({ type: 'variable', name: 'rol', table: 'kullanıcılar', value: 'str', cstm_value: 'kullanıcı' });

// Kullanıcı ekle
db.set('kullanıcılar', 'email', 'ali@example.com');
db.set('kullanıcılar', 'şifre', 'güvenliŞifre123');

// Kullanıcı ara
const kullanıcılar = db.searchDatabase({ searchTerm: 'ali' });
```

### Ürün Kataloğu
```javascript
const db = require('7945db')();
db.file('./ürünler.7945db');

db.add({ type: 'table', name: 'ürünler' });
db.add({ type: 'variable', name: 'isim', table: 'ürünler', value: 'str' });
db.add({ type: 'variable', name: 'fiyat', table: 'ürünler', value: 'num' });
db.add({ type: 'variable', name: 'stok', table: 'ürünler', value: 'num' });

// İstatistikleri görüntüle
const stats = db.getDatabaseStatistics();
console.log(`Toplam ${stats.tableCount} tablo, ${stats.totalVariables} değişken`);
```

## 🐛 Sorun Giderme

### Database dosyası okunamıyor
```javascript
try {
    db.file('./veritabanım.7945db');
} catch (error) {
    console.error('Database hatası:', error.message);
}
```

### Değişken bulunamadı hatası
```javascript
// Önce değişkenin var olduğundan emin olun
if (db.get({ table: 'tablo', name: 'değişken' })) {
    // İşlemler
}
```

## 📄 Lisans

MIT License - detaylar için LICENSE dosyasına bakın.

## sorunlar

[![github sorun](https://img.shields.io/badge/sorununuz-varsa_t%C4%B1klay%C4%B1n-blue?logo=github)](https://github.com/sbusiedcake7945/7945db/issues)

---

**7945DB** - Güvenli ve güçlü database çözümünüz! 🚀