

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Perbedaan antara database relasional (SQL) dan DynamoDB saat membuat tabel
<a name="SQLtoNoSQL.CreateTable"></a>

Tabel adalah struktur data mendasar dalam basis data relasional dan di Amazon DynamoDB. Sistem manajemen basis data relasional (RDBMS) mengharuskan Anda untuk menentukan skema tabel ketika Anda membuatnya. Sebaliknya, tabel DynamoDB tidak memiliki skema-selain kunci primer, Anda tidak perlu mendefinisikan atribut tambahan atau jenis data ketika Anda membuat tabel.

Bagian berikut membandingkan bagaimana Anda akan membuat tabel dengan SQL dengan bagaimana Anda akan membuatnya dengan DynamoDB.

**Topics**
+ [

## Membuat tabel dengan SQL
](#SQLtoNoSQL.CreateTable.SQL)
+ [

## Membuat tabel dengan DynamoDB
](#SQLtoNoSQL.CreateTable.DynamoDB)

## Membuat tabel dengan SQL
<a name="SQLtoNoSQL.CreateTable.SQL"></a>

Dengan SQL Anda akan menggunakan pernyataan `CREATE TABLE` untuk membuat tabel, seperti yang ditunjukkan pada contoh berikut.

```
CREATE TABLE Music (
    Artist VARCHAR(20) NOT NULL,
    SongTitle VARCHAR(30) NOT NULL,
    AlbumTitle VARCHAR(25),
    Year INT,
    Price FLOAT,
    Genre VARCHAR(10),
    Tags TEXT,
    PRIMARY KEY(Artist, SongTitle)
);
```

Kunci utama untuk tabel ini terdiri dari *Artis* dan *SongTitle*.

Anda harus menentukan semua kolom tabel dan jenis data, serta kunci primer tabel. (Anda dapat menggunakan pernyataan `ALTER TABLE` untuk mengubah definisi ini nanti, jika perlu.)

Banyak implementasi SQL memungkinkan Anda menentukan spesifikasi penyimpanan untuk tabel Anda, sebagai bagian dari pernyataan `CREATE TABLE`. Kecuali jika Anda mengindikasikan sebaliknya, tabel dibuat dengan pengaturan penyimpanan default. Dalam lingkungan produksi, administrator basis data dapat membantu menentukan parameter penyimpanan optimal.

## Membuat tabel dengan DynamoDB
<a name="SQLtoNoSQL.CreateTable.DynamoDB"></a>

Gunakan operasi `CreateTable` untuk membuat tabel mode yang ditetapkan, menentukan parameter seperti yang ditunjukkan berikut:

```
{
    TableName : "Music",
    KeySchema: [
        {
            AttributeName: "Artist",
            KeyType: "HASH" //Partition key
        },
        {
            AttributeName: "SongTitle",
            KeyType: "RANGE" //Sort key
        }
    ],
    AttributeDefinitions: [
        {
            AttributeName: "Artist",
            AttributeType: "S"
        },
        {
            AttributeName: "SongTitle",
            AttributeType: "S"
        }
    ],
    ProvisionedThroughput: {       // Only specified if using provisioned mode
        ReadCapacityUnits: 1,
        WriteCapacityUnits: 1
    }
}
```

Kunci utama untuk tabel ini terdiri dari *Artist* (partition key) dan *SongTitle*(sort key).

Anda harus memberikan parameter berikut untuk `CreateTable`:
+ `TableName` — Nama tabel.
+ `KeySchema` — Atribut yang digunakan untuk kunci primer. Untuk informasi selengkapnya, lihat [Tabel, item, dan atribut](HowItWorks.CoreComponents.md#HowItWorks.CoreComponents.TablesItemsAttributes) dan [Kunci primer](HowItWorks.CoreComponents.md#HowItWorks.CoreComponents.PrimaryKey).
+ `AttributeDefinitions` — Jenis data untuk atribut skema kunci.
+ `ProvisionedThroughput (for provisioned tables)` — Jumlah baca dan tulis per detik yang Anda butuhkan untuk tabel ini. DynamoDB mencadangkan cukup penyimpanan dan sumber daya sistem sehingga persyaratan throughput Anda selalu dipenuhi. Anda dapat menggunakan operasi `UpdateTable` untuk mengubah ini nanti, jika perlu. Anda tidak perlu menentukan persyaratan penyimpanan tabel karena alokasi penyimpanan terkelola sepenuhnya oleh DynamoDB.