[PDF] [PDF] Contraintes dintégrité - domaines - triggers - PL/SQL - LaBRI





Previous PDF Next PDF



Contraintes dintégrité - domaines - triggers - PL/SQL

Les assertions sont des contraintes qui peuvent porter sur plusieurs tables. ?. Elles doivent être vérifiées par le SGBD à chaque fois qu'une des tables 



Bases de données relationnelles et contraintes SQL

03-Nov-2007 Les contraintes dites "de domaine" concernent les données. Les contraintes de tables peuvent porter sur une colonne sur une ligne ou sur une ...



Cours n°6 SQL : Langage de définition des données (LDD)

Le Langage de Définition des Données est la partie de SQL qui permet de décrire les tables I. Les contraintes de domaine.



Intégrité sémantique dans les bases de données relationnelles

Prise en compte en SQL de CI spécifiques et Triggers Base de données Contraintes d'intégrité ... Contraintes de domaines : Types SQL.



Contraintes dIntégrité Sous Oracle

une valeur différente de NULL SQL d'Oracle permet les contraintes spécifiées par les conditions booléenes sur les valeurs dans les domaines des attributs.



La gestion des contraintes Hiver 2011 C. Desrosiers

LOG660 - Bases de données de haute performance. La gestion des contraintes. Hiver 2011 SQL. ? Contrainte d'intégrité statique ... Contrainte de domaine.



IHDC334 : Base de données 2

Contraintes sur domaine et valeurs . Contraintes de type dépendance fonctionnelle . ... Index induits par l'utilisation des données (requêtes SQL) .



Conception de bases de données relationnelles - Langage SQL

SQL. LMD manipulation de données Contraintes colonnes clés domaines. • Trois types de commandes ... défaut>] <contrainte de domaine>;.



SMI6U05L : Bases de données Le modèle relationnel

La maîtrise de ce domaine avant même SQL



?????????

01-Sept-2018 Université de Sherbrooke http://info.usherbrooke.ca/llavoie. /Users/Sync/Akademia/Domaines/Modules/Bases de donnees/BD190-STD-SQL-01_NDC.



[PDF] Contraintes dintégrité - domaines - triggers - PL/SQL - LaBRI

Domaines ? Contraintes sur les valeurs des attributs ? Contraintes sur les tuples d'une table ? Assertions ? Les triggers 



[PDF] Bases de données relationnelles et contraintes SQL - SQLspot

3 nov 2007 · Les contraintes dites "de domaine" concernent les données Les contraintes de tables peuvent porter sur une colonne sur une ligne ou sur une 



[PDF] Contraintes dintégrité complexes et déclencheurs (triggers) - IRIT

– Définition du domaine ou du type d'un attribut (Integer Char ) – Condition sur les valeurs des attributs d'un n-uplet (clause CHECK de SQL)



[PDF] SQL (Première partie) - Walter Rudametkin

Les contraintes de domaine définissent les valeurs prises par un attribut Les contraintes d'intégrité d'entité précisent la clé primaire de chaque table Les 



[PDF] Conception de bases de données relationnelles - Langage SQL

Définition des contraintes référentielles (clés étrang`eres) • Création de vues • Suppression d'objets (tables vues attributs domaines etc ) 2016-2017



53 Contraintes

Pour cela SQL permet de définir des contraintes sur les colonnes et les tables Les contraintes donnent autant de contrôle sur les données des tables qu'un 



[PDF] Bases de Données - Master Informatique 1 - LIPN

Une contrainte est un objet SQL qui aide à définir l'ensemble de valeurs valides de Les contrainte de domaine ne sont vérifiées que quand une valeur de



[PDF] Cours n°6 SQL : Langage de définition des données (LDD)

Il s 'agit de contraintes non directement rattachées à une table Elles sont utilisées pour spécifier une contrainte portant sur plusieurs tables Exemple :



[PDF] Bases de données - Irif

SQL DDL DML et contraintes d'intégrité un tuple fournit à chaque attribut une valeur de son domaine Spécifier des contraintes NOT NULL en SQL :



[PDF] contraintes dintégrité en sql

Classes de contraintes ? Contraintes structurelles (rappel) ? Domaine Une nouvelle contrainte est rejetée si elle n'est pas en accord avec les

  • Quelles sont les contraintes SQL ?

    Les contraintes sont des règles que le Moteur de base de données SQL Server applique pour vous. par exemple, vous pouvez utiliser des contraintes UNIQUE pour garantir qu'aucune valeur en double n'est entrée dans des colonnes spécifiques ne faisant pas partie d'une clé primaire.
  • Qu'est-ce qu'une contrainte de domaine ?

    Comment se présente ces contraintes ? Les contraintes d'intégrité sont des règles qui édictent les propriétés que doivent respecter les champs de la base de données (les champs correspondent aux attributs du modèle relationnel) afin de garantir leur cohérence, leur pertinence et leur validité.
  • Comment faire une contrainte en SQL ?

    Pour créer une contrainte PRIMARY KEY sur la colonne "Id" alors que la table Employes existe déjà, utilisez la syntaxe SQL suivante : ALTER TABLE Employes ADD PRIMARY KEY (ID); Attention
  • Les assertions sont des contraintes qui peuvent porter sur plusieurs tables. Assertions – Les assertions décrivent des contraintes qui doivent être satisfaites par la base à tout moment. L'action peut faire référence à l'ancienne et/ou à la nouvelle valeur des tuples insérés/ supprimés/modifiés par l'action.
[PDF] Contraintes dintégrité - domaines - triggers - PL/SQL - LaBRI 1 Contraintes d'intégrité - domaines - triggers - PL/SQL 2

Contraintes d'intégrité

n Les SGBD permettent de gérer plusieurs types de contraintes n Les contraintes déjà vues :

q Clé primaire Primary Key q Clé étrangère Foreign key q Clé secondaire Unique q Valeurs non nulles

n Autres types de contraintes :

q Domaines q Contraintes sur les valeurs des attributs q Contraintes sur les tuples d'une table q Assertions

n Les triggers 3

Domaines

n Soit la table Cours(NumC, Semestre, Nbr_inscrits)

n On veut que l'attribut semestre soit de la forme 'SEM1_ _' ou 'SEM2_ _' par exemple, le premier semestre de 2001 sera saisi

'SEM101'.

n CREATE DOMAIN SEM CHECK ((VALUE LIKE 'SEM1_ _') OR (VALUE LIKE 'SEM2_ _')) n CREATE TABLE Cours( NumC Integer, Semestre SEM, Nbr_inscrits Integer)

4

Contraintes sur les attributs(1)

n La contrainte précédente peut être exprimée par la clause CHECK

n CREATE TABLE Cours( NumC Integer, Semestre CHAR(6) CHECK( (Semestre LIKE 'SEM1_ _') OR (Semestre LIKE 'SEM2_ _')), Nbr_Inscrits Integer

5

Contraintes sur les attributs(2)

n On pourrait penser que ces contraintes peuvent exprimer les clés étrangères n R(A,B) S(B,C) n CREATE TABLE R (

A integer,

B integer Check ( B IN (Select B FROM S))

n Cette manière de faire permet de vérifier les insertions dans R mais ne réagit pas lors des suppressions dans S 6

Contraintes sur les tuples

n Une contrainte peut porter sur plusieurs attributs d'un même tuple n Personne (Nom, Sexe, Age) n ('M. Dupont','M',40), ('Mme. Dupont','F',NULL), ('Mlle. Dupont,'F',20) n Le nom d'une femme ne doit pas commencer par 'M.'

n CREATE TABLE Personne( Nom VARCHAR(30), Sexe CHAR(1) CHECK (Sexe IN ('M', 'F')), Age Integer, CHECK ((Sexe ='M') OR ( NOM NOT LIKE 'M.%')) )

7

Nommer les contraintes

n Il est conseillé de donner des noms aux contraintes pour ensuite pouvoir y faire référence

n CREATE TABLE T( ... C INTEGER CONSTRAINT CC CHECK (Version1), ... n ALTER TABLE T DROP CONSTRAINT CC;

ALTER TABLE T ADD CONSTRAINT CC CHECK(Version2)

8

Les assertions(1)

n Les assertions sont des contraintes qui peuvent porter sur plusieurs tables.

n Elles doivent être vérifiées par le SGBD à chaque fois qu'une des tables mentionnées

est modifiée

n CREATE ASSERTION CHECK () n La condition doit être vraie lors de la création, sinon l'assertion n'est pas créée.

9

Les assertions(2)

n Cours(NumC, Sem, Nb_inscrits)

Inscription(NumEt, NumC, Sem)

n On veut que Nb_inscrits reflète exactement le nombre d'inscrits n CREATE ASSERTION NB_INSCR CHECK( NOT EXISTS(select * from Cours C where C.Nb_inscrits != (select COUNT(*) FROM Inscription i WHERE i.NumC=C.NumC AND i.Sem=C.Sem GROUP BY (i.NumC, i.Sem)) )

SET ASSERTION NB_INSCR DEFERRED;

10

Les Triggers

• Assertions

- Les assertions décrivent des contraintes qui doivent être satisfaites par la base à tout moment.

- Une assertion est vérifiée par le SGBD à chaque fois qu'une des tables qu'elle mentionne est

modifiée - Si une assertion est violée, alors la modification est rejetée

• Triggers - Les triggers spécifient explicitement à quel moment doivent-ils être vérifiés (i.e. INSERT,

DELETE, UPDATE)

- Les triggers sont des règles ECA : Evénement, Condition, Action - Quand E a lieu, si C est vérifiée alors A est exécutée 11

Triggers - activation

n Un trigger peut être activé BEFORE/AFTER/INSTEAD OF un événement d'activation qui peut être une des commandes INSERT/DELETE/UPDATE dans une ou plusieurs tables

n L'action peut faire référence à l'ancienne et/ou à la nouvelle valeur des tuples insérés/

supprimés/modifiés par l'action.

CREATE TRIGGER exemple1

AFTER UPDATE OF solde ON compte

n La condition est exprimée par la clause WHEN WHEN (solde < 0) La clause WHEN peut être n'importe quelle condition booléenne.

12

Trigger - Action

n Le concepteur a le choix entre spécifier l'action à exécuter soit q Une fois, pour chaque tuple modifié/inséré/supprimé, ou q Une fois pour tous les tuples modifiés lors d'une seule opération

FOR EACH ROW

UPDATE compte

SET date_débit = SYSDATE WHERE Compte.IdC = OldTuple.IdC n L'action peut être n'importe quel code écrit dans le langage associé du SGBD q sous PostgreSQL, c'est PL/pgSQL, PL/PHP, PL/Java q sous Oracle, c'est PL/SQL, Java, C

13

Triggers - row level

n Les insertions créent de nouveaux tuples q On ne peut faire référence à l'ancienne valeur

n Les modifications font passer de ":old" à ":new" q On peut faire référence à ces deux valeurs

n Avec les suppressions, on ne peut faire référence aux nouvelles valeurs. n Les nouvelles/anciennes valeurs ne peuvent être accédées qu'en mode ligne (Row level).

14

Exemple

CREATE TRIGGER Trig_Inscrits

After INSERT ON INSCRPTION FOR EACH ROW //pour chaque nouvel inscrit BEGIN Update Cours SET Nb_Inscrits=Nb_Inscrits+1 where

Cours.Sem=:new.Sem AND Cours.NumC=:new.Numc;

END; 15

Exemple

n On veut garder la trace des opérations effectuées par les utilisateurs

n CREATE TRIGGER TRIG_INSC AFTER INSERT ON Inscrits BEGIN Insert into tab_logs(Utilisateur, operation, heure) values

(USER, 'insertion', SYSDATE); END; 16

Triggers: Activation

n Activation q BEFORE - la condition WHEN est testée sur l'état avant l'arrivée de l'événement déclencheur

n Si la condition est vraie, l'action est exécutée, ensuite n L'événement déclencheur est réalisé

q INSTEAD OF - l'action est exécutée si la condition est vérifiée, n L'événement déclencheur n'est jamais effectué.

q AFTER - l'action est exécutée si la condition WHEN est vérifiée après la réalisation de

l'événement déclencheur. 17

Exemples

CREATE TRIGGER compter

BEFORE INSERT ON Emp DECLARE nombre number; BEGIN nombre := select COUNT(*) from EMP; dbms_output.put(Aquotesdbs_dbs29.pdfusesText_35
[PDF] formule contrainte

[PDF] cercle de mohr contraintes principales

[PDF] contraintes principales et directions principales

[PDF] contraintes normales et tangentielles

[PDF] contrainte tangentielle

[PDF] contrainte principale definition

[PDF] calcul contrainte principale

[PDF] exercice calcul contrainte principale

[PDF] relation contrainte déformation

[PDF] contraintes et déformations exercices corrigés

[PDF] contrainte de membrane définition

[PDF] calcul flexion plaque rectangulaire

[PDF] plaque mince en flexion pure

[PDF] rdm plaque flexion

[PDF] théorie de love-kirchhoff