

# Amazon RDS for Microsoft SQL Server의 데이터 정렬 및 문자 세트 관리
<a name="Appendix.SQLServer.CommonDBATasks.Collation"></a>

이 주제에서는 Amazon RDS에서 Microsoft SQL Server의 데이터 정렬 및 문자 세트를 관리하는 방법에 대한 지침을 제공합니다. 데이터베이스 생성 중에 데이터 정렬을 구성하고 나중에 수정하여 언어 및 로캘 요구 사항에 따라 텍스트 데이터를 적절하게 처리하는 방법을 설명합니다. 또한 Amazon RDS의 SQL Server 환경에서 호환성 및 성능을 유지하기 위한 모범 사례를 다룹니다.

SQL Server는 여러 수준에서 콜레이션을 지원합니다. DB 인스턴스를 생성할 때 기본 서버 콜레이션을 설정합니다. 데이터베이스, 테이블 또는 열 수준에서 콜레이션을 재정의할 수 있습니다.

**Topics**
+ [Microsoft SQL Server의 서버 수준 콜레이션](#Appendix.SQLServer.CommonDBATasks.Collation.Server)
+ [Microsoft SQL Server의 데이터베이스 수준 콜레이션](#Appendix.SQLServer.CommonDBATasks.Collation.Database-Table-Column)

## Microsoft SQL Server의 서버 수준 콜레이션
<a name="Appendix.SQLServer.CommonDBATasks.Collation.Server"></a>

Microsoft SQL Server DB 인스턴스를 생성할 때 사용하려는 서버 콜레이션을 설정할 수 있습니다. 다른 콜레이션을 선택하지 않으면 서버 수준 콜레이션이 SQL\_Latin1\_General\_CP1\_CI\_AS으로 기본 설정됩니다. 모든 데이터베이스 및 데이터베이스 객체에 서버 콜레이션이 기본적으로 적용됩니다.

**참고**  
DB 스냅샷에서 복원할 때 데이터 정렬을 변경할 수 없습니다.

현재 Amazon RDS에서는 다음과 같은 서버 콜레이션을 지원합니다.


| 콜레이션 | 설명 | 
| --- | --- | 
| Arabic\_CI\_AS | 아랍어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Chinese\_PRC\_BIN2 | 중국어-중화인민공화국어, 이진 코드 포인트 비교 정렬 | 
| Chinese\_PRC\_CI\_AS | 중국어-중화인민공화국어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Chinese\_Taiwan\_Stroke\_CI\_AS | 중국어-대만어-스트로크, 소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Danish\_Norwegian\_CI\_AS | 덴마크어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Danish\_Norwegian\_CI\_AS\_KS | 덴마크-노르웨이어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Danish\_Norwegian\_CI\_AS\_KS\_WS | 덴마크-노르웨이어, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Danish\_Norwegian\_CI\_AS\_WS | 덴마크-노르웨이어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Danish\_Norwegian\_CS\_AI | 덴마크-노르웨이어, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Danish\_Norwegian\_CS\_AI\_KS | 덴마크-노르웨이어, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Finnish\_Swedish\_100\_BIN | Finnish-Swedish-100, 이진 정렬 | 
| Finnish\_Swedish\_100\_BIN2 | Finnish-Swedish-100, 이진 코드 포인트 비교 정렬 | 
| Finnish\_Swedish\_100\_CI\_AI | Finnish-Swedish-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Finnish\_Swedish\_100\_CI\_AS | Finnish-Swedish-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Finnish\_Swedish\_CI\_AS | 핀란드어, 스웨덴어, 스웨덴어(핀란드), 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| French\_CI\_AS | 프랑스어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Greek\_CI\_AS | 그리스어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Greek\_CS\_AS | 그리스어, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Hebrew\_BIN | 히브리어, 이진 정렬 | 
| Hebrew\_CI\_AS | 히브리어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\_BIN | 일본어, 이진 정렬 | 
| Japanese\_CI\_AS | 일본어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\_CS\_AS | 일본어, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\_XJIS\_140\_CI\_AS | 일본어, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\_XJIS\_140\_CI\_AS\_KS\_VSS | 일본어, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\_XJIS\_140\_CI\_AS\_VSS | 일본어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| 일본어\_XJIS\_140\_CS\_AS\_KS\_WS | 일본어, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Korean\_Wansung\_CI\_AS | 한국어-완성형, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Latin1\_General\_100\_BIN | 라틴어1-일반-100, 이진 정렬 | 
| Latin1\_General\_100\_BIN2 | 라틴어1-일반-100, 이진 코드 포인트 비교 정렬 | 
| Latin1\_General\_100\_BIN2\_UTF8 | Latin1-General-100, 이진 코드 포인트 비교 정렬, UTF-8 인코딩 | 
| Latin1\_General\_100\_CI\_AS | 라틴어1-일반-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Latin1\_General\_100\_CI\_AS\_SC\_UTF8 | Latin1-General-100, 대소문자 비구분, 액센트 구분, 보조 문자, UTF-8 인코딩 | 
| Latin1\_General\_BIN | 라틴어1-일반, 이진 정렬 | 
| Latin1\_General\_BIN2 | 라틴어1-일반, 이진 코드 포인트 비교 정렬 | 
| Latin1\_General\_CI\_AI | 라틴어1-일반, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Latin1\_General\_CI\_AS | 라틴어1-일반, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Latin1\_General\_CI\_AS\_KS | 라틴어1-일반, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Latin1\_General\_CS\_AS | 라틴어1-일반, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Modern\_Spanish\_CI\_AS | 현대-스페인어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Polish\_CI\_AS | 폴란드어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| SQL\_1xCompat\_CP850\_CI\_AS | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 49 | 
| SQL\_Latin1\_General\_CP1\_CI\_AI | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1252의 SQL Server 정렬 순서 54 | 
| **SQL\_Latin1\_General\_CP1\_CI\_AS(기본값)** | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1252의 SQL Server 정렬 순서 52 | 
| SQL\_Latin1\_General\_CP1\_CS\_AS | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1252의 SQL Server 정렬 순서 51 | 
| SQL\_Latin1\_General\_CP437\_CI\_AI | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 437의 SQL Server 정렬 순서 34 | 
| SQL\_Latin1\_General\_CP850\_BIN | 라틴어1-일반, 유니코드 데이터의 경우 이진 정렬 순서, 비유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 40 | 
| SQL\_Latin1\_General\_CP850\_BIN2 | 라틴어1-일반, 유니코드 데이터의 경우 이진 코드 포인트 비교, 비 유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 40 | 
| SQL\_Latin1\_General\_CP850\_CI\_AI | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 44 | 
| SQL\_Latin1\_General\_CP850\_CI\_AS | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 42 | 
| SQL\_Latin1\_General\_Pref\_CP850\_CI\_AS | Latin1-General-Pref, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 183 | 
| SQL\_Latin1\_General\_CP1256\_CI\_AS | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1256의 SQL Server 정렬 순서 146 | 
| SQL\_Latin1\_General\_CP1255\_CS\_AS | Latin1-General, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1255의 SQL Server 정렬 순서 137 | 
| Thai\_CI\_AS | 프랑스어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Turkish\_CI\_AS | 터키어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 

AWS CLI를 사용하여 프로그래밍 방식으로 지원되는 데이터 정렬 목록을 검색할 수도 있습니다.

```
aws rds describe-db-engine-versions --engine sqlserver-ee --list-supported-character-sets --query 'DBEngineVersions[].SupportedCharacterSets[].CharacterSetName' | sort -u
```

콜레이션을 선택하려면 다음을 수행하세요.
+ Amazon RDS 콘솔을 사용하는 경우 새 DB 인스턴스를 생성할 때 **Additional configuration**(추가 구성)을 선택한 다음 **Collation**(데이터 정렬) 필드에 데이터 정렬을 입력합니다. 자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.
+ AWS CLI를 사용하는 경우 `--character-set-name` 명령과 함께 `create-db-instance` 옵션을 사용합니다. 자세한 내용은 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html)를 참조하세요.
+ Amazon RDS API를 사용하는 경우 `CharacterSetName` 작업과 함께 `CreateDBInstance` 파라미터를 사용합니다. 자세한 내용은 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)를 참조하세요.

## Microsoft SQL Server의 데이터베이스 수준 콜레이션
<a name="Appendix.SQLServer.CommonDBATasks.Collation.Database-Table-Column"></a>

새로운 데이터베이스 또는 데이터베이스 객체를 생성하면서 데이터 정렬을 무시하면 데이터베이스, 테이블 또는 열을 기준으로 기본 데이터 정렬을 변경할 수도 있습니다. 예를 들어 기본 서버 콜레이션이 SQL\_Latin1\_General\_CP1\_CI\_AS인 경우, Mohawk 콜레이션 지원을 위해 이를 Mohawk\_100\_CI\_AS로 변경할 수 있습니다. 모든 쿼리 인수는 필요에 따라 타입캐스트를 통해 다른 데이터 정렬을 사용할 수 있습니다.

예를 들어 다음 쿼리는 AccountName 열의 기본 콜레이션을 Japanese\_CI\_AS로 변경합니다.

```
CREATE TABLE [dbo].[Account]
	(
	    [AccountID] [nvarchar](10) NOT NULL,
	    [AccountName] [nvarchar](100) COLLATE Mohawk_100_CI_AS NOT NULL 
	) ON [PRIMARY];
```

Microsoft SQL Server DB 엔진은 기본적인 NCHAR, NVARCHAR 및 NTEXT 데이터 유형에 따라 Unicode를 지원합니다. 이를 테면 CJK 지원이 필요할 경우 문자 스토리지에 이 세 가지 Unicode 데이터 유형을 사용하면 데이터베이스 및 테이블 생성 시 기본 서버 데이터 정렬을 무시할 수 있습니다. SQL Server에 대한 데이터 정렬 및 Unicode 지원을 설명한 Microsoft 링크를 몇 가지 소개합니다.
+ [Working with Collations](http://msdn.microsoft.com/en-us/library/ms187582%28v=sql.105%29.aspx) 
+ [Collation and International Terminology](http://msdn.microsoft.com/en-us/library/ms143726%28v=sql.105%29) 
+ [Using SQL Server Collations](http://msdn.microsoft.com/en-us/library/ms144260%28v=sql.105%29.aspx) 
+ [International Considerations for Databases and Database Engine Applications](http://msdn.microsoft.com/en-us/library/ms190245%28v=sql.105%29.aspx)