

# Noções básicas sobre agrupamentos no Babelfish para Aurora PostgreSQL
<a name="babelfish-collations"></a>

Ao criar um cluster de banco de dados do Aurora PostgreSQL com o Babelfish, você escolhe um agrupamento para seus dados. Um *agrupamento* especifica a ordem de classificação e os padrões de bits que produzem o texto ou os caracteres em determinada linguagem humana escrita. Um agrupamento inclui regras que comparam dados de determinado conjunto de padrões de bits. O agrupamento está relacionado à localização. Localidades diferentes afetam o mapeamento de caracteres, a ordem de classificação e similares. Os atributos de agrupamento são refletidos nos nomes de vários agrupamentos. Para obter informações sobre atributos, consulte [Babelfish collation attributes table](#bfish-collation-attributes-table). 

O Babelfish mapeia agrupamentos do SQL Server para agrupamentos comparáveis que são fornecidos pelo Babelfish. O Babelfish predefine agrupamentos Unicode com comparações de string culturalmente sensíveis e ordens de classificação. O Babelfish também fornece uma maneira de converter os agrupamentos no banco de dados SQL Server para o agrupamento Babelfish de correspondência mais próxima. Agrupamentos específicos de localidade são fornecidos para diferentes idiomas e regiões. 

Alguns agrupamentos definem uma página de código que corresponde a uma codificação no lado do cliente. O Babelfish converte automaticamente da codificação do servidor na codificação do cliente, dependendo do agrupamento de cada coluna de saída. 

O Babelfish é compatível com os agrupamentos listados na [Babelfish supported collations table](#bfish-collations-table). O Babelfish mapeia agrupamentos do SQL Server para agrupamentos comparáveis que são fornecidos pelo Babelfish. 

O Babelfish usa a versão 153.80 da biblioteca de agrupamentos International Components for Unicode (ICU). Para obter mais informações sobre agrupamentos ICU, consulte [Collation](https://unicode-org.github.io/icu/userguide/collation/) (Agrupamento)) na documentação da ICU. Para saber mais sobre o PostgreSQL e agrupamentos, consulte [Collation Support](https://www.postgresql.org/docs/current/collation.html) (Compatibilidade com agrupamentos) na documentação do PostgreSQL.

**Topics**
+ [Parâmetros de cluster de banco de dados que controlam o agrupamento e a localidade](#babelfish-collations.parameters)
+ [Agrupamentos determinísticos e não determinísticos no Babelfish](#babelfish-collations.deterministic-nondeterministic)
+ [Agrupamentos permitidos no nível do banco de dados no Babelfish](#babelfish-collations.database-level)
+ [Agrupamentos de servidor e objetos no Babelfish](#babelfish-collations.reference-tables-supported-collations)
+ [Comportamento padrão de agrupamentos no Babelfish](#babelfish-collations-default)
+ [Gerenciar agrupamentos](collation.managing.md)
+ [Limitações de agrupamentos e diferenças de comportamento](collation.limitations.md)

## Parâmetros de cluster de banco de dados que controlam o agrupamento e a localidade
<a name="babelfish-collations.parameters"></a><a name="collation-related-parameters"></a>

Os parâmetros a seguir afetam o comportamento do agrupamento. 

**babelfishpg\_tsql.default\_locale**  
Esse parâmetro especifica a localidade padrão usada pelo agrupamento. Esse parâmetro é utilizado em combinação com os atributos listados na [Babelfish collation attributes table](#bfish-collation-attributes-table) para personalizar agrupamentos para um idioma e uma região específicos. O valor padrão desse parâmetro é `en-US`.  
A localidade padrão aplica-se a todos os nomes de agrupamentos do Babelfish que começam com “BBF” e a todos os agrupamentos do SQL Server mapeados para agrupamentos do Babelfish. Alterar a configuração para esse parâmetro em um cluster de banco de dados do Babelfish existente não afeta a localidade dos agrupamentos existentes. Para ver a lista de agrupamentos, consulte a [Babelfish supported collations table](#bfish-collations-table). 

**babelfishpg\_tsql.server\_collation\_name**  
Esse parâmetro especifica o agrupamento padrão para o servidor (instância de cluster de banco de dados do Aurora PostgreSQL) e do banco de dados. O valor padrão é `sql_latin1_general_cp1_ci_as`. `server_collation_name` deve ser um agrupamento `CI_AS`, pois no T-SQL o agrupamento de servidor determina como os identificadores são comparados.  
Ao criar seu cluster de banco de dados do Babelfish, escolha o **Collation name** (Nome do agrupamento) na lista selecionável. Estes incluem os agrupamentos listados na [Babelfish supported collations table](#bfish-collations-table). Não modifique `server_collation_name` depois que o banco de dados Babelfish for criado.

As configurações escolhidas ao criar seu cluster de banco de dados do Babelfish para Aurora PostgreSQL são armazenadas no grupo de parâmetros do cluster de banco de dados associado ao cluster para esses parâmetros e definem seu comportamento de agrupamento.

## Agrupamentos determinísticos e não determinísticos no Babelfish
<a name="babelfish-collations.deterministic-nondeterministic"></a>

O Babelfish oferece suporte para agrupamentos determinísticos e não determinísticos:
+ Um *agrupamento determinístico* avalia caracteres que têm sequências de bytes idênticas como iguais. Isso significa que `x` e `X` não são iguais em um agrupamento determinístico. Agrupamentos determinísticos fazem distinção de maiúsculas e minúsculas (CS) e dialetos (AS).
+ Um *agrupamento não determinístico* não precisa de correspondência idêntica. Um agrupamento não determinístico avalia `x` e `X` como iguais. Agrupamentos não determinísticos não fazem distinção de maiúsculas e minúsculas (CI) e de acentos (IA).

Na tabela a seguir, você pode encontrar algumas diferenças de comportamento entre o Babelfish e o PostgreSQL ao usar agrupamentos não determinísticos.


| Babelfish | PostgreSQL | 
| --- | --- | 
| É compatível com a cláusula LIKE para agrupamentos CI\_AS. | Não é compatível com a cláusula LIKE em agrupamentos não determinísticos. | 
| É compatível com a cláusula LIKE somente nos seguintes agrupamentos de IA do Babelfish versão 4.2.0:[See the AWS documentation website for more details](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/AuroraUserGuide/babelfish-collations.html) | Não é compatível com a cláusula LIKE em agrupamentos não determinísticos. | 

Para obter uma lista de outras limitações e diferenças de comportamento do Babelfish em comparação com o SQL Server e o PostgreSQL, consulte [Limitações de agrupamentos e diferenças de comportamento](collation.limitations.md). 

O Babelfish e o SQL Server seguem uma convenção de nomenclatura para agrupamentos que descrevem os atributos de agrupamento, conforme mostrado na tabela a seguir.<a name="bfish-collation-attributes-table"></a>


| Atributo | Descrição | 
| --- | --- | 
| AI | Não tem distinção entre dialetos. | 
| AS | Tem distinção entre dialetos. | 
| BIN2 | O BIN2 solicita que os dados sejam classificados em ordem de pontos de código. A ordem dos pontos de código Unicode é a mesma ordem de caracteres de codificações UTF-8, UTF-16 e UCS-2. A ordem de pontos de código é um agrupamento determinístico rápido. | 
| CI | Não tem distinção entre maiúsculas e minúsculas. | 
| CS | Tem distinção entre maiúsculas e minúsculas. | 
| PREF | Para classificar letras maiúsculas antes de letras minúsculas, utilize um agrupamento PREF. Se a comparação não diferenciar maiúsculas de minúsculas, a versão em maiúsculas de uma letra será classificada antes da versão em minúscula, caso não haja outra distinção. A biblioteca ICU oferece suporte à preferência de maiúsculas com `colCaseFirst=upper`, mas não para agrupamentos CI\_AS.<br />PREF só pode ser aplicado a agrupamentos determinísticos `CS_AS`. | 

## Agrupamentos permitidos no nível do banco de dados no Babelfish
<a name="babelfish-collations.database-level"></a>

Os seguintes agrupamentos são permitidos no nível do banco de dados no Babelfish:
+ bbf\_unicode\_bin2
+ bbf\_unicode\_cp1\_ci\_ai
+ bbf\_unicode\_cp1\_ci\_as
+ bbf\_unicode\_cp1250\_ci\_ai
+ bbf\_unicode\_cp1250\_ci\_as
+ bbf\_unicode\_cp1257\_ci\_ai
+ bbf\_unicode\_cp1257\_ci\_as
+ estonian\_ci\_ai
+ estonian\_ci\_as
+ finnish\_swedish\_ci\_ai
+ finnish\_swedish\_ci\_as
+ french\_ci\_ai
+ french\_ci\_as
+ latin1\_general\_bin2
+ latin1\_general\_ci\_ai
+ latin1\_general\_ci\_as
+ latin1\_general\_90\_bin2
+ latin1\_general\_100\_bin2
+ latin1\_general\_140\_bin2
+ modern\_spanish\_ci\_ai
+ modern\_spanish\_ci\_as
+ polish\_ci\_ai
+ polish\_ci\_as
+ sql\_latin1\_general\_cp1\_ci\_ai
+ sql\_latin1\_general\_cp1\_ci\_as
+ sql\_latin1\_general\_cp1250\_ci\_as
+ sql\_latin1\_general\_cp1251\_ci\_as
+ sql\_latin1\_general\_cp1257\_ci\_as
+ traditional\_spanish\_ci\_ai
+ traditional\_spanish\_ci\_as

**nota**  
Para usar um agrupamento diferente no nível do banco de dados, certifique-se de que ele corresponda ao agrupamento no nível do servidor. Para ter mais informações, consulte [Agrupamentos de servidor e objetos no Babelfish](#babelfish-collations.reference-tables-supported-collations).

## Agrupamentos de servidor e objetos no Babelfish
<a name="babelfish-collations.reference-tables-supported-collations"></a>

Use os seguintes agrupamentos como um agrupamento de servidor ou um agrupamento de objetos.<a name="bfish-collations-table"></a>


| ID de agrupamento | Observações | 
| --- | --- | 
| bbf\_unicode\_general\_ci\_as | Oferece suporte à comparação sem distinção entre maiúsculas e minúsculas e operador LIKE. | 
| bbf\_unicode\_cp1\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1252.txt), também conhecido como CP1252. | 
| bbf\_unicode\_CP1250\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1250.txt) utilizado para representar textos em idiomas da Europa Central e do Leste Europeu que utilizam o script latino. | 
| bbf\_unicode\_CP1251\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1251.txt) para linguagens que utilizam o script cirílico. | 
| bbf\_unicode\_cp1253\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1253.txt) utilizado para representar o grego moderno. | 
| bbf\_unicode\_cp1254\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1254.txt) que é compatível com o idioma turco. | 
| bbf\_unicode\_cp1255\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1255.txt) que é compatível com o idioma hebraico. | 
| bbf\_unicode\_cp1256\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1256.txt) utilizado para escrever idiomas que utilizam o script árabe. | 
| bbf\_unicode\_cp1257\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1257.txt) utilizado para suporte aos idiomas estoniano, letão e lituano. | 
| bbf\_unicode\_cp1258\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1258.txt) utilizado para escrever caracteres em vietnamita. | 
| bbf\_unicode\_cp874\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit874.txt) utilizado para escrever caracteres em tailandês. | 
| sql\_latin1\_general\_cp1250\_ci\_as | [Codificação de caracteres de byte único não determinística](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1250.txt) utilizado para representar caracteres latinos. | 
| sql\_latin1\_general\_cp1251\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1251.txt) que oferece suporte a caracteres latinos. | 
| sql\_latin1\_general\_cp1\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1252.txt) que oferece suporte a caracteres latinos. | 
| sql\_latin1\_general\_cp1253\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1253.txt) que oferece suporte a caracteres latinos. | 
| sql\_latin1\_general\_cp1254\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1254.txt) que oferece suporte a caracteres latinos. | 
| sql\_latin1\_general\_cp1255\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1255.txt) que oferece suporte a caracteres latinos. | 
| sql\_latin1\_general\_cp1256\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1256.txt) que oferece suporte a caracteres latinos. | 
| sql\_latin1\_general\_cp1257\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1257.txt) que oferece suporte a caracteres latinos. | 
| sql\_latin1\_general\_cp1258\_ci\_as | [Agrupamento não determinístico](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1258.txt) que oferece suporte a caracteres latinos. | 
| chinese\_prc\_ci\_as | Agrupamento não determinístico que é compatível com o idioma chinês (RPC). | 
| cyrillic\_general\_ci\_as | Agrupamento não determinístico que é compatível com o idioma cirílico. | 
| finnish\_swedish\_ci\_as | Agrupamento não determinístico que é compatível com o idioma finlandês. | 
| french\_ci\_as | Agrupamento não determinístico que é compatível com o idioma francês. | 
| japanese\_ci\_as | Agrupamento não determinístico que é compatível com o idioma japonês. Compatível com o Babelfish 2.1.0 e versões posteriores. | 
| korean\_wansung\_ci\_as | Agrupamento não determinístico que é compatível com o idioma coreano (com classificação de dicionário). | 
| latin1\_general\_ci\_as | Agrupamento não determinístico que oferece suporte a caracteres latinos. | 
| modern\_spanish\_ci\_as | Agrupamento não determinístico que é compatível com o idioma espanhol moderno. | 
| polish\_ci\_as | Agrupamento não determinístico que é compatível com o idioma polonês. | 
| thai\_ci\_as | Agrupamento não determinístico que é compatível com o idioma tailandês. | 
| traditional\_spanish\_ci\_as | Agrupamento não determinístico que é compatível com o idioma espanhol (tipo tradicional). | 
| turkish\_ci\_as | Agrupamento não determinístico que é compatível com o idioma turco. | 
| ukrainian\_ci\_as | Agrupamento não determinístico que é compatível com o idioma ucraniano. | 
| vietnamese\_ci\_as | Agrupamento não determinístico que é compatível com o idioma vietnamita. | 

Os seguintes agrupamentos podem ser utilizados como agrupamentos de objetos.<a name="bfish-icu-collations-table"></a>


| Dialeto | Opções determinísticas | Opções não determinísticas | 
| --- | --- | --- | 
| Árabe | Arabic\_CS\_AS | Arabic\_CI\_AS<br />Arabic\_CI\_AI | 
| Alfabeto árabe | BBF\_Unicode\_CP1256\_CS\_AS<br />BBF\_Unicode\_Pref\_CP1256\_CS\_AS | BBF\_Unicode\_CP1256\_CI\_AI<br />BBF\_Unicode\_CP1256\_CS\_AI | 
| Binário | latin1\_general\_bin2<br />BBF\_Unicode\_BIN2 | – | 
| Idiomas da Europa Central e do Leste Europeu que utilizam o alfabeto latino | BBF\_Unicode\_CP1250\_CS\_AS<br />BBF\_Unicode\_Pref\_CP1250\_CS\_AS | BBF\_Unicode\_CP1250\_CI\_AI<br />BBF\_Unicode\_CP1250\_CS\_AI | 
| Chinês | Chinese\_PRC\_CS\_AS | Chinese\_PRC\_CI\_AS<br />Chinese\_PRC\_CI\_AI | 
| Cyrillic\_General | Cyrillic\_General\_CS\_AS | Cyrillic\_General\_CI\_AS<br />Cyrillic\_General\_CI\_AI | 
| Alfabeto cirílico | BBF\_Unicode\_CP1251\_CS\_AS<br />BBF\_Unicode\_Pref\_CP1251\_CS\_AS | BBF\_Unicode\_CP1251\_CI\_AI<br />BBF\_Unicode\_CP1251\_CS\_AI | 
| Estoniano | Estonian\_CS\_AS | Estonian\_CI\_AS<br />Estonian\_CI\_AI | 
| Estoniano, letão e lituano | BBF\_Unicode\_CP1257\_CS\_AS<br />BBF\_Unicode\_Pref\_CP1257\_CS\_AS | BBF\_Unicode\_CP1257\_CI\_AI<br />BBF\_Unicode\_CP1257\_CS\_AI | 
| Finnish\_Swedish | Finnish\_Swedish\_CS\_AS | Finnish\_Swedish\_CI\_AS<br />Finnish\_Swedish\_CI\_AI | 
| Francês | French\_CS\_AS | French\_CI\_AS<br />French\_CI\_AI | 
| Grego | Greek\_CS\_AS | Greek\_CI\_AS<br />Greek\_CI\_AI | 
| Hebraico | BBF\_Unicode\_CP1255\_CS\_AS<br />BBF\_Unicode\_Pref\_CP1255\_CS\_AS<br />Hebrew\_CS\_AS | BBF\_Unicode\_CP1255\_CI\_AI<br />BBF\_Unicode\_CP1255\_CS\_AI<br />Hebrew\_CI\_AS<br />Hebrew\_CI\_AI | 
| Japonês (Babelfish 2.1.0 e posteriores) | Japanese\_CS\_AS | Japanese\_CI\_AI<br />Japanese\_CI\_AS | 
| Korean\_Wamsung | Korean\_Wamsung\_CS\_AS | Korean\_Wamsung\_CI\_AS<br />Korean\_Wamsung\_CI\_AI | 
| Caracteres latinos para a página de código CP1252 | latin1\_general\_cs\_as<br />BBF\_Unicode\_General\_CS\_AS<br />BBF\_Unicode\_General\_Pref\_CS\_AS<br />BBF\_Unicode\_Pref\_CP1\_CS\_AS<br />BBF\_Unicode\_CP1\_CS\_AS | latin1\_general\_ci\_as<br />latin1\_general\_ci\_ai<br />latin1\_general\_cs\_ai<br />BBF\_Unicode\_General\_CI\_AI<br />BBF\_Unicode\_General\_CS\_AI<br />BBF\_Unicode\_CP1\_CI\_AI<br />BBF\_Unicode\_CP1\_CS\_AI | 
| Grego moderno | BBF\_Unicode\_CP1253\_CS\_AS<br />BBF\_Unicode\_Pref\_CP1253\_CS\_AS | BBF\_Unicode\_CP1253\_CI\_AI<br />BBF\_Unicode\_CP1253\_CS\_AI | 
| Modern\_Spanish | Modern\_Spanish\_CS\_AS | Modern\_Spanish\_CI\_AS<br />Modern\_Spanish\_CI\_AI | 
| Mongol | Mongolian\_CS\_AS | Mongolian\_CI\_AS<br />Mongolian\_CI\_AI | 
| Polonês | Polish\_CS\_AS | polish\_ci\_as<br />Polish\_CI\_AI | 
| Tailandês | BBF\_Unicode\_CP874\_CS\_AS<br />BBF\_Unicode\_Pref\_CP874\_CS\_AS<br />Thai\_CS\_AS | BBF\_Unicode\_CP874\_CI\_AI<br />BBF\_Unicode\_CP874\_CS\_AI<br />Thai\_CI\_AS, Thai\_CI\_AI | 
| Traditional\_Spanish | Traditional\_Spanish\_CS\_AS | Traditional\_Spanish\_CI\_AS<br />Traditional\_Spanish\_CI\_AI | 
| Turco | BBF\_Unicode\_CP1254\_CS\_AS<br />BBF\_Unicode\_Pref\_CP1254\_CS\_AS<br />Turkish\_CS\_AS | BBF\_Unicode\_CP1254\_CI\_AI<br />BBF\_Unicode\_CP1254\_CS\_AI<br />Turkish\_CI\_AS, Turkish\_CI\_AI | 
| Ucraniano | Ukranian\_CS\_AS | Ukranian\_CI\_AS<br />Ukranian\_CI\_AI | 
| Vietnamita | BBF\_Unicode\_CP1258\_CS\_AS<br />BBF\_Unicode\_Pref\_CP1258\_CS\_AS<br />Vietnamese\_CS\_AS | BBF\_Unicode\_CP1258\_CI\_AI<br />BBF\_Unicode\_CP1258\_CS\_AI<br />Vietnamese\_CI\_AS<br />Vietnamese\_CI\_AI | 

## Comportamento padrão de agrupamentos no Babelfish
<a name="babelfish-collations-default"></a>

Antes, o agrupamento padrão dos tipos de dados agrupáveis era `pg_catalog.default`. Os tipos de dados e os objetos que dependem desses tipos de dados seguem um agrupamento que diferencia maiúsculas de minúsculas. Essa condição pode afetar os objetos T-SQL do conjunto de dados com agrupamento que não diferencia maiúsculas de minúsculas. A partir do Babelfish 2.3.0, o agrupamento padrão para os tipos de dados agrupáveis (exceto TEXT e NTEXT) é o mesmo que o agrupamento no parâmetro `babelfishpg_tsql.server_collation_name`. Quando você atualiza para o Babelfish 2.3.0, o agrupamento padrão é escolhido automaticamente no momento da criação do cluster de banco de dados, o que não cria nenhum impacto visível. 