0Pricing
JavaScript Academy · Ders

Veritabanı Açma

Veritabanları ve nesne depoları oluşturun.

Veritabanı Açma, CoddyKit'te ücretsiz bir JavaScript Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, JavaScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. JavaScript Academy kursu toplamda 4 dersten oluşur.

IndexedDB Nedir

IndexedDB, tarayıcıya yerleşik, yüksek kapasiteli ve işlemsel bir veritabanıdır. localStorage'dan (küçük, yalnızca dize tutan ve eşzamanlı çalışan) farklı olarak yapılandırılmış nesneleri depolar, dizinleri destekler ve eşzamansız çalışır.

Veritabanı Açma

indexedDB.open(name, version) ile bir veritabanı açar veya oluşturursunuz. Bu işlem, olayları başarı ya da başarısızlık bildiren bir istek nesnesi döndürür.

const request = indexedDB.open('notes-db', 1);

İstek Olayları

Açma isteği, işlediğiniz olayları tetikler:

  • onsuccess — veritabanı hazırdır
  • onerror — açma başarısız oldu
  • onupgradeneeded — şemanın oluşturulması veya yükseltilmesi gerekir
request.onsuccess = (e) => {
  const db = e.target.result;
  console.log('database opened');
};
request.onerror = (e) => {
  console.log('open failed:', e.target.error);
};

onupgradeneeded

onupgradeneeded, veritabanı ilk kez oluşturulduğunda veya sürüm numarası arttığında çalışır. Şemayı değiştirebileceğiniz tek yer burasıdır (nesne depoları ve dizinleri oluşturma ya da silme).

request.onupgradeneeded = (e) => {
  const db = e.target.result;
  // create object stores here
};

Nesne Depoları

Nesne deposu bir tablo gibidir: kayıtların bulunduğu bir kapsayıcıdır. onupgradeneeded içinde db.createObjectStore(name, options) ile bir tane oluşturun.

request.onupgradeneeded = (e) => {
  const db = e.target.result;
  db.createObjectStore('notes', { keyPath: 'id' });
};

keyPath

keyPath, IndexedDB'ye her nesnenin hangi özelliğinin birincil anahtar olduğunu bildirir. Depolanan nesneler bu özelliğe sahip olmalı ve anahtarlar benzersiz olmalıdır.

db.createObjectStore('users', { keyPath: 'email' });
// Each stored user object must have a unique 'email'.

Otomatik Artan Anahtarlar

Nesnelerinizin doğal bir anahtarı yoksa autoIncrement: true ile IndexedDB'nin bir anahtar oluşturmasını sağlayın. Her yeni kayıt bir sonraki tam sayıyı alır.

db.createObjectStore('logs', {
  keyPath: 'id',
  autoIncrement: true
});
// id is assigned automatically on add().

Mevcut Depoları Denetleme

onupgradeneeded her sürüm artışında çalıştığından, yeniden çalıştırmalarda hataları önlemek için oluşturma işlemini db.objectStoreNames.contains ile koşula bağlayın.

request.onupgradeneeded = (e) => {
  const db = e.target.result;
  if (!db.objectStoreNames.contains('notes')) {
    db.createObjectStore('notes', { keyPath: 'id' });
  }
};

db Başvurusunu Saklama

Daha sonraki işlemlerin kullanabilmesi için veritabanı nesnesini onsuccess içinden kaydedin. Tüm okuma ve yazma işlemleri bu db örneği üzerinden gerçekleştirilir.

let db;
request.onsuccess = (e) => {
  db = e.target.result; // reuse for transactions
};

Engellenen Açma İşlemlerini Ele Alma

Başka bir sekme eski bir sürümü açık tutuyorsa yükseltme işlemi blocked durumuna geçebilir. onblocked olayını dinleyin ve kullanıcıdan diğer sekmeleri kapatmasını isteyin.

request.onblocked = () => {
  console.log('Close other tabs to upgrade the database.');
};

Açma Akışı

IndexedDB'yi açma akışı şöyledir: bir ad ve sürümle open çağrısı yapın, şemanızı onupgradeneeded içinde oluşturun, ardından db'yi onsuccess içinde alın. Bundan sonra verileri okumak ve yazmak için işlemler çalıştırırsınız.

Hızlı Kontrol

Veritabanı açma konusundaki anlayışınızı sınayın.

Özet

Bir IndexedDB veritabanını açmayı öğrendiniz:

  • indexedDB.open(name, version) bir istek döndürür.
  • Nesne depolarını yalnızca onupgradeneeded içinde oluşturun.
  • keyPath birincil anahtarı belirler; autoIncrement anahtarlar oluşturur.
  • Daha sonra kullanmak üzere db'yi onsuccess içinden kaydedin.
  • onerror ve onblocked olaylarını ele alın.

Sırada, işlemler ve CRUD işlemleri var.

Sıkça Sorulan Sorular

“Veritabanı Açma” dersi ücretsiz mi?

Evet — “Veritabanı Açma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve JavaScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. JavaScript Academy kursu toplamda 4 dersten oluşur.

“Veritabanı Açma” dersinde ne öğreneceğim?

Veritabanları ve nesne depoları oluşturun. JavaScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

JavaScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te JavaScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Veritabanı Açma” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu JavaScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her JavaScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Veritabanı Açma
  2. İşlemler ve CRUD
  3. Dizinler ve Sorgular
  4. Sürümleme ve Yükseltmeler
← JavaScript Academy Sayfasına Dön