Data

Création d’une base de données: les objets et les schémas

Selon la norme ISO, les objets de base de données existent dans un environnement composé d’un ou plusieurs répertoires (bases de données), chacun contenant un ensemble de schémas. Un schéma est une collection nommée d’objets de base de données associés qui partagent un propriétaire commun et un certain nombre de propriétés communes. La création et la destruction de bases de données et de répertoires dépendent de l’application, mais la norme ISO définit des instructions pour la création et la suppression de schémas.

Exemple de schémas lors de la création des bases de données

CREATE SCHEMA [Name | AUTHORIZATION CreatorIdentifier]
DROP SCHEMA Name [RESTRICT | CASCADE]
Defaults to RESTRICT.

Dans ce cas, le schéma contenant les objets n’est pas supprimé. Si vous utilisez la propriété CASCADE, tous les objets associés à ce schéma seront également supprimés. Si la suppression de l’un de ces objets échoue, l’ensemble DROP SCHEMA l’instruction échoue.

Dans le cas le plus simple, CREATE TABLE spécifie le nom de la table, suivi de paires séparées par des virgules du nom de la colonne et de son type de données entre parenthèses. Les colonnes individuelles et le tableau dans son ensemble peuvent être associés à ce que l’on appelle des limites.

CREATE TABLE table_name

({column_name datatype [DEFAULT expression] [column-constraint] …| table-constraint}
[,{column_name data type [DEFAULT expression] [column constraint] …| table limit} ]
…)

Une contrainte est une règle que les données de la table doivent respecter. Le standard SQL permet d’associer aux tables les contraintes d’intégrité suivantes :

Une contrainte est une règle que les données de la table doivent respecter. Le standard SQL permet d’associer aux tables les contraintes d’intégrité suivantes :

1. Données requises. [NOT] NULL – la colonne donnée peut (ou non) contenir des valeurs NULL.

Lors de la création de la table, vous devez utiliser la clause NOT NULL lors de la définition de la colonne. Par défaut, la colonne à créer est facultative, c’est-à-dire. il n’a pas toujours besoin d’avoir de la valeur.

Restrictions de domaine=> Elle peut décrire les valeurs possibles que la colonne

peut avoir.

Chaque colonne de table possède son propre ensemble de valeurs autorisées. Lors de la création du tableau, vous devez utiliser la clause lors de la définition de la colonne. Par exemple :

 le sexe CHAR(1) CONSTRAINT Student_gender_constraint CHECK (gender IN (‘M’, ‘N’)).

La norme ISO autorise l’instruction CREATE DOMAIN :

CREATE DOMAIN DomainName [AS] data type

[DEFAULT value]

[CHECK (condition)]

De cette façon, vous pouvez définir un domaine une seule fois et l’utiliser pour définir des colonnes dans de nombreuses tables différentes.

Ex: CREATE TABLE Student

(code CHAR(10) PRIMARY KEY,

course domain_name);

Pour supprimer un domaine:

DROP DOMAIN DomainName [RESTRICT | CASCADE]

Defaults to RESTRICT. Dans ce cas, le domaine utilisé dans certaines tables n’est pas supprimé.

Intégrité de l’entité

La règle d’intégrité de l’entité indique qu’aucune colonne de la clé primaire ne peut être vide (valeur indéfinie). La clause PRIMARY KEY doit alors être utilisée lors de la création de la table.

Studentcode CHAR(6) CONSTRAINT Student_pk PRIMARY KEY

Une table ne peut avoir qu’un seul primary key.Mais cette clé primaire peut être constituée de plusieurs colonnes : CHAR(10),

code CHAR(7),

reg cub DATE,

CONSTRAINT learn_pk PRIMARY KEY (students, code, reg cube)

Spécifier qu’une colonne est une clé primaire spécifie automatiquement qu’elle doit toujours être spécifiée et toujours unique. Mais vous pouvez également spécifier qu’une autre colonne doit toujours avoir une valeur unique et cette valeur doit toujours être spécifiée. The UNIQUE La clause garantit qu’une colonne doit toujours avoir des valeurs uniques. NOT NULL La clause indique que cette colonne doit toujours avoir une valeur définie.

name CHAR(10) CONSTRAINT Subject_name_ac UNIQUE NOT NULL

Des contraintes supplémentaires peuvent être associées aux clés étrangères. Ces contraintes permettent de maintenir l’intégrité référentielle des données lorsque des enregistrements sont modifiés ou supprimés dans la table principale participant à la relation.

   Des contraintes supplémentaires peuvent être associées à chaque clé étrangère, qui déterminent le comportement lorsque des données sont modifiées et supprimées de la table principale

RESTRICTION SUPPLEMENTAIREDESCRIPTION
SET NULL – Lors de la modification de la valeur de la clé primaire dans l’enregistrement de la table principale
les clés étrangères des enregistrements associés reçoivent une valeur nulle.
– Lorsqu’un enregistrement est supprimé de la table principale, celui qui lui est associé est donné
valeur nulle pour les clés étrangères des enregistrements.
SET DEFAULTLors de la modification d’une valeur de clé primaire dans un enregistrement de table de base
donné aux clés étrangères des enregistrements liés leur
La valeur par défaut spécifiée dans la clause DEFAULT.
– Lorsqu’un enregistrement est supprimé de la table principale, celui qui lui est associé est donné
clés étrangères des enregistrements spécifiés dans leur clause DEFAULT
valeur par défaut.
NO ACTION that is
RESTRICT

Action par défaut.
– Dans la table principale, il n’est pas permis de changer la valeur de la clé primaire de l’enregistrement,
si cet enregistrement a des enregistrements liés dans d’autres via des clés étrangères
dans les tableaux.
– Dans la table principale, il n’est pas permis de supprimer un enregistrement si cet enregistrement a
enregistrements liés par des clés étrangères dans d’autres tables.
CASCADE– Lorsque la clé primaire est modifiée, elle est également mise à jour en conséquence
valeurs de clé étrangère.
– Supprimer un enregistrement dans la table principale supprime tout
enregistrements liés par des clés étrangères.
SQL

Si MATCH FULL est spécifié dans la clause REFERENCES, les colonnes de la clé étrangère doivent soit être complètement NULL, soit contenir des valeurs dans toutes les colonnes afin de satisfaire à la règle d’intégrité référentielle.

Si MATCH PARTIAL est spécifié dans la clause REFERENCES, les colonnes de la clé étrangère doivent être entièrement NULL ou au moins une colonne doit contenir une valeur qui correspond à la valeur de la colonne de clé candidate de l’autre table.

Règles commerciales. La clause CHECK peut être utilisée dans les instructions CREATE TABLE et ALTER TABLE pour définir des règles métier. CHECK – indique la condition que les données doivent remplir. Le respect de la limite est vérifié lors de l’ajout d’un nouvel enregistrement et de la modification d’enregistrements.

CHECK (NOT EXISTS (SELECT code
         FROM Appris
        WHERE current=1
         GROUP BY code
         HAVING COUNT(*)>100

La norme ISO permet de définir des règles métier à l’aide d’instructions CREATE ASSERVION. Vous pouvez créer une règle qui n’est pas directement liée à une définition de table.

CREATE ASSERTION AssertionName 

CHECK (une condition que la base de données doit toujours remplir);

Lors de la création d’une ASSERTION, les données de la base de données sont vérifiées pour leur conformité. Il est également vérifié après chaque modification apportée à la base de données.

. Contraintes au niveau de la colonne Vs. contraintes au niveau de la table

Une distinction est faite entre :

• Contraintes de colonne.

• Contraintes de table.

Il n’y a pas de différence fondamentale entre les contraintes de table et de colonne, il est simplement plus facile et plus lisible de décrire les conditions liées à une colonne à l’aide de contraintes de colonne. Les contraintes de table peuvent être utilisées pour décrire des conditions affectant plusieurs colonnes à la fois.

Syntaxe de contrainte de colonne :

[CONSTRAINT Constraint_name]
{ [NOT] NULL |
{UNIQUE | PRIMARY KEY}
I REFERENCES Table_name [(column)]

| CHECK(condition)}
Table Constraint Syntax:
[CONSTRAINT Constraint_name]
{ [NOT] NULL |
{UNIQUE | PRIMARY KEY} (column [,column] …)
| FOREIGN KEY (column [, column] … )
REFERENCES Table_name [(column) [,column] … ]
| CHECK(condition)}

Constraint_name est l’identifiant de la contrainte. L’identificateur de contrainte peut être manquant si la contrainte est écrite immédiatement après la définition de colonne dans l’instruction CREATE. S’il n’y a pas de nom pour la contrainte, le système de base de données la nommera lui-même.

À l’aide de l’instruction ALTER TABLE, il est possible de supprimer une contrainte de la table, mais pour cela, vous devez connaître le nom de la contrainte.

Contraintes au niveau de la colonne – la définition de la contrainte est écrite dans la définition de la colonne.

Pour définir des relations à l’aide de contraintes au niveau de la table, les définitions de contrainte sont écrites dans une section distincte après les définitions de colonne. Ceci est nécessaire, par exemple, si plusieurs colonnes sont impliquées dans la contrainte.

Lors de la création de tables et de contraintes dans la base de données, un certain ordre doit être respecté. Vous devez d’abord créer des tables avec uniquement des clés primaires mais pas de clés étrangères. Une table avec des clés étrangères ne peut être créée qu’après la création des tables qui lui sont liées par des relations.

Autres articles

Comment Évaluer la Qualité de la Prévision...
L’évaluation de la qualité d’une prévision est essentielle pour s'assurer...
Read more
Le rôle de SQL dans l'élaboration d'un...
Le Structured Query Language (SQL) est un langage essentiel dans...
Read more
Guide Complet : Utilisation de la Commande...
La commande INSERT INTO ... SELECT en MySQL est un...
Read more

Une réflexion sur “Création d’une base de données: les objets et les schémas

  • Hello
    je vois que vous avez un beau et bon site internet: " lecoursgratuit.com "

    FR - Je vous contacte pour vous présenter un site d'annonces d'articles de Collections, qui est traduit dans votre langue: https://www.screenpresso.com/fr/cloud/Z38Eg/
    Pour le visiter, suivvez ce lien: https://collectionspassions.fr/ ---- ce site est à vendre ----
    je vous remercie d'avoir prix le temps de me lire
    Bonne continuation à vous
    Merci
    ------------------------
    EN - Hello
    I see that you have a beautiful and good website: " lecoursgratuit.com "

    I am contacting you to introduce you to a Collections article announcement site, which is translated into your language: https://www.screenpresso.com/fr/cloud/Z38Eg/
    To visit it, follow this link: https://collectionspassions.fr/
    ------------------------
    DE - Hallo
    Ich sehe, dass Sie eine schöne und gute Website haben: " lecoursgratuit.com "

    Ich kontaktiere Sie, um Ihnen eine Ankündigungsseite für Sammlungsartikel vorzustellen, die in Ihre Sprache übersetzt ist: https://www.screenpresso.com/fr/cloud/Z38Eg/
    Um es zu besuchen, folgen Sie diesem Link: https://collectionspassions.fr/
    vielen Dank, dass Sie sich die Zeit genommen haben, mich zu lesen
    Alles Gute
    DANKE
    ------------------------
    ES - Hola
    Veo que tienes una web bonita y buena : " lecoursgratuit.com "

    Me comunico con usted para presentarle un sitio de anuncios de artículos de Colecciones, que está traducido a su idioma: https://www.screenpresso.com/fr/cloud/Z38Eg/
    Para visitarlo, siga este enlace: https://collectionspassions.fr/
    grazie per aver dedicato del tempo a leggermi
    Ti auguro il meglio
    grazie
    ------------------------
    PT - Olá
    Vejo que você tem um site bonito e bom: " lecoursgratuit.com "

    Estou entrando em contato com você para apresentar um site de anúncios de artigos de Coleções, traduzido para o seu idioma: https://www.screenpresso.com/fr/cloud/Z38Eg/
    Para visitá-lo, siga este link: https://collectionspassions.fr/
    obrigado por tomar o tempo para me ler
    Tudo de bom
    OBRIGADO
    ------------------------
    IT - Ciao
    Vedo che hai un sito web bello e buono: " lecoursgratuit.com "

    Ti contatto per presentarti un sito di annunci di articoli sulle Collezioni, tradotto nella tua lingua: https://www.screenpresso.com/fr/cloud/Z38Eg/
    Per visitarlo segui questo link: https://collectionspassions.fr/
    grazie per aver dedicato del tempo a leggermi
    Ti auguro il meglio
    grazie
    -----------------------

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *