Le catalogue SQL de 4D comporte plusieurs tables système, accessible à tout utilisateur SQL disposant des droits d’accès en lecture : _USER_TABLES, _USER_COLUMNS, _USER_INDEXES, _USER_CONSTRAINTS, _USER_IND_ COLUMNS, _USER _CONS_ COLUMNS, _USER_SCHEMAS, _USER_VIEWS et _USER_VIEW_COLUMNS.
Conformément aux usages dans le monde SQL, les tables système décrivent la structure de la base de données. Voici le descriptif de ces tables et de leurs champs :
_USER_TABLES | | Décrit les tables utilisateurs de la base |
TABLE_NAME | VARCHAR | Nom de table |
TEMPORARY | BOOLEAN | Vrai si la table est temporaire, faux sinon |
TABLE_ID | INT64 | Numéro de table |
SCHEMA_ID | INT32 | Numéro de schéma |
REST_AVAILABLE | BOOLEAN | Vrai si la table est exposée avec le service REST, Faux sinon |
_USER_COLUMNS | | Décrit les colonnes des tables utilisateurs de la base |
TABLE_NAME | VARCHAR | Nom de table |
COLUMN_NAME | VARCHAR | Nom de colonne |
DATA_TYPE | INT32 | Type de colonne |
DATA_LENGTH | INT32 | Longueur de colonne |
NULLABLE | BOOLEAN | Vrai si la colonne accepte des valeurs NULL, faux sinon |
TABLE_ID | INT64 | Numéro de table |
COLUMN_ID | INT64 | Numéro de colonne |
UNIQUENESS | BOOLEAN | Vrai si la colonne est déclarée Unique, Faux sinon |
AUTOGENERATE | BOOLEAN | Vrai si la valeur de la colonne est automatiquement générée pour chaque nouvel enregistrement, Faux sinon |
AUTOINCREMENT | BOOLEAN | Vrai si la valeur de la colonne est automatiquement incrémentée, Faux sinon |
REST_AVAILABLE | BOOLEAN | Vrai si la colonne est exposée avec le service REST, Faux sinon |
_USER_INDEXES | | Décrit les index utilisateurs de la base |
INDEX_ID | VARCHAR | Numéro d’index |
INDEX_NAME | VARCHAR | Nom d’index |
INDEX_TYPE | INT32 | Type d’index (1=BTree / Composite, 3=Cluster / Mots-clés, 7=Auto) |
TABLE_NAME | VARCHAR | Nom de table avec index |
UNIQUENESS | BOOLEAN | Vrai si l’index impose une contrainte d’unicité, faux sinon |
TABLE_ID | INT64 | Numéro de table avec index |
_USER_IND_COLUMNS | | Décrit les colonnes des index utilisateurs de la base |
INDEX_ID | VARCHAR | Numéro d’index |
INDEX_NAME | VARCHAR | Nom d’index |
TABLE_NAME | VARCHAR | Nom de table avec index |
COLUMN_NAME | VARCHAR | Nom de colonne avec index |
COLUMN_POSITION | INT32 | Position de colonne dans l’index |
TABLE_ID | INT64 | Numéro de table avec index |
COLUMN_ID | INT64 | Numéro de colonne |
_USER_CONSTRAINTS | | Décrit les contraintes d'intégrité de la base |
CONSTRAINT_ID | VARCHAR | Numéro de contrainte |
CONSTRAINT_NAME | VARCHAR | Nom de la définition de contrainte |
CONSTRAINT_TYPE | VARCHAR | Type de contrainte (P=clé primaire, R=intégrité référentielle - clé étrangère, 4DR=relation 4D) |
TABLE_NAME | VARCHAR | Nom de table avec contrainte |
TABLE_ID | INT64 | Numéro de table avec contrainte |
DELETE_RULE | VARCHAR | Règle de suppression de la contrainte – CASCADE ou RESTRICT |
RELATED_TABLE_NAME | VARCHAR | Nom de table liée |
RELATED_TABLE_ID | INT64 | Numéro de table liée |
_USER_CONS_COLUMNS | | Décrit les colonnes des contraintes utilisateurs de la base |
CONSTRAINT_ID | VARCHAR | Numéro de contrainte |
CONSTRAINT_NAME | VARCHAR | Nom de contrainte |
TABLE_NAME | VARCHAR | Nom de table avec contrainte |
TABLE_ID | INT64 | Numéro de table avec contrainte |
COLUMN_NAME | VARCHAR | Nom de colonne avec contrainte |
COLUMN_ID | INT64 | Numéro de colonne avec contrainte |
COLUMN_POSITION | INT32 | Position de colonne dans une contrainte |
RELATED_COLUMN_NAME | VARCHAR | Nom de colonne liée dans une contrainte |
RELATED_COLUMN_ID | INT32 | Numéro de colonne liée dans une contrainte |
_USER_SCHEMAS | | Décrit les schémas de la base |
SCHEMA_ID | INT32 | Numéro de schéma |
SCHEMA_NAME | VARCHAR | Nom de schéma |
READ_GROUP_ID | INT32 | Numéro du groupe ayant accès en lecture |
READ_GROUP_NAME | VARCHAR | Nom du groupe ayant accès en lecture |
READ_WRITE_GROUP_ID | INT32 | Numéro du groupe ayant accès en lecture-écriture |
READ_WRITE_GROUP_NAME | VARCHAR | Nom du groupe ayant accès en lecture-écriture |
ALL_GROUP_ID | INT32 | Numéro du groupe ayant un accès complet |
ALL_GROUP_NAME | VARCHAR | Nom du groupe ayant un accès complet |
_USER_VIEWS | | Décrit les vues des utilisateurs de la base |
VIEW_NAME | VARCHAR | Nom de vue |
SCHEMA_ID | INT32 | ID du nom_schéma auquel appartient la vue |
_USER_VIEW_COLUMNS | | Décrit les colonnes des vues des utilisateurs de la base |
VIEW_NAME | VARCHAR | Nom de vue |
COLUMN_NAME | VARCHAR | Nom de colonne |
DATA_TYPE | INT32 | Type de colonne |
DATA_LENGTH | INT32 | Taille de colonne |
NULLABLE | BOOLEAN | True si la colonne accepte des valeurs NULL, sinon False |
Note : Les tables système sont affectées à un schéma particulier nommé SYSTEM_SCHEMA. Ce schéma ne peut être ni modifié ni supprimé. Il n’apparaît pas dans la liste des schémas affichée dans l’Inspecteur de tables. Il est accessible en mode Lecture seulement à tout utilisateur.