Documentation > Guide de l'utilisateur
Le langage SQL permet ordinairement de gérer le objets de base : les tables, les vues, les index. Il permet de créer des procédure, des fonction, et des contraintes sur le tables.
En tant que méta moteur, SynSql ne gère directement que les tables. Tous les autres objets lui sont inconnus. Cela ne signifie pas que vous ne pourrez pas les utiliser, mais que pour le faire vous devrez procéder de façon indirecte.
Comme il est décrit dans le guide des concepts, une table se crée en deux étapes. Dans un premier temps, il faut définir les caractéristiques de la table, et dans un second temps, il faut la déployer.
Une fois que la table est déployée, il est possible de lui ajouter des colonnes et sous certaines réserves de lui en ôter.
Création d'une table clients
create table customers ( id int not null, lastName varchar(255) not null collate 'latin1_bin', firstName varchar(255) not null collate 'latin1_bin');
Définition du datacenter
alter table customers set datacenter luna3;
Modification du nombre de réplicats
alter table customers set replicates 3;
Définition de la clef de hachage
alter table customers set hash key id;
Déployer la table
deploy table customers on 10 partitions;
Création d'une table incidents
create table incidents ( id int not null, customer id not null references customers (id), startTime datetime not null, endTime datetime null, blahblah varchar( 16384);
Définition du datacenter
alter table incidents set datacenter luna3;
Définition de la clef de hachage
alter table customers set hash key customerId;
Déployer la table
deploy table customers close to customers;
Les deux tables customers et incidents sont voisines et constituent le début d'une étoile.
Dans une base de données relationnelle, les index ont deux effets principaux.
- D'une part, il permettent d'accélérer notablement l'accès aux données.
- Ils facilitent la mise en oeuvre des contraintes d'intégrité. L'existance d'un index accelère le traitement nécessaire pour déterminer si une valeur est déjà utilisée ou non.
Dans un cluster SynSql, les index n'ont d'intérêt que dans les data brokers. Le cluster a peu de valeur ajoutée à gérer les index. Tout au plus pourrait-t-il valider la requête de leur définition.
Donc, pour gérer les index d'une table, on utilise la requête execute qui va permettre de les créer sur les data brokers concernés.
Indexer les id des tables customer et incidents
execute query on customers create unique index customer_uk on customers (id);
execute query on incidents create index incidents_idx1 on incidents (id);
Définir une contrainte d'intégrité.
execute query on incidents alter table incidents add foreign key (customerId) references customers(id);
En s'inspirant des exemples ci-dessus il est facile de créer d'autres objets dans les data brokers qui portent les segments d'une table. On peut créer des vues, des procédures, des fonctions, des triggers etc. Tous ces objets trouveront leur utilité mais vous ne devez pas perdre de vue que chacun d'entre eux ne peut être évalué que dans le databroker qui le porte, pas globalement. Le paragraphe suivant indique les principales pistes à suivre pour produire des données consistantes.
| 15 Jan 2026 07:18:13 | English version |