O catálogo SQL de 4D inclui várias tabelas sistema, acessíveis por todo usuário SQL que tenha acesso de leitura: _USER_TABLES, _USER_COLUMNS, _USER_INDEXES, _USER_CONSTRAINTS, _USER_IND_COLUMNS, _USER _CONS_ COLUMNS, _USER_SCHEMAS, _USER_VIEWS y _USER_VIEW_COLUMNS.
Conforme aos usos no mundo SQL, as tabelas sistema descrevem a estrutura do banco de dados. Esta é uma descrição destas tabelas e seus campos:
_USER_TABLES | | Descreve as tabelas usuário da base |
TABLE_NAME | VARCHAR | Nome de tabela |
TEMPORARY | BOOLEAN | True se a tabela é temporal; caso contrário, false |
TABLE_ID | INT64 | Número de tabela |
SCHEMA_ID | INT32 | Número de esquema |
REST_AVAILABLEBOOLEANTrue se a coluna está exposta com o serviço REST; caso contrário, False[#/table]
_USER_COLUMNS | | Descreve as colunas das tabelas usuários da base |
TABLE_NAME | VARCHAR | Nome de tabela |
COLUMN_NAME | VARCHAR | Nome de coluna |
DATA_TYPE | INT32 | Tipo de coluna |
DATA_LENGTH | INT32 | comprimento da coluna |
NULLABLE | BOOLEAN | True se a coluna aceita valores NULL; caso contrário, false |
TABLE_ID | INT64 | Número de tabela |
COLUMN_ID | INT64 | Número de coluna |
UNIQUENESSBOOLEANTrue se a coluna se declara única; caso contrário, False
AUTOGENERATEBOOLEANTrue se o valor da coluna é gerado automaticamente para cada novo registro; caso contrário, False
AUTOINCREMENTBOOLEANTrue se o valor da coluna se incrementa automaticamente; caso contrário, False
REST_AVAILABLEBOOLEANTrue se a coluna está exposta com o serviço REST; caso contrário, False[#/table]
_USER_INDEXES | | Descreve os índices usuários do banco |
INDEX_ID | VARCHAR | Número de índice |
INDEX_NAME | VARCHAR | Nome de índice |
INDEX_TYPE | INT32 | Tipo de índice (1=BTree / Composite, 3=Cluster / Palavras chaves, 7=Auto) |
KEYWORD | BOOLEAN | True se o índice é um índice de palavras chaves; caso contrário, False |
TABLE_NAME | VARCHAR | Nome da tabela com índice |
UNIQUENESS | BOOLEAN | True se o índice impõe uma restrição de singularidade; caso contrário, false |
TABLE_ID | INT64 | Número de tabela com índice |
_USER_IND_COLUMNS | | Descreve as colunas de índices usuários do banco |
INDEX_ID | VARCHAR | Número de índice |
INDEX_NAME | VARCHAR | Nome de índice |
TABLE_NAME | VARCHAR | Nome de tabela com índice |
COLUMN_NAME | VARCHAR | Nome de coluna com índice |
COLUMN_POSITION | INT32 | Posição de coluna no índice |
TABLE_ID | INT64 | Número de tabela com índice |
COLUMN_ID | INT64 | Número de coluna |
_USER_CONSTRAINTS | | Descreve as restrições usuários do banco |
CONSTRAINT_ID | VARCHAR | Número de restrição |
CONSTRAINT_NAME | VARCHAR | Nome de restrição |
CONSTRAINT_TYPE | VARCHAR | Tipo de restrição (P=chave primária, R=integridade referencial - chave estrangeira, 4DR=relação 4D) |
TABLE_NAME | VARCHAR | Nome de tabela com restrição |
TABLE_ID | INT64 | Número de tabela com restrição |
DELETE_RULE | VARCHAR | Regra de supressão – CASCADE ou RESTRICT |
RELATED_TABLE_NAME | VARCHAR | Nome de tabela relacionada |
RELATED_TABLE_ID | INT64 | Número de tabela relacionada |
_USER_CONS_COLUMNS | | Descreve as colunas de restrições usuários do banco |
CONSTRAINT_ID | VARCHAR | Número de restrição |
CONSTRAINT_NAME | VARCHAR | Nome de restrição |
TABLE_NAME | VARCHAR | Nome de tabela com restrição |
TABLE_ID | INT64 | Número de tabela com restrição |
COLUMN_NAME | VARCHAR | Nome de coluna com restrição |
COLUMN_ID | INT64 | Número de coluna com restrição |
COLUMN_POSITION | INT32 | Posição de coluna com restrição |
RELATED_COLUMN_NAME | VARCHAR | Nome de coluna relacionada em uma restrição |
RELATED_COLUMN_ID | INT32 | Número de coluna relacionada em uma restrição |
_USER_SCHEMAS | | Descreve os esquemas do banco |
SCHEMA_ID | INT32 | Número do esquema |
SCHEMA_NAME | VARCHAR | Nome do esquema |
READ_GROUP_ID | INT32 | Número do grupo com acesso só a leitura |
READ_GROUP_NAME | VARCHAR | Nome do grupo com acesso a leitura-escritura |
READ_WRITE_GROUP_ID | INT32 | Número do grupo com acesso a leitura-escritura |
READ_WRITE_GROUP_NAME | VARCHAR | Nome do grupo having read-write access |
ALL_GROUP_ID | INT32 | Número do grupo com acesso completo |
ALL_GROUP_NAME | VARCHAR | Nome do grupo com acesso completo |
_USER_VIEWS | | Descreve as vistas dos usuários do banco |
VIEW_NAME | VARCHAR | Nome de vista |
SCHEMA_ID | INT32 | ID do nom_schema ao qual pertence a vista |
_USER_VIEW_COLUMNS | | Descreve as colunas das vistas dos usuários do banco |
VIEW_NAME | VARCHAR | Nome de vista |
COLUMN_NAME | VARCHAR | Nome de coluna |
DATA_TYPE | INT32 | Tipo de coluna |
DATA_LENGTH | INT32 | Tamanho de coluna |
NULLABLE | BOOLEAN | True se coluna aceita os valores NULL; caso contrário, False |
Nota: As tabelas sistema são atribuídas a um esquema particular chamado SYSTEM_SCHEMA. Este esquema não pode ser modificado ou apagado. Não aparece na lista de esquemas mostrada no inspetor de tabelas. É acessível em modo leitura unicamente por todos os usuários.