151
Système d’Information et Base de Données 1 Système d’Information et Base de Données Système d’Information et Base de Données EMSI 2009-2010

DocumentBD

Embed Size (px)

Citation preview

Page 1: DocumentBD

Système d’Information et Base de Données 1 Système d’Information et Base de Données

Système d’Information et

Base de Données

EMSI

2009-2010

Page 2: DocumentBD

Système d’Information et Base de Données 2 Système d’Information et Base de Données

Chapitre 1:

Introduction aux base

de données

Page 3: DocumentBD

Système d’Information et Base de Données 3

Sommaire du chapitre 1

Définitions

Fonctions d’un SGBD

Utilisateurs d’une BD

Modèles de données

Chronologie des SGBD

Modèle hiérarchique

Modèle réseau

Architecture des SGBD

Architecture à trois niveaux

Page 4: DocumentBD

Système d’Information et Base de Données 4

Définitions

Une base de données (BD) est un ensemble

structuré de données enregistrées dans un

ordinateur et accessibles de façon sélective

par plusieurs utilisateurs.

Exemples :

• BD des patients d’un hôpital.

• BD des personnels d’une société.

• BD des étudiants d’une faculté.

• BD des clients d’une banque.

Page 5: DocumentBD

Système d’Information et Base de Données 5

Définitions

Un système de gestion de base de

données (SGBD) est un logiciel qui permet

d'interagir avec une base de données.

Exemples :

• MS-SQL SERVER

• Oracle

• DB2

• Informix

• MySQL

Page 6: DocumentBD

Système d’Information et Base de Données 6

Fonctions d’un SGBD

Décrire le schéma d’une BD.

Créer une BD.

Manipuler une BD par :

• l’ajout des données

• la modification des données

• la suppression des données

Consulter une BD :

• sélection

• tri

• calcul

• agrégat

Page 7: DocumentBD

Système d’Information et Base de Données 7

Fonctions d’un SGBD Définir des contraintes d'intégrité sur une BD :

• contraintes de domaines

• contraintes d'existence

Définir des protections d'accès :

• attribution de mots de passe

• autorisations d’accès

Résoudre les problèmes d'accès multiples aux données :

• blocages, interblocages.

Prévoir des procédures de reprise en cas d'incident : sauvegardes des données, journaux, etc.

Page 8: DocumentBD

Système d’Information et Base de Données 8

Fonctions d’un SGBD

Base de

données

Utilisateurs Logiciel Support

physique

Page 9: DocumentBD

Système d’Information et Base de Données 9

Utilisateurs d’une BD

Une BD est accessible par plusieurs utilisateurs, chacun avec des objectifs précis et selon des interfaces fournies par le SGBD.

Il y a trois types d’utilisateurs pour une BD :

• l’administrateur de la BD.

• l’utilisateur final de la BD.

• les programmeurs d’applications.

L’administrateur de la BD se charge de l’implémentation de celle-ci, assigne ou supprime des niveaux d’accès aux autres utilisateurs de la BD.

Page 10: DocumentBD

Système d’Information et Base de Données 10

Utilisateurs d’une BD L’utilisateur final de la BD est la personne qui

interagisse directement avec le système. Il peut être un client, un opérateur, etc.

Les programmeurs d’applications accèdent à une BD via des programmes écrits dans des langages de haut niveau tels que Java/J2EE, C++ ou Php ....

Exemples de programmes d’applications :

• Gestion des salaires.

• Gestion de la facturation.

• Gestion de l’inventaire.

• Gestion des Rdv.

Page 11: DocumentBD

Système d’Information et Base de Données 11

Exercice corrigé N° 1 Indiquer quel type d’utilisateur doit exécuter

les fonctions suivantes pour un système de paie d’une grande entreprise :

a)Écrire un programme d’application pour générer et imprimer les chèques.

b)Changer dans la base de données l’adresse d’un employé qui a déménagé.

c)Créer un nouveau compte d’utilisateur pour un employé nouvellement embauché.

Page 12: DocumentBD

Système d’Information et Base de Données 12

Solution de l’exercice N° 1

a)Un programmeur d’application.

b)Un utilisateur final de la BD.

c)L’administrateur de la BD.

Page 13: DocumentBD

Système d’Information et Base de Données 13

Modèles de données Un modèle de données est un moyen pour

décrire la forme logique des données.

Exemples :

• Fichiers Plats : accès séquentiel.

• Modèle hiérarchique : modèle en arborescence.

• Modèle réseau : extension du modèle hiérarchique (liens arborescences).

• Modèle relationnel : modèle en tables ou relations.

• Modèle objet : modèle fondé sur les objets.

Page 14: DocumentBD

Système d’Information et Base de Données 14

Chronologie des SGBD

Hiérarchique

mi-1960

Flat

Files

Network

fin-1960

Relationnel

1974-77

Orienté

objet

1990

Page 15: DocumentBD

Système d’Information et Base de Données 15

Modèle hiérarchique

Un SGBD hiérarchique présente les

données sous forme d’un arbre (structure

arborescente).

Exemple :

Cours

Gauss Newton Bohr Newton Monge

Page 16: DocumentBD

Système d’Information et Base de Données 16

Modèle hiérarchique Inconvénients :

• Redondance de données.

• Manipulation difficile de données

hétérogènes.

XML : une application actuelle des SGBD

hiérarchique.

Xpath : langage de navigation dans un

document XML.

Xquery : langage d’interrogation d’un

document XML.

IMS : SGBD hiérarchique le plus connu.

Page 17: DocumentBD

Système d’Information et Base de Données 17

Modèle réseau Un SGBD réseau présente les données sous

forme de structures avec des liens (des

pointeurs).

Exemple : Les cours

Maths

Chimie

Gauss

Newton

Bohr

Monge

Physique

Les profs

Page 18: DocumentBD

Système d’Information et Base de Données 18

Modèle réseau Un avantage par rapport aux SGBD

hiérarchique : la non redondance de données est assurée.

Inconvénients :

• Le schéma de la BD devient vite complexe quand la base de données est importante (combien de pointeurs gérés ?).

• Modèle très rigide pour une exploitation future.

Exemples : SOCRATE (Système Offrant à la Clientèle des Réservations d'Affaires et de Tourisme en Europe).

Page 19: DocumentBD

Système d’Information et Base de Données 19

Exercice corrigé N° 2 Étant donné le modèle de données suivant

d’une société de jardinerie, doit-il être hiérarchique, réseau ou relationnel ?

Nom de la plante

Instructions

de la plantation Conditions Coût

Luminosité

nécessaire

Conditions

de sol

Page 20: DocumentBD

Système d’Information et Base de Données 20

Solution de l’exercice N° 2 Ce doit être un modèle hiérarchique car il a

un aspect arborescent.

Remarques sur le modèle de l’exemple :

• Pour déterminer la quantité de lumière nécessaire, il faut accéder d’abord au nom de la plante, puis aux conditions.

• Il serait difficile d’accéder aux instructions de plantation uniquement pour les plantes qui doivent être plantées en plein soleil.

Page 21: DocumentBD

Système d’Information et Base de Données 21

Architecture d’un SGBD Les BD reposent sur la séparation entre les

données effectives et les programmes qui les exploitent.

Un SGBD doit fournir :

• un langage de définition des données (LDD).

• un langage de manipulation des données (LMD).

Un LDD permet à l’utilisateur de définir l’organisation des données au niveau logique (conceptuel ou abstrait). L’organisation physique des données est prise en charge avec le SGBD.

Page 22: DocumentBD

Système d’Information et Base de Données 22

Architecture d’un SGBD

Un LMD permet à l’utilisateur de saisir, récupérer et mettre à jour les informations d’une BD.

La majorité des SGBD utilisent le langage SQL comme LMD.

Certains systèmes disposent d’interfaces graphiques visuels pour favoriser une bonne communication entre l’utilisateur et la BD.

Un schéma de BD décrit l’organisation abstraite du future système de BD. Le concepteur de la BD le définit au moyen du LDD.

Page 23: DocumentBD

Système d’Information et Base de Données 23

Exercice corrigé N° 3

L’utilisateur doit-il faire appel au LDD ou au LMD pour accomplir chacune des tâches suivantes ?

a)Changer l’adresse d’un client.

b)Définir une table d’inventaire.

c)Entrer les informations sur un nouvel employé.

Page 24: DocumentBD

Système d’Information et Base de Données 24

Solution de l’exercice N° 3

a)Changer l’adresse d’un client suppose de manipuler des données dans des tables qui existent déjà LMD.

b)Définir une table d’inventaire oblige d’utiliser le LDD (on doit définir d’abord le schéma de la table).

c)Idem à la réponse a).

Page 25: DocumentBD

Système d’Information et Base de Données 25

Architecture à trois niveaux Cette architecture a été imposé comme le

standard (ANSI) dans le domaine des architecture des SGBD.

Elle est basée sur trois niveaux :

• niveau interne : concerne le stockage physique des données sur les mémoires de masse. Le SGBD prend en charge ce niveau.

• niveau conceptuel : concerne la définition logique des données. L’administrateur de la BD est probablement la personne qui va s’en charger de définir le schéma conceptuel de la BD au moyen du LDD.

Page 26: DocumentBD

Système d’Information et Base de Données 26

Architecture à trois niveaux

• niveau externe : concerne les utilisateurs finals et les programmeurs d’applications. Ces derniers utilisent une vue (ou modèle mentale) de la BD et de son contenu.

Page 27: DocumentBD

Système d’Information et Base de Données 27 Système d’Information et Base de Données

Chapitre 2 :

Le modèle relationnel

Page 28: DocumentBD

Système d’Information et Base de Données 28

Sommaire du chapitre 2 Vocabulaire des BDR

Formalisme mathématique

Clés candidates et clé primaire

Valeur NULL

Clés extérieures et CIR

Les relations

Opérateurs relationnelles

Opérateur de sélection

Opérateur de projection

Opérateur de jointure d’égalité

Opérateurs ensemblistes

Page 29: DocumentBD

Système d’Information et Base de Données 29

Vocabulaire des BDR

Dans les années 70, E. F. Codd a décrit une

nouvelle sorte de modèle : le modèle

relationnel (MR) pour les systèmes de bases

de données.

Dans le MR, les informations sont

enregistrées dans des tables (appelées

également relations).

Un SGBD relationnel (SGBDR) est un SGBD

fondé sur le modèle relationnel.

Page 30: DocumentBD

Système d’Information et Base de Données 30

Vocabulaire des BDR

Une BD relationnelle (BDR) est un ensemble de relations.

Une relation est représentée sous forme de tables (ou tableaux) à deux dimensions qui respectent certaines conditions.

Cette représentation est purement logique et non physique : dans un SGBDR, les données sont logiquement perçues sous forme de tables, mais elles ne le sont pas physiquement.

Page 31: DocumentBD

Système d’Information et Base de Données 31

Vocabulaire des BDR

Chaque table est identifiée par un nom

unique.

Exemple : dans une BDR décrivant une

société, on peut trouver les tables suivantes :

• Table « Client ».

• Table « Produit ».

• Table « Facture ».

• Table « Fournisseur ».

• Table « commande », etc.

Page 32: DocumentBD

Système d’Information et Base de Données 32

Vocabulaire des BDR

Chaque table est formée d’un certain nombre

de colonnes ou attributs ou champs.

Chaque colonne doit avoir un nom unique et

deux colonnes d’une même table ne peuvent

avoir le même nom.

Exemple : la table « Produit » peut contenir

les colonnes suivantes :

• « code produit » , « libellé du produit », «

prix unitaire », et « quantité en stock ».

Page 33: DocumentBD

Système d’Information et Base de Données 33

Vocabulaire des BDR

Le degré d’une table est le nombre de ses

attributs ou colonnes.

Exemple :

• La table « Produit » contient les colonnes

suivantes : « code produit » , « libellé du

produit », « prix unitaire », et « quantité en

stock ».

• Donc, le degré de la table « Produit » est

égale à 4.

Page 34: DocumentBD

Système d’Information et Base de Données 34

Vocabulaire des BDR

Pour chaque colonne d’une table, il existe un ensemble de valeurs possibles appelé son domaine.

Le domaine désigne toutes les valeurs permises qui peuvent apparaître dans la colonne.

Si « attrib » est le nom d’une colonne, alors « Dom(atrib) » désigne le domaine de cette colonne.

Toute valeur qui figure dans une colonne doit appartenir à son domaine.

Page 35: DocumentBD

Système d’Information et Base de Données 35

Vocabulaire des BDR

Exemple : pour la table « Produit », les domaines sont :

• Dom(code produit) : un sous-ensemble des chaînes de caractères désignant le code d’un produit.

• Dom(libellé) : l’ensemble des noms de tous les produits.

• Dom(prix unitaire) : un sous-ensemble de l’ensemble des nombres réels positifs.

• Dom(quantité en stock) : un sous ensemble de l’ensemble des nombres entiers positifs.

Page 36: DocumentBD

Système d’Information et Base de Données 36

Vocabulaire des BDR Les données d’une table apparaissent comme

un ensemble de lignes ou n-tuple où n est le

nombre d’attributs de la table.

Exemple :

Code produit Libellé Prix unitaire Quantité en

stock

DD120 Disque dur

120 Go

700.75 23

CL102 Clavier 102 100 58

CU256 Clé USB 256 450 79

Page 37: DocumentBD

Système d’Information et Base de Données 37

Vocabulaire des BDR

Les lignes ou les tuples d’une table sont

également nommées des enregistrements.

Les enregistrements d’une table ont le même

format et représentent des objets ou des

relations du monde réel.

Le nombre totale des enregistrements

présents dans une table est appelé la

cardinalité de la table.

Page 38: DocumentBD

Système d’Information et Base de Données 38

Vocabulaire des BDR

Remarques :

• Le degré d’une table est fixe (ne change

pas).

• La cardinalité d’une table est dynamique :

elle peut changer au cours du temps (par

effet d’ajout ou de suppression

d’enregistrements de la table).

Page 39: DocumentBD

Système d’Information et Base de Données 39

Vocabulaire des BDR

Format général d’une table (représentation

logique d’une relation) :

Attrib1 Attrib2 Attrib3 Attrib4 … AttribN

Val11 Val12 Val13 Val14 ... Val1N

Val21 Val22 Val23 Val24 ... Val2N

... ... ... ... ... ...

ValM1 ValM2 ValM3 ValM4 ... ValMN

Attributs

Colonne

Ligne

Page 40: DocumentBD

Système d’Information et Base de Données 40

Vocabulaire des BDR

Pour une relation donnée R, pour un attribut A

de R et un tuple t de R, on note t(A) la valeur

de l’entrée du tuple t qui se trouve dans la

colonne A.

Exemple : soit t le second tuple de la relation

« Produit » (voir page 35). Alors :

• t(Code Produit) = CL102, t(Libellé) =

Clavier 102, t(Prix unitaire) = 100 et

t(Quantité en stock) = 58.

Page 41: DocumentBD

Système d’Information et Base de Données 41

Vocabulaire des BDR

Règles d’or à retenir pour une BDR :

• Une table est formée de colonnes et de

lignes.

• Chaque table a un nom unique.

• Chaque colonne a un nom unique.

• L’ordre des colonnes dans la table est sans

aucune importance.

• Toutes les lignes d’une table ont le même

format et le même nombre d’entrée.

Page 42: DocumentBD

Système d’Information et Base de Données 42

Vocabulaire des BDR

Règles d’or à retenir pour une BDR (suite) :

• Les valeurs de chaque colonne appartiennent au même domaine.

• Chaque entrée dans chaque ligne doit être une valeur unique.

• L’ordre des lignes est sans importance du fait qu’elles sont identifiées par leur contenu et non pas par leur position.

• Il n’y a pas deux lignes identiques dans toutes leurs entrées.

Page 43: DocumentBD

Système d’Information et Base de Données 43

Formalisme mathématique

Un schéma relationnel R est un ensemble fini de noms d’attributs A1, A2, …, An.

• On écrit : R = {A1, A2, …, An}.

À chaque attribut Ai est associé un ensemble non vide de valeurs appelé domaine de l’attribut Ai et noté Di = Dom(Ai).

Soit D le produit cartésien des ensembles Di, c’est-à-dire que D = D1 D2 … Dn.

Une relation r sur le schéma relationnel R est un ensemble fini de correspondances r = {t1, t2, …, tm} de R sur D.

Page 44: DocumentBD

Système d’Information et Base de Données 44

Formalisme mathématique

Un correspondance individuel tk est appelé

tuple (ou n-tuple).

Pour tout tuple t appartenant à la relation r, on

note t(Ai) la valeur de l’attribut Ai pour le tuple

t. une condition importante :

• Pour tout élément t de r, on a : t(Ai) Di.

La cardinalité de r est card(r) = m.

Le degré de r est degré(r) = n.

Page 45: DocumentBD

Système d’Information et Base de Données 45

Formalisme mathématique

Exemple d’une table « Vol » :

Numéro Départ Arrivée H_départ H_arriv

83 Oujda Rabat 9:55 11:30

84 Oujda Rabat 12:00 12:47

109 Marrakech Agadir 6:00 7:00

213 Tanger Fès 1:13 2:19

214 Laayoune Casablanca 8:15 9:59

Page 46: DocumentBD

Système d’Information et Base de Données 46

Formalisme mathématique

Le schéma relationnel correspondant à la

table « Vols » est :

• Vols = {Numéro, Départ, Arrivée, H_départ,

H_arriv}.

Dom(Numéro) = {1, 2, 3, …, 999}.

Dom(Départ) = Dom(Arrivée) = {Casablanca,

Oujda, Marrakech, Fès, Tanger, Laayoune,

Agadir}.

Dom(H_départ) = Dom(H_arriv) = {0:00, 0:01,

…, 23:58, 23:59}.

Page 47: DocumentBD

Système d’Information et Base de Données 47

clés candidates et clé primaire

La notion de clé est un concept fondamental du modèle relationnel parce qu’elle fournit le mécanisme de base pour récupérer des tuples dans une table de la BD.

On appelle clé candidate d’une relation r sur le schéma relationnel R, tout sous-ensemble K = {B1, B2, …, Bj} de R (1 j < n) vérifiant les deux conditions suivantes :

• Pour deux tuples distincts t1 et t2 de r, il existe un attribut Bh de K tel que t1(Bh) t2(Bh).

Page 48: DocumentBD

Système d’Information et Base de Données 48

clés candidates et clé primaire

• Aucun sous-ensemble propre K’ de K ne satisfait la condition précédente.

La première condition est appelée la propriété d’unicité de la clé. Elle implique qu’il n’y a pas deux tuples différents de r à avoir des entrées identiques dans tous les attributs de l’ensemble K.

La deuxième condition s’appelle la propriété de minimalité de la clé. Elle signifie qu’aucun élément de K ne peut être abandonné sans perdre la propriété d’unicité.

Page 49: DocumentBD

Système d’Information et Base de Données 49

clés candidates et clé primaire

Exemple : des clés candidates de la table « Vols » peuvent être :

• {Numéro}.

• {Départ, Arrivée, H_départ}.

Remarque : une relation peut comporter plusieurs clés candidates. L’une d’elles doit être désignée comme clé primaire.

Les valeurs de la clé primaire permettent d’identifier de manière univoque un tuple de la relation.

Page 50: DocumentBD

Système d’Information et Base de Données 50

clés candidates et clé primaire Dès qu’une clé primaire a été choisie, les

autres clés candidates, si elles existent sont appelées clés alternatives de la relation.

Un SGBD n’autorise qu’une clé primaire par table.

La clé primaire peut être unique s’il comporte un seul attribut ou composé s’il contient au moins deux attributs.

Exemple : la clé primaire {Numéro} est unique alors que {Départ, Arrivée, H_départ} est composée.

Page 51: DocumentBD

Système d’Information et Base de Données 51

clés candidates et clé primaire

Les attributs de la clé primaire sont soulignés

pour les distinguer des autres attributs ne

faisant pas partie de la clé.

Exemple : le schéma relationnel de la table se

présente ainsi :

• {Numéro, Départ, Arrivée, H_départ,

H_arriv} ou bien :

• {Numéro, Départ, Arrivée, H_départ,

H_arriv}.

Page 52: DocumentBD

Système d’Information et Base de Données 52

clés candidates et clé primaire

Les clés primaires sont définies au moyen d’instruction LDD et sont automatiquement imposées par le SGBDR.

Les clés primaires sont généralement définies au moment de la création des tables.

Les clés primaires peuvent être naturelles ou artificielles.

Dans une table contenant des données descriptives sur les éléments chimiques, par exemple, « le poids atomique » serait une clé primaire naturelle.

Page 53: DocumentBD

Système d’Information et Base de Données 53

clés candidates et clé primaire

Il faut noter que la plupart des clés primaires

sont inventées (artificielles).

Exemples :

• Numéro d’assurance sociale

• Numéro de permis de conduire

• Numéro de carte de crédit

• Numéro de carte guichet

• CIN : code d’identité nationale

• CNE : code national d’étudiant

Page 54: DocumentBD

Système d’Information et Base de Données 54

clés candidates et clé primaire

Les clés sont des éléments très importants

dans la conception d’une BD relationnelle,

puisqu’elles forment la base pour représenter

les relations entre les tables.

Les clés sont les éléments qui lient les tables

entre elles.

Page 55: DocumentBD

Système d’Information et Base de Données 55

La valeur NULL

Dans une relation, la valeur NULL représente des données manquantes, inconnues ou des données inapplicables.

La valeur NULL correspond à une entrée non renseignée (non saisie, non introduite, non obligatoire).

Une règle (Contrainte d’intégrité de la clé primaire) : aucun des attributs de la clé primaire ne doit être NULL (du fait que la clé primaire identifie de manière unique les tuples d’une relation).

Page 56: DocumentBD

Système d’Information et Base de Données 56

La valeur NULL

La règle précédente signifie que la saisie des

valeurs pour les attributs de la clé primaire est

obligatoire.

Un attribut n’appartenant pas à la clé primaire

peut avoir la valeur NULL.

Attention :

• La valeur NULL n’est pas égale à 0 (zéro)

et ne représente aucune valeur particulière

pour l’ordinateur.

Page 57: DocumentBD

Système d’Information et Base de Données 57

Exercice corrigé N° 4 Considérons la table DEPT et les lignes

montrées à la suite. Expliquez si ces les

lignes peuvent être ou non insérées dans la

table DEPT.

DEPARTEMENT NOM LIEU BUDGET

20 Ventes Oujda 1 700 000

10 Marketing Fès 3 575 000

10 Recherche Agadir 1 500 000

Informatique Casa 1 200 000

15 Comptabilité Rabat 1 500 000

Page 58: DocumentBD

Système d’Information et Base de Données 58

Solution de l’exercice N° 4

10 Recherche Agadir 1 500 000

Informatique Casa 1 200 000

15 Comptabilité Rabat 1 500 000

Non : cette ligne ne peut pas être insérée, car elle viole

le principe d’unicité de la clé primaire (la valeur 10

existe déjà dans la table).

Non : cette ligne ne peut pas être insérée, car elle viole

la contrainte d’intégrité de la clé primaire (la clé

primaire ne peut pas être NULL).

Oui : cette ligne peut être insérée sans problème, car

aucune contrainte n’est violée.

Page 59: DocumentBD

Système d’Information et Base de Données 59

Clés étrangères et CIR Le concept de clé étrangère (ou clé

extérieure) permet au SGBDR de maintenir

la cohérence des lignes de deux relations ou

des lignes de la même relation.

Définition : une clé étrangère est un attribut

appartenant à une table de BDR qui existe

aussi en tant que clé primaire dans une autre

table de BDR.

Une clé étrangère d’une table (dite table

enfant) référence une clé primaire d’une

autre table (dite table parent).

Page 60: DocumentBD

Système d’Information et Base de Données 60

Clés étrangères et CIR

Exemple :

Considérons les deux relations :

• Equipe = (Code équipe, Nom équipe,

Directeur équipe)

• Joueur = (Numéro joueur, Nom joueur,

Prénom joueur, Code équipe).

L’attribut « Code équipe » dans la table

« Equipe » est la clé primaire. C’est une clé

étrangère dans la table « Joueur ».

Page 61: DocumentBD

Système d’Information et Base de Données 61

Clés étrangères et CIR Code équipe Nom équipe Directeur équipe

1 WAC Ahmed Essalami

2 RAC Yassine Outmani

3 MO Said Daya

Numéro Nom Prénom Code équipe

1000 Basime Yahia 2

1001 El Madani Saad 2

1002 Loukili Mounir 1

1003 Salhi Kamal 3

J

o

u

e

u

r

é

q

u

i

p

e

Page 62: DocumentBD

Système d’Information et Base de Données 62

Clés étrangères et CIR C'est ainsi que dans la table « Joueur » la clé

étrangère « Code équipe » (faisant référence à la clé primaire de même nom dans la table « Equipe ») traduit les deux règles de gestion suivantes :

• Un joueur appartient à une équipe.

• Une équipe est composée de plusieurs joueurs.

Les clés étrangères traduisent donc des liens sémantiques entre plusieurs tables d’une BD.

Page 63: DocumentBD

Système d’Information et Base de Données 63

Clés étrangères et CIR

Chaque clé étrangère est une référence à la clé primaire d’une autre table.

Dans la plupart des cas, il faut s’assurer que ces références sont cohérentes (non contradictoires).

Les valeurs de clé étrangère qui apparaissent dans une table doivent être les mêmes que celles de clé primaire dans la table connexe.

Exemples dans le monde réel :

• Une commande doit provenir d’un client.

Page 64: DocumentBD

Système d’Information et Base de Données 64

Clés étrangères et CIR • Un produit commandé doit être quelque

chose que nous gardons normalement en stock.

• Un cours est assuré par un professeur.

• Un étudiant doit avoir une note finale dans une matière de la filière à qui est inscrit l’étudiant.

Ces contraintes sont appelées « contraintes d’intégrité référentielle » (CIR).

Les contraintes d’intégrité référentielle doivent être supportées par le SGBD d’une façon automatique.

Page 65: DocumentBD

Système d’Information et Base de Données 65

Clés étrangères et CIR

Un SGBDR doit appliquer les règles suivantes afin d’assurer les CIR :

• Ajout : lors de l’ajout d’une ligne contenant une valeur de clé étrangère, le SGBD vérifie que cette valeur existe aussi comme valeur de clé primaire dans la table connexe.

• Suppression : lors de la suppression d’une ligne, le SGBD vérifie qu’aucune clé étrangère dans les tables connexes ne possède la même valeur que la clé primaire de la ligne supprimée.

Page 66: DocumentBD

Système d’Information et Base de Données 66

Clés étrangères et CIR

Un SGBDR doit appliquer les règles suivantes afin d’assurer les CIR (suite) :

• Mise à jour (ou modification) : lors de la mise à jour d’une valeur de clé primaire, le SGBD vérifie qu’aucune clé étrangère dans les tables connexes n’a la même valeur.

Dans le premier cas, le SGBD rejettera simplement l’ajout d’une ligne contenant une valeur clé étrangère inconnue.

Page 67: DocumentBD

Système d’Information et Base de Données 67

Clés étrangères et CIR

Dans les deux derniers cas, un concepteur de BD conserve habituellement un certain contrôle sur la façon dont l’application référentielle est appliquée.

Lorsqu’une ligne contenant une clé primaire est supprimée, le concepteur peut spécifier au SGBD de supprimer toutes les lignes des autres tables ayant des clés correspondantes ou de régler toutes les clés étrangères correspondantes à NULL.

Un choix similaire est possible lors de la modification d’une valeur de clé primaire.

Page 68: DocumentBD

Système d’Information et Base de Données 68

Les relations

Dans une BD, certaines tables sont en

relation les unes avec les autres.

Dans les BDR, les relations entre tables sont

généralement établies par l’intermédiaire de

clés primaires et étrangères.

On répartie les données dans des tables que

l’on relie pour réduire la redondance des

données.

Il y a trois types de relations entre deux tables

d’une BDR :

Page 69: DocumentBD

Système d’Information et Base de Données 69

Les relations

Relation « un à un » : une ligne d’une table A

est en relation avec une seule ligne d’une

autre table B.

Relation « un à plusieurs » : une ligne d’une

table A peut être en relation avec plusieurs

lignes d’une autre table B.

Relation «plusieurs à plusieurs » : une ligne

d’une table A peut être en relation avec

plusieurs lignes d’une autre table B, et

inversement, une ligne de la table B peut être

en relation avec plusieurs lignes de la table A.

Page 70: DocumentBD

Système d’Information et Base de Données 70

Les relations

Exemples de relations entre tables :

• Un recteur dirige une université :

– Relation de type un à un.

• Un propriétaire possède plusieurs voitures,

une voiture appartient à un seul propriétaire :

– Relation de type un à plusieurs.

• Un livre est écrit par plusieurs auteurs, un

auteur peut publier plusieurs livres :

–Relation de type plusieurs à plusieurs.

Page 71: DocumentBD

Système d’Information et Base de Données 71

Les relations

IDREC NOM PRENOM

1 El Farissi Mohamed

2 Bourkia Rahma

IDUNIV NOM VILLE IDREC

100 Mohamed Premier Oujda 1

200 Hassan II Mohamadia 2

Table « Recteur »

Table « Université »

Page 72: DocumentBD

Système d’Information et Base de Données 72

Les relations

IDPROP NOM PRENOM

1 Mhamedi Rachid

2 Naife Houria

3 Kamali Nacef

MATRICULE MODELE IDPROP

A12345 Peugeot 205 1

B47588 Renault 19 1

C25254 Fiat 105 2

C25482 Mercedes 240 3

Propriétaire

Voiture

Page 73: DocumentBD

Système d’Information et Base de Données 73

Opérateurs relationnelles

Les opérateurs relationnelles opèrent sur une ou plusieurs relations pour produire de nouvelles relations.

Ces opérateurs forment ce qu’on appelle en BDR, « l’algèbre relationnelle ».

Chaque opération sur une relation répond à une question posée à la BD.

Une question qu’on peut poser à une BD s’appelle une « requête ».

L’algèbre relationnelle est la base de l’interrogation des BDR.

Page 74: DocumentBD

Système d’Information et Base de Données 74

Opérateur de sélection

Appliqué à une relation r, cet opérateur produit une autre relation dont les lignes sont un sous-ensemble des lignes de r qui ont une valeur particulière pour un attribut spécifique. La relation résultante et r comportent les mêmes attributs.

Si r est une relation sur le schéma R, A un attribut spécifique de r et a une valeur appartenant à Dom(A), alors la sélection de r sur l’attribut A pour l’élément a est l’ensemble des tuples t de la relation r tels que t(A) = a.

Page 75: DocumentBD

Système d’Information et Base de Données 75

Opérateur de sélection

Cela signifie que toues les lignes de la nouvelle relation ont a dans la colonne A.

Cette opération se note A = a(r).

Le prédicat « A = a » doit être compris comme t(A) = a.

Mathématiquement, la sélection se traduit par la relation suivante :

• A = a(r) = { t r / t(A) = a}.

Le schéma de la nouvelle relation A=a(r) est le même que celui de la relation r.

Page 76: DocumentBD

Système d’Information et Base de Données 76

Opérateur de sélection

Exemples pratiques d’application de

l’opérateur de sélection :

• Étudiants nés à Oujda :

– Ville de naissance = oujda(Etudiant).

• Produits de prix unitaires 1450 :

– Prix unitaire = 1450(Produit).

• Employés de salaire 7500 :

– Salaire = 7500(Employé).

• Clients de prénom « Saber » :

– Prénom = Saber(Client).

Page 77: DocumentBD

Système d’Information et Base de Données 77

Opérateur de sélection

Considérons la table « Etudiant » :

CNE Nom Prénom Ville

123456 Abid Yahya Oujda

789012 BenYahia Samir Fès

311117 Chadli Najat Rabat

125487 Dani Yasser Oujda

215465 Farah Ali Taza

Page 78: DocumentBD

Système d’Information et Base de Données 78

Opérateur de sélection

Résultat de Ville de naissance = oujda(Etudiant) sur la table Etudiant :

CNE Nom Prénom Ville

123456 Abid Yahya Oujda

125487 Dani Yasser Oujda

Page 79: DocumentBD

Système d’Information et Base de Données 79

Opérateur de sélection

Considérons la table « Employé » :

Code Nom Prénom Salaire Âge

1000 Saidi Yassine 8000 55

1001 Alami Brahim 7000 45

1002 El ouali Saad 7450 48

1003 Belyazid Noura 7500 48

1004 Ouahab Ismail 6500 35

1005 Atmani Fatima 7500 47

1006 Mekaoui Fayssal 7550 47

1007 Maliki Kaoutar 7500 49

Page 80: DocumentBD

Système d’Information et Base de Données 80

Opérateur de sélection

Code Nom Prénom Salaire Âge

1003 Belyazid Noura 7500 48

1005 Atmani Fatima 7500 47

1007 Maliki Kaoutar 7500 49

Résultat de Salaire = 7500(Employé) sur la table Employé :

Page 81: DocumentBD

Système d’Information et Base de Données 81

Opérateur de projection

Cet opérateur choisit un sous-ensemble de

colonnes.

La projection de la relation r sur un ensemble

X de ses attributs, notée par X(r), est une

relation obtenue à partir de r en éliminant

d’abord les colonnes de r non spécifiées dans

X, puis en supprimant tout tuple redondant

(un doublon).

La projection s’exprime mathématiquement

par la relation : X(r) = { t(X) / t r}.

Page 82: DocumentBD

Système d’Information et Base de Données 82

Opérateur de projection

Exemples pratiques d’application de l’opérateur de projection :

• Codes des clients :

– Code client(Client).

• Villes des représentants :

– Ville(Représentant).

• Noms et prénoms des employés :

– Nom, Prénom(Employé).

• Numéros de téléphones et emails des professeurs :

– Numéro tél, Email(Professeur).

Page 83: DocumentBD

Système d’Information et Base de Données 83

Opérateur de projection

Considérons la table « Département » :

Code Nom Ville

10 Comptabilité Tanger

20 Informatique Casablanca

30 Marketing Casablanca

40 Fabrication Fès

50 Planification Fès

60 Statistique Oujda

70 Ventes Rabat

80 Formation Tanger

Page 84: DocumentBD

Système d’Information et Base de Données 84

Opérateur de projection

Résultat de l’opération Ville(Département) Localisations des différents départements :

Ville

Tanger

Casablanca

Fès

Oujda

Rabat

Page 85: DocumentBD

Système d’Information et Base de Données 85

Opérateur de projection Résultat de l’opération Nom, Ville(Département)

Les différents départements et leurs localisations:

Nom Ville

Comptabilité Tanger

Informatique Casablanca

Marketing Casablanca

Fabrication Fès

Planification Fès

Statistique Oujda

Ventes Rabat

Formation Tanger

Page 86: DocumentBD

Système d’Information et Base de Données 86

Opérateur de jointure d’égalité

C’est un opérateur binaire qui permet

d’associer deux relations d’une même BD.

En général, cet opérateur associe deux

relations sur tous leurs attributs communs.

La jointure est constituée de tous les tuples

résultant de la concaténation des tuples de la

première relation avec ceux de la seconde qui

ont des valeurs identiques pour un ensemble

commun d’attributs X.

Page 87: DocumentBD

Système d’Information et Base de Données 87

Opérateur de jointure d’égalité

Par attributs communs, on entend des

attributs qui, bien qu’ils puissent ne pas avoir

le même nom, doivent avoir le même

domaine et la même signification sous-

jacente.

Soit r une relation avec un ensemble

d’attributs R et s une relation avec un

ensemble d’attributs S.

On suppose de plus que R et S aient des

attributs communs et soit X cet ensemble

d’attributs commun.

Page 88: DocumentBD

Système d’Information et Base de Données 88

Opérateur de jointure d’égalité

La dernière condition s’écrit : R S = X.

La jointure d’égalité (ou jointure naturelle ou équijointure) de r et s, notée r Jointure s, est une nouvelle relation dont les attributs sont les éléments de R S.

En outre, pour chaque tuple t de cette nouvelle relation, les trois conditions suivantes doivent être vérifiées :

• t(R) = tr pour un tuple tr de la relation r.

• t(S) = ts pour un tuple ts de la relation s.

• tr(X) = ts(X).

Page 89: DocumentBD

Système d’Information et Base de Données 89

Opérateur de jointure d’égalité Exemple :

• Considérons une table « Département »

dont le schéma est (ID, NOM, VILLE) :

ID NOM VILLE

100 Comptabilité Oujda

200 Marketing Fès

300 Ventes Rabat

• Et une table « Personnel » dont le schéma est (ID, NOM, DEPT, TITRE) :

Département

Page 90: DocumentBD

Système d’Information et Base de Données 90

Opérateur de jointure d’égalité

ID NOM DEPT TITRE

100 Ali Ventes Employé

200 Fatima Marketing Employé

300 Yassine Comptabilité Employé

400 Saad Comptabilité Chef comptable

Personnel

Page 91: DocumentBD

Système d’Information et Base de Données 91

Opérateur de jointure d’égalité

Dans cet exemple, les attributs communs sont

les attributs « NOM » et « DEPT ».

Du fait que les deux tables ont un attribut appelé

ID, pour éviter de confondre l’attribut « ID » de la

table « Département » avec celui de la table «

Personnel », il est nécessaire de qualifier

chaque attribut en le faisant suivre du nom de la

table correspondante avant de les joindre.

Pour une raison analogue, l’attribut « NOM » des

deux tables doivent être qualifiés.

Page 92: DocumentBD

Système d’Information et Base de Données 92

Opérateur de jointure d’égalité

« Département » jointure « Personnel » :

ID

DEPT

NOM

DEPT

VILLE ID

PERS

NOM

PERS

TITRE

100 Comptabilité Oujda 300 Yassine Employé

100 Comptabilité Oujda 400 Saad Chef

comptable

200 Marketing Fès 200 Fatima Employé

300 Ventes Rabat 100 Ali employé

Page 93: DocumentBD

Système d’Information et Base de Données 93

Opérateur de jointure d’égalité

• Les résultats de jointure de « Département » avec « Personnel » pourraient satisfaire une requête d’utilisateur pour « Afficher toutes les informations sur les employés avec leur id de département, leur nom et leur ville ».

• Dans cette opération de jointure, l’attribut commun est X = {NOM DEPT}.

• Vérifions que cette jointure satisfait bien les trois conditions mentionnées ci-dessus.

• En fait, si r est la relation « Département » et s la relation « Personnel », nous aurons les schémas respectifs :

Page 94: DocumentBD

Système d’Information et Base de Données 94

Opérateur de jointure d’égalité

R = {ID, NOM, VILLE}

S = {ID, NOM, DEPT, TITRE}

• Pour chaque tuple t de la relation jointure, on a :

t(R) = t(ID, NOM, VILLE) = tr pour un tuple de r.

t(S) = t(ID, NOM, DEPT, TITRE) = ts pour un tuple de s.

tr(X) = ts(X).

• Exemple :

Prenons le premier tuple de la relation jointure (100, Comptabilité, Oujda, 300, Yassine, Employé) et appelons-le « t ».

Page 95: DocumentBD

Système d’Information et Base de Données 95

Opérateur de jointure d’égalité

• Nous avons :

t(ID DEPT, NOM DEPT, VILLE) = (100,

Comptabilité, Oujda) = tr pour un tuple de r.

t(ID PERS, NOM PERS, DEPT, TITRE) = (300,

Yassine, Comptabilité, Employé) = ts pour un

tuple de s.

tr(NOM DEPT) = ts(NOM DEPT) = Comptabilité.

Page 96: DocumentBD

Système d’Information et Base de Données 96

Opérateurs ensemblistes

L’union :

• L’union de deux relations r(R) et s(S) est la relation obtenue à partir de r et s et formée par les tuples qui sont présents dans r ou dans s.

• Elle se note par r s.

L’intersection :

• L’intersection de deux relations r(R) et s(S) est la relation obtenue à partir de r et s et formée par les tuples qui sont présents simultanément dans r et s.

• Elle se note par r s.

Page 97: DocumentBD

Système d’Information et Base de Données 97

Opérateurs ensemblistes

La différence :

• La différence de deux relations r(R) et s(S) est la relation obtenue à partir de r et s et formée par les tuples qui sont présents dans r et non présents dans s.

• Elle se note par r - s.

Pour effectuer l’une de ces trois opérations, il faut que les deux relations r et s soient compatibles.

Deux relations r et s sont dites compatibles si elles ont le même degré et leurs attributs ont les mêmes domaines.

Page 98: DocumentBD

Système d’Information et Base de Données 98

Opérateurs ensemblistes

Exemple de l’union :

ID NOM PRENOM PROJET DEPT

10 Jamali Said e-commerce Ventes

11 Nadra Yousra Pare-feu Informatique

12 Badre Malek e-commerce Ventes

ID NOM PRENOM PROJET DEPT

29 Najib Ziryabe Site web Informatique

12 Badre Malek e-commerce Ventes

Programmeurs_C

Programmeurs_Java

Page 99: DocumentBD

Système d’Information et Base de Données 99

Opérateurs ensemblistes

ID NOM PRENOM PROJET DEPT

10 Jamali Said e-commerce Ventes

11 Nadra Yousra Pare-feu Informatique

12 Badre Malek e-commerce Ventes

29 Najib Ziryabe Site web Informatique

Programmeurs_C Programmeurs_Java

Page 100: DocumentBD

Système d’Information et Base de Données 100

Opérateurs ensemblistes

Exemple de l’intersection :

ID NOM PRENOM PROJET DEPT

10 Jamali Said e-commerce Ventes

11 Nadra Yousra Pare-feu Informatique

12 Badre Malek e-commerce Ventes

ID NOM PRENOM PROJET DEPT

29 Najib Ziryabe Site web Informatique

12 Badre Malek e-commerce Ventes

Programmeurs_C

Programmeurs_Java

Page 101: DocumentBD

Système d’Information et Base de Données 101

Opérateurs ensemblistes

ID NOM PRENOM PROJET DEPT

12 Badre Malek e-commerce Ventes

Programmeurs_C Programmeurs_Java

Page 102: DocumentBD

Système d’Information et Base de Données 102

Opérateurs ensemblistes

Exemple de la différence :

ID NOM PRENOM PROJET DEPT

10 Jamali Said e-commerce Ventes

11 Nadra Yousra Pare-feu Informatique

12 Badre Malek e-commerce Ventes

ID NOM PRENOM PROJET DEPT

29 Najib Ziryabe Site web Informatique

12 Badre Malek e-commerce Ventes

Programmeurs_C

Programmeurs_Java

Page 103: DocumentBD

Système d’Information et Base de Données 103

Opérateurs ensemblistes

ID NOM PRENOM PROJET DEPT

10 Jamali Said e-commerce Ventes

11 Nadra Yousra Pare-feu informatique

Programmeurs_C - Programmeurs_Java

ID NOM PRENOM PROJET DEPT

29 Najib Ziryabe Site web informatique

Programmeurs_C - Programmeurs_Java

Page 104: DocumentBD

Système d’Information et Base de Données 104 104

Opérateurs ensemblistes

Le produit cartésien :

• Le produit cartésien de deux relations r(R)

et s(S) est la relation obtenue à partir de r

et s et formée en concaténant tous les

tuples de r avec tous les tuples de s.

• Elle se note par r s.

• Remarques :

– Degré(r s) = Degré(r) + Degré(s).

– le produit cartésien des relations n’est

pas commutatif.

Page 105: DocumentBD

Système d’Information et Base de Données 105

Opérateurs ensemblistes

• Exemple du produit cartésien :

ID_CLIENT ARTICLE

100 A

200 B

CODE NOM PRIX

A Bicyclette 250

B Chaussures 90

C Lunettes 150

D Gants 35

CLIENT PRODUIT

Page 106: DocumentBD

Système d’Information et Base de Données 106

Opérateurs ensemblistes

ID_CLIENT ARTICLE CODE NOM PRIX

100 A A Bicyclette 250

100 A B Chaussures 90

100 A C Lunettes 150

100 A D Gants 35

200 B A Bicyclette 250

200 B B Chaussures 90

200 B C Lunettes 150

200 B D Gants 35

CLIENT PRODUIT

Page 107: DocumentBD

Système d’Information et Base de Données 107 Système d’Information et Base de Données

Chapitre 3 :

Introduction à SQL

Page 108: DocumentBD

Système d’Information et Base de Données 108

Sommaire du chapitre 3 Présentation du langage SQL

Définition d’une base de données

Requêtes SQL

Page 109: DocumentBD

Système d’Information et Base de Données 109

Présentation du langage SQL

• SQL est le langage informatique standard pour la communication avec les SGBDR.

• Le standard SQL a été défini par l’ANSI (American National Standard Institute) et l’ISO (International Standards Organization).

• Le sigle SQL signifie Structured Query Language ou langage de requêtes structuré.

• La dernière version de SQL est appelé en général SQL/92 ou SQL.

• SQL est essentiellement un langage servant à effectuer des requêtes sur une base de données pour en extraire des informations.

Page 110: DocumentBD

Système d’Information et Base de Données 110

Présentation du langage SQL

• Caractéristiques de SQL :

C’est un langage déclaratif et non procédural : on explicite ce qu’on veut et non pas la manière de l’avoir.

Il offre un LDD pour définir et créer des objets de BDR (tables, requêtes, …etc)

Il offre un LMD pour manipuler les objets d’une BDR.

C’est un langage facile à comprendre et à utiliser (syntaxe très proche du langage naturel, pas d’instructions de contrôle, ni de structures de données).

Page 111: DocumentBD

Système d’Information et Base de Données 111

Présentation du langage SQL

• Utilisation de SQL :

En mode interactif : l’utilisateur écrit

textuellement une commande SQL et récupère

le résultat immédiatement.

En mode intégré : une commande SQL est

mélangée avec les instructions d’un programme

en langage de haut niveau tel que C, C++ ou

Cobol.

Page 112: DocumentBD

Système d’Information et Base de Données 112

Création d’une BD

• Création d’une table :

Cette opération donne comme résultat une

table vide (ne contenant aucun enregistrement).

Il faut préciser :

• Le nom de la table;

• La description de ses colonnes : nom, type

de données et contraintes.

SQL dispose d’un nombre de types de données

: numériques, alphanumériques, logiques, dates

et heures, etc.

Page 113: DocumentBD

Système d’Information et Base de Données 113

Création d’une BD

• Quelques types de données en SQL :

INTEGER ou INT : entiers signés.

CHARACTER(p) ou CHAR(p) : chaîne de

caractères de longueur fixe de p caractères.

DATE : dates et/ou heures.

LOGICAL : valeur logique « oui » ou « non ».

DECIMAL(p, q) : nombres décimaux de p

chiffres dont q après le point décimal (par

défaut, q = 0) (ne fonctionne pas avec Access).

FLOAT : nombre réel en virgule flottante.

Page 114: DocumentBD

Système d’Information et Base de Données 114

Création d’une BD

• Quelques propriétés des attributs en SQL :

PRIMARY KEY : clé primaire.

FOREIGN KEY : clé étrangère.

NULL / NOT NULL : valeurs non obligatoires /

obligatoires.

DEFAULT = Valeur : pour définir une valeur

par défaut (ne fonctionne pas sous Access).

CHECK (Condition): pour contrôler la validité

des valeurs (ne fonctionne pas sous Access).

Page 115: DocumentBD

Système d’Information et Base de Données 115

Création d’une BD

• Syntaxe SQL pour créer une nouvelle table :

CREATE TABLE Nom_table

(Nom_champ1 Type_champ1 [CONSTRAINT]

Nom_champ1 Propriété_champ1, …,

Nom_champN Type_champN [CONSTRAINT]

Nom_champN Propriété_champN);

Remarque :

• Toute commande SQL se termine par un

point virgule.

Page 116: DocumentBD

Système d’Information et Base de Données 116

Création d’une BD

• Exemple 1 :

CREATE TABLE CLIENT

(ID INTEGER CONSTRAINT ID PRIMARY KEY,

NOM CHAR(15),

PRENOM CHAR(15),

DATENAIS DATE,

VILLE CHAR(20),

TEL CHAR(12),

EMAIL CHAR(50));

Page 117: DocumentBD

Système d’Information et Base de Données 117

Création d’une BD

• Exemple 2 :

CREATE TABLE ETUDIANT

(ID INTEGER CONSTRAINT ID PRIMARY KEY,

NOM CHAR(15),

PRENOM CHAR(15),

AGE INTEGER CONSTRAINT AGE CHECK(<

35),

BOURSIER LOGICAL);

Page 118: DocumentBD

Système d’Information et Base de Données 118

Création d’une BD

EXEMPLE COMPLET

Page 119: DocumentBD

Système d’Information et Base de Données 119

Création d’une BD

• Exemple complet :

CREATE TABLE CLIENT

(IDCLIENT INTEGER CONSTRAINT IDCLIENT

PRIMARY KEY,

NOMCLIENT CHAR(15),

PRENOMCLIENT CHAR(15),

ADRCLIENT CHAR(50));

Page 120: DocumentBD

Système d’Information et Base de Données 120

Création d’une BD

• Exemple complet :

CREATE TABLE AGENCE

(IDAGENCE INTEGER CONSTRAINT

IDAGENCE PRIMARY KEY,

NOMAGENCE CHAR(40),

ADRAGENCE CHAR(50));

Page 121: DocumentBD

Système d’Information et Base de Données 121

Création d’une BD

• Exemple complet :

CREATE TABLE COMPTE

(IDCOMPTE INTEGER CONSTRAINT

IDCOMPTE PRIMARY KEY,

CONSTRAINT IDCLIENT FOGEIGN KEY

(IDCLEINT) REFERENCES CLIENT,

CONSTRAINT IDAGENCE FOGEIGN KEY

(IDCAGENCE) REFERENCES AGENCE,

SOLDE FLOAT);

Page 122: DocumentBD

Système d’Information et Base de Données 122

Création d’une BD

• Suppression d’une table :

On peut supprimer n’importe quelle table en

utilisant SQL.

Si au moment de la suppression, la table

contenait des enregistrements, ces derniers

sont préalablement supprimés, opération qui est

soumise aux contraintes d’intégrité référentielle

qui concernent la table en question.

Par exemple, la suppression de la table CLIENT

entraînera la suppression de toutes les lignes

de la table COMPTE (mais non pas la table).

Page 123: DocumentBD

Système d’Information et Base de Données 123

Création d’une BD

• Suppression d’une table :

La syntaxe SQL pour supprimer une table est

très simple :

• DROP TABLE Nom_table

Exemples :

• DROP TABLE CLIENT

• DROP TABLE AGENCE

• DROP TABLE COMPTE

Page 124: DocumentBD

Système d’Information et Base de Données 124

Création d’une BD

• Modification de la structure d’une table :

Il y a trois types d’actions concernant la modification de structure d’une table :

• Ajouter une ou plusieurs colonnes.

• Supprimer une ou plusieurs colonnes.

• Modifier les propriétés d’une ou de plusieurs colonnes.

Les commandes SQL relatives à ces actions :

• ADD

• DROP

• MODIFY

Page 125: DocumentBD

Système d’Information et Base de Données 125

Création d’une BD

• Modification de la structure d’une table :

Pour modifier la structure d’une table, on

précise tout d’abord le nom de celle-ci en

écrivant la commande suivante :

• ALTER TABLE Nom_table

En suite, on spécifie la nature de l’action de

modification (ajout, suppression ou

modification).

Pour cela, il faut utiliser l’une des trois

commandes : ADD, DROP ou MODIFY.

Page 126: DocumentBD

Système d’Information et Base de Données 126

Création d’une BD

• Exemples d’ajout :

Ajouter une colonne « AGE » dans la table «

CLIENT » :

ALTER TABLE CLIENT

ADD AGE INTEGER;

Ajouter une colonne « DATECOMPTE » dans la

table « COMPTE » :

ALTER TABLE COMPTE

ADD DATECOMPTE DATE;

Page 127: DocumentBD

Système d’Information et Base de Données 127

Création d’une BD

• Exemples de suppression :

Supprimer la colonne « ADRAGENCE » de la

table « AGENCE » :

ALTER TABLE CLIENT

DROP ADRAGENCE;

Supprimer la colonne « DATECOMPTE » de la

table « COMPTE » :

ALTER TABLE COMPTE

DROP DATECOMPTE;

Page 128: DocumentBD

Système d’Information et Base de Données 128

Création d’une BD

• Exemples de modification de propriétés :

Modifier le type de la colonne « ADRAGENCE » pour qu’il soit un CHAR(100) au lieu de CHAR(40) :

ALTER TABLE AGENCE

MODIFY ADRAGENCE CHAR(100);

Modifier la colonne « AGE » de la table « CLIENT » pour qu’elle soit obligatoire :

ALTER TABLE CLEINT

MODIFY AGE NOT NULL;

Page 129: DocumentBD

Système d’Information et Base de Données 129

Création d’une BD • Insertion d’enregistrements dans une table :

La commande qui permet d’insérer une ligne

dans une table est la suivante :

INSERT

INTO Nom_table (Champ_i, …, Champ_n)

VALUES ('valeur_i', …, 'valeur_n',);

Dans la clause “INTO…”, on spécifie le nom de

la table ainsi que les noms des colonnes.

Si l’on veut ajouter une ligne contenant les

valeurs pour tous les champs, dans ce cas on

peut omettre les noms de colonnes.

Page 130: DocumentBD

Système d’Information et Base de Données 130

Création d’une BD • Insertion d’enregistrements dans une table :

Les valeurs des champs doivent être mises

entre deux quottes :

• '17'

• '-15.5267'

• 'Ahmed'

• '17/02/1987'

• '[email protected]'

Exception : la valeur « NULL » ne respecte pas

cette syntaxe (on l’écrit sans les quottes).

Page 131: DocumentBD

Système d’Information et Base de Données 131

Création d’une BD • Exemples :

INSERT

INTO CLIENT

VALUES ('1', 'Jawadi', 'Hicham', '12, Rue Nahda,

Oujda');

INSERT

INTO CLIENT (IDCLIENT, NOMCLIENT)

VALUES ('2', 'Rafik');

Page 132: DocumentBD

Système d’Information et Base de Données 132

Création d’une BD • Exemples :

INSERT

INTO CLIENT

VALUES ('3', 'Jaydi', 'Wiaam', NULL);

INSERT

INTO AGENCE (IDAGECNE)

VALUES ('25');

Page 133: DocumentBD

Système d’Information et Base de Données 133

Création d’une BD • Modification d’un enregistrement :

La commande qui permet de modifier la valeur

d’un champ d’une ligne dans une table est :

UPDATE Nom_table

SET Nom_champ_n = 'valeur_n'

WHERE Condition;

On modifie la valeur d’un champ d’un

enregistrement qui vérifie une condition précise

(critère pour accéder à la ligne qui sera le sujet

de la modification).

Page 134: DocumentBD

Système d’Information et Base de Données 134

Création d’une BD • Modification d’un enregistrement :

La clause SET indique quels champs de la table

vont être mis à jour et avec quelles valeurs ils

vont l’être.

Les champs non spécifiés après la clause SET

ne seront pas modifiés.

Les champs que nous voulons mettre à jour

doivent être écrits dans la clause SET, l’un

après l’autre (avec leurs valeurs bien sûr) et

séparés par des virgules.

Page 135: DocumentBD

Système d’Information et Base de Données 135

Création d’une BD • Modification d’un enregistrement :

La commande UPDATE affecte tous les

enregistrements qui répondent à la condition

donnée dans la clause WHERE.

Si la clause WHERE est absente, tous les

enregistrements de la table seront affectées.

Page 136: DocumentBD

Système d’Information et Base de Données 136

Création d’une BD • Exemples :

On veut, dans la table COMPTE, modifier le

solde d’un client dont le code est « 1725 ».

On doit taper alors la commande suivante :

UPDATE COMPTE

SET Solde = 250000

WHERE IDCLIENT = 1725;

On veut maintenant changer le prix unitaire de

tous les produits à 1000 :

Page 137: DocumentBD

Système d’Information et Base de Données 137

Création d’une BD • Exemples :

UPDATE PRODUIT

SET Prix_unitaire = 1000;

On veut, pour les étudiants dont les pères ont

des salaires qui dépassent 10000, ne pas

leur attribuer une bourse :

UPDATE ETUDIANT

SET Boursier = 'non'

WHERE Salaire_pere > 10000;

Page 138: DocumentBD

Système d’Information et Base de Données 138

Création d’une BD • Suppression d’un enregistrement :

Pour supprimer un enregistrement, il faut utiliser

la commande :

DELETE

FROM Nom_table

WHERE Condition;

Pour supprimer tous les enregistrements d’une

table, il suffit de ne pas indiquer la clause

WHERE.

Remarque : la table sera vide et ne sera pas

supprimée de la BD.

Page 139: DocumentBD

Système d’Information et Base de Données 139

Création d’une BD • Exemples :

Supprimer tous les candidats qui n’ont pas une

moyenne supérieure ou égale à 13.75 :

DELETE

FROM CANDIDAT

WHERE Moyenne < 13.75;

Supprimer tous clients :

DELETE

FROM CLIENT

Page 140: DocumentBD

Système d’Information et Base de Données 140

Les requêtes de sélection • Présentation et syntaxe :

La commande SELECT est la commande la plus complexe de SQL.

Cette commande servira à faire des requêtes pour extraire des données à partir des tables d’une BD.

Elle peut être associée à une des commandes de manipulation de tables vues précédemment pour spécifier une condition.

Sa syntaxe est :

SELECT champ_1, champ_2, champ_3, ...

FROM Nom_table

WHERE Condition;

Page 141: DocumentBD

Système d’Information et Base de Données 141

Les requêtes de sélection • Présentation et syntaxe :

S'il y a plus d'un champ spécifié après la clause SELECT, les champs doivent être séparés par des virgules.

Les champs sont retournés dans l'ordre spécifié après la clause SELECT, et non pas dans l'ordre qu'ils ont été créés dans la table.

Par exemple, pour sélectionner les champs « Prenom » et « Nom » de tous les enregistrements de la table CLIENT :

SELECT Prenom, Nom

FROM CLIENT

va renvoyer les prénoms et noms de tous les clients de la table CLIENT.

Page 142: DocumentBD

Système d’Information et Base de Données 142

Les requêtes de sélection • Présentation et syntaxe :

Si on veut récupérer tous les champs des enregistrements sélectionnés, la syntaxe est la suivante :

SELECT *

FROM Nom_table;

Les clauses SELECT et FROM doivent obligatoirement apparaître au début de chaque requête.

On peut, ensuite, indiquer des critères de sélection avec la clause WHERE :

SELECT * FROM table

WHERE condition;

Page 143: DocumentBD

Système d’Information et Base de Données 143

Les requêtes de sélection • Présentation et syntaxe :

Par exemple, pour sélectionner tous les clients de la table CLIENT dont le code postal est 75000, on écrit :

SELECT *

FROM CLIENT

WHERE Code_postal = 75000;

Page 144: DocumentBD

Système d’Information et Base de Données 144

Les requêtes de sélection • Exemples :

Noms et prénoms des clients qui habitent à Oujda :

SELECT Nom, Prenom

FROM CLIENT

WHERE Ville = 'Oujda';

Étudiants boursiers :

SELECT *

FROM ETUDIANT

WHERE Boursier = 'oui;

Page 145: DocumentBD

Système d’Information et Base de Données 145

Les requêtes de sélection • Exemples :

Clients ne résidant pas à Fès :

SELECT *

FROM CLIENT

WHERE Ville <> 'Fès';

Étudiants dont l’âge dépassent 25 ans :

SELECT *

FROM ETUDIANT

WHERE Age > 25;

Page 146: DocumentBD

Système d’Information et Base de Données 146

Les requêtes de sélection • Les opérateurs de comparaison :

On peut utiliser les opérateurs suivants dans les conditions d’une requête :

• = : égal

• <> : différent

• < : inférieur strict

• > : supérieur strict

• <= : inférieur ou égal

• >= : supérieur ou égal

Comment écrire les valeurs constantes :

• Numériques : 125, -654, -7.54, etc.

• Chaînes de caractères et dates : entre « ' ».

Page 147: DocumentBD

Système d’Information et Base de Données 147

Les requêtes de sélection • Les opérateurs logiques :

Ils permettent de construire des conditions plus complexes.

Les opérateurs logiques de SQL sont :

• AND (ET) : conjonction.

• OR (OU) : disjonction

• NOT (NON) : négation

L'opérateur AND réunit deux ou plusieurs conditions et sélectionne un enregistrement seulement si cet enregistrement satisfait toutes les conditions listées.

L'opérateur OR réunit deux conditions, mais sélectionne un enregistrement si une des conditions listées est satisfaite.

Page 148: DocumentBD

Système d’Information et Base de Données 148

Les requêtes de sélection • Les opérateurs logiques :

L'opérateur NOT opère sur une combinaison de conditions et sélectionne un enregistrement seulement si cet enregistrement ne satisfait pas la condition qu’engendre cette combinaison.

• Exemples :

Sélectionner tous les clients nommés 'Ahmed' qui habitent Rabat :

SELECT *

FROM CLIENT

WHERE Nom = 'Ahmed' AND Ville = 'Rabat';

Page 149: DocumentBD

Système d’Information et Base de Données 149

Les requêtes de sélection • Exemples :

Sélectionner tous les clients nommés 'Ahmed' qui habitent Rabat :

SELECT *

FROM CLIENT

WHERE Nom = 'Ahmed' AND Ville = 'Rabat';

Sélectionner tous les clients nommés 'Ahmed' ou 'Ali' :

SELECT *

FROM CLIENT

WHERE Nom = 'Ahmed' OR Nom = 'Ali';

Page 150: DocumentBD

Système d’Information et Base de Données 150

Les requêtes de sélection • Exemples :

Sélectionner tous les clients nommés 'Ahmed' qui habitent Rabat ou Fès :

SELECT *

FROM CLIENT

WHERE Nom = 'Ahmed' AND (Ville = 'Rabat' OR Ville = 'Fès');

Page 151: DocumentBD

Système d’Information et Base de Données 151

Les requêtes de sélection • Les opérateurs logiques :

Par exemple, pour L'opérateur OR réunit deux conditions mais sélectionne un enregistrement si UNE des conditions listées

est satisfaite. Par exemple, AND et OR peuvent être combinés :

SELECT *

FROM Clients

WHERE nom = 'Dupond' AND (ville = 'Saint-Quentin' OR ville =

'Paris');

Nous sélectionnons ici les clients nommés "Dupond" qui habitent soit à Saint-Quentin, soit à Paris.

Pourquoi avons-nous placé des parenthèses ? Pour résumer, on peut dire que l'opérateur AND a une plus

grande priorité que l'opérateur OR. Ce qui signifie que SQL va d'abord sélectionner les conditions

séparées par des AND, puis celles séparées par des OR, si on avait omis les parenthèses ici, SQL aurait

cherché les clients nommés "Dupond" vivant à Saint-Quentin ou les clients habitant à Paris, ce qui n'est

pas le but recherché. Pour généraliser, mettez toujours des parenthèses pour bien séparer vos conditions.

Page 10 sur 15