Cada instância em execução do servidor PostgreSQL gerencia um ou mais bancos de dados. Os bancos de dados são, portanto, o nível hierárquico mais alto da organização dos objetos SQL ("objetos de banco de dados"). Este capítulo descreve as propriedades dos bancos de dados, e como são criados, gerenciados e removidos.
Um banco de dados é uma coleção nomeada de objetos SQL ("objetos de banco de dados"). Geralmente, todos os objetos de banco de dados (tabelas, funções, etc.) pertencem a um e somente um banco de dados (Mas existem alguns poucos catálogos do sistema como, por exemplo, pg_database, que pertencem a todo o agrupamento e podem ser acessados por todos os bancos de dados do agrupamento). Mais precisamente, um banco de dados é uma coleção de esquemas, e os esquemas contêm as tabelas, funções, etc. Portanto, a hierarquia completa é: servidor, banco de dados, esquema, tabela (ou outro tipo de objeto em vez de tabela, como uma função). [1] [2] [3]
Para se conectar ao servidor de banco de dados, o cliente deve especificar no pedido de conexão o nome do banco de dados que deseja se conectar. Não é possível acessar mais de um banco de dados por conexão (Mas não há restrição quanto ao número de conexões que uma aplicação pode abrir no mesmo ou em outros bancos de dados). É possível, entretanto, acessar mais de um esquema a partir da mesma conexão. Os esquemas são estruturas puramente lógicas, e quem pode acessar o que é gerenciado pelo sistema de privilégios. Os bancos de dados são fisicamente separados, e o controle de acesso é gerenciado no nível de conexão. Se uma instância do servidor PostgreSQL é usada para abrigar projetos e usuários que devem estar separados e, em sua maioria, desconhecendo um ao outro, é recomendável colocá-los em bancos de dados separados. Se os projetos ou os usuários estão inter-relacionados, devendo um poder utilizar os recursos do outro, devem ser colocados no mesmo banco de dados, mas possivelmente em esquemas separados. Podem ser encontradas mais informações sobre o gerenciamento de esquemas na Seção 5.8 .
Os bancos de dados são criados através do comando CREATE DATABASE (veja a Seção 18.2 ), e removidos pelo comando DROP DATABASE (veja a Seção 18.6 ). Para conhecer o conjunto de bancos de dados existentes, deve ser examinado o catálogo do sistema pg_database como, por exemplo:
SELECT datname FROM pg_database;
O meta-comando \l e a opção da linha de comando -l da aplicação psql são úteis para listar os bancos de dados existentes.
Nota: O padrão SQL chama os bancos de dados de "catálogos", mas na prática não há diferença.
[1] |
Um catálogo é uma coleção nomeada de esquemas-SQL, descritores de servidores remotos e descritores de empacotadores de dados remotos em um ambiente-SQL. Os mecanismos para criar e remover os catálogos são definidos pela implementação. Um esquema-SQL, geralmente referido simplesmente como esquema, é uma coleção nomeada, persistente, de descritores. Qualquer objeto cujo descritor está em algum esquema-SQL é conhecido como um objeto do esquema-SQL. (ISO-ANSI Working Draft) Framework (SQL/Framework), August 2003, ISO/IEC JTC 1/SC 32, 25-jul-2003, ISO/IEC 9075-2:2003 (E) (N. do T.) |
[2] |
Oracle 9i — O esquema é uma coleção nomeada de objetos, como tabelas, visões, agrupamentos, procedimentos e pacotes, associados a um determinado usuário. Oracle9i Database Administrator's Guide - Glossary (N. do T.) |
[3] |
DB2 8.1 — Os esquemas são objetos do banco de dados utilizados no DB2 para agrupar logicamente outros objetos de banco de dados. A maioria dos objetos de banco de dados têm seus nomes formados usando uma convenção para nomes de duas partes (nome_do_esquema.nome_do_objeto). A primeira parte do nome é referida como nome do esquema (também conhecida como qualificador do objeto de banco de dados). A segunda parte é o nome do objeto. DB2® Universal Database V8 for Linux, UNIX, and Windows Database Administration Certification Guide, 5th Edition , George Baklarz e Bill Wong, Series IBM Press, Prentice Hall Professional Technical Reference, 2003, pg. 192. (N. do T.) |