Vous êtes sur la page 1sur 157
Plan: Chap. 1 - Notion de base de données; Chap. 2 - Base de données

Plan:

Chap. 1 - Notion de base de données; Chap. 2 - Base de données relationnelles;

Chap. 3 - Langage SQL

GESTION DES BASE DE DONNÉES

ENCG-K

Semestre 5 Pr. O. ZYTOUNE

2015

Déroulement

2

Cours +TP=33h

Evaluation:

40% : (Note CC1+ Note TP+Travaux à rendre) 60% : Note Examen Ecrit.

Bases de données omniprésentes

Bases de données omniprésentes 3
Bases de données omniprésentes 3

3

Bases de données omniprésentes 3

Chap. 1

Notion de Bases de données

4

Plan de la leçon:

1.

Introduction;

2.

Définition d’une base de données et d’un SGBD;

3.

Différents types de bases de données;

4.

Quelques SGBD existants;

5.

Objectifs et avantages des BD et SGBD;

6.

Conclusion.

Introduction: Exemple de gestion d’entreprise

5

Service clients :

Fichier client :

code client ; Nom client ;

Adresse

Service commercial :

N° commande ;

date de la commande ;

total de la commande ;

code client ;

Nom client ;

Adresse.

Introduction

6

Introduction:

Deux approches:

- Approche Fichiers: données en fonction du traitementrisque d’incohérence;

- Approche base de données : intégration des

données dans un seul fichier/indépendance des

traitements.

Introduction: BD/Excel?

7

Introduction: BD/Excel? 7 – Redondance : • Données répétées (info client si plusieurs commandes, info produit

Redondance :

Données répétées (info client si plusieurs commandes, info produit si

plusieurs fois commandé…)

Réécriture

Orthographe, perte de temps, mise à jour difficile

Définition d’une BD et d’un SGBD

8

Une BD:

- Ensemble structuré de données indépendant des traitements à effectuer.

- Représente le monde réel.

- Interrogée et mise à jour par des utilisateurs.

Définition d’une BD et d’un SGBD

9

Un SGBD:

- logiciel permettant à un utilisateur d’interagir avec une BD.

- Interface entre la BD et les programmes d’applications

qui communiquent avec la BD.

- Permet:

- la définition d'une BD (spécification des types de données à

stocker),

- la construction d'une BD,(stockage des données)

- la manipulation des données (ajouter, supprimer, retrouver des données).

Différents types de BD

10

Il existe quatre grands types de bases de données :

-Les bases hiérarchiques; -Les bases réseaux; -Les bases relationnelles; -Les bases objets.

Modèle hiérarchique

11

Appartient à la deuxième génération 1965 – 70 s’appelle aussi,

SGBD navigationnelle;

Présente les données sous forme d’un arbre;

Une donnée peut référencer une autre donnée dans une relation

père/fils;

Lien entre enregistrements par des pointeurs

peut référencer une autre donnée dans une relation père/fils;  Lien entre enregistrements par des pointeurs

Modèle hiérarchique

12

Modèle hiérarchique 12  Inconvénients :  Redondance de données.  Manipulation difficile de données

Inconvénients :

Redondance de données. Manipulation difficile de données hétérogènes.

Modèle réseau

13 Appartient aussi à la 2ème génération; Possibilité des liens entre enregistrements dans différents sens

des liens entre enregistrements dans différents sens  Avantage par rapport aux SGBD hiérarchiques : la
des liens entre enregistrements dans différents sens  Avantage par rapport aux SGBD hiérarchiques : la

Avantage par rapport aux SGBD hiérarchiques : la non redondance de données et la rapidité.

Inconvénients : La schéma de la BD devient complexe quand la

base de données est importante.

14

Modèle relationnel

3ème génération 1969-

les données sont représentées dans des tables

Manipulation suivant les règles mathématiques des ensembles

 les données sont représentées dans des tables  Manipulation suivant les règles mathématiques des ensembles

15

Le modèle Objet

Apparition entre 1990 - 1999 Les données sont représentées en tant qu’instances de classes hiérarchisées

Apparition entre 1990 - 1999  Les données sont représentées en tant qu’instances de classes hiérarchisées

Différents types de BD

16

Aujourd’hui, le modèle relationnel est le plus utilisé il occupe environ 75%

Quelques SGBD existants

17

Hiérarchiques : IMS;

Réseaux : IDS2, Socrate-Clio;

Quelques SGBD existants : Bases relationnelles

18

Les petites BD:

• FileMaker Pro

• Access

• FoxPro

• 4e dimension

• MySQL

• Paradox

Les grosses BD

• Oracle

Informix

• Sybase

ProsgreSQL

• DB2

• Ingres

• (SQLServer)

Quelques SGBD existants

19

Bases objet :

O2

Gemstone

ObjectStore

Jasmine

Objectifs et avantages

20

Les principales fonctions d’un SGBD:

- Indépendance données/programme (indépendance physique);

- Indépendance logique;

- Intégration des données sans redondance;

- Partage de données;

- Intégrité des données;

- Sécurité des données et confidentialité.

Indépendance physique

21

Ils ne sont pas apparents:

Les disques, la machine, les méthodes d’accès, les modes de placement, les méthodes de tri, le codage

des données.

Le SGBD offre une structure canonique permettant la représentation des données réelles sans se

soucier de l’aspect matériel du système.

Indépendance logique

22

Chaque groupe de travail doit pouvoir se concentrer sur ce qui

l’intéresse.

Peut arranger les données comme il souhaite, même si d’autres utilisateurs ont une vue différente.

L’administrateur peut faire évoluer le SI sans remettre en cause

l’organisation de chaque groupe de travail.

Exemple: Une base de données contient les informations suivantes:

véhicule(num-véhicule, marque, type, couleur)

personne(num-CIN, nom, prénom)

propriétaire(num-CIN, num-véhicule, date-achat).

Un groupe de travail ne s’intéressera qu’aux individus qui possèdent une voiture :

individus(num-CIN, nom, prénom, num-véhicule).

Un autre groupe ne s’intéressera qu’aux véhicules vendus à une certaine date :

voiture(num-véhicule, type, marque, date-achat).

23

23 Non-redondance des données  Le SGBD doit permettre d’éviter la duplication d’informations qui entraine: 

Non-redondance des données

Le SGBD doit permettre d’éviter la duplication d’informations qui entraine:

la perte de place mémoire, demande des moyens humains importants pour saisir et maintenir à jour plusieurs fois les mêmes données.

Cohérence des données

24

Cohérence obtenue par la vérification des contraintes

d’intégrité.

Une contrainte d’intégrité est une contrainte sur les données de la base, qui doit toujours être vérifiée pour assurer la

cohérence de cette base.

Les systèmes d’information sont souvent remplis de telles contraintes ; le SGBD doit permettre une gestion automatique

de ces contraintes d’intégrité sur les données.

Par exemple :

un identifiant doit toujours être saisi ;

le salaire doit être positif ;

Concurrence d’accès aux données

25

Le SGBD doit permettre à plusieurs personnes (ou applications) d’accéder simultanément aux données

tout en conservant l’intégrité de la base.

Chacun doit avoir l’impression qu’il est seul à utiliser

les données.

Sécurité des données

26

Les données doivent être protégées des accès non autorisés ou mal intentionnés.

Il doit exister des mécanismes permettant d’autoriser, contrôler et enlever des droits d’accès à certaines informations à n’importe

quel usager.

Exemple, un chef de service pourra connaître les salaires des personnes qu’il dirige, mais pas de toute l’entreprise.

Le système doit aussi tolérer les pannes : si une panne pendant l’exécution d’une opération, le SGBD doit être capable de revenir

à un état dans lequel les données sont cohérentes.

Il en va de même en cas d’échec dans un programme. Le SGBD doit pouvoir revenir à un état cohérent, ce qui est rendu possible par la gestion des transactions.

Manipulation possible par des non informaticiens

27

Le SGBD doit permettre d’obtenir les données par des langages non procéduraux. On doit pouvoir décrire ce que l’on souhaite sans décrire comment l’obtenir.

28

Exercice

Indiquer quel est l’utilisateur qui doit exécuter les fonctions suivantes pour un système de paie d’une grande entreprise : Un programmeur, un administrateur ou l’utilisateur final?

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é.

29

Exercice

Étant donné le modèle de données suivant d’un jardin, doit-il être hiérarchique, réseau ou relationnel ?

Nom de la plante

hiérarchique, réseau ou relationnel ? Nom de la plante Conditions Instructions de la plantation Coût Luminosité

Conditions

réseau ou relationnel ? Nom de la plante Conditions Instructions de la plantation Coût Luminosité

Instructions de la plantation

Coût

relationnel ? Nom de la plante Conditions Instructions de la plantation Coût Luminosité nécessaire Conditions de
relationnel ? Nom de la plante Conditions Instructions de la plantation Coût Luminosité nécessaire Conditions de

Luminosité

nécessaire

Conditions de sol

Solution de l’exercice N ° 2

30

Ce doit être un modèle hiérarchique car il a un aspect arborescent.

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.

Mais le modèle relationnel est aussi possible. La navigation se fait par valeur.

Conclusion

31

Utilité de l’outil informatique dans l’entreprise

(Automatiser une partie/tout le SI);

Avantages apportés par l’utilisation des BDs ;

Modèle relationnel est le plus utilisé.

Chap. 2 Modèle Relationnel

32

Plan

Introduction

Concepts de base

Algèbre relationnelle

Règle de passage du MCD au MLD

33

Motivation d’un MLD

Un Modèle Conceptuel de Données n’est pas directement

implantable car indépendant de tout choix technologique;

Traduction nécessaire vers un Modèle Logique de Données:

Suit une approche spécifique de modélisation (hiérarchique, objet, relationnelle, …) Utilise un langage formel de spécification de la structure logique des données.

34

Origine du modèle relationnel

Proposé par Codd (Thèse de doctorat) en 1970

Application de la théorie des relations à la gestion de fichiers informatiques

Le modèle relationnel fournit un support mathématique cohérent à la manipulation de données : l’algèbre relationnelle

Modèle dominant dans les offres commerciales de SGBD Oracle, DB2, Sybase, Ingres, Postgres, MySQL, Access…

Base de données relationnelle

35

Une BD relationnelle est composée d’un ensemble de

tables (ou relations)

Une table possédant un nom et est composée de :

Lignes qu’on appelle enregistrements (ou tuples)

Colonnes représentant chacune un champ (ou un attribut)

Chaque champ a un nom et un type

Texte, numérique, date, …

Manipulation par des opérateurs de l’algèbre relationnelle

Cohérence des données gérée par des règles et normes (Vérifiée surtout au niveau MCD)

Dépendances fonctionnelles

Théorie de la normalisation

Exemple de tables

36

Nom de la table

3 champs

Exemple de tables 36 Nom de la table 3 champs N ° Comman     de

N° Comman

   

de

DateCommande

Montant

27

13/2/2007

120

65

12/1/2008

34

2

10/06/2006

27

34

14/12/2007

1500

34 2 10/06/2006 27 34 14/12/2007 1500 Commande 4 e n r e g i s

Commande

2 10/06/2006 27 34 14/12/2007 1500 Commande 4 e n r e g i s t

4 enregistrements

N° Commande est du type numérique entier Montant est du type numérique réel DateCommande est du type date

Relation & attribut

37

Chaque colonne d’une table appartient à un ensemble

de valeurs possibles appelé son domaine.

Le domaine désigne toutes les valeurs permises qui

peuvent apparaître dans la colonne.

Un domaine se définit soit :

en extension : couleur_voiture = {bleu, vert, marron, noir, gris, rouge} en compréhension : âge_enfants = {x dans N tel que x <15}

38

Relation & attribut

Soit l’attribut A i est une variable qui prend ses valeurs dans un domaine D i

Soit U = {A 1 , A 2 ,

Une relation(table) r définie sur U est un sous-ensemble du produit cartésien D 1 × D 2 × × D n

Soient deux ensembles P et Q, on appelle Produit cartésien de P et Q, l'ensemble noté P ×Q , des couples (x, y) où xP et y Q.

Exemple:

, A n }

Professeurs={ Abbad, Saaidi, Moursi}

Étudiants= { Issam, Hamidi}

Étudiants ×Professeurs={ (Issam, Abbad) , (Issam,Saaidi) , (Issam, Moursi) , (Hamidi, Abbad) , (Hamidi, Saaidi) , (Hamidi, Moursi) }

Tuple & clé

39

Soit u un tuple de la relation R, on note u.A i la valeur de l'attribut A i du tuple u.

Chaque tuple est distinct :

u, v r ,i 1,2, n

,

si

u. Ai v. Ai

alors u v

Une clé de la relation R est un ensemble minimal d'attributs K tels que les valeurs de ces attributs permettent de distinguer tout tuple des autres

K

u v

,

A A

1,

,

2,

r si

,

An

u K

.

v K

.

La clé retenue est dite clé primaire

alors

u

v

Relation & attribut

40

Le schéma de relation représente la structure invariante d’une

relation.

Constitué du nom de la relation suivi de la liste des attributs et de leurs domaines associés

PRODUIT (N°PRODUIT : entier, NOM : chaîne, QTE EN STOCK : entier>0)

Les attributs constituant la clé de r sont écrits en premier dans le schéma de relation et sont généralement soulignés.

Une BD relationnelle est un ensemble de relations r 1 , r 2 , ,

r m

Relation & attribut

41

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

Exemple : La table Produit (code produit, libellé du produit, prix unitaire, quantité en stock).

Le degré de la table « Produit » est égale à 4.

Le nombre total des enregistrements présents dans une table est appelé la cardinalité de la table.

Exemple de relations

42

Propriétaires

numero

nom

prenom

naissance

5

Madani

Hossame

04-févr-80

13

Azzouz

Mohcine

15-mai-76

76

Daoud

Ali

29-nov

Véhiculés

immatriculation

marque

proprietaire

3452 A 13

BMW

13

9835

B 72

Renault

76

1234

A 2

Peugeot

5

9878

A 4

BMW

76

Règles pour une relation

43

Deux tables d’une même BD ne peuvent avoir le même nom

Deux colonnes d’une même table ne peuvent avoir le même nom

Un même champ peut être présent dans plusieurs tables

L’ordre des colonnes est sans aucune importance.

Toutes les lignes ont le même format et le même nombre d’entrée.

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

L’ordre des lignes est sans importance car elles sont identifiées par

leur contenu.

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

La valeur NULL

44

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

Attention :

La valeur NULL n’est pas égale à 0 (zéro) et ne représente aucune valeur particulière pour l’ordinateur.

LES RÈGLES D'INTÉGRITÉ

45

INTÉGRITÉ DE DOMAINE

INTÉGRITÉ DE RELATION

INTÉGRITÉ DE RÉFÉRENCE

INTÉGRITÉ DE DOMAINE

46

Contrôle des valeurs des attributs:

par exemple, 4.000 ≤ salaire ≤ 20.000

liste de couleurs possibles [bleu, rouge, vert, jaune]

Contrôle entre valeurs des attributs:

QTE_STOCK ≥ QTE_COMMANDE

Contrôle des opérateurs entre attributs

INTÉGRITÉ DE DOMAINE

INTÉGRITÉ DE DOMAINE
INTÉGRITÉ DE DOMAINE
INTÉGRITÉ DE DOMAINE

Intégrité de la relation

48

Unicité 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).

Clé étrangère

Dépendance fonctionnelle
Dépendance
fonctionnelle
Clé étrangère Dépendance fonctionnelle Attribut commun aux deux tables matérialisant la dépendance fonctionnelle .

Attribut commun aux deux tables matérialisant la dépendance fonctionnelle.

La connaissance d’un numéro de commande nous permet de retrouver de façon unique un numéro de client.

Il existe donc une dépendance fonctionnelle entre deux tables (commande et client).

Pour matérialiser ce lien, une colonne (numcli) sera ajoutée à la table source de la dépendance fonctionnelle. Celle-ci sera appelée clé étrangère.

) sera ajoutée à la table source de la dépendance fonctionnelle. Celle-ci sera appelée clé étrangère
n 1
n
1
) sera ajoutée à la table source de la dépendance fonctionnelle. Celle-ci sera appelée clé étrangère

Clés étrangères et Contrainte d’Intégrité Référentielle

50

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 qui existe aussi en tant que clé primaire dans une

autre table.

Une clé étrangère d’une table référence une clé primaire d’une autre table.

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.

Clés étrangère n 1 Attribut commun aux deux tables matérialisant la dépendance fonctionnelle. CLIENT (

Clés étrangère

n 1 Attribut commun aux deux tables matérialisant la dépendance fonctionnelle.
n
1
Attribut commun aux
deux tables
matérialisant la
dépendance
fonctionnelle.

CLIENT ( NumCli, Nomcli, Adresseruecli, AdresseCPcli, Adressevillecli)

Nomcli, Adresseruecli, AdresseCPcli, Adressevillecli ) COMMANDE ( NumCom, datecom, # NumCli ) Si la relation

COMMANDE ( NumCom, datecom,

AdresseCPcli, Adressevillecli ) COMMANDE ( NumCom, datecom, # NumCli ) Si la relation comprend un attribut

# NumCli )

Si la relation comprend un attribut clé étrangère, celui-ci sera placé à la fin et précédé du signe #.

Clés étrangère

Ce qui est nécessaire :

2 tables (ou requêtes ou une combinaison des deux)

1 champ en commun dans chacune des tables

même type de champ (texte avec texte, numérique avec

numérique

)

même longueur (pas un champ long de 15 caractères avec

un autre long de 20 caractères)

même genre d'information (Ex.: Code d'inventaire avec des

codes d'inventaires, CNE avec CNE

)

Clés étrangères et CIR

53

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.

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.

Clés étrangères et CIR

54

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

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.

Les relations entre tables

55

Dans une BD, certaines tables sont en relation les unes avec les autres.

Dans les BD relationnelles, 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.

Les relations entre tables

56

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.

Les relations entre tables

57

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.

Les relations entre tables

58

IDREC NOM PRENOM 1 Benali Wail 2 Touimi Rahma Table « Recteur » IDUNIV NOM
IDREC
NOM
PRENOM
1
Benali
Wail
2
Touimi
Rahma
Table « Recteur »
IDUNIV
NOM
VILLE
IDREC
100
Mohamed V
Rabat
1
200
Hassan II
Mohamédia
2

Table « Université »

59

Les relations entre tables

IDPROP

NOM

PRENOM

 

1

Razi

Mohamed

 
 

2

Nafia

Mostafa

 
 

Propriétaire

3

Adili

Said

 
 
MATRICULE MODELE IDPROP 1234 ا 1 Peugeot 205 1 7588 ا 48 Renault 19 1
MATRICULE
MODELE
IDPROP
1234 ا 1
Peugeot 205
1
7588 ا 48
Renault 19
1
25254 ـه 72
Hyundai Acc
2
25482 ب 6
Toyota Cor
3

Voiture

Exercice

60

Considérons la table Département et les lignes montrées à la suite. Expliquez si ces les lignes peuvent être ou non insérées dans cette table.

N° département

NOM

LIEU

Effectif

20

Ventes

Rue FAR

10

10

Marketing

Rue Fès

5

10

R&D

Bd Oqba

15

 

Informatique

Anfa

13

15

Comptabilité

Agdal

23

Solution de l’exercice

61

10

R&D

Bd Oqba

15

 

Informatique

Anfa

13

15

Comptabilité

Agdal

23

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.

ne peut pas être NULL). Oui : cette ligne peut être insérée sans problème, car aucune

Normalisation

62

Lors de la conception d’une BD, plusieurs possibilités de

modélisation existent;

La qualité d’un modèle dépend de plusieurs facteurs

quantité d'information à stocker

facilité d'expression des requêtes

prévention d'erreur de mise à jour et d'incohérences

La normalisation d’une BDD implique le respect de critères de protection de l’intégrité des données

Plusieurs formes normales(6) existent dont

1 ère , 2 ème , 3 ème sont largement suffisantes

La normalisation : exemple

63

Une entreprise de vente de bateaux qui souhaite constituer un SI relatif à son activité

Achats(IdClient, NomClient, PrénomClient, AdresseClient, ImmatriculationBateau, ModèleBateau, LongueurBateau, DateAchat, MontantAchat)

Problèmes potentiels

redondance de données :

une personne qui achète plusieurs bateaux

incohérence suite à une Mise à jour :

une personne qui change d’adresse

anomalies lors d’insertion/suppression :

un client potentiel ne peut être enregistré dans la BD s’il n’a pas encore acheté de

bateau

lorsqu’un client vend son bateau, il est supprimé du système d’information

Comment normaliser ?

64

Décomposition des relations jusqu’à ce que toutes respectent les 3 Formes Normales suivantes :

Première Forme Normale

Une relation est dite en Première Forme Normale si tous ses attributs sont atomiques ;

aucun des attributs ne doit être une relation entre « sous- attributs »

pas de colonnes dans une colonne

;  aucun des attributs ne doit être une relation entre « sous- attributs » 
;  aucun des attributs ne doit être une relation entre « sous- attributs » 

Dépendance Fonctionnelle

65

Définition

Deux groupes d’attributs X et Y de la relation R sont en Dépendance Fonctionnelle si dans R, chaque valeur de X détermine une et une seule valeur de Y

si je connais la valeur de X alors je connais la valeur de Y

une DF est une assertion sur toutes les extensions possibles d’une relation et pas uniquement sur ses n-uplets actuels

Exemple : ensemble de DF pour une table

possibles d’une relation et pas uniquement sur ses n-uplets actuels  Exemple : ensemble de DF

Seconde Forme Normale

66

Condition

Première Forme Normale

tous les attributs n’appartenant pas à la clé sont en dépendance fonctionnelle élémentaire avec la clé

dès qu’un attribut non-clé dépend d’une partie de la clé, la relation n’est pas en 2FN.

Seconde Forme Normale

67

Exemple

Prêt_livre (numcli, numlivre, nomcli, adrcli, titre_livre, dateprêt)

DF

numcli nomcli, adrcli

num_livre titre_livre

numcli, numlivre dateprêt

Prêt_livre n ’est pas en 2 FN car

nomcli dépend uniquement de numcli et pas de numcli et de numlivre

décomposition à l’aide des DF

client (numcli, nomcli,adrcli)

Livre (numklivre, titre_livre)

prêt (numcli, numlivre, dateprêt)

Troisième Forme Normale

68

Seconde Forme Normale (2FN)

Aucun de ses attributs non-clés ne dépend d’un autre attribut non-clé ;

il n ’existe pas de DF entre 2 attributs non-clés

Troisième Forme Normale

69

Exemple

ville(num_ville, nom_ville, num_dept, nom_dept)

DF

num_ville nom_ville, num_dept, nom_dept

num_dept nom_dept

ville n’est pas en 3 FN car

nom_dept dépend de num_dept

décomposition à l’aide des DF

ville(num_ville, nom_ville, num_dept)

dept(num_dept, nom_dept)

Créer une base de données

Possibilité de créer avec SQL, mais pas indispensable Base de données = ensemble de tables Donner un nom à la Base de données extension .ACCdb

• Base de données = ensemble de tables • Donner un nom à la Base de

Objets d’une base de données

71

Objets d’une base de données 71 • Tables, entités/relations • Macros, automatiser des actions à exécuter

Tables,

entités/relations

Macros, automatiser des actions à exécuter

Requêtes, interrogations

Formulaires,

visualisation de tous les attributs/Saisie

États, documents à publier

Objets d’une base de données

72

Tables, Requêtes

Formulaires, États

7 2 • Tables, Requêtes • Formulaires, États • Tables, entités/relations • Requêtes,

Tables, entités/relations

Requêtes, interrogations

Formulaires, visualisation de tous les attributs

États, documents à publier

Créer une table création

73

Créer une table – création 73

Créer une table création

74 Contrainte de clé primaire :

Une fois que la clé primaire sera désignée et

le champ déclaré sans doublons, les saisies

de valeurs identiques seront impossibles.

Lors de la création d’une table, la clé primaire et l’appartenance

des données à un type doivent être obligatoirement définies.

à un type doivent être obligatoirement définies. D’autres éléments peuvent être posés pour assurer le

D’autres éléments peuvent être posés pour assurer le confort et la sécurité de la saisie.

Choix du type :

Il s’agit de préciser quel type de valeurs sera stocké dans le champ.

Il existe trois grands types (numérique,

date, texte). Pour les champs de type texte, il

est possible d’intervenir sur la taille du champ, de manière à optimiser la place occupée sur le support de stockage.

à optimiser la place occupée sur le support de stockage. Contrôle de la saisie : Pour

Contrôle de la saisie :

Pour faciliter la saisie, un masque, une valeur par défaut, peuvent être mis en place.

Contrainte de domaine :

Il est possible, pour un champ donné, de

limiter les valeurs autorisées à la saisie. Celles-ci sont indiquées dans la case « Valide si », un message d’erreur peut y être associé.

Les types d’attributs

75
75

Les types d’attributs

76

1.

Texte max : 255 caractères

2.

Mémo max : 65 535 caractères

3.

Numérique entier, simple précision, nombre décimale, etc.

4.

Date/Heure

année 1009999, 12 ou 24 h

5.

Monétaire nombres réels de 1 à 4 décimales

6.

NuméroAuto

incrémentation automatique

7.

Oui/Non Vrai/Faux , Actif/inactif

8.

Objet OLE (Object Linking and Embedding) feuilles de calcul, sons, vidéos, graphiques…

9.

Lien Hypertexte

chemin complet (local ou internet)

Les masques de saisie

77

Les masques de saisie 77

78

Les masques de saisie

78 Les masques de saisie

Les masques de saisie

79

Symbole

Signification

0

Chiffre de 0 à 9 obligatoire

9

Chiffre ou espace facultatif

#

Chiffre ou espace ou + ou -

L

Lettre de A à Z obligatoire

?

Lettre de A à Z non obligatoire

A

Lettre ou chiffre obligatoire

a

Lettre ou chiffre non obligatoire

&

Caractère quelconque obligatoire

C

Caractère quelconque non obligatoire

<

Passe tout en minuscules (bas de casse)

>

Passe tout en majuscules (haut de casse)

!

Saisie à partir de la droite

Les masques de saisie

masque

sens

exemples

00

00 00 00 00

Numéro de téléphone

06

12 34 56 78

00

999

Deux chiffres obligatoires

75

123 ou 59

>CCCCCCCCCCCCCCC

Nom de maximum 20 caractères, converti en capitales

 

CCCCC

ALI SAID ou BORD

>C<CCCCCCCCCCCCC

Prénom de maximum 20 caractères, 1 re lettre capitale, lettres suivantes bas de casse

Ali ou Said

CCCCCC

0 00 00 00 0000

Code sur précisément 11 chiffres

1 53 06 07 0557

00/00/0099

Date avec année possible sur 2

 

ou 4 chiffres

07/06/1953 ou 22/02/53

(000) 000-0000

Téléphone avec indice régional obligatoire

(207)555-0199 ou

(165)345-2025

Les masques de saisie

masque

sens

exemples

(999) 000-0000!

Téléphone avec indice régional facultatif remplissage par la droite

(207)555-0199 ou ()345-

2025

(000) AAA-AAAA

Téléphone américain (derniers chiffres peuvent être des lettres)

(206) 555-TELE

#999

Nombre positif ou négatif, composé de quatre caractères ou moins, sans séparateur de milliers ni séparateur décimal.

2345 ou -20

>L????L?000L0

Combinaison de lettres obligatoires (L), lettres facultatives (?) et nombres obligatoires (0). Le signe « > » oblige les utilisateurs à entrer toutes les lettres en capitales.

GREENGR339M3 ou MAY R462B7

(000) 000-0000

Téléphone avec indice régional

 

obligatoire

(207)555-0199 ou

 

(165)345-2025

Les listes déroulantes

82

Les listes déroulantes 82 Monsieur, M., Mr, Dr, Me, Madame, Mme, Mlle, …
Les listes déroulantes 82 Monsieur, M., Mr, Dr, Me, Madame, Mme, Mlle, …

Monsieur, M., Mr, Dr, Me, Madame, Mme, Mlle, …

Les listes déroulantes 82 Monsieur, M., Mr, Dr, Me, Madame, Mme, Mlle, …

Les listes déroulantes

83

Dans la table, créer le champ Titre

Cliquer sur ‘Assistant Liste de choix’

le champ Titre Cliquer sur ‘Assistant Liste de choix’ Sélectionner " Je taperai les valeurs souhaitées

Sélectionner "Je taperai les valeurs souhaitées"

Dresser la liste dans Contenu

Liste de choix’ Sélectionner " Je taperai les valeurs souhaitées " Dresser la liste dans Contenu
GVdK = CUY
GVdK = CUY

Relation entre tables

84

Relation entre tables 84
Relation entre tables 84

Les filtres

85

Les filtres permettent de limiter simplement, de façon temporaire, les enregistrements affichés dans une table.

On peut filtrer selon deux méthodes :

- le filtre sur un seul critère :

ex : les étudiants qui habitent Kénitra;

- le filtre sur plusieurs critères :

qui habitent Kénitra; - le filtre sur plusieurs critères : ex : les étudiants qui habitent

ex : les étudiants qui habitent Kénitra ou ceux qui s’appellent « Mohamed ».

Normalisation: Inconvénients

86

Les inconvénients de la normalisation sont :

des temps d'accès potentiellement plus longs si les requêtes sont trop complexes (lectures plus lente) une plus grande fragilité des données étant donné la non redondance (lecture impossible)

un manque de flexibilité au niveau de l'utilisation de l'espace disque

Algèbre relationnelle

87

Définition:

Collection d’opérations formelles qui agissent sur des relations et produisent une relation en résultat.

Dans la plupart des systèmes relationnels, la réponse à une

requête s’obtient par l’utilisation d’un ou plusieurs

opérateurs relationnels.

Deux types d’opérateurs:

Opérateurs unaires :

Sélection, Projection, Complément

Opérateurs binaires :

Union, Intersection, Différence, Produits, Jointures, …

Algèbre relationnelle

88 Motivation : Formuler des requêtes pour interroger des données

Qu’est-ce qu’une requête ?

une expression dans une algèbre dite algèbre relationnelle, i.e., des opérations sur des tables

Soit Filtrer :

Sélection (filtre / critères)

Projection (choix de colonnes)

Différence (suppression de lignes)

Soit Combiner :

Produit cartésien (toutes les possibilités)

Jointure (complément d'information)

Union (union d'ensembles de lignes)…

Opérateurs relationnels unaires

89

Projection

Seule une partie des attributs est considérée

Sélection

Seule une partie des tuples est considérée

Complément (noté R)

Tous les tuples possibles n’existant pas dans une relation sont construits

90

Projection

La projection d’une relation R sur un ensemble

d’attributs (A 1 ,…, A k ) se note :

 

R

A

1,

Ak

,

d’attributs (A 1 ,…, A k ) se note :     R  
d’attributs (A 1 ,…, A k ) se note :     R  
d’attributs (A 1 ,…, A k ) se note :     R  
d’attributs (A 1 ,…, A k ) se note :     R  

Sélection

91

La sélection sur une relation R selon une condition C se note: C ( R )

Sélection 9 1 La sélection sur une relation R selon une condition C se note: 

92

Sélection

Opérateurs de comparaison :

=, , <, >,, ≤, BETWEEN (entre), IN (dans), LIKE(comme)

Combinaison de plusieurs conditions reliées par des opérateurs logiques :

and, or, not

Valeurs NULL

Opérateurs relationnels binaires

93 Union

La fusion de deux relations est considérée

Différence

Les tuples d’une relation qui n’existent pas dans une seconde relation sont considérés

Produit cartésien

Toutes les combinaisons entre tuples de 2 relations sont considérées

Intersection (notée

R R '

)

Seuls les tuples présents dans 2 relations sont considérés

Thêta-produit (noté

R C R '

)

Produit cartésien suivi d’une sélection (Appelé également jointure)

Union

94

L’union de deux relations R et R’ se note : R R '

Union 94 L’union de deux relations R et R’ se note : R  R '
Union 94 L’union de deux relations R et R’ se note : R  R '
Union 94 L’union de deux relations R et R’ se note : R  R '
Union 94 L’union de deux relations R et R’ se note : R  R '

Différence

95

La différence de deux relations R et R’ se note : R R '

Différence 95 La différence de deux relations R et R’ se note : R  R
Différence 95 La différence de deux relations R et R’ se note : R  R

Produit cartésien

96

Le produit cartésien de deux relations R et R’ se note :

R R '

Produit cartésien 9 6 Le produit cartésien de deux relations R et R’ se note :

jointures

97

Jointure naturelle

Thêta-produit dont la condition est une égalité de valeurs entre des attributs de deux relations

Jointure extérieure

Jointure naturelle à laquelle on ajoute les tuples de chaque relation n’ayant pas trouvé de correspondance dans l’autre

Semi-jointure

Jointure naturelle à laquelle on ajoute les tuples de la première

relation n’ayant pas trouvé de correspondance dans l’autre

La jointure naturelle est l’opérateur le plus utilisé avec les

sélections et projections, car le plus intéressant

Jointure naturelle

98

La jointure naturelle de deux relations R et R’ selon une condition C se note :

R  C R '

naturelle 98 La jointure naturelle de deux relations R et R’ selon une condition C se
naturelle 98 La jointure naturelle de deux relations R et R’ selon une condition C se
naturelle 98 La jointure naturelle de deux relations R et R’ selon une condition C se
naturelle 98 La jointure naturelle de deux relations R et R’ selon une condition C se
naturelle 98 La jointure naturelle de deux relations R et R’ selon une condition C se
naturelle 98 La jointure naturelle de deux relations R et R’ selon une condition C se
naturelle 98 La jointure naturelle de deux relations R et R’ selon une condition C se
naturelle 98 La jointure naturelle de deux relations R et R’ selon une condition C se
naturelle 98 La jointure naturelle de deux relations R et R’ selon une condition C se
naturelle 98 La jointure naturelle de deux relations R et R’ selon une condition C se

Combinaison d’opérateurs

99

La puissance de l'algèbre relationnelle s'exprime

dans la combinaison d’opérateurs permettant

d'exprimer des requêtes précises.

Ex: on chercher l’immatriculation des véhicules possédés par la personne dont le nom est « Ali »

(proprietairenumero(vehicule

immatriculation

nom" Ali "( proprietaire )))

Exercice Algèbre relationnelle

100

Table Immeuble

Table Personne

Nom_imb

Adresse

 

Nb

Anné

Nomgérant

     
 

étage

e

 

Nom

Ag

e

Profession

Annakhil

22

Rue Azrou,

10

2009

Alami

Alami

54

 

Architecte

Rabat

   

Atif

 

39

 

Médecin

 

Firdaous

15

bd des Far, Fès

5

 

2000

Dahbi

 

Barhou

58

Avocat

 

m

Dahbi

65

Retraité

 

Nom_imb

No_app

Superficie

Etag

 

e

 

Nom_imb

No_app

Nom_occ

Année_h

Annakhil

1

150

1

Annakhil

2

100

1

Annakhil

1

Alami

2009

Annakhil

10

90

9

Annakhil

2

Dahbi

2009

Firdaous

5

120

2

Firdaous

5

Atif

2001

Firdaous

10

100

3

Firdaous

10

Barhoum

2005

Firdaous

11

80

 

3

 

Table Appartement

Table Occupant

Exercice

101

Soit la base de données simplifiée. Exprimer la signification et le résultat des requêtes suivantes:

1- La requête:

2- Π nom-Imb (Immeuble);

3- Π nom-Imb, No_app (σ superficie>100 (Appartement));

Personne

nom, Age

4- Π nom-occ (σ Nom_imb=« Firdaous » ET Année>2001 )(Occupant);

5- Π nom-Imb, No_app (σ No_app=Etage (Appartement));

6-Π nomgérant, Superficie

7-Π nom-occ, Année,Superficie

meuble

(Im Appartemen t

(





Appartement )

Nom imb Nom imb _

_

_

Occupant

Nom imb Nom imb No appNo app

_

_

_

)

Exercice

102

Ecrire en algèbre relationnelle les requêtes:

1- Nom des immeubles ayant strictement plus de 10 étages.

2. Nom des personnes ayant emménagé avant 1994. 3. Qui habite le Annakhil?

4. Nom des Architectes de plus de 25 ans.

5. Nom des immeubles ayant un appartement de plus de 150 m 2 .

6. Qui gère l’appartement où habite Atif?

7. Dans quel immeuble habite un retraité?

8. Qui habite un appartement de moins de 70 m 2 ?

9. Nom des personnes qui habitent au dernier étage de leur immeuble.

10. Profession du gérant du Firdaous?

11. Age et profession des occupants de l’immeuble géré par Alami?

12. Qui habite, dans un immeuble de plus de 10 étages, un appartement de plus de 100 m 2 ?

103

CHAPITRE 3 :

INTRODUCTION À SQL

Sommaire du chapitre 3

104

Présentation du langage SQL;

Types de données;

Requêtes d’action;

Requêtes de sélection;

Requêtes de contrôle.

Présentation du langage SQL

105

Le sigle SQL signifie "Structured Query Language", soit en français

"Langage de requêtes structuré".

Il a été développé par IBM au cours des années 70 et son nom était SEQUEL, abréviation de Structured English QUEry Language

SQL : langage proche de l’utilisateur et de sa façon de poser les requêtes (formulation proche du langage naturel)

SQL : langage assertionnel (non procédural), facile à apprendre pour

rédiger les requêtes, les lire et les comprendre.

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Présentation du langage SQL

106

SQL a été normalisé par l'ANSI (American National Standards

Institute) et par l'ISO (International Organization for Standardization).

Cette normalisation a donné naissance à une 1ère version

(SQL1) en 1987 puis à une 2ème version (SQL2) en 1992

Une troisième norme (SQL3) est sortie en 2003 par l'ANSI et l'ISO.

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Présentation du langage SQL

107

Malgré la normalisation ISO, il existe plusieurs variantes de SQL sur le marché car chaque éditeur de SGBDR tente d’étendre le standard pour accroître l’attrait commercial de son produit

Chaque requête SQL doit obligatoirement se terminer par un Point Virgule (SGBD ACCESS)

On distingue 3 types de requêtes: Actions (Création et m.à.j), Sélections (Interrogation) et Contrôle (définir des permissions pour les utilisateurs).

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Présentation du langage SQL

108

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++, Visual basic, Pascal

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Types de données

109

INTEGER ou INT : entiers signés.

TEXT(p) ou CHAR(p) : chaîne de caractères de longueur fixe de p caractères.

VARCHAR (p): chaîne de caractères de longueur variable de p caractères maximum.

DATE, TIME, DATETIME: 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).

FLOAT : nombre réel en virgule flottante(il y a aussi Single pour simple et Double pour réel double).

CURRENCY, MONEY : Monétaire.

COUNTER : Compteur (NuméroAuto).

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Types de données

110

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

UNIQUE : permet de vérifier que la valeur saisie pour un champ n'existe pas déjà dans la table.

CONSTRAINT : permet de donner un nom à une contrainte ce qui permet de la manipuler (Exemple effacement).

ENCG Kénitra**Gestion des bases de données

18-déc.-15

111

Conventions

Les conventions relatives aux noms des tables et des champs varient

quelque peu d'un SGBD à l'autre:

Le nombre de caractères ne doit pas être trop grand (64 dans Access, 18 à 30 dans d'autres SGBD) ;

Seuls les lettres, les chiffres et le caractère de soulignement sont

autorisés.

Access admet les caractères accentués. Il admet aussi l'espace, mais le

nom du champ doit être écrit entre crochets ;

Certains SGBD requièrent que le nom d'un champ commence par une lettre, mais ce n'est pas le cas d'Access ;

Les termes faisant partie du vocabulaire du langage SQL sont interdits ("date » par exemple). Ce sont les mots réservés.

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Requêtes d’action

112

Requêtes d’actions: Sont des requêtes qui permettent de créer des tables, d’ajouter, de supprimer des enregistrements d’une table, d’ajouter une colonne… 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.

L’instruction CREATE TABLE permet de créer une nouvelle table.

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Création de table

113

Syntaxe SQL pour créer une nouvelle table avec une clé primaire :

CREATE TABLE Nom_table (champ1 type [CONSTRAINT nom_contrainte] PRIMARY KEY, champ2 type [NOT NULL],

…, champN type [NOT NULL]); Syntaxe SQL pour créer une nouvelle table avec une clé primaire composée :

CREATE TABLE Nom_table (champ1 type [NOT NULL],

champ2 type [NOT NULL], …, champN type, [CONSTRAINT

nom_contrainte] PRIMARY KEY (champ1, champ2,…) );

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Création de table: Exemples

114

CREATE TABLE Client (email VARCHAR (50) NOT NULL, nom VARCHAR (20) NOT NULL, prenom VARCHAR (20), motDePasse VARCHAR (60) NOT NULL, anneeNaiss DECIMAL (4))

CREATE TABLE Cinéma (nom VARCHAR (50) NOT NULL, adresse VARCHAR (50) DEFAULT ’Inconnue’)

CREATE TABLE ETUDIANT(ID INTEGER CONSTRAINT

Contrainte_ID PRIMARY KEY, NOM TEXT(15), PRENOM

TEXT(15), AGE INTEGER CONSTRAINT Contrainte_AGE

CHECK(age< 35), BOURSIER

LOGICAL);

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Création de table: Exemples

115

Donnez une requête SQL permettant de créer la table

EMPLOYES ( Nemployé: entier, Nom: texte(25), Prénom:

texte(20), Fonction: texte(15), Adresse: texte(50), Codeville:

entier long)

CREATE TABLE EMPLOYES ( Nemployé INTEGER

CONSTRAINT nom_index PRIMARY KEY, Nom TEXT(25),

Prénom TEXT(20), Fonction TEXT(15), Adresse TEXT(50), Codeville LONG ) ;

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Création d’une table

116

Créez une requête SQL permettant de créer la table DETAILS ( Ncommande: entier, Réf: texte(30), Pu:

monétaire non nul, Quantité: entier non nul, Remise: réel simple );

CREATE TABLE DETAILS ( Ncommande Integer, Réf

Char(30), Pu Currency NOT NULL, Quantité Integer NOT

NULL, Remise Single, CONSTRAINT nom_index PRIMARY KEY ( Ncommande, Réf ) ) ;

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Création d’une table: Clé étrangère

117

Créez une requête SQL permettant de créer la table Participe( Numadh: entier, Numact: entier, AnneeParticipe:

entier);

Numadh est la clé primaire de la table Adherent et Numact est la clé primaire de la table Activite.

CREATE TABLE Participe( Numadh integer, Numact

integer, anneeParticipe integer, Primary key (Numadh,

Numact, AnneeParticipe),

Foreign key (Numadh) references Adherent(Numadh),

Foreign Key (Numact) references Activite(Numact));

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Modification dans une table

118

L’instruction ALTER TABLE permet d’ajouter ou de supprimer un seul champ à une table.

Elle permet aussi la création et la suppression des liens entre les tables d’une base de données.

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Modification dans une table

119

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

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Modification dans une table

120

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.

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Modification dans une table

121

Exemples d’ajout :

Ajouter une colonne « AGE » (entier) dans la table « CLIENT » :

ALTER TABLE CLIENT

ADD AGE INTEGER;

Ou ALTER TABLE CLIENT ADD Column AGE INTEGER;

Ajouter une colonne « DATECOMPTE »(date) dans la table « COMPTE » :

ALTER TABLE COMPTE ADD DATECOMPTE DATE;

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Modification dans une table

122

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;

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Modification dans une table

123

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;

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Modification dans une table

124

Créez une requête SQL permettant de créer la table

VILLES ( Codeville: NuméroAuto, Ville: texte(20))

CREATE TABLE VILLES ( Codeville Counter

CONSTRAINT nom_index PRIMARY KEY, Ville

Text(20) ) ;

Modifiez la table EMPLOYES en déclarant le champ " CodeVille" comme clé étrangère, puis créez un lien nommé lien_ville sur le champ CodeVille, en précisant que le côté 1 du lien est le champ CodeVille de la table VILLES

ENCG Kénitra**Gestion des bases de données

18-déc.-15

125

Modification dans une table

ALTER TABLE EMPLOYES ADD CONSTRAINT Lien_ville FOREIGN KEY (CodeVille) REFERENCES VILLES (CodeVille);

Supprimer le lien nommé lien_ville existant entre la table EMPLOYES et la table VILLES selon le

champ Codeville

ALTER TABLE EMPLOYES DROP CONSTRAINT Lien_ville;

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Suppression d’une table

126

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

ENCG Kénitra**Gestion des bases de données

18-déc.-15

127

Suppression d’une table

La clause CASCADE CONSTRAINS pour supprimer toutes les contraintes d’intégrités référentielles qui réfèrent à la relation supprimée. Exemple :

DROP TABLE COMPTE CASCADE CONSTRAINS ;

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Insertion d’enregistrements

128

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 [(champ1, champ2, …)] VALUES (valeur1, valeur2, …) ;

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.

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Insertion d’enregistrements

129

Exemple:

Créez une requête permettant d’ajouter l’enregistrement suivant dans la

table EMPLOYES: (100, BEN AZOUZ, Aziz, Ingénieur, 90050)

La table EMPLOYES ( Nemployé , Nom, Prénom, Fonction, Adresse,

Codeville)

INSERT INTO EMPLOYES (Nemployé, Nom, Prénom, Fonction, Codeville)

VALUES (100, "BEN AZOUZ", "Aziz", "Ingénieur", 90050) ;

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Modification d’un enregistrement

130

L’instruction UPDATE permet la mise à jour d’une table;

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

Syntaxe :

UPDATE table SET nouvelles valeurs WHERE critères

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Modification d’un enregistrement

131

Les champs à mettre à jour doivent être écrits dans la

clause SET, l’un après l’autre (avec leurs valeurs) et séparés par des virgules. Les champs non spécifiés après la clause SET ne seront pas modifiés.

Si la clause WHERE est absente, tous les enregistrements de la table seront affectées.

ENCG Kénitra**Gestion des bases de données

18-déc.-15

Modification d’un enregistrement

132

Exemples :

Donner une requête SQL pour modifier l’adresse de l'employé numéro 10

par la nouvelle adresse sera "10 Avenue Mohamed VI, Rabat".