Documentation > Guide de l'utilisateur

Gérer les objets relationnels

1. Introduction

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.

2. Créer une table

2.1 Concepts

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.

2.2 Exemples

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.

3. Créer un index ou une contrainte.

3.1 Rappel

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.

3.2 Exemples

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); 

4. Programmer

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.

<< Les outils clients - Gestion consistante des données >>

15 Jan 2026 07:18:13English version