El catálogo SQL de 4D incluye varias tablas sistema, accesibles por todo usuario SQL que tenga acceso de lectura: _USER_TABLES, _USER_COLUMNS, _USER_INDEXES, _USER_CONSTRAINTS, _USER_IND_COLUMNS, _USER _CONS_ COLUMNS, _USER_SCHEMAS, _USER_VIEWS y _USER_VIEW_COLUMNS.
Conforme a los usos en el mundo SQL, las tablas sistema describen la estructura de la base de datos. Esta es una descripción de estas tablas y sus campos:
_USER_TABLES | | Describe las tablas usuario de la base |
TABLE_NAME | VARCHAR | Nombre de tabla |
TEMPORARY | BOOLEAN | True si la tabla es temporal; de lo contrario, false |
TABLE_ID | INT64 | Número de tabla |
SCHEMA_ID | INT32 | Número de esquema |
REST_AVAILABLE | BOOLEAN | True si la tabla está expuesta con el servicio REST; de lo contrario, False |
LOGGED | BOOLEAN | True si las operaciones de la tabla están incluídas en el archivo de historial; de lo contrario, False |
_USER_COLUMNS | | Describe las columnas de las tablas usuarios de la base |
TABLE_NAME | VARCHAR | Nombre de tabla |
COLUMN_NAME | VARCHAR | Nombre de columna |
DATA_TYPE | INT32 | Tipo de columna |
DATA_LENGTH | INT32 | Largo de la columna |
NULLABLE | BOOLEAN | True si la columna acepta valores NULL; de lo contrario, false |
TABLE_ID | INT64 | Número de tabla |
COLUMN_ID | INT64 | Número de columna |
UNIQUENESS | BOOLEAN | True si la columna se declara única; de lo contrario, False |
AUTOGENERATE | BOOLEAN | True si el valor de la columna se genera automáticamente para cada nuevo registro; de lo contrario, False |
AUTOINCREMENT | BOOLEAN | True si el valor de la columna se incrementa automáticamente; de lo contrario, False |
REST_AVAILABLE | BOOLEAN | True si la columna está expuesta con el servicio REST; de lo contrario, False |
_USER_INDEXES | | Describe los índices usuarios de la base |
INDEX_ID | VARCHAR | Número de índice |
INDEX_NAME | VARCHAR | Nombre de índice |
INDEX_TYPE | INT32 | Tipo de índice (1=BTree / Composite, 3=Cluster / Palabras claves, 7=Auto, 8=Auto para campo Objeto) |
KEYWORD | BOOLEAN | True si el índice es un índice de palabras claves; de lo contrario, False |
TABLE_NAME | VARCHAR | Nombre de la tabla con índice |
UNIQUENESS | BOOLEAN | True si el índice impone una restricción de unicidad; de lo contrario, false |
TABLE_ID | INT64 | Número de tabla con índice |
_USER_IND_COLUMNS | | Describe las columnas de índices usuarios de la base |
INDEX_ID | VARCHAR | Número de índice |
INDEX_NAME | VARCHAR | Nombre de índice |
TABLE_NAME | VARCHAR | Nombre de tabla con índice |
COLUMN_NAME | VARCHAR | Nombre de columna con índice |
COLUMN_POSITION | INT32 | Posición de columna en el índice |
TABLE_ID | INT64 | Número de tabla con índice |
COLUMN_ID | INT64 | Número de columna |
_USER_CONSTRAINTS | | Describe las restricciones usuarios de la base |
CONSTRAINT_ID | VARCHAR | Número de restricción |
CONSTRAINT_NAME | VARCHAR | Nombre de restricción |
CONSTRAINT_TYPE | VARCHAR | Tipo de restricción |
TABLE_NAME | VARCHAR | Nombre de tabla con restricción |
TABLE_ID | INT64 | Número de tabla con restricción |
DELETE_RULE | VARCHAR | Regla de supresión – CASCADE o RESTRICT |
RELATED_TABLE_NAME | VARCHAR | Nombre de tabla relacionada |
RELATED_TABLE_ID | INT64 | Número de tabla relacionada |
_USER_CONS_COLUMNS | | Describe las columnas de restricciones usuarios de la base |
CONSTRAINT_ID | VARCHAR | Número de restricción |
CONSTRAINT_NAME | VARCHAR | Nombre de restricción |
TABLE_NAME | VARCHAR | Nombre de tabla con restricción |
TABLE_ID | INT64 | Número de tabla con restricción |
COLUMN_NAME | VARCHAR | Nombre de columna con restricción |
COLUMN_ID | INT64 | Número de columna con restricción |
COLUMN_POSITION | INT32 | Posición de columna con restricción |
RELATED_COLUMN_NAME | VARCHAR | Nombre de columna relacionada en una restricción |
RELATED_COLUMN_ID | INT32 | Número de columna relacionada en una restricción |
_USER_SCHEMAS | | Describe los esquemas de la base |
SCHEMA_ID | INT32 | Número del esquema |
SCHEMA_NAME | VARCHAR | Nombre del esquema |
READ_GROUP_ID | INT32 | Número del grupo con acceso sólo lectura |
READ_GROUP_NAME | VARCHAR | Nombre del grupo con acceso lectura-escritura |
READ_WRITE_GROUP_ID | INT32 | Número del grupo con acceso lectura-escritura |
READ_WRITE_GROUP_NAME | VARCHAR | Nombre del grupo having read-write access |
ALL_GROUP_ID | INT32 | Número del grupo con acceso completo |
ALL_GROUP_NAME | VARCHAR | Nombre del grupo con acceso completo |
_USER_VIEWS | | Describe las vistas de los usuarios de la base |
VIEW_NAME | VARCHAR | Nombre de vista |
SCHEMA_ID | INT32 | ID del nom_schema al cual pertenece la vista |
_USER_VIEW_COLUMNS | | Describe las columnas de las vistas de los usuarios de la base |
VIEW_NAME | VARCHAR | Nombre de vista |
COLUMN_NAME | VARCHAR | Nombre de columna |
DATA_TYPE | INT32 | Tipo de columna |
DATA_LENGTH | INT32 | Tamaño de columna |
NULLABLE | BOOLEAN | True si columna acepta los valores NULL; de lo contrario, False |
Nota: las tablas sistema se asignan a un esquema particular llamado SYSTEM_SCHEMA. Este esquema no puede modificarse o borrarse. No aparece en la lista de esquemas mostrada en el inspector de tablas. Es accesible en modo lectura únicamente por todos los usuarios.