Académique Documents
Professionnel Documents
Culture Documents
◼ Définition
• Une base de données est une collection de données,
interdépendantes, stockées sans redondance inutile,
cohérentes (en cas de modification), mises à la
disposition de plusieurs utilisateurs ou programmeurs,
organisées indépendamment des programmeurs
◼ Principe d’une base de données
• Nombreuses personnes peuvent y accéder, et
• Séparation nette entre la base elle-même et les
utilisateurs conduisent à la notion d’environnement
client/serveur
Assalé Adjé Louis Bases de données 1
Bases de données
◼ Environnement Client/Serveur
• Serveur informatique
✓ Est un dispositif informatique offrant des services à des clients
✓ Ces services peuvent être de différents types :
◼ Partage de fichiers
◼ Partage de données (BDD)
◼ Hébergeur web …
• Client
✓ Matériel logiciel ou informatique, permettant l’envoi de
requêtes à un serveur donné, et la réception des réponses
◼ Interface légère gérant de façon conviviale la communication avec le
serveur
Assalé Adjé Louis Bases de données 2
Bases de données
◼ Environnement Client/Serveur
• Architecture 3-tiers
✓ Évolution de l’architecture
client/serveur, dans laquelle on
a trois couches logicielles.
Le serveur est scindé en deux:
◼ Serveur1 : stockage de données
◼ Serveur2 : serveur métier, effectuant
la gestion logicielle
✓ Leclient communique avec le serveur métier qui lui-même
communique avec le serveur de stockage
◼ Les bases de données actuelles sont construites sur ce schéma
LIVRE (N°Liv, Titre, Auteur, Pays, Genre) pas en 3FN car Auteur → Pays
Pour les 2 tables LIVRE et AUTEUR en 3FN. On a pour LIVRE 1000 tuples
avec 4 attributs donc 4x1000 = 4000 données et Auteur 100 tuples avec 2
attributs donc 2x100 = 200 données. Ce qui nous fait un total de 4200 données
ADRESSE (Code_post, Ville, Rue) en 3FN mais pas en BCFN car « Ville »
membre de la clé dépend fonctionnellement de « Code_post » non membre de
la clé On décompose en supprimant Code_post de la relation ADRESSE et en
créant une relation CODE (Code_post, Ville)
• Exercices
✓ Voir fiche de TD : Normalisation
ETUDIANT LIVRE
N_Etud <pi> Characters (7) <M> N_Liv <pi> Characters (15) <M>
EMPRUNT
Nom Characters (20) 0,n Titre Characters (50)
Prnoms Characters (50) Sortie Date 0,n Auteur Characters (20)
Retour Date Genre Characters (20)
N_Etud <pi>
Prix Long integer
N_Liv <pi>
Assalé Adjé Louis Bases de données 19
Bases de données
◼ Conception de B.D. relationnelles
• Entités – Associations et Cardinalités
✓ Cardinalité
◼ Une cardinalité est un couple de valeur (a, b) placé à côté de chaque
entité participant à une association. Elle exprime les règles de gestion
◼ La valeur a exprime le nombre de fois minimum qu’un élément de
l’entité participe à l’association. Elle est 0 ou 1
◼ La valeur b exprime le nombre de fois maximum qu’un élément de
l’autre VOITURE
ETUDIANT Immat <pi> Characters (10) <M>
N_Etud <pi> Characters (7) <M> Type Characters (15)
Nom Characters (20) 0,n POSSEDE 0,1 Marque Characters (15)
Couleur Characters (10)
Prnoms Characters (50)
Puissance Characters (7)
N_Etud <pi>
Immat <pi>
et autre de l’association
CARTE_ELECTEUR
ETUDIANT Num_Elect <pi> Characters (20) <M>
Nom Characters (20)
N_Etud <pi> Characters (7) <M> 0,1 DETENIR
Prenoms Characters (30)
Nom Characters (20) 1,1 Date_Nais Date
Prnoms Characters (50)
Lieu_Vote Characters (20)
N_Etud <pi> Bureau_Vote Characters (2)
Num_Elect <pi>
l’association
ETUDIANT LIVRE
N_Etud <pi> Characters (7) <M> N_Liv <pi> Characters (15) <M>
EMPRUNT
Nom Characters (20) 0,n Titre Characters (50)
Prnoms Characters (50) Sortie Date 0,n Auteur Characters (20)
Retour Date Genre Characters (20)
N_Etud <pi>
Prix Long integer
N_Liv <pi>
0,n
0,n
INSTALLER
Date_Inst Date
1,n
SERVEUR
Nom_Serv <pi> Characters (10) <M>
Type_Serv Characters (15)
Nom_Serv <pi>
0,n
0,n
INSTALLER
On a la contrainte suivante : Date_Inst Date
0,n
POSSEDE
0,1
VOITURE
Immat <pi> Characters (10) <M>
Type Characters (15)
Marque Characters (15)
Couleur Characters (10)
• Exercices
✓ Voir fiche de TD : Algèbre relationnelle
• Exemples :
✓ create database mabase;
✓ use mabase;
✓ create table …
Assalé Adjé Louis Bases de données 41
MySQL - Administration
◼ Création d’utilisateurs
• Syntaxe de création
✓ create user <nom_utilisateur> [identified by [password]
'mot_de_passe'] [, <nom_utilisateur> [identified by [password]
'mot_de_passe']]…
✓ <nom_utilisateur> de la forme <'nom'>[@'hôte']
◼ hôte adresse à partir de laquelle utilisateur va se connecter:
- localhost : à partir de la machine du serveur
- @IP : à partir de la machine dont l’adresse IP est spécifiée
- %.nom_domaine : n’importe quelle machine du domaine
- % : n’importe quel hôte valeur par défaut
• Renommer un utilisateur :
✓ rename user <ancien_nom> to <nouveau_nom> [,
<ancien_nom> to <nouveau_nom> ]…
• Exemples :
✓ create user assale identified by 'louis09', koffi identified by
'alexis',kone@'localhost';
✓ rename user assale to adje;
✓ drop user adje;
• Numériques
✓ INTEGER, INT, UNSIGNED : entier
✓ DECIMAL(e, p), FLOAT(e,p), DOUBLE(e,p) : réels
• Dates
✓ DATE : date au format AAAA-MM-JJ
✓ TIME : heure au format HH:MM:SS
Assalé Adjé Louis
✓ DATETIME Bases de données
: format AAAA-MM-JJ HH:MM:SS 50
Langage SQL: L.D.D.
◼ Les types de données
• Énumérations
✓ ENUM(valeur1, valeur2, …) : choix d’1 seule valeur dans liste
✓ SET(valeur1, valeur2, …) : choix plusieurs valeurs dans la liste
◼ Base de travail
• Suppression d’objets
✓ Drop Table [if Exists] <nom_table>;
✓ Drop View <nom_vue>;
✓ Drop Index <nom_index>;
Assalé Adjé Louis Bases de données 54
Langage SQL: L.D.D.
◼ Modification de schéma de table
• Commandes Alter Table
✓ Alter Table <nom_table> Add (<col><type>[<contrainte>], …)
✓ Alter Table <nom_table> Modify <col><type_col>;
✓ Alter Table <nom_table> Drop [column] <col>;
✓ Alter Table <nom_table> Change [column] <col> <nouv_nom>
[<nouv_type_col];
✓ Alter Table <nom_table> rename [to|as] <nouveau_nom>;
• Exemples
✓ Alter table Etudiant Add Sexe char(1);
✓ Alter table Etudiant Modify Prenoms varchar(40);