

# 관계형(SQL) 데이터베이스 및 DynamoDB에서 테이블 정보 가져오기 비교
<a name="SQLtoNoSQL.GetTableInfo"></a>

테이블이 사양에 따라 생성되었음을 확인할 수 있습니다. 관계형 데이터베이스에서는 테이블 스키마가 모두 표시됩니다. Amazon DynamoDB 테이블은 스키마가 없으므로 기본 키 속성만 표시됩니다.

**Topics**
+ [SQL에서 테이블에 대한 정보 가져오기](#SQLtoNoSQL.GetTableInfo.SQL)
+ [DynamoDB에서 테이블에 대한 정보 가져오기](#SQLtoNoSQL.GetTableInfo.DynamoDB)

## SQL에서 테이블에 대한 정보 가져오기
<a name="SQLtoNoSQL.GetTableInfo.SQL"></a>

대부분의 관계형 데이터베이스 관리 시스템(RDBMS)에서는 열, 데이터 형식, 기본 키 정의 등과 같은 테이블 구조를 설명할 수 있습니다. SQL에서는 이 작업을 하는 표준적 방법이 없습니다. 다만 많은 데이터베이스 시스템은 `DESCRIBE` 명령을 제공합니다. 다음은 MySQL 예제입니다.

```
DESCRIBE Music;
```

이는 모든 열 이름, 데이터 형식, 크기와 함께 테이블의 구조를 반환합니다.

```
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| Artist     | varchar(20) | NO   | PRI | NULL    |       |
| SongTitle  | varchar(30) | NO   | PRI | NULL    |       |
| AlbumTitle | varchar(25) | YES  |     | NULL    |       |
| Year       | int(11)     | YES  |     | NULL    |       |
| Price      | float       | YES  |     | NULL    |       |
| Genre      | varchar(10) | YES  |     | NULL    |       |
| Tags       | text        | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
```

이 테이블의 기본 키는 *Artist* 및 *SongTitle*로 구성됩니다.

## DynamoDB에서 테이블에 대한 정보 가져오기
<a name="SQLtoNoSQL.GetTableInfo.DynamoDB"></a>

DynamoDB에는 이와 비슷한 `DescribeTable` 작업이 있습니다. 이때는 테이블 이름 파라미터만 있으면 됩니다.

```
{
    TableName : "Music"
}
```

`DescribeTable`의 회신은 다음과 같습니다.

```
{
  "Table": {
    "AttributeDefinitions": [
      {
        "AttributeName": "Artist",
        "AttributeType": "S"
      },
      {
        "AttributeName": "SongTitle",
        "AttributeType": "S"
      }
    ],
    "TableName": "Music",
    "KeySchema": [
      {
        "AttributeName": "Artist",
        "KeyType": "HASH"  //Partition key
      },
      {
        "AttributeName": "SongTitle",
        "KeyType": "RANGE"  //Sort key
      }
    ],

    ...
```

`DescribeTable`은 또한 테이블의 인덱스, 할당된 처리량 설정, 대략적인 항목 카운트 및 기타 메타데이터에 관한 정보를 반환합니다.