Bu derste DynamoDB ile veri ekleme ve alma konusunda bazı basit örneklerin üzerinden geçeceksiniz. DynamoDB tablonuzu CreateTable API’sini kullanarak oluşturur ve ardından BatchWriteItem API çağrısını kullanarak bazı ögeler eklersiniz. Son olarak GetItem API çağrısını kullanarak ögeleri ayrı ayrı alırsınız. Siz bu örnekleri ayrıntılı bir biçimde incelemeden önce örnek çevrimiçi kitapçı uygulamanızda kullanılacak veri modeli üzerinde fikir alışverişinde bulunacağız.
Takip eden modüllerde Sorgulama API çağrısını kullanarak birden fazla ögeyi tek seferde nasıl alacağınızı ve ikincil dizinleri kullanarak ek sorgu modellerini nasıl etkinleştireceğinizi öğreneceksiniz. Ayrıca, tablonuzdaki mevcut ögeleri nasıl güncelleyeceğinizi de göreceksiniz.
Modülü Tamamlama Süresi: 15 Dakika
Aşağıdaki DynamoDB kavramları bu modülde kilit rol oynamaktadır:
- Tablo: DynamoDB veri kayıtlarından oluşan bir koleksiyon.
- Öğe: Bir DynamoDB tablosundaki tek bir veri kaydı. Bu, ilişkisel veritabanında yer alan bir satıra benzetilebilir.
- Öznitelik: Bir öğede bulunan tek bir veri unsuru. Bu, ilişkisel veritabanında yer alan bir sütuna benzetilebilir. Bununla birlikte, ilişkisel veritabanlarında bulunan sütunların aksine bu modülün ilerleyen kısımlarında ele alınacak birincil anahtar hariç olmak üzere tablo oluşturulurken özniteliklerin belirtilmesine gerek yoktur. Öznitelikler dize, tamsayı veya Boolean gibi basit türler olabileceği gibi liste veya harita gibi karmaşık türler de olabilir.
- Birincil anahtar: Birincil anahtar bir DynamoDB tablosunda yer alan tek bir ögeye ait benzersiz tanımlayıcıdır. Birincil anahtar adının ve türünün tablo oluşturulurken belirtilmesi ve belirtilen türden birincil anahtarın bir tabloya yazılan her öğeye dâhil edilmesi gerekir. Tek bir birincil anahtar tek bir öznitelikten, birleşik bir birincil anahtar ise bir bölüm anahtarı ve bir sıralama anahtarı olmak üzere iki öznitelikten oluşur. Örneğin, tanımlayıcı olarak “UserID” kullanarak tek bir birincil anahtar veya öğe tanımlayıcısı olarak “UserID” ile “Creation_Date” öğelerini birlikte kullanarak bir birleşik anahtar oluşturabilirsiniz.
Bir uygulama geliştirirken her zaman uygulama mantığınızda ihtiyaç duyulacak veri modellerini tasarlamaya yeterince zaman ayırmalısınız. Bu veri modeli tasarımında uygulamanızda verileri hem okumak hem de yazmak için gerekli olacak veri erişim ihtiyaçları göz önünde bulundurulmalıdır.
DynamoDB ilişkisel olmayan bir veritabanıdır. İlişkisel olmayan veritabanlarında tablo oluştururken şemanın tamamını önceden belirtmenize gerek yoktur. Sadece tablonuzdaki her kaydı benzersiz olarak tanımlayan tablonuzun birincil anahtarını bildirmeniz yeterlidir. Uygulamanızın ihtiyaçları değiştiğinde şemanız üzerinde kolaylıkla değişiklik yapabileceğiniz için bu özellik önceden maruz kalacağınız veri modeli tasarım maliyetini azaltır.
Bu öğreticinin “Giriş” kısmındaki “Uygulama arka planı” bölümünde bahsedildiği üzere uygulamanızın belirli bir kitabı başlığına ve yazarına göre alması gerekir. Başlık-yazar kombinasyonu bir kitabın benzersiz tanımlayıcısı olduğundan bu öznitelikleri tablonuzun birincil anahtarı olarak kullanabilirsiniz. Uygulamanızın ayrıca envanter sisteminizde yer alan öğe numaraları ile eşleşecek şekilde kitabınızın kategorisi (tarih veya biyografi gibi) ve kitabınızın bulunduğu biçimler (ciltli, karton kapaklı veya sesli kitap gibi) hakkındaki bilgileri de depolaması gerekir.
Bu ihtiyaçları aklınızdan çıkarmayarak tablonuz için aşağıdaki şemayı kullanabilirsiniz:
- Başlık (bir dize): Kitabın başlığı
- Yazar (bir dize): Kitabın yazarı
- Kategori (bir dize): Tarih, biyografi ve bilim-kurgu gibi kitabın kategorisi
- Biçimler (bir harita): Satışa sunduğunuz farklı biçimler (ciltli, karton kapaklı ve sesli kitap gibi) ve bunların envanter sisteminizdeki öğe numaraları
Takip eden adımlarda tablonuzun birleşik birincil anahtarını (Yazar ve Başlık) belirterek tabloyu oluşturursunuz. Ardından, tablonuza birtakım öğeler yükleyip tablodan ayrı ayrı öğeleri okursunuz.