Cours complet Base de donne Bac

28
1er Partie: Introduction aux bases de données: Chapitre1 : NOTION DE BASE DE DONNEES Synthèse du cours: Notion de données et d'information: Donnée : Renseignement que l’on obtient sur quel qu’un ou sur quelque chose. Information : L’information est représentée par des données, qui doivent être interprétées et corrélées pour fournir de l’information. Par exemple : - "12/02/2000" et "Radès" - si ces données sont utilisées comme réponse à la question “quand et où se passe le match, alors ces données sont utilisées pour produire de l’information Eléments Constituant une information : a. Persistance Î mémorisation et disponibilité b. Organisation : - Papier - Fichier (file) : Les données sont stockées sous forme de fichier. Chaque application de traitement de données utilise un format de fichier de données qui lui est spécifique. Afin de remédier a l'insuffisance et à la limite d'utilisation des deux méthodes d'organisation, des recherches ont abouti au concept de base de données. Notion de base de données: Une base de données (BD) est un ensemble de données structuré exhaustive, persistante et non redondante. Cet ensemble structuré peut modéliser un univers réel composé d'objets inter-liés qui peut être utilisé simultanément par plusieurs utilisateurs (centralisation) et programmes (indépendance) grâce aux fonctions offertes par un composant logiciel appelé système de gestion de bases de données (SGBD).

Transcript of Cours complet Base de donne Bac

Page 1: Cours complet Base de donne Bac

1er Partie: Introduction aux bases de données:

Chapitre1 : NOTION DE BASE DE DONNEES

Synthèse du cours: • Notion de données et d'information:

Donnée: Renseignement que l’on obtient sur quel qu’un ou sur quelque chose. Information: L’information est représentée par des données, qui doivent être interprétées et corrélées pour fournir de l’information. Par exemple :

- "12/02/2000" et "Radès" - si ces données sont utilisées comme réponse à la question “quand et où se

passe le match, alors ces données sont utilisées pour produire de l’information

Eléments Constituant une information : a. Persistance mémorisation et disponibilité b. Organisation :

- Papier - Fichier (file) : Les données sont stockées sous forme de

fichier. Chaque application de traitement de données utilise un format de fichier de données qui lui est spécifique.

Afin de remédier a l'insuffisance et à la limite d'utilisation des deux méthodes d'organisation, des recherches ont abouti au concept de base de données.

• Notion de base de données: Une base de données (BD) est un ensemble de données structuré exhaustive, persistante et non redondante. Cet ensemble structuré peut modéliser un univers réel composé d'objets inter-liés qui peut être utilisé simultanément par plusieurs utilisateurs (centralisation) et programmes (indépendance) grâce aux fonctions offertes par un composant logiciel appelé système de gestion de bases de données (SGBD).

Page 2: Cours complet Base de donne Bac

Chapitre 2

Notion de Système de Gestion de Bases de Données

• Système de Gestion de Bases de données (SGBD) Un logiciel qui permet d'interagir avec une base de données s'appelle un système de gestion de base de données (S.G.B.D.). Les premiers SGBD (hiérarchique et réseau) étaient étroitement liés à la représentation physique des données. Il y a eu ensuite le modèle relationnel qui a permis de créer une indépendance entre la description des données et les structures permettant de les stocker en mémoire secondaire. • SGBD et système Fichier Les SGBDs disposent d’outils qui permettent de gérer un accès simultané ou partagé aux données par plusieurs Utilisateurs

- Pas de redondance - Facilité de mise à jour

Système simple de fichiers permettent un accès exclusif

Nécessité de dupliquer les données, ce qui entraînant des problèmes de redondance et d’inconsistance

Page 3: Cours complet Base de donne Bac

4MTINFBDRC001  Page 3 

• Fonctions d'un SGBD Un SGBD doit permettre de :

√ Décrire les données qui seront stockées, √ Manipuler ces données (ajouter, modifier, supprimer des

informations), √ Obtenir des renseignements à partir de ces données (sélectionner, trier,

calculer, etc.), √ Définir des contraintes d'intégrités sur les données (contraintes de

domaines, d'existence, etc.), √ Définir des protections d'accès (mots de passe, autorisations, etc.), √ Résoudre les problèmes d'accès multiples aux données (blocages, inter

édures de reprise en cas d'incident (sauvegardes, journaux, etc.).

d'écrire des applications

(codage, ordre dans lequel les données sont pport

'enregistrement, etc.).

blocages), √ Prévoir des proc

√ De plus, un SGBD doit permettre

indépendantes de l'implantation √ Exemple de SGBD relationnel: √ physique des données

enregistrées, suD

Page 4: Cours complet Base de donne Bac

4MTINFBDRC001  Page 4 

2ème Partie: Création de Base de Données: Chapitre 3

Structure d'une Bases de Données Relationnelle

• Notion de base de données relationnelle: Une base de données relationnelle est composée d'un ensemble de table. Chaque table décrit alors une partie de l'univers concerné. • Notion de Table:

Une table est une structure regroupant un ensemble de données relatives à un même sujet. Elle se présente sous forme de tableau où chaque colonne correspond à une propriété relative au sujet, et chaque ligne correspond à une occurrence du sujet.

Exemple la table élève est décrit par :

ELEVE N° Prénom Nom Date de Naissance classe

COLONNES

LIGNES 1 Maha Ben Ahmed 12/11/1984 4 SI 2 Ramzi Ben Amor 17/03/1985 4 EG 3 Dora Mokhtar 22/06/1985 4 M

• Notion de clé primaire Chaque table doit avoir une clé qui permet d’identifier de façon unique chacune de ses lignes. La clé (dite primaire) est définit par un ou plusieurs colonnes. Pour distinguer une colonne qui fait partie de la clé primaire des autres olonnes, on la c souligne.

• Liens entre table Pour que la base de données constitue une représentation fidèle du domaine concerné les liens entres sujets du monde réel doivent se retrouver dans la base de données. Un lien entre deux table A et B est représenté par l’ajout dans la table B d’une nouvelle colonne correspondant à la clé primaire de la table A. Cette nouvelle colonne est appelée clé étrangère. Ainsi pour connaître le lycée de chaque élève il faut par exemple ajouter l’attribut code lycée (clé primaire) de la table lycée à la table élève.

Page 5: Cours complet Base de donne Bac

4MTINFBDRC001  Page 5 

Pour distinguer une colonne qui fait partie d’une clé étrangère des autres colonnes, on la fait suivre d’une #

• Notion de contrainte d’intégrité Les contraintes de domaines : Elles permettent de fixer le caractère

obligatoire ou pas d’une colonne et les règles de validité des valeurs qui peuvent être prises par cette colonne.

Les contraintes d’intégrité de tables : Elles permettent s’assurer que chaque table à une clé primaire.

Les contraintes d’intégrité référentielles : Elles permettent de s’assurer que les valeurs introduites dans une colonne figurent dans une autre colonne en tant que clé primaire. • Représentation de la structure d’une base de données

Représentation textuelle: Nom_table (clé_primaire, colone1, colonne2, …, clé_etrangère#)

Représentation graphique:

Nom Table clé_primaire colone1

nne2 colo … Clé_étrangère#

Page 6: Cours complet Base de donne Bac

4MTINF

ChaDS

Nous pd'une b

1. DI

2. DIcq

Les

Pour écolonn

FBDRC001

apitrDéma

tructproposonsbase de doDélimiterIdentifier DéterminIl s’agit constituerqui se rapps règles su

• Uneélém

• Uneou d

• Desune

élaborer lnes suivan

re 4

archeture ds les étapeonnées: r le ou le(sle ou les d

ner les colde dédui

ront la basporte à unuivantes de colonne mentaire (e colonne dérivée à ps colonnese seule colla liste de nt:

e de Dd'unes d'une dé

s) domaindomaines lonnes ou ire à parse de donn sujet du mdoivent êtdoit repré

(non décomne doit papartir d’aus similairelonne. colonnes

Détere Basémarche p

ne(s) concqui constiles cham

rtir de l'énnées. Chamonde réetre respecésenter unmposable)as corresputres colones ne doive

, on peut

rminase deermettant

cerné(s) :ituent l’ob

mps: énoncé laaque colonel. ctées : e informa). ondre à unnnes. ent pas êtr

utiliser le

atione Dode déterm

bjet de la b

a liste denne est un

ation sous

ne inform

re présente

e tableau

n de lnnée

miner la st

base de do

es colonnn fait (pro

sa forme

ation calcu

es. Il faut

liste des

la es tructure

onnées.

nes qui opriété)

ulée

garder

Page 6 

Page 7: Cours complet Base de donne Bac

4MTINF

3. DIdC

4. A

Pc

5. DOddDcp

6. DLf

FBDRC001

DéterminIl s’agit ddonnées. Cette liste

Affecter lPour s’asscompte de

• Uneexcétra

• Si ltablmêmdantabl

DéterminOn doit dd’identifiedont la vaDans la pcolonne, plusieurs cDéterminLa détermfaçons :

ner les tabde déterm

Chaque e peut être

les colonnsurer qu’ues règles se colonne eption éc

angères. la présencle entraîneme valeur

ns la mauvle dans laqner les clééterminer er les autraleur est unplupart dmais dancolonnes.

ner les lienmination de

• Il existcolonndans ceétrangèles tabl

• D’aprèrepréseexiste ules deu

bles: miner la lis

table coreprésent

nes aux taune colonnuivantes :doit être

chappe à

e d’une ce que plusr pour cettvaise tablequelle cetts primairparmi les

res colonnnique danses cas, us certainsOn parle

ns entre tes liens en

te dans unne a dans uette table. ère dans lales A et Bès la descrentés par dun lien en

ux tables, n

ste des tabrrespond tée aussi s

ables : ne est affe affectée àcette règ

olonne, qusieurs lignte colonnee. Il convte anomalires: s colonnesnes de façs chaque l

une clé prs cas, ellealors de cables :

ntre les tab

ne table B uune autre tCeci veut

a table B. Upour relieiption dondeux tabletre les deunous devo

bles qui và un su

ous forme

ectée à la

à une et ugle, c’est

ui n’est pes de cettee, c’est quvient doncie ne se re

s d'une tabon uniqueligne. rimaire ee peut êtrlé compos

bles peut ê

une colonntable A et t dire que Un lien do

er les colonnt nous dises, nous avux sujets. Pons d’abor

vont constujet de de du tablea

bonne tab

une seule t celle re

as clé étrae dernièreue cette coc de l’affeeproduira p

ble celle(se, c'est-à-d

st compore composée.

être effectu

ne b qui cqui est unla colonneoit être donnes a et bsposons suvons pu déPour établ

rd identifie

tituer la bdomaine au suivant

base de étudié.

t:

ble, on dooit tenir

table. Unelative au

ne seule ux clés

angère, dae vont conolonne seecter à unpas.

ans une ntenir la trouve

ne autre

s) qui permdire les co

osée d’uneosée de de

mettent olonnes

e seule eux ou

uée de deuux

correspondne clé prime b est une

onc établi eb.

d à une maire e clé entre

ur les sujeéduire qu’lir ce lien er la table

ts il entre

Page 7 

Page 8: Cours complet Base de donne Bac

4MTINFBDRC001  Page 8 

« mère » et la table « fille ». Nous utilisons le tableau suivant pour décrire ces liens :

Table mère Table fille Clé primaire Clé étrangère

7. Analyser et affiner la structure de la base de données :

Lorsqu’on a identifié la structure de toutes les tables et établi les liens entre ces tables, il convient de faire une représentation graphique de la base de données afin de l’analyser et de détecter les anomalies éventuelles. Il pourrait s’agir d’un oubli de colonnes ou de liens entre tables. Lorsque les corrections éventuelles auront été apportées à la structure de la base, nous devons utiliser le SGBD pour créer les différentes tables.

Page 9: Cours complet Base de donne Bac

4MTINFBDRC001  Page 1 

Création et Modification de la Structure d'une Base de Données

SGBD : Système de gestion de bases de données Outil pour Créer, saisir, stocker, consulter, modifier ou supprimer des données. Exemple : MS Access, Mysql, Oracle, Sybase, …

• MS Access peu coûteux (licence éducation), l'interface simple facile à maîtriser rencontré partout, On va l'utiliser pour les manipulations en mode Assisté.

• MySQL très adapté à des interfaces Web, beaucoup utilisé – gratuit on va l'utiliser pour les manipulations en Mode Commande.

• Oracle et Sybase = gros système, très performant, beaucoup plus professionnel.

I. Création & Modification Mode Assisté Les Composants d'une base de données ACCESS La fenêtre Base de Données contient tous les « objets » qui peuvent composer une base Access, classés par catégorie : - Tables, - Requêtes, - Formulaires, - États, - Macros, - Modules - Pages. Pour accéder à un objet, il faut cliquer sur le bouton correspondant à sa catégorie. 1. Création de la table Dans la fenêtre Base de données choisir l'onglet table puis le bouton Nouveau... Vous avez le choix entre poursuivre avec l'aide de l'assistant ou créer manuellement la table. Plaçons-nous dans ce dernier cas:

Page 10: Cours complet Base de donne Bac

4MTINFBDRC001  Page 2 

Chaque ligne de ce tableau contient les informations de chaque champ :

- Le nom du champ de la table (de 1 à 64 caractères) - Le type de données (voir plus bas) à choisir parmi 9 types proposés par Access - La description du champ (255 caractères maximum) Les champs Pour définir un champ il faut préciser son nom, son type, sa description et ses propriétés. • Nom de champ Les noms des champs doivent être suffisamment clairs pour identifier les données, il est cependant conseillé de définir des noms brefs, faciles à mémoriser et à taper (éviter, si possible, le caractère espace). • Type de champ Texte Caractère (255) Numérique Nombres entiers ou décimaux Date / heure Dates / heures Monétaire Valeurs monétaires Compteur Incrément automatique à chaque nouvel enregistrement Oui/ Non Valeur booléenne NuméroAuto Numéro séquentiel unique (incrémenté de 1en 1) Mémo Caractère (65000) Liaison OLE Objets OLE, graphiques Assistant Liste de choix Crée un champ qui vous permet de choisir une valeur à partir

d'une autre table ou d'une liste de valeurs à l'aide d'une zone de

Page 11: Cours complet Base de donne Bac

4MTINFBDRC001  Page 3 

liste ou d'une zone de liste modifiable. Propriétés des champs (variables selon le type de données) : • Taille

Limite la taille d'un champ texte ou la valeurs d'un champ numérique. • Format

Permet d'afficher l'information selon la présentation choisie (majuscule, dates en chiffres ou en lettres,..)

• Masque de saisie Contrôle intervenant au moment de la saisie, il peut être créé avec l'aide du générateur de masque de saisie.

• Décimales Nombres de chiffres après la virgule, pour champs numériques et monétaires.

• Légende Texte remplaçant le nom du champ dans les formulaires ou les états.

• Valeur par défaut Valeur qui apparaît automatiquement dans le champ à chaque nouvel enregistrement, cette valeur peut être modifiée lors de la saisie.

• Valide si Condition qui doit être satisfaite pour qu'Access accepte la valeur saisie dans le champ.

• Message si erreur Message qui s'affiche si la propriété Valide si, n'est pas satisfaite.

• Null interdit Si la propriété est Oui, la saisie de ce champ est obligatoire.

• Chaîne vide autorisée « » Si la propriété est Oui, on peut saisir des guillemets doubles et ainsi faire la différence entre information non connue et information absente. • Indexé

L’utilisation d’un index accélère les opérations de consultation, mais ralentit celles de mises à jour car il y a création de l’index.

Clé primaire Lorsque la liste des champs est terminée ne pas oublier de définir la clé primaire

- cliquer sur le premier champ de la clé puis éventuellement sur les autres avec la touche Ctrl enfoncée, - cliquer sur le bouton « clé » ( ) ou choisir les commandes Edition puis Clé primaire.

Attention, Si vous n'avez pas créé de clé primaire le système peut en créer une, de type compteur, lors de la sauvegarde de la table. Sauvegarde, nom de table

Page 12: Cours complet Base de donne Bac

4MTINFBDRC001  Page 4 

Le nom de la table est donné lors du premier enregistrement à l'aide des commandes Fichier puis Enregistrer ou Fichier puis Enregistrer sous.

2. Modification de la structure d'une Table: Pour modifier la structure d'une table, dans la fenêtre Base de données choisir l'onglet «table» puis le bouton «Modifier». Tous les objets associés à la table doivent être fermés. Attention : avant toute modification de structure de la table, mesurez les conséquences sur les données existantes. 3. Construire une table par importation du fichier EXCEL : - Sélectionnez le menu Fichier, Données externes, importer… - Dans la boîte de dialogue « Importer », sélectionnez dans la liste «

Microsoft Excel » comme type de fichier. - Sélectionnez le fichier.XLS a importer qui se trouve dans le répertoire des

données. - Cliquez sur le bouton « Importer ». - La 1ère page de l’assistant vous propose de sélectionner la feuille du

fichier Excel - Ensuite cliquez sur le bouton « Suivant ». - Indiquez dans la 2ème page si votre feuille contient ou pas un en-tête des

colonnes, qui sera utilisé pour établir les noms des champs.

- Dans la 3ème page, sélectionnez l’option « Dans une nouvelle table », puis cliquez « Suivant ».

- l’assistant vous donne la possibilité de préciser le nom du champs, indexé ou non, cliquez sur le bouton « Suivant ».

- Dans cette étape, sélectionnez l’option « Pas de clé primaire ». En effet, vous ne pouvez ici choisir qu’un seul attribut comme clé primaire. Nous la définirons plus tard. Cliquez sur le bouton« Suivant ».

- Dans la dernière étape vous devez spécifier le nom de votre nouvelle table. Cliquez sur le bouton « Terminer » pour créer votre table.

4. Etablir les liens entre les tables: - Dans la fenêtre Base Données Cliquer sur la commande relation du Menu

outils. - Ajouter les tables objets de la relation - Dans la table fille cliquer sur la clé étrangère. - Maintins la bouton de la souris enfoncé - Glisser, puis déposer vers la table mère

Page 13: Cours complet Base de donne Bac

4MTINFBDRC001  Page 5 

- Dans la boite de dialogue Modifier une Relation cocher les cases nécessaires: Cocher les options affichées en fonction du comportement que vous souhaitez appliquer à ce lien.

• Appliquer l’intégrité référentielle : Signifie que lorsqu’on insère une ligne dans la table fille, le SGBD vérifie que la valeur saisie dans la colonne clé étrangère existe dans la colonne clé primaire de la table mère. Dans notre exemple, il s’agit de vérifier qu’une commande est relative à un client qui existe dans la table Client.

• Mettre à jour en cascade les champs correspondants : Cette option permet de modifier automatiquement la valeur de la clé étrangère dans la table fille lorsqu’on modifie la valeur de la clé primaire dans la table mère. Par exemple, si on modifie le code d’un client dans la table Client, ce code sera modifié dans toutes les lignes de la table Commande correspondant aux commandes de ce client.

• Effacer en cascade les enregistrements correspondants : Cette option permet de supprimer automatiquement toutes les lignes dans la table fille correspondant à une ligne supprimée dans la table mère. Par exemple, si on supprime un client dans la table Client, toutes les lignes de la table Commande correspondant aux commandes de ce client seront supprimées.

- Cliquer sur le bouton créer.

Remarque:

Lorsque la colonne à supprimer est une clé primaire référencée dans une autre table comme clé étrangère, sa suppression ne peut se faire qu’après la suppression du lien entre les deux tables.

II. Création & Modification Mode Commande: Le mode commande consiste à créer les différentes structures de la base de données à l'aide de commande du langage SQL (Structured Query Language): En particulier, SQL permet de

Définir des données (CREATE, ALTER, DROP,…) Interroger / Manipuler (SELECT, INSERT, UPDATE, DELETE,…) Contrôler les accès (GRANT, REVOKE)

La plupart des SGBD disposent d'un éditeur SQL qui nous permet d'exécuter les commande (souvent appelé requêtes) SQL. Pour cela nous allons utilisé l'éditeur MYSQL pour tout les manipulations en mode commande.

Page 14: Cours complet Base de donne Bac

4MTINFBDRC001  Page 6 

Présentation de MYSQL: MySQL est un serveur de bases de données SQL Open Source. - Avec MySQL vous pouvez créer plusieurs bases de données sur un

serveur. - Un outil libre et gratuit : phpMyAdmin permet l’administration aisée des

bases de données MySQL avec PHP. 1. La création de table : CREATE TABLE nom_table (colonne1 Type [Contrainte colonne*],

colonne2 Type [Contrainte colonne],…

colonne Type [Contrainte colonne],

[Contrainte de table**], …);

Pour une utilisation optimale de la base, il convient de définir des contraintes: Il existe des contraintes :

*Sur une colonne : la contrainte porte sur une seule colonne. Elle suit la définition de la colonne dans un ordre CREATE TABLE (pas possible dans un ordre ALTER TABLE). Les contraintes d’intégrité et de domaine

NOT NULL l’ensemble vide est interdit pour cette valeur PRIMARY KEY détermine la clé primaire (donc unicité de la valeur) DEFAULT attribue une valeur par défaut CHECK donne une condition que les colonnes de chaque ligne devront vérifier. REFERENCES Définit une contrainte d'intégrité référentielle **Sur une table : la contrainte porte sur une ou plusieurs colonnes. Chaque

contrainte doit être nommée : CONSTRAINT nom-contrainte définition-contrainte Le nom d'une contrainte doit être unique parmi toutes les contraintes de toutes

les tables de la base de données. Exemple: Contrainte de clé étrangère Pour une contrainte sur une table : FOREIGN KEY (colonne1, colonne2,...) REFERENCES table_mère [(les_colonnes_clé_primaire)] [ON DELETE CASCADE] Pour une contrainte sur une colonne : REFERENCES table_mère [(la_colonne_clé_primaire )] [ON DELETE CASCADE] L'option:

Page 15: Cours complet Base de donne Bac

4MTINFBDRC001  Page 7 

ON DELETE CASCADE indique que la suppression d'une ligne de table_mère va entraîner automatiquement la suppression des lignes qui la référencent dans la table fille.

ON UPDATE CASCADE modifie la clé étrangère si on modifie la clé primaire Les types: int (taille_max) Entier (sur 4 octets, de -2.147.483.648 à 2.147.483.647). DECIMAL (p, d ) Correspond à des nombres décimaux qui ont p chiffres significatifs

et d chiffres après la virgule CHAR (longueur) La déclaration de type chaîne de caractères de longueur constante VARCHAR (longueur) les colonnes qui contiennent des chaînes de longueurs variables. Date réserve 2 chiffres pour le mois et le jour et 4 pour l'année :

(YYYY-MM-DD) 2. Modification de la structure d'une table Ajout d’une colonne: ALTER TABLE Nom_Table ADD définition_colonne ; Modification d’une colonne ALTER TABLE Nom_Table MODIFY nouvelledéfinition_colonne ; Ajout de contrainte ALTER TABLE Nom_Table ADD CONSTRAINT Nom_Contrainte Définition_Contrainte; Ajout de contrainte de Domaine ALTER TABLE Nom_Table ADD CONSTRAINT Nom_Contrainte CHECK (condition); Suppression:

D’une colonne : ALTER TABLE Nom_Table DROP colonne ; Il faut noter que la suppression n'est possible que dans le cas où : L’attribut n'est pas l'objet d'une contrainte d'intégrité. D'une contrainte : ALTER TABLE Nom_Table DROP CONSTRAINT Nom_Contrainte;

3. Suppression d’une table DROP TABLE Nom_table ;

Page 16: Cours complet Base de donne Bac

4MTINFBDRC001  Page 8 

Résumé

Vous avez appris dans ce chapitre comment créer et modifier les différentes structures d’une base de données. Pour réaliser cette tâche, deux modes sont possibles : mode assisté et mode commande

Le mode assisté est spécifique à chaque SGBD. A travers une interface graphique conviviale, l’utilisateur peut créer et modifier les différentes composantes d’une base de données en remplissant certains champs, en cochant d’autres et en effectuant des choix dans des listes déroulantes

Le mode commande a comme principal avantage l’indépendance par rapport au SGBD. La forme générale des trois commandes permettant de créer et de modifier la structure d’une base de données (CREATE, ALTER et DROP) est la même dans tous les SGBD qui utilisent SQL

Page 17: Cours complet Base de donne Bac

4MTINFBDRC001  Page 1 

3ème Partie: Manipulation de Base de Données:

Manipulation d'une Base de Données

Nous allons s'intéresser à quatre types d'opérations: • L'insertion • La modification • La suppression • La recherche de données (Requête)

I. Manipulation de données en Mode Assisté: 1/Mise à jour des données: Les attributs d’un enregistrement peuvent être renseignés par saisie au clavier en ouvrant la table en mode Feuille de données (double clique sur la table). Chaque

ligne correspond à un enregistrement. En bas de la fenêtre de saisie, une barre indique le numéro de l’enregistrement sur lequel on est positionné.

Des boutons de navigation permettent de se déplacer d’une ligne à l’autre ou de créer une nouvelle ligne :

Les opérations de Mise à jour

Page 18: Cours complet Base de donne Bac

4MTINFBDRC001  Page 2 

Pour supprimer un enregistrement, on sélectionne la ligne correspondance (clique à gauche de la ligne) et on utilise la touche SUP du clavier. Selon les propriétés du champ, des contrôles peuvent être effectués lors de la saisie. En particulier : - deux enregistrements ne peuvent pas avoir la même clé primaire - un élément d’une clé primaire ne peut avoir une valeur nulle D’autres propriétés permettent : - la saisie automatique de l’attribut (champs auto numériques) - la saisie par choix des valeurs dans une liste de valeurs possibles - l’initialisation automatique de la valeur d’un champ lors de l’ajout d’un nouvel enregistrement La saisie d’un champ est validée par déplacement du curseur sur une autre cellule. 2/Recherche des données: • Tri, Filtre et Recherche:

MS ACCESS offre des outils simples permettant de retrouver ou de réorganiser des enregistrements selon des critères choisis. Les outils présentés ici sont le tri, la recherche et le filtrage. Ces 3 fonctions sont disponibles lorsque la table est ouverte en mode Feuille de données. Elles sont accessibles depuis la barre d’outils : Pour appliquer un Tri ou un Filtre sur la Table il suffit de sélectionner une donnée de la table puis cliquer sur l'un des boutons de la barre ci-dessus. • Requête:

A la différence des filtres, les requêtes (de sélection par défaut) peuvent être enregistrées et exécutées à tout moment : lorsque vous exécutez une requête,

Page 19: Cours complet Base de donne Bac

4MTINFBDRC001  Page 3 

Access sélectionne automatiquement les enregistrements de la table source de la requête répondant aux critères posés. - Définir les champs que vous souhaitez afficher lors de l'exécution de la requête - Insérer des champs calculés qui reposent sur des champs issus de la ou les tables sources de la requête. - Poser des critères portant sur des champs issus de plusieurs tables, mises en relation les unes avec les autres. CREATION D’UNE REQUETE 1. Placez-vous dans la fenêtre "Base de Données" 2. Cliquez sur l'onglet "Requêtes" 3. Sélectionner la ou les tables sur lesquelles vous souhaitez poser des critères de sélection. 4. Sélectionner les champs à afficher et Posez vos critères dans la grille de la requête.

5. Exécutez la requête à l'aide de

Champ sélectionné dans la requête Cochée si le champ entre dans la Clause SELECT Saisir condition de sélection

La ligne "Critères" indique le critère à appliquer sur le champ de la colonne correspondante. Conditions

• EXPR opérateur de comparaison EXPR EXPR : constante, nom de colonne ou une combinaison des deux reliés par des Opérateurs arithmétiques : {+, -, *, /} Opérateur de comparaison : { =, <>, >, <, >=, <= }

• EXPR [NOT] BETWEEN EXPR AND EXPR

Page 20: Cours complet Base de donne Bac

4MTINFBDRC001  Page 4 

Permet de sélectionner les enregistrements dont la valeur d’un champ est comprise entre deux valeurs.

• EXPR [NOT] IN (liste de valeurs) Permet de sélectionner les enregistrements dont la valeur d’un champ fait partie (ou non) d’une liste de valeurs.

• Nom colonne [NOT] LIKE Chaîne La clause LIKE permet de faire des recherches approximatives sur le contenu d'un champ. Des symboles « joker » peuvent être utilisés pour rendre la recherche plus large.

• Nom colonne IS [NOT] NULL Permet d’utiliser comme critère de recherché le fait qu’un champ n’est pas de valeur (IS NULL) ou le contraire (IS NOT NULL) Opérateurs logiques Il est possible de combiner plusieurs conditions avec des opérateurs logiques : AND et OR Fonctions d’agrégat: Ces fonctions réalisent un calcul sur un groupement d'enregistrements satisfaisant la condition de la requête: En mode création, les fonctions d’agrégat doivent être saisies dans la ligne

Opération qui apparaît en cliquant sur l’icône située dans la barre d’outils.

Nom des opérations

Description

Page 21: Cours complet Base de donne Bac

4MTINFBDRC001  Page 5 

Les Alias:

Regroupement Regrouper sur le champ. Somme SUM () donne la somme des valeurs d'un champ Moyenne AVG () donne la moyenne des valeurs d'un champ Min MIN () donne la valeur la plus petite d'un champ Max MAX () donne la valeur la plus élevée d'un champ pour Compte COUNT (*) Renvoie le nombre d'enregistrements

satisfaisant la requête … Expression Entrer ses propres formules ou champs calculs pour un

regroupement. Où Entrer des critères sans qu'ils soient pris en considération

pour le regroupement.

Il est possible de redéfinir les noms des champs surtout s'il s'agit d'un champ qui contient une expression de calcul. Dans l’assistant de requête, l’alias d’un champ (ou d’une expression) est spécifié dans la ligne Champ par le nom de l’alias, suivi de : et du nom du champ. II. Manipulation de données en Mode Commande: Recherche des données

syntaxe minimale est : SELECT <liste des colonnes> From <liste des noms des tables>; Nous verrons qu'elle peut être enrichie, de très nombreuses clauses permettant notamment d'exprimer les projections, les restrictions, les jointures, les tris, les groupements, etc Les projections : La projection d'une table en vue de l'obtention d'un ensemble de colonnes de

cette table se fait simplement en spécifiant les noms des colonnes désirées. SELECT [ALL] | [DISTINCT] <liste des colonnes> | * FROM <la table> ; *: Toutes les colonnes d'une table. DISTINCT: N'affiche qu'un exemplaire de chaque jeu de lignes identiques. Exemple : Soit la table suivante:

Joueur

La recherche des données se fait exclusivement par l’ordre SELECT, dont la

Page 22: Cours complet Base de donne Bac

4MTINFBDRC001  Page 6 

Num_j Nom_j Prénom_j date_naiss Code_eq122 BEN ZEKRI mohamed 12/12/1978 2123 EL MORI AHMED 11/08/1979 2124 SAMTI ALI 09/05/1977 2125 SAMTI HAIKEL 18/01/1979 2126 BEN AMOR ZIEID 04/02/1978 2127 NEFFETI ALI 17/05/1977 2128 MOULLEHI JIHED 12/08/1980 2129 MAOUI RIADH 05/05/1980 2130 MOHAMED AMOUS 01/03/1982 2131 MAKHLOUF AYMEN 07/09/1978 3132 MABROUK MOUNIR 15/03/1978 3

lister la table Joueur ? SELECT * FROM Joueur; lister les numéros et noms des Joueurs ? SELECT Num_j, Nom_J FROM Joueur ;

lister les différents numéros des équipes de joueurs ? SQL n'élimine pas les doubles à moins que ça ne soit explicitement précisé par le mot clé DISTINCT SELECT DISTINCT Code_Eq FROM Joueur;

Les Restrictions : Une restriction consiste à sélectionner les lignes satisfaisant à une condition logique effectuée sur leurs colonnes s'expriment à l'aide de la clause WHERE suivie d'une condition logique exprimée à l'aide: • d'opérateurs logiques (AND, OR, NOT), • d'opérateurs arithmétiques (+, -, *, /, %, &, |, ^, ~), • de comparateurs arithmétiques (=, <>, >, <, >=, <=), • et des predicts (NULL, IN, BETWEEN, LIKE, ALL, SOME, ANY,…). Ces opérateurs s’appliquent aux valeurs numériques, aux chaînes de caractères et aux dates. SELECT [ALL] | [DISTINCT] <liste des colonnes> | * FROM <la table> WHERE <condition> ; Exemples:

Lister les données sur Les joueurs de l'équipe 2 SELECT * FROM Joueur WHERE Code_Eq = 2 ;

Lister les Joueurs dont le nom ne commence pas par 'M' ? SELECT * FROM Joueur WHERE Nom_J NOT LIKE 'M%' '%' (ou '*')remplace n'importe quelle séquence de n caractères (n pouvant être égal à 0). Tri et présentation des résultats : SQL permet de trier les lignes obtenus par la requête selon différents critères grâce à la clause Order by. Les mots clés Asc et Desc permettent de préciser si le tri est croissant ou décroissant.

Page 23: Cours complet Base de donne Bac

4MTINFBDRC001  Page 7 

SELECT [ALL] | [DISTINCT] <liste des colonnes> | * FROM <la table> WHERE <Condition> ORDER BY <liste des colonnes de tri> [ASC|DESC]; Exemple:

Lister les nons des Joueurs classés selon la date de naissance SELECT Nom_J, date_Naiss FROM Joueur ORDER BY date_Naiss; Utilisation d’expressions et des Fonctions: Dans la clause SELECT on peut : - insérer des instructions descriptives qui seraient répétées à chaque ligne, - définir une nouvelle colonne (colonne calculée) Les expressions peuvent figurer en tant que :

Colonne résultat d’un ordre SELECT. Dans une clause WHERE. Dans une clause ORDER BY.

Exemple: Lister pour chaque joueur son âge

SELECT Nom_J, Current Date - date_naiss As Age FROM Joueur; Il est néanmoins possible de changer le nom de la colonne à l'affichage en accolant au nom de colonne choisi le prédicat AS suivi du nouveau nom de colonne devant apparaître à l'affichage. Current Date : Fonction renvoie la date du jour. Les Fonction: Des fonctions peuvent être utilisées sur chaque valeur sélectionnée d’un nuplet:

Fonctions de Dates: CURRENT DATE, DAY, MONTH, YEAR Fonctions relatives aux caractères: LEFT, RIGHT, SUBSTR, … Des fonctions peuvent manipuler un groupement de nuplets: COUNT, SUM, MIN, MAX, AVG, …

Jointure Il s’agit ici de sélectionner les données provenant de plusieurs tables ayant un ou plusieurs colonnes communes. Cette jointure sera assurée grâce aux conditions spécifiées dans : WHERE SELECT <table1.colonne1, table2.colonne2…> FROM < table1, table2… > WHERE Nom_Table1.colonnej = Nom_Table2.colonnej AND … AND <condition> ;

Page 24: Cours complet Base de donne Bac

4MTINFBDRC001  Page 8 

Exemple: On suppose que on a une autre table qui mémorise la participation des différents joueurs aux différentes matchs en voici le peuplement des deux tables :

Participation Num_j Num_match rôle durée

122 1 DEF 15123 1 Joueur ATT 90124 1 ATT 90 125 1 DEF 90126 1 AIL 90127 1 AIL 45128 1 DEF 90129 1 GRA 90129 2 GAR 45129 3 GAR 90130 1 DEF 45131 1 DEF 45132 1 DEF 45132 2 ATT 60 Colonne de jointure Lister les Nom des joueurs du match N°1

SELECT Joueur.Nom_J FROM Joueur, Participation WHERE Joueur.Num_j = Participation.Num_j /* condition de jointure*/ AND Participation.Num_match = 1; /* condition de restriction*/ Dès que deux tables sont utilisées, des ambiguïtés peuvent apparaître. Dans ce cas il faut préfixer le nom de colonne par le nom de la table concernée suivi d'un

point. Si les noms de tables qui servent de préfixes deviennent pénibles à taper, SQL offre de plus une possibilité de synonymes dans la clause FROM. Il suffit pour cela de préciser le synonyme juste après le nom de la table à l'aide du mot clé AS (facultatif) comme pour les synonymes de noms de colonne. La requête

précédente devient alors : SELECT J.Nom_J

FROM Joueur As J, Participation As P WHERE J.Num_j = P.Num_J AND P.Num_match = 1;

Auto jointure: On peut joindre une table avec une copie de celle-ci on utilisant les alias: Exemple: donner les noms des joueurs qui sont plus âgés que le joueur n° 127 SELECT J1.Nom_j

Num_j Nom_j Prénom_j date_naiss Code_eq122 BEN ZEKRI mohamed 12/12/1978 2123 EL MORI AHMED 11/08/1979 2124 ALI SAMTI 09/05/1977 2125 HAIKEL SAMTI 18/01/1979 2126 BEN AMOR ZIEID 04/02/1978 2127 NEFFETI ALI 17/05/1977 2128 MOULLEHI JIHED 12/08/1980 2129 RIADH MAOUI 05/05/1980 2130 MOHAMED AMOUS 01/03/1982 2131 MAKHLOUF AYMEN 07/09/1978 3132 MABROUK MOUNIR 15/03/1978 3

Page 25: Cours complet Base de donne Bac

4MTINFBDRC001  Page 9 

FROM joueur J1, joueur J2 WHERE ((J1.date_naiss) < J2.date_naiss) AND (J2.Num_J=127));

Groupement Il est possible de grouper des lignes de données ayant une valeur commune à l’aide de la clause GROUP BY et des fonctions de groupe (SUM, COUNT,…). SELECT colonne1, colonne2,…, FROM Nom_Table1, Nom_Table2,… WHERE Liste_Condition GROUP BY Liste_Groupe Exemples:

Si on veut chercher le nombre des joueurs par équipe : on travail sur la table Joueur

Donc le Regroupement s'effectue sur la colonne Code_Eq puis on va compter les lignes regrouper pour chaque Valeur de la colonne Code_Eq et on affiche le nombre des lignes qui correspond au nombre des Num_J. On obtient alors: SELECT Code_Eq , COUNT(Num_J) FROM Joueur GROUP BY Code_Eq;

Page 26: Cours complet Base de donne Bac

4MTINFBDRC001  Page 10 

Mise A Jour des données La mise à jours des tables en mode commande se fait à l'aide des commandes SQL suivantes: INSERT, UPDATE, DELETE Insertion d'une ligne: INSERT INTO Nom_Table [(liste colonne)] VALUES (Val1, Val2,…, Valn); INSERT permet d’insérer une nouvelle ligne dans une table. Exemple:

Insérer un nouveau joueur dans la table Joueurs: INSERT INTO Joueur ( Num_J, Nom_j, Prenom_J , Date_naiss , Code_Eq ) VALUES ( 133, 'Salhi', 'Hichem', 1999-02-08, 3); Ou bien INSERT INTO Joueur VALUES ( 133, 'Salhi', 'Hichem', 1999-02-08, 3); NB: i. un champ qui n'est pas renseigné et qui n'est pas obligatoire le SGBD lui attribut la valeur NULL. ii. C'est possible d'ajouter plusieurs lignes en même temps INSERT INTO Joueur VALUES ( 'Ben Brahim', 'Adel', 1998-04-08, 3); Remarque:

Cette commande ne peut pas être exécutée à cause de la contrainte d’intégrité PRIMARY KEY qui est violée. Les attributs constituant la clé primaire

doivent obligatoirement être présents. INSERT INTO Joueur VALUES ( 133,'Ben Brahim', 'Adel', 1998-04-08, 3); Remarque:

Cette commande ne peut pas être exécutée à cause de la contrainte d’intégrité d’unicité de la clé primaire qui n’a pas été respectée. Le code client 133 a été déjà attribué.

INSERT INTO Participation VALUES (150, 1, 'DEF', 15); Remarque:

Cette commande ne peut pas être exécutée à cause de la contrainte d’intégrité FOREIGN KEY (contrainte d'intégrité référentielle) qui est violée. En effet, le joueur ayant le code égal à 150 n’existe pas dans la table Joueur.

Page 27: Cours complet Base de donne Bac

4MTINFBDRC001  Page 11 

Modification des données d'une table: UPDATE Nom_Table SET Colonne1 = Expr1, Colonne2 = Expr2, … WHERE Condition; UPDATE permet de mettre à jour un ou plusieurs Colonnes dans un ou plusieurs lignes. La clause WHERE est facultative. Si elle est absente, toutes les lignes sont mises à jour. Exemple:

Faire passer le joueur 124 dans L'équipe 3 UPDATE Joueur SET Code_Eq = 3 WHERE Num_J = 124

Suppression des données d'une table: DELETE FROM Nom_Table WHERE Condition;

L'ordre DELETE permet de supprimer des lignes d'une table. La clause WHERE indique quelles lignes doivent être supprimées.

ATTENTION : cette clause est facultative ; si elle n'est pas précisée, TOUTES LES LIGNES DE LA TABLE SONT SUPPRIMEES. Exemple :

Supprimer les joueurs de l'équipe n°3 DELETE FROM Joueur WHERE code_Eq = 3;

Cette requête ne sera exécuter que si : • les joueurs de cette équipe n'ont pas de participation • ou bien on a définie l'option ON DELETE CASCADE au moment de la

création de la contrainte d'intégrité référentielle et dans ce cas, même les lignes de la table participation qui se réfèrent aux joueurs supprimés seront supprimé aussi.

Page 28: Cours complet Base de donne Bac

4MTINFBDRC001  Page 12 

Résumé : La manipulation d’une base de données consiste à insérer, supprimer,

modifier ou rechercher des lignes. Elle peut se faire en mode assisté ou en mode commande. Le mode assisté se fait en utilisant une interface graphique d’un SGBD alors que le mode commande consiste à écrire explicitement des commandes conformément à la syntaxe du langage SQL.

L’insertion d’une ligne, en SQL, se fait par l’intermédiaire de la commande INSERT.

La suppression de lignes, en SQL, se fait par l’intermédiaire de la commande DELETE. Elle permet de supprimer plusieurs lignes qui vérifient la condition spécifiée.

La modification de lignes, en SQL, se fait par l’intermédiaire de la commande UPDATE. Elle permet de modifier plusieurs lignes qui vérifient la condition spécifiée.

La recherche de lignes, en SQL, se fait par l’intermédiaire de commande SELECT. Elle peut consister à effectuer des opérations de projection, de sélection, de jointure ou toute combinaison de ces dernières. Le résultat peut être trié. On parle de Projection si la recherche est relative à un sous ensemble de colonnes d’une table. On parle de Sélection si la recherche est relative à un sous ensemble de

lignes d’une table vérifiant une certaine condition. On parle de Jointure si la recherche est relative à deux tables ayant au moins une colonne en commun. La condition de jointure doit porter sur ces colonnes communes.

La clause ORDER BY, utilisée dans la commande SELECT, permet de trier le résultat obtenu.

SQL propose certaines fonctions, dites fonctions agrégat : SUM, COUNT, MIN, MAX et AVG