Pour bac Informatique : Résumé base de données.😀
Chapitre1 : (Notion de base de données)
• Données : est une description élémentaire d’une information
• La persistance = mémorisation + disponibilité
• Une base de données : est une collection de données structurées relatives à un ou plusieurs domaines du monde réel.
Avantages d'une BD :
• Centralisation : Les données peuvent être utilisées par plusieurs programmes et plusieurs utilisateurs.
• Indépendance entre données et programmes : les données sont décrites indépendamment des programmes.
• Intégration des liaisons entre les données : Pas besoin d'un programme pour retrouver les liens entre les données.
• Intégrité des données.
• Concurrence d'accès : Plusieurs utilisateurs peuvent Accéder simultanément à la BD.
Les modèles des bases de données :
• Le modèle hiérarchique
• Le modèle réseau
• Le modèle relationnel
Chapitre2 : (Notion de Système de Gestion de Bases de données)
Définition d’un SGBD :
• Un système de gestion de base de données (SGBD) est un logiciel qui permet de décrire, modifier, interroger et administrer les données d'une base de données.
Les fonctions d'un SGBD :
• La définition des données : Le SGBD permet de créer et de décrire les objets de la base de données (tables, liens,utilisateurs,…), grâce au Langage de Description des Données (LDD).
• La manipulation des données : Le SGBD permet de faire la recherche, l’ajout, la modification et la suppression de données grâce au Langage de Manipulation des Données (LMD).
• L'intégrité des données : assurer la cohérence des données
• La gestion des accès concurrents : Le SGBD gère l'accès simultané des utilisateurs à la base de données.
• La confidentialité : Tous les utilisateurs d'une base de données ne sont pas supposés pouvoir consulter toutes les informations
• La sécurité du fonctionnement
Chapitre3: (Structure d'une base de données relationnelle) :
• Une table est un ensemble de données relatives à une même entité
• Une colonne (champ) représente une propriété élémentaire de l'entité décrite par cette table.
• Une ligne (enregistrement) représente une occurrence du sujet représenté par la table
• La clé primaire : est un champ ou un ensemble de champs permettant d'identifier de manière unique chaque enregistrement de la table
• La clé étrangère représente un champ (ou des champs) qui pointe vers la clé primaire d’une autre table.
Liens entre les tables :
• Liens de type 1, n : Un lien entre deux tables A et B (A est associée à une ou plusieurs occurrence de B et B est associée à une et une seule occurrence de A)
• Liens de type n, n : Ce type de lien entraine la création d’une troisième table dite intermédiaire.
• On obtient ainsi deux liens de type 1,n
Notion de contrainte d'intégrité :
• Une contrainte d'intégrité est une règle appliquée à un champ ou à une table et qui doit être toujours vérifiée
Types de contraintes :
• Les contraintes d'intégrité de domaines : valeur autorisées pour une colonne (valide si)
• Les contraintes d'intégrité de table: clé primaire
• Les contraintes d'intégrité référentielle : Champ clé étrangère ne peut contenir qu'une valeur déjà existante dans le champ clé primaire correspondant
Chapitre 4: (Démarche de détermination de la structure d'une base de données) :
Déterminer les colonnes (champs) :
| Nom Colonne | Description | Type de données | Taille | Obligatoire | Valeur par défaut | valeurs autorisées | sujet |
| ... | ... | ... | ... | ... | ... | ... | ... |
Déterminer la liste de tables :
| Nom de la table | Description | Sujet |
| ... | ... | ... |
Déterminer la liste de liens entre les tables:
| Table mère | Table fille | Clé primaire | Clé étrangère |
| ... | ... | ... | ... |
• Déterminer la représentation textuelle
• Déterminer la représentation graphique
Chapitre 5: (Création et modification de la structure d'une base de données)
Langage de définition des données (LDD) :
Permet de modifier la structure de la base de données
Création d’une table :
CREATE TABLE nom_table (définition_ colonne | définition_ contrainte, ... )
Exemple :
Create table produit :
( code int(3) PRIMARY KEY,
libelle varchar(30) not null,
prix_unit decimale(8,3) check(pu>0));
Modification de la structure d'une BD :
ALTER TABLE nom_table
[ADD COLUMN définition_colonne]
[ADD CONSTRAINT définition_contrainte]
[MODIFY définition_colonne]
[DROP COLUMN nom_colonne ]
[DROP CONSTRAINT nom_contrainte]
[ENABLE | DISABLE nom_contrainte]
• ADD COLUMN : Ajouter une nouvelle colonne
Exemple: Alter table produit ADD COLUMN (Qte_stock int(3) default 0) ;
• ADD CONSTRAINT : Ajouter une nouvelle contrainte
Exemple: Alter table produit ADD CONSTRAINT check(Qte_stock>=0);
• MODIFY COLUMN : modifier la structure d’une colonne
Exemple: Alter table produit MODIFY COLUMN (libelle varchar(50)) ;
• DROP COLUMN : Supprimer une colonne
Exemple: Alter table produit DROP COLUMN (Qte_stock) ;
• DROP CONSTRAINT : Supprimer une contrainte
Exemple: Alter table produit DROP CONSTRAINT check(Qte_stock>=0);
• DISABLE CONSTRAINT : Désactiver une contrainte
Exemple: Alter table produit DISABLE CONSTRAINT PRIMARY KEY;
• ENABLE CONSTRAINT : Activer une contrainte
Exemple: Alter table produit ENABLE CONSTRAINT PRIMARY KEY;
Suppression d'une table :
DROP TABLE nom_table
EXEMPLE :
DROP table produit ;
Chapitre 6 : (Manipulation d'une base de données)
Langage de manipulation des données ( LMD) :
Permet de consulter / modifier le contenu de la base de données.
Mise à jour des données
• Insertion de ligne :
Syntaxe : insert into nom_table (colonne1, colonne2,…) values (valeur1, valeur2,…) ;
Exemple : insert into client(code,nom,adresse) values (12,"Ali", "Nabeul") ;
Ou bien, on peut écrire aussi :
insert into client values (12,"Ali", "Nabeul") ;
• La modification d'une ligne
Syntaxe : update nom_table set champ1 = expression1, champ2=expression2,… [where condition] ;
Exemple : update produit set prix_unit=prix_unit + (prix_unit*0.2) where code=12
• Suppression d'une ligne
Syntaxe : Delete from nom_table [where condition];
Exemple : Delete from client where code_cli=23;
• Une projection (sans la clause where) : Afficher certaines colonnes d'une table.
Syntaxe : select colonne1, colonne2,… from nom_table
Exemple : Afficher les noms et les adresse de tous les clients.
select nom, adresse from client ;
Ou bien afficher toutes les informations de tous les clients :
Select * from client ;
• Une sélection (avec la clause where) : Afficher certaines lignes d'une table Syntaxe : select colonne1, colonne2,… from nom_table where condition ;
Exemple : Afficher les noms et les adresse de tous les clients de Tunis :
select nom, adresse from client where Adresse="Tunis" ;
Ou bien afficher dans l’ordre alphabétiques, toutes les informations de tous les clients de Tunis : Select * from client where Adresse="Tunis" order by nom;
Les conditions : Se sont des expressions logiques utilisant les opérateurs suivants :
1) =, <, >, !=, <=, >=
2) BETWEEN
3) IN
4) IS NULL, IS NOT NULL
5) LIKE
6) AND, OR, NOT
La clause order by sert à trier la table résultat dans un ordre croissant ou décroissant (asc,desc)
• Une jointure (recherche à partir de plusieurs tables) Exemple :
Soit la base de données BD_location suivante :
Client(code,Nom, ville)
Voiture(matricule,Marque,couleur, prix_jour)
Location (Code,matricule,date_loc,nb_jours_loc)
Req1 : Afficher la liste de clients qui ont loués des voitures après entre le 12/02/2011 et le 19/05/2011
Select C.code, C.Nom
From Client C, Location L
Where (C.code = L.code) and (date_loc between 12/02/2011 and 19/05/2011)
NB. Dans la requête ci-dessus, on a une seule jointure
Req2 : Afficher les marques de voitures qui ont étés loués par des clients de Tunis et de couleur rouge.
Select marque
From Client C, Location L, Voiture V
Where (C.code = L.code) and (V.matricule = L.matricule) and (ville="Tunis") and (couleur="rouge")
NB. Dans la requête ci-dessus, on a deux jointures
Les fonctions agrégats :
• COUNT
Exemple : Calculer le nombre de clients total : Select COUNT(*) from client ;
• SUM
Exemple : Afficher pour chaque client son nom et son nb_jour_loc total.
Select nom, SUM(nb_jour_loc) from client C, location L Where (C.code=L.code) group by nom
• MAX
Exemple : Afficher le prix_jour maximal : select MAX (prix_jour) from voiture
• MIN
Exemple : Afficher le prix_jour minimal : select MIN (prix_jour) from voiture
• AVG
Exemple : Afficher la moyenne de nb_jour_loc : select AVG (nb_jour_loc) from location
Les requêtes de calcul:
Exemple : Calculer le montant total à payer pour le client num 125
Select prix_jour * nb_jour_loc "Montant total"
From voiture V, location L
Where (V.matricule = L.matricule) and (code=125);
Chapitre 7 : (Sécurisation d'une base de données)
Langage de contrôle des données (LCD) :
Permet de gérer la sécurité de la BD et la cohérence des données
Créer un nouvel utilisateur:
Syntaxe: Create user
nom_utilisateur identify by mot_passe
Exemple : Create user
Ali identified by xds
| Accorder des droits systemes: GRANT droits TO utilisateurs [With Admin option] Exemple : GRANT ALL TO user10 ; | Accorder des droits objets: GRANT droits On Objets TO utilisateurs [With grant option] Exemple : GRANT select, update, delete On client TO user10 ; |
|
Retirer les droits: Revoke droits |
|
On objet |
|
From utilisateur |
|
Exemple: Revoke all |
|
on client |
|
from user10; |