다음을 통해 공유


유니코드 기본 사항

문자 데이터와 코드 페이지만 사용할 때 한 데이터베이스에 여러 언어의 데이터를 저장하면 이를 관리하기가 어렵습니다. 데이터베이스에 대해 필요한 언어별 문자를 모두 저장할 수 있는 하나의 코드 페이지를 찾기도 어렵습니다. 또한 특수 문자를 여러 코드 페이지를 실행하는 다른 클라이언트가 읽거나 업데이트할 때 이를 적절하게 변환하는 것도 어렵습니다. 여러 언어의 클라이언트를 지원하는 데이터베이스는 항상 비유니코드 데이터 형식 대신 유니코드 데이터 형식을 사용해야 합니다.

예를 들어 다음 세 가지 주요 언어를 처리해야 하는 북아메리카 고객 데이터베이스가 있다고 가정합니다.

  • 멕시코에서 사용할 스페인어 이름 및 주소

  • 퀘벡에서 사용할 프랑스어 이름 및 주소

  • 캐나다 및 미국에서 사용할 영어 이름 및 주소

이때 문자 열 및 코드 페이지만 사용하는 경우 이 세 언어의 문자를 모두 처리할 코드 페이지와 함께 데이터베이스를 설치해야 합니다. 또한 한 언어의 문자를 다른 언어로 된 코드 페이지를 실행하는 클라이언트가 읽을 때 제대로 변환해야 합니다.

인터넷이 성장함에 따라 다른 로캘로 실행되는 많은 수의 클라이언트 컴퓨터를 지원하는 것이 더욱 중요해지고 있습니다. 전 세계 클라이언트가 요구하는 모든 문자를 지원할 문자 데이터 형식에 대한 코드 페이지를 선택하기란 어렵습니다.

여러 언어를 지원해야 하는 데이터베이스에서 문자 데이터를 관리하는 가장 쉬운 방법은 비유니코드 데이터 형식인 char, varchar 및 text를 사용하는 대신 항상 유니코드 데이터 형식인 nchar, nvarchar 및 nvarchar(max)을 사용하는 것입니다.

유니코드는 코드 포인트를 문자에 매핑하기 위한 표준입니다. 유니코드는 전 세계 모든 언어의 모든 문자를 지원하기 때문에 각 문자 집합을 처리하는 데 서로 다른 코드 페이지가 필요하지 않습니다. SQL Server에서는 Unicode Standard 버전 3.2를 지원합니다.

또한 여러 언어로 된 데이터베이스로 작업하는 모든 응용 프로그램에서 비유니코드 변수 대신 유니코드 변수를 사용하는 경우 시스템의 어느 위치에서도 문자 변환을 수행할 필요가 없습니다. 클라이언트는 데이터에서 다른 모든 클라이언트가 보게 되는 것과 동일한 문자를 보게 됩니다.

SQL Server에서는 유니코드 데이터 형식의 열에 모든 텍스트 시스템 카탈로그 데이터를 저장합니다. 테이블, 뷰 및 저장 프로시저와 같은 데이터베이스 개체의 이름이 유니코드 열에 저장됩니다. 따라서 유니코드만 사용하여 응용 프로그램을 개발할 수 있으며 코드 페이지 변환에 관련된 모든 문제를 방지할 수 있습니다.