Documente Academic
Documente Profesional
Documente Cultură
METHODOLOGIE MERISE
INITIATION AUX BASES DE DONNEES
ENSA – Safi
Dr. Saïd ECH CHADI
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 1
Introduction aux Base de données
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 2
Dès le début de l'informatique,on Aujourd’hui, la tendance actuelle
a voulu construire des systèmes est la gestion de grandes
pour effectuer des calculs quantités d'informations. Cela
(équations différentielles, calcul revient à stocker des données et
matriciel, ... ). manipuler ces données.
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 3
Fonctionnalités d'un SGBD
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 4
Architecture fonctionnelle d'un
SGBD
Niveau physique
Gestion de MS, de concurrence, de la fiabilité, transferts
MG-MS, structure d'index, exécution des programmes
objet, optimiseur de requêtes
Niveau logique
Sécurité (confidentialité), Intégrité (en partie)
Niveau externe
Environnement de programmation, Interfaces graphiques
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 5
Instance et schéma
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 6
Principes de base
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 7
Utilisateurs d'un SGBD
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 8
Utilisateurs d'un SGBD
Administrateur:
Définition du schéma logique, définition des structures
de stockage et des méthodes d'accès, autorisations,
spécifications des contraintes, maintenance de la
performance…
Concepteur et programmeur d'applications
Généralement, il est informaticien, il connaît bien le
SGBD et il connaît au moins le LMD et un ou
plusieurs langages de programmation.
Utilisateur "naïf"
Secrétaire, caissière, ...
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 9
Conception d'une BD
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 10
Architecture d'un SGBD
Requêtes
Optimisation et exécution
des requêtes
Opérateurs relationnel
Fichiers et méthodes
d'accès Ces 3 modules tiennent
Gestionnaire du tampon compte de la concurrence et
de la reprise sur panne
Gestionnaires des disques
BD
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 11
INTRODUCTION
AU
MODELE
RELATIONNEL
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 12
Structure d’une B.D.
Relationnelle
Une relation est un ensemble de n-uplets (ou tuples) de la
forme <a1,... an> avec ai Ai.
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 13
Schéma de relation
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 14
Instance de relation
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 15
Langages de requête
Ce sont les langages qui permettent « d'interroger »
la BD.
Langages pratiques
SQL (Structured Query Language)
QUEL (Query Language)
SEQUEL (Structured English as a Query Language)
QBE (Query By Example)
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 16
ALGEBRE RELATIONNELLE
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 17
On peut la définir en six opérations de base dont certaines
sont unaires, d'autres sont binaires :
Projection
Sélection
Union
Différence
Produit cartésien
Renommage
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 18
Projection
A 1 ,...,Ak (r) où r est le nom de relation et 1 i k Ai Att(r).
Exemple de projection :
On veut extraire les noms des employés de la relation «Emp» ci-dessous :
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 19
Sélection
Le résultat = une relation qui contient tous les n-uplets de r qui satisfont
la condition Cond
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 20
Exemple de sélection :
On veut avoir les informations concernant les employés
dont le nom est Dupont
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 21
Union, Différence et Intersection
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 22
Exemple
r A B s A B
1 2
2 3
1
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 23
Produit cartésien
rxs avec r x s = { tv | t r et v s }
Où tv est la concaténation des tuples t et v.
Cette opération n'est pas définie si Att(r) Att(s) 0.
Att(r x s) = Att(r) U Att(s)
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 24
Exemple de Produit cartésien
A B C D E
r s
1 10 +
2 10 -
A B C D E
rxs
1 10 +
1 10 -
2 10 +
2 10 -
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 25
Renommage
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 26
Exemple de Renommage
r A
10
20
AB (r) = r B
10
20
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 27
Composition des opérateurs
Exemple : A ( B=20(r)).
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 28
Soient les schémas de relation Tit(Id, Nom, Adresse) et Cte(Num, Solde,
Id_Tit). Le compte de numéro Num appartient au client identifié par
Id_Tit. On veut avoir (1) le numéro, (2) le solde et (3) le nom du
titulaire de chaque compte débiteur.
1. Cte x Tit retourne une relation qui associe à chaque tuple de Cte, tous les tuples de Tit.
2. Id=Id_Tit (Cte x Tit) élimine les tuples où le compte n'est pas associé au bon titulaire.
4. Nom, Num, Solde ( Solde<0 ( Id=Id_Tit (Cte x Tit))) élimine les attributs non
demandés
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 29
Jointure
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 30
Exemple de Jointure
r A B s B C r ixi s = A B C
10 10 + 10 +
15 1 - 1 -
1
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 31
CALCUL RELATIONNEL
par n-uplet
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 32
Les requêtes sont de la forme {t | P(t)} .
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 33
Rappel sur le calcul des prédicats
Les quantificateurs et
t r (Q(t)) : Il existe un tuple t de r tel que Q est vrai
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 34
Exemples de requêtes
Film (Titre, Réalisateur, Acteur) instance f
Programme (Nomciné, Titre, Horaire) instance p
f contient des infos sur tous les films et p concerne le programme à Casablanca
Les titres de films qui passent à Megarama ainsi que leurs réalisateurs
{ t | s p ( u f (s[NomCiné] = « Megarama »
s[Titre] = u[Titre] = t[Titre] t[Réal] = u[Réal])) }
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 35
Expressions "non saines"
Exemple :
Soit NumCte(Num) avec l'instance n et la requête {t | t n} i.e les
numéros de compte non recensés.
Si on considère que le Dom(Num) = N, alors la réponse à cette
requête est infinie.
Une requête est saine si quelle que soit l'instance de la base dans
laquelle on l'évalue, elle retourne une réponse finie. Dépendance du
domaine.
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 36
Calcul relationnel par domaine
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 37
Relation entre les 3 langages
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 38
Arbres relationnels
Sélection Projection Produit cartésien
u -
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 39
LE LANGAGE SQL
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 40
langage fourni avec tout SGBD relationnel
commercialisé. C'est un standard reconnu par
l'IS0 depuis 87 (standard donc portabilité).
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 41
Structure de base
Les Ai sont des attributs, les rj sont des noms de relations et P est un prédicat.
Cette requête est équivalente à A1 ,…, An ( P(r1 x … x rm))
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 42
La clause SELECT
La clause SELECT correspond à la projection de l'algèbre.
Les titres des films :
SELECT Titre
FROM film
SQL autorise par défaut les doublons. Pour le forcer à les éliminer, on
utilise la clause DISTINCT :
SELECT DISTINCT Titre
FROM film
SELECT Num
FROM compte
WHERE Solde BETWEEN 0 AND 10000
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 44
La clause FROM
La clause ORDER BY
SQL permet de trier les résultats de requête
SELECT *
FROM programme
WHERE NomCiné=“MegaRama"
ORDER BY Horaire ASC, Titre DESC
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 45
Les variables n-uplets
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 46
Opérateurs ensemblistes
SELECT ...
…
UNION/ INTERSECT/ EXCEPT
SELECT ...
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 47
Les fonctions d’agrégats
AVG : la valeur moyenne de l'ensemble
MIN : la valeur minimale
MAX : la valeur maximale
SUM : le total des valeurs de l'ensemble
COUNT : le nombre de valeur dans l'ensemble
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 48
Agrégats et GROUP BY
Le nombre de films programmés dans chaque salle :
Les attributs qui apparaissant dans la clause SELECT en dehors des agrégats
doivent être associés à la clause GROUP BY
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 49
Requêtes imbriquées
SELECT Titre
FROM Programme
WHERE NomCiné=“MegaRama" and Titre NOT IN (
SELECT Titre
FROM Programme
WHERE NomCiné =“Rif" )
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 50
Trouver les comptes dont les soldes sont supérieurs aux soldes des
comptes de Ahmed :
En remplaçant ALL par ANY, on obtient les comptes dont les soldes
sont supérieur au solde d'au moins un compte de Ahmed.
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 51
Les cinémas qui passent tous les films programmés à
MegaRama
SELECT NomCiné
FROM programme pi
WHERE NOT EXISTS (
(SELECT DISTINCT Titre
FROM programme
WHERE NomCiné = “MegaRama")
EXCEPT
(SELECT DISTINCT Titre
FROM programme p2
WHERE pl.NomCiné = p2.NomCiné))
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 52
Test d'absence de doublons
SELECT p.Titre
FROM programme p
WHERE UNIQUE (
SELECT pl.Titre
FROM programme p1
WHERE p.Titre = pl Titre)
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 53
Les relations dérivées
Titulaire (Nom, Adresse)
Compte (Num, Solde, NomTit)
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 55
Exemple 1
Schéma :
Employe(Nom, Num, Fonction, Num sup, Embauche, Salaire, Num
Dept)
Quels sont les employés, donnés avec leur salaire, gagnant plus que
tous les employés du département 20 ?
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 56
Exemple 2
Schéma :
Employe(Nom, Num, Fonction, Num sup, Embauche, Salaire, Num Dept)
Quels sont les employés qui ont un subalterne ?
SELECT Nom
FROM Employe Chef
WHERE EXISTS (SELECT Nom
FROM Employe
WHERE Employe.Num sup = Chef.Num) ;
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 57
Sous-requête avec un résultat à plusieurs colonnes
SELECT Nom
FROM Employe
WHERE (Fonction, Num sup) = (SELECT Fonction, Num sup
FROM Employe
WHERE Nom=’Sadik’) ;
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 58
Sous-requête imbriquées
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 59
Déclaration de tables et
contraintes
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI 60
Déclaration de tables
Pour créer une table on utilise la commande CREATE TABLE. Voici sa
syntaxe :
Create table < nom de table > ( { < element de table > } ) ;
la définition des éléments de table :
< élément de table > : = < définition attribut > / < contrainte de
table >
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Il y a des règles à respecter :
· Chaque table de la base de donnée
possède un nom unique
· Une table est composée d'au moins un
attribut
· Chaque attribut au sein d'une table
possède un nom unique
· On peut mettre des contraintes sur les
attributs lors de la création de table
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Exemple :
Create table Commande ( numcom
NUMERIC (5), datecomm DATE)
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Déclaration d'un attribut
< nom attribut > < type_données >
[default <valeur> ] [contrainte_attribut]
Type de donnée Syntaxe Commentaires
Alphanumérique )CHAR(n Chaîne de caractères de longueur fixe n
Alphanumérique )VARCHAR(n Chaîne de n caractères maximums
Numérique )]NUMERIC(n,[d .Nombre de n chiffres avec en option le nombre de décimales
Numérique INTEGER Entier signé de 32 bits
Numérique SMALLINT Entier signé de 16 bits
Numérique FLOAT )Nombre réel (avec virgule
Temps DATE Date au format : JJ/MM/AA
Temps TIME Heure au format : hh : mm :ss.ml
Temps TIMESTAMP Date et heure
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
La valeur par défaut : default
La clause DEFAULT doit être suivie par la valeur à
affecter. Cette valeur peut être un des types suivants:
constante numérique
constante alphanumérique (chaîne de caractères)
le mot clé USER (nom de l'utilisateur)
le mot clé NULL
le mot clé CURRENT_DATE (date de saisie)
le mot clé CURRENT_TIME (heure de saisie)
le mot clé CURRENT_TIMESTAMP (date et heure de
saisie)
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Les contraintes d'attribut
Il est possible d'exiger des contraintes sur les attributs d'une
table. Voici la liste de ces contraintes :
· La valeur nulle impossible : NOT NULL
· L'unicité : UNIQUE . Il existe aussi PRIMARY KEY qui
équivaut à l'association de NOT NULL+ UNIQUE mais on
ne peut mettre qu'une clé primaire (PRIMARY KEY) par
table.
· La contrainte référentielle qui pose la contrainte sur le fait
qu'un attribut doit exister dans une autre table. La syntaxe
est donc :
REFERENCES <table référencée> [ <attribut référencé > ]
· La contrainte générale : sa syntaxe est : CHECK
<condition > . La condition peut être simple (exemple :
CHECK BETWEEN 1 and 10) ou alors on peut être une
condition avec un ordre SELECT.
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Exemple :
On veut créer la table des commandes comportant
3 attributs : le numéro de commande qui doit
être unique et
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Les contraintes de tables
Lors de la déclaration d'une table, une fois après avoir
défini les attributs on peut rajouter des contraintes
spécifiques à la table. Voici la liste de ces contraintes :
L'unicité : sa syntaxe est UNIQUE / PRIMARY KEY (
<nom_attribut1>, < nom_attibut2 >,…)
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Définition de PARTIE TRIGGER
Les clés étrangères permettent de définir les colonnes
d'une table garantissant la validité d'une autre table.
Ainsi, il existe des éléments (appelés triggers, en
français gâchettes) permettant de garantir ces
contraintes appelées intégrité référentielle, c'est-à-dire
notamment de garantir qu'un nuplet utilisé à partir d'une
autre table existe réellement.
Ces triggers sont ON DELETE et ON UPDATE. On a
donc ON DELETE qui sert dans le cas où l'on voudrait
supprimer une donnée et ON UPDATE sert lorsque l'on
met à jour une donnée. La syntaxe de partie trigger est
donc :
ON UPDATE <action>
ON DELETE <action>
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Définition de ACTION
L'action permet de savoir quelle va être la
répercussion lors d'un effacement (delete) ou
d'une mise à jour (update)
Parmi les actions l'on a :
- CASCADE permet de répercuter ON
DELETE ou ON UPDATE en cascade sur les
autres attributs
- RESTRICT permet d'indiquer un message
d'erreur
- SET DEFAULT permet de mettre la valeur
par défaut
- SET NULL permet de mettre la valeur NULL
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Contrainte générale : CHECK
<condition>
Exemple :
Create table Ligne
( numcomm NUMERIC(5),
numligne NUMERIC(5),
code_produit NUMERIC(5) NOT NULL,
qté NUMERIC(6) NOT NULL
PRIMARY KEY (numcomm, numligne)
FOREIGN
KEY (numcomm) REFERENCES COMMANDE
ON DELETE CASCADE
ON DATE CASCADE
FOREIGN
KEY (code_produit) REFERENCES PRODUIT
(code_produit)
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Déclaration de domaine
Les domaines sont utilisés lors de la
définition des attributs de table. Voici la
syntaxe d'un domaine :
Create Domain < nom_domaine > As
<type de donnée>
[default <valeur> ] [ check <condition> ]
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Exemple :
Create Domain acquisition As DATE
Default CURRENT_DATE
Ici CURRENT_DATE est une variable qui
donne la date du jour.
La déclaration de domaine sert à définir un
nouveau type de donnée que l'on utilisera
lors de la déclaration d'un attribut par
exemple.
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Déclaration des assertions
Les assertions sont des expressions devant être
satisfaites lors de la modification de données
pour que celles-ci puissent être réalisées. Ainsi,
elles permettent de garantir l'intégrité des
données. Par contre la déclaration d'assertion
n'est prise en compte par tous les SGBD. Les
assertions permettent des contraintes multi-
tables.
La syntaxe pour déclarer une contrainte
d'intégrité :
Create assertion <nom_assertion> Check
<condition>
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
exemple
Create assertion PU_PV
Check ( NOT EXISTS (Select *
From LIGNE_CMD
Where lcd_pu <0.75 *
(Select art_pv
From ARTICLE
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
La suppression de table
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Modification de table
Ajout ou modification de colonne
ALTER TABLE nom_table {ADD/MODIFY} ([nom_colonne type
[contrainte], ...])
Ajout d’une contrainte de table
ALTER TABLE nom_table ADD [CONSTRAINT nom_contrainte]
contrainte La syntaxe de déclaration de contrainte est identique à
celle vue lors de la création de table.
Si des données sont déjà présentes dans la table au moment où la
contrainte d’intégrité est ajoutée, toutes les lignes doivent vérifier la
contrainte. Dans le cas contraire, la contrainte n’est pas posée sur la
table.
Renommer une colonne
ALTER TABLE nom_table RENAME COLUMN ancien_nom TO
nouveau_nom
Renommer une table
ALTER TABLE nom_table RENAME TO nouveau_nom
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Déclaration de tables et
contraintes
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Insertion de tuples (lignes)
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
· Voici la syntaxe pour Insert avec la clause Select:
Insert Into < Nom de table > [ <nom des attributs > ]
Select < nom des attributs >
From < nom de table2>
Where < condition >
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Mise à jour de tuples
Pour la mise à jour des données, la modification on
utilise la commande UPDATE.
Voici sa syntaxe :
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Les Vues
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Les vues
On définit une vue par une table virtuelle, c'est-à-dire dont
les données ne sont pas stockées dans une table de la
base de données, et dans laquelle il est possible de
rassembler des informations provenant de plusieurs
tables. On parle de "vue" car il s'agit simplement d'une
représentation des données dans le but d'une
exploitation visuelle. Le contenu de cette vue est défini
par une requête SQL.
Elles réalisent le niveau externe de l'architecture à 3
niveaux ANSI/SPARC.
La définition d'une vue est mémorisée dans la méta
base.
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Déclaration
Create View < nom vue > [ {<liste des attributs> }
] As <requête SQL> [ With Check Option]
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Exemple
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Avantages
Grâces aux vues on a de nombreux avantages :
Perception plus proche des besoins des
utilisateurs.
Dé-normalisation de la structure de la base de
données sans introduire de la redondance.
Meilleure indépendance logique des
programmes par rapport aux données.
Limiter les accès aux données.
Simplification des requêtes utilisateurs.
Regroupement de données au sein d'une entité.
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI
Interrogation à travers des vues
Pour interroger une vue on procède exactement de la
même manière que pour une table. Voici un exemple
complet montrant la création d'une vue, une requête
sur cette vue et la requête sans la création de la vue.
On veut créer une table avec les gros consommateurs.
ENSA – Safi Analyse des Systèmes d’Information : MERISE Dr. Saïd ECH CHADI