

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 menulis data ke tabel
<a name="SQLtoNoSQL.WriteData"></a>

Tabel basis data relasional berisi *barisan* data. Baris terdiri dari *kolom*. Tabel Amazon DynamoDB berisi *item*. Item terdiri dari *atribut*.

Bagian ini menjelaskan cara menulis satu baris (atau item) ke tabel.

**Topics**
+ [

## Menulis data ke tabel dengan SQL
](#SQLtoNoSQL.WriteData.SQL)
+ [

## Menulis data ke tabel di DynamoDB
](#SQLtoNoSQL.WriteData.DynamoDB)

## Menulis data ke tabel dengan SQL
<a name="SQLtoNoSQL.WriteData.SQL"></a>

Sebuah tabel dalam basis data relasional adalah struktur data dua dimensi yang terdiri dari baris dan kolom. Beberapa sistem manajemen basis data juga menyediakan dukungan untuk data semi terstruktur, biasanya dengan JSON asli atau jenis data XML. Namun, detail implementasi bervariasi antara vendor.

Dalam SQL, Anda akan menggunakan pernyataan `INSERT` untuk menambahkan baris ke tabel.

```
INSERT INTO Music
    (Artist, SongTitle, AlbumTitle,
    Year, Price, Genre,
    Tags)
VALUES(
    'No One You Know', 'Call Me Today', 'Somewhat Famous',
    2015, 2.14, 'Country',
    '{"Composers": ["Smith", "Jones", "Davis"],"LengthInSeconds": 214}'
);
```

Kunci utama untuk tabel ini terdiri dari *Artis* dan *SongTitle*. Anda harus menentukan nilai untuk kolom ini.

**catatan**  
Contoh ini menggunakan kolom *Tanda* untuk menyimpan data semi terstruktur tentang lagu di tabel *Music*. Kolom *Tanda* didefinisikan sebagai jenis TEXT, yang dapat menyimpan hingga 65.535 karakter di MySQL. 

## Menulis data ke tabel di DynamoDB
<a name="SQLtoNoSQL.WriteData.DynamoDB"></a>

Di Amazon DynamoDB, Anda dapat menggunakan DynamoDB API atau [PartiQL](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-reference.html) (bahasa kueri yang kompatibel dengan SQL) untuk menambahkan item ke tabel.

------
#### [ DynamoDB API ]

Dengan DynamoDB API, Anda menggunakan operasi `PutItem` untuk menambahkan item ke tabel.

```
{
    TableName: "Music",
    Item: {
        "Artist":"No One You Know",
        "SongTitle":"Call Me Today",
        "AlbumTitle":"Somewhat Famous",
        "Year": 2015,
        "Price": 2.14,
        "Genre": "Country",
        "Tags": {
            "Composers": [
                  "Smith",
                  "Jones",
                  "Davis"
            ],
            "LengthInSeconds": 214
        }
    }
}
```

Kunci utama untuk tabel ini terdiri dari *Artis* dan *SongTitle*. Anda harus menentukan nilai untuk atribut ini.

Berikut adalah beberapa hal penting untuk diketahui tentang contoh `PutItem`:
+ DynamoDB menyediakan dukungan asli untuk dokumen, menggunakan JSON. Hal ini membuat DynamoDB ideal untuk menyimpan data semi terstruktur, seperti *Tag*. Anda juga dapat mengambil dan memanipulasi data dari dalam dokumen JSON.
+ Tabel *Musik* tidak memiliki atribut yang telah ditentukan sebelumnya, selain kunci utama (*Artis* dan *SongTitle*).
+ Sebagian besar basis data SQL berorientasi transaksi. Ketika Anda menerbitkan pernyataan `INSERT`, modifikasi data tidak permanen sampai Anda menerbitkan pernyataan `COMMIT`. Dengan Amazon DynamoDB, efek operasi `PutItem` bersifat permanen ketika DynamoDB membalas dengan kode status HTTP 200 (`OK`).

Berikut adalah beberapa contoh `PutItem` lainnya.

```
{
    TableName: "Music",
    Item: {
        "Artist": "No One You Know",
        "SongTitle": "My Dog Spot",
        "AlbumTitle":"Hey Now",
        "Price": 1.98,
        "Genre": "Country",
        "CriticRating": 8.4
    }
}
```

```
{
    TableName: "Music",
    Item: {
        "Artist": "No One You Know",
        "SongTitle": "Somewhere Down The Road",
        "AlbumTitle":"Somewhat Famous",
        "Genre": "Country",
        "CriticRating": 8.4,
        "Year": 1984
    }
}
```

```
{
    TableName: "Music",
    Item: {
        "Artist": "The Acme Band",
        "SongTitle": "Still In Love",
        "AlbumTitle":"The Buck Starts Here",
        "Price": 2.47,
        "Genre": "Rock",
        "PromotionInfo": {
            "RadioStationsPlaying":[
                 "KHCR", "KBQX", "WTNR", "WJJH"
            ],
            "TourDates": {
                "Seattle": "20150625",
                "Cleveland": "20150630"
            },
            "Rotation": "Heavy"
        }
    }
}
```

```
{
    TableName: "Music",
    Item: {
        "Artist": "The Acme Band",
        "SongTitle": "Look Out, World",
        "AlbumTitle":"The Buck Starts Here",
        "Price": 0.99,
        "Genre": "Rock"
    }
}
```

**catatan**  
Selain itu`PutItem`, DynamoDB mendukung operasi `BatchWriteItem` untuk menulis beberapa item pada saat yang sama.

------
#### [ PartiQL for DynamoDB ]

Dengan PartiQL, Anda menggunakan operasi `ExecuteStatement` untuk menambahkan item ke tabel, menggunakan pernyataan `Insert` PartiQL.

```
INSERT into Music value {  
    'Artist': 'No One You Know',
    'SongTitle': 'Call Me Today',
    'AlbumTitle': 'Somewhat Famous',
    'Year' : '2015',
    'Genre' : 'Acme'
}
```

Kunci utama untuk tabel ini terdiri dari *Artis* dan *SongTitle*. Anda harus menentukan nilai untuk atribut ini.

**catatan**  
Untuk contoh kode menggunakan `Insert` dan `ExecuteStatement`, lihat [Pernyataan sisipkan PartiQL untuk DynamoDB](ql-reference.insert.md).

------