M. Brahim KHADIRI ( [email protected] ), Head of Authorization and Type Approval Dept.,
Cours brahim bakkas
description
Transcript of Cours brahim bakkas
Systèmes d’information
2ème année ECT
Brahim bakkas
CPGE Omar AL Khayyam
Plan
Chapitre 1: généralités et notion de base
Chapitre 2: Méthode merise
MCD
MLD
MPD
Chapitre 3: algèbre relationnel
Chapitre 4: langage Sql
Infocpge.blogspot.com Brahim BAKKAS
2
Chapitre 1:
Généralités et notions de
base
4
Introduction :
Définition d’une base de données:
Une base de données est un ensemble structuré de données persistantes représentant une réalité extérieure au système, partagé par plusieurs utilisateurs (application d’une même entreprise)
Infocpge.blogspot.com Brahim BAKKAS
5
Introduction :
Remarque :
Persistante : les données sont conservées de manière permanente, elles sont disponibles pour chaque utilisateur.
Réalité extérieur : les informations contenues dans une base de données sont des données du monde réel et non des données informatiques.
Plusieurs utilisateurs : les utilisateurs qui partagent les fichiers de la base de données peuvent avoir des préoccupations différentes.
Entreprise : les applications qui pointe vers la même base de données doivent appartenir à la même entreprise
Infocpge.blogspot.com Brahim BAKKAS
6
Introduction :
Définition d’une base de données :
Une base de données contient des informations représentant des objets du même monde extérieur(monde réel) ainsi que des liens sémantiques entre ses objets.
Infocpge.blogspot.com Brahim BAKKAS
7
Utilité d'une base de données
Une base de données permet de mettre des données à la disposition des utilisateurs pour une consultation, une saisie ou bien une mise à jour, tout en s'assurant des droits accordés à ces derniers
Infocpge.blogspot.com Brahim BAKKAS
8
Utilité d'une base de données(suite)
Une base de données peut être
locale, c'est-à-dire utilisable sur une machine par un utilisateur,
répartie, c'est-à-dire que les informations sont stockées sur des machines distantes et accessibles par le réseau.
L'avantage
accédées par plusieurs utilisateurs simultanément.
Infocpge.blogspot.com Brahim BAKKAS
9
Conception d’une base de données
Définitions:
Les éléments constitutifs d’une base de données lors de sa phase de conception correspondent aux 3 notions : entité, attribut et association
Infocpge.blogspot.com Brahim BAKKAS
10
Conception d’une base de données(suite)
Définition d’une entité : Une entité est un objet du monde extérieur que
l’on peut distinguer et qui a une existence propre et qui possède des propriétés.
Exemple : BD pour la gestion des notes possède 3 entités:
- Etudiant, - Matière, - Enseignant.
BD commerciale : - Client, - Fournisseur, - Commande.
Infocpge.blogspot.com
Brahim BAKKAS
11
Conception d’une base de données(suite)
Définition d’un attribut :
Un attribut est le plus petit élément d’information manipulé par l’entreprise et qui a un sens en lui même.
Exemple :
Étudiant: Nom, prénom, adresse, date de naissance.
Infocpge.blogspot.com Brahim BAKKAS
12
Conception d’une base de données(suite)
Définition d’une association :
Une association est un lien sémantique entre deux entités.
Exemple:
Commande Client
Passer
Infocpge.blogspot.com Brahim BAKKAS
13
Conception d’une base de données(suite)
Les divers types d’associations :
Il y’a quatre types d’associations:
1. Association binaire réciproque ou un à un:
2. Association binaire un à plusieurs:
Conjoint Employé Employé
Employé
Établissement Employé
Infocpge.blogspot.com Brahim BAKKAS
14
Conception d’une base de données(suite)
3. Association binaire plusieurs à plusieurs:
Fournir
Fournisseur Produit
Infocpge.blogspot.com Brahim BAKKAS
15
Exemple
Soient les règles de gestions suivantes :
Un client peut passer plusieurs commandes,
Une commande est passée par un et un seul client.
une commande se compose de plusieurs produits
un produit peut être livré par plusieurs fournisseurs.
1. Extraire les entités du problème ?
2. Représenter la structure du problème en utilisant le
formalisme entité association ?
passer
Livrer
Composer
Fournisseur
Client Commande
Produit
Infocpge.blogspot.com Brahim BAKKAS
16
Exemple
Soient les règles de gestions suivantes :
Un client peut passer plusieurs commandes,
Une commande est passée par un et un seul client.
une commande se compose de plusieurs produits
un produit peut être livré par plusieurs fournisseurs.
1. Extraire les entités du problème ?
2. Représenter la structure du problème en utilisant le formalisme entité association ?
passer
Livrer
Composer
Fournisseur
Client Commande
Produit
Infocpge.blogspot.com Brahim BAKKAS
17
Exercice n°2
Considérons une entreprise structurée en un certain nombre d’établissement ;
Soient les règles de gestions suivantes :
Les établissements emploient des personnes, chaque personne ne travaille que dans un seul établissement, mais il peut participer à différents projets de l’entreprise.
Un projet peut regrouper plusieurs employés du même établissement ou pas.
Un projet est dirigé par un et un seul employé et un employé ne peut diriger qu’un seul projet.
Si le conjoint d’un employé travaille dans l’entreprise ce lien doit être enregistrer
L’entreprise s’adresse à des fournisseurs qui lui fournissent des produits qu’elle stockent dans des entrepôts.
Un fournisseur, un établissement, un entrepôt, sont localisé dans une seule ville,
Un produit peut être composé de plusieurs autres produits.
En utilisant le formalisme (entité – association), représenter la structure du problème ? Infocpge.blogspot.com
Brahim BAKKAS
18
Système de gestion des bases de données
Définition d’un SGBD :
Le SGBD représente un ensemble coordonné de logiciels qui permet de décrire, manipuler, traiter les ensembles de données formant la base.
Il doit également assurer la sécurité et la confidentialité des données dans un environnement où de nombreux utilisateurs ayant des besoins variés peuvent interagir simultanément sur ces données.
Infocpge.blogspot.com Brahim BAKKAS
19
Système de gestion des bases de données
L’organisation des données dans un SGBD:(exemple Access)
- Dans les SGBD, les informations doivent être segmentées en données qui sont stockées dans des tables. Une table est donc un ensemble de données, organisées en lignes et en colonnes.
- On peut stocker dans une table n’importe quel type d’information (texte, chiffres, graphisme, son, etc...)
Infocpge.blogspot.com Brahim BAKKAS
20
Système de gestion des bases de données
Chaque table est divisée en enregistrements, les enregistrements étant l’ensemble des données relatives à la même information.
Chaque enregistrement contient un ensemble d’informations qui ont elles-mêmes diviser l’enregistrement en plusieurs parties, chaque partie s’appelle un champ. Le champ contient une partie des informations de chaque enregistrement.
Infocpge.blogspot.com Brahim BAKKAS
21
Fonctionnalités d’un SGBD :
Gestion du stockage : faire face à des tailles énormes de données.
Persistance: Les données «survivent» aux programmes qui les créent.
Fiabilité : Mécanismes de reprise sur pannes (logiciel ou matériel)
Sécurité - Confidentialité : Droits d'accès aux données
Cohérence : Contraintes d'intégrité
contrôle de concurrence: Conflits d'accès. Répercussions sur la cohérence
Interfaces homme – machine : Convivialité + différents types d'utilisateurs
Infocpge.blogspot.com Brahim BAKKAS
22
Objectifs d’un SGBD :
Indépendance physique: Le niveau physique (type de données)peut être modifié (int → float) indépendamment du
niveau conceptuel.
Cela signifie que tous les aspects matériels de la base de données n'apparaissent pas pour l'utilisateur, il s'agit simplement d'une structure transparente de représentation des informations
Infocpge.blogspot.com Brahim BAKKAS
23
Objectifs d’un SGBD :
Indépendance logique: le niveau conceptuel doit pouvoir être modifié sans remettre en cause le niveau physique, c'est-à-dire que l'administrateur de la base doit pouvoir la faire évoluer sans que cela gêne les utilisateurs.
Infocpge.blogspot.com Brahim BAKKAS
24
Objectifs d’un SGBD :
Manipulation: des personnes ne connaissant pas la base de données doivent être capables de décrire leurs requêtes sans faire référence à des éléments techniques de la base de données,
Rapidité des accès: le système doit pouvoir fournir les réponses aux requêtes le plus rapidement possible, cela implique des algorithmes de recherche rapides,
Infocpge.blogspot.com
Brahim BAKKAS
25
Objectifs d’un SGBD :
Administration centralisée: le SGBD doit permettre à l'administrateur de pouvoir manipuler les données, insérer des éléments, vérifier son intégrité de façon centralisée
Limitation de la redondance: le SGBD doit pouvoir éviter dans la mesure du possible des informations redondantes, afin d'éviter d'une part un gaspillage d'espace mémoire mais aussi des erreurs,
Infocpge.blogspot.com Brahim BAKKAS
26
Objectifs d’un SGBD :
Vérification de l'intégrité: les données doivent être cohérentes entre elles, de plus lorsque des éléments font références à d'autres, ces derniers doivent être présents,
Partage des données: le SGBD doit permettre l'accès simultané à la base de données par plusieurs utilisateurs,
Sécurité des données: Le SGBD doit présenter des mécanismes permettant de gérer les droits d'accès aux données selon les utilisateurs.
Infocpge.blogspot.com Brahim BAKKAS
27
Modèles d’un SGBD
Il existe cinq modèles de SGBD, différenciés selon la représentation des données qu'elle contient :
1. le modèle hiérarchique: C’est un modèle inspiré par la pratique courante de la programmation COBOL, il consiste à organiser les divers entités de la base en arbre. Ce modèle utilise des pointeurs entre les différents enregistrements. Il s'agit du premier modèle de SGBD
Infocpge.blogspot.com Brahim BAKKAS
28
Modèles d’un SGBD
2. le modèle réseau: Comme le modèle hiérarchique ce modèle utilise des pointeurs vers des enregistrements, et il permet de relier plusieurs entités.
Infocpge.blogspot.com Brahim BAKKAS
29
Modèles d’un SGBD
3. le modèle relationnel (SGBDR, Système de gestion de bases de données relationnelles): les données sont enregistrées dans des tableaux à deux dimensions (lignes et colonnes). La manipulation de ces données se fait selon la théorie mathématique des relations.
Infocpge.blogspot.com Brahim BAKKAS
30
Modèles d’un SGBD
4. le modèle objet
(SGBDO, Système de gestion de bases de données objet): c’est un modèle qui est adapté aux structures complexe.
5. le modèle déductif
Infocpge.blogspot.com Brahim BAKKAS
31
Architecture d’un SGBD
L'architecture ANSI/SPARC d’un SGBD :
L'architecture ANSI/SPARC, datant de 1975, définit des niveaux d'abstraction pour un système de gestion de bases de données:
Niveau interne (ou physique): Il définit la façon
selon laquelle sont stockées les données et les méthodes pour y accéder
Niveau conceptuel: appelé aussi MCD (modèle conceptuel des données) ou MLD (modèle logique des données). Il définit l'arrangement des informations au sein de la base de données
Niveau externe: Il définit les vues des utilisateurs
Infocpge.blogspot.com Brahim BAKKAS
32
Les principaux SGBD
Les principaux systèmes de gestion de bases de données sont les suivants: Interbase
Microsoft SQL server
Microsoft Access
Microsoft FoxPro
Oracle
Sybase
MySQL
PostgreSQL
mSQL
Infocpge.blogspot.com Brahim BAKKAS
Chapitre 2:
Gestion de projet informatique et conception d’un système
d’information
(méthodologie Merise)
34
Définitions :
Système
Le système est un tous constitué d’éléments uni par des relations.
Système d’information
Un système d’information est une représentation possible de n’importe quel système notamment tous système humain organisé.
Génie logiciel
La génie logiciel est une sous discipline informatique offrant des méthodes et des techniques pour développer et maintenir des logiciels de qualité.
Infocpge.blogspot.com Brahim BAKKAS
35
Cycle de vie d’un logiciel
Cycle de vie est une suite de phases de réalisation d’un logiciel depuis sa spécification jusqu’à sa commercialisation ou sa mise en œuvre
Le développement d’un logiciel suit différents modèles:
Modèle en cascade
Modèle en V
Modèle en spirale
Modèle de la fontaine
Infocpge.blogspot.com Brahim BAKKAS
36
Cycle de vie d’un logiciel
Cycle en cascade :
Infocpge.blogspot.com Brahim BAKKAS
37
Description des états :
Définition du problème «Pourquoi ? » : définir le problème avec précision :
Documents de définition du problème :
- Objectif de l’usage
- Les contraintes majeures
Outil de description :
- Langage naturel
Infocpge.blogspot.com Brahim BAKKAS
38
Description des états :
Analyse des besoins :
Définir les fonctionnalités des systèmes donnés, les objectifs et les contraintes et si nécessaires faire une équipe de faisabilité qui doit analyser les besoins contre les contraintes,
Infocpge.blogspot.com Brahim BAKKAS
39
Description des états :
Spécification :
A cette étape on répond au question suivantes :
- Quel sont les entrées du système ? - Quel sont les fonctions de chaque entrée ?
- Quel sont les sorties correspondantes ?
Infocpge.blogspot.com Brahim BAKKAS
40
Description des états :
Conception:
A cette étape : représenter les fonctions
pour faciliter leur implémentation, et
choisir les structures de données,
Structurer le système en modules logiques
et fonctionnels.
Infocpge.blogspot.com Brahim BAKKAS
41
Description des états :
Codage et tests « Comment ?»
Écrire les unités du programme dans un langage
exécutable,
Pour chaque programme il faut préparer une
documentation à inclure dans le manuel
technique du système, puis faire les tests.
Infocpge.blogspot.com Brahim BAKKAS
42
Modèle en cascade
Infocpge.blogspot.com Brahim BAKKAS
43
Système d’information
un système d’information décrit l’ensemble des connaissances et des services de l’organisation à informatiser. Un tel système permet une bonne supervision de l’organisation, optimise sa rentabilité et aide à prendre des décisions.
Le fait d’établir un système permet aussi d’analyser et d’identifier les parties du système qui peuvent être automatisable.
Infocpge.blogspot.com Brahim BAKKAS
44
Système d’information(suite)
Ce système d’information assurera le lien entre deux autres systèmes de l’entreprise : le système opérant, et le système de pilotage :
Infocpge.blogspot.com Brahim BAKKAS
45
Système d’information(suite)
Le système opérant : englobe toutes les fonctions liées à l’activité propre de l’entreprise: facturer les clients, régler les salariées, gérer les stocks,…
Le système de pilotage : décide des actions à conduire sur le système opérant en fonction des objectifs et des politiques de l’entreprise,
Infocpge.blogspot.com Brahim BAKKAS
46
Architecture d’un système
d’information
Le schéma suivant synthétise l’architecture d’un système d’information.
Infocpge.blogspot.com Brahim BAKKAS
47
Architecture d’un système
d’information (suite)
Le processeur d’information produit des changements dans la base d’information à la réception d’un message. Un message contient des informations et exprime une commande décrivant l’action à entreprendre dans la base d’information.
Le processeur interprète la commande et effectue le changement en respectant les contraintes et les règles.
Dans tous le cas, l’environnement a besoin de connaître que la commande a été acceptée ou refusée, le processeur émet à cet effet un message vers l’environnement.
Infocpge.blogspot.com Brahim BAKKAS
48
l’approche analytique et l’approche
systémique
Les méthodes d’étude des systèmes d’information ont pour objectif de décrire ces systèmes à l’aide de modèles, puis de réaliser les systèmes informatisés en découlant.
Elles sont regroupées essentiellement en deux groupes: les méthodes analytiques, et les méthodes systémiques.
Infocpge.blogspot.com Brahim BAKKAS
49
Les méthodes analytiques
La démarche analytique est basée sur une
décomposition du domaine d’étude en des
domaines plus réduits qui sont des sous
ensembles du domaine global.
Chaque partie prise séparément est alors étudiée
puis réintégrée à l’ensemble afin de tenter de
reconstituer le tout.
Leur défaut majeur est d’aboutir à des applications
difficiles à lier et dont la juxtaposition est
généralement peu cohérente.
Infocpge.blogspot.com
Brahim BAKKAS
50
Les méthodes systémiques
La démarche systémique passe par la modélisation
du domaine à étudier pour le comprendre. Le réel
perçu est représenté par un modèle, réduction de
cette réalité, lui-même décomposé ; chaque partie
est ensuite étudiée en relation avec l’ensemble.
Merise est une méthode systémique de conception
de systèmes d’information.
Infocpge.blogspot.com Brahim BAKKAS
51
Merise
Historique
Merise est une méthodologie de conception
des applications logicielles ou plus précisément
est une approche d’analyse, de modélisation
et de réalisation d’un système d’information :
d’un système réelle quelconque (entreprise,
organisation, administration…)
C'est la méthode la plus répandue en France,
Elle a été créée en 1978 à Aix en Provence
(CETE, centre d'étude technique de l'équipement,
et CTI, centre technique d'informatique). Infocpge.blogspot.com
Brahim BAKKAS
52
Modèle
Un modèle peut être définit comme étant une image de la réalité.
Toute réalité complexe doit être représentée pour être comprise et maîtrisée
Le modèle, c’est l’expression de quelque chose que nous cherchons à appréhender, représentée en des termes que nous pensons comprendre.
Infocpge.blogspot.com Brahim BAKKAS
53
Modèles Merise :
Infocpge.blogspot.com Brahim BAKKAS
54
Le formalisme conceptuel se découpe en trois
niveaux de modélisation :
le modèle conceptuel des données,
le modèle conceptuel de communication (ou
diagramme de flux)
et le modèle organisationnel des traitements.
Infocpge.blogspot.com Brahim BAKKAS
55
Modèles
Formalisme Organisationnel :
Le niveau organisationnel décrit le SI en
répondant aux questions QUI ? Où ? et Quand ?
Le MOT intègre les notions de temps, de durées,
de ressources, de lieu, de responsabilité et la
nature des traitements.
Infocpge.blogspot.com Brahim BAKKAS
56
Modèle conceptuel de communication
(MCC):
Définition de l’organisation :
MCC représente, au niveau conceptuel, les échanges d’information entre les acteurs :
Acteurs
– Représenté par un cercle et un libelle pour le nom de l’acteur
– L’acteur représente une unité active intervenant dans le fonctionnement d’un système opérant.
- Un acteur est un rôle plutôt qu’une personne physique
Infocpge.blogspot.com Brahim BAKKAS
57
Définition de l’organisation
Un acteur c’est une personne ou un groupe de personnes qui s’échangent des informations
Acteur interne : font parties du sous ensemble de l’organisation étudiée
Acteur externe : échangent des informations avec les acteurs internes du domaines étudié mais n’en font pas partie
Infocpge.blogspot.com Brahim BAKKAS
58
Étapes de création du modèle MCC
1. Délimiter le système: identifier les acteurs externes
Exemple:
Organisation: « Bibliothèque »
Etudiant
Acteur externe
Infocpge.blogspot.com Brahim BAKKAS
59
Étape de création du modèle MCC
2. Identifier les acteurs internes
Saisir les prêts
Retourner les livres à leur place
Infocpge.blogspot.com Brahim BAKKAS
60
MCC(suite)
Flux d’information
Représenté par une flèche entre deux acteurs, étiquetée par le nom du flux
Infocpge.blogspot.com Brahim BAKKAS
61
Modèle conceptuel des données(MCD)
Le Modèle conceptuel des données est une représentation statique du système d’information de l’entreprise.
Chaque mot du langage de l’entreprise a une signification précise et le modèle conceptuel des données décrit les rapports qui existent entre les sens de ces mots.
Infocpge.blogspot.com Brahim BAKKAS
62
Modèle conceptuel des données(MCD)
Vocabulaire:
1. Entité:
Une entité est un objet du réel, concret ou abstrait dont on s'accorde à reconnaître une existence propre.
Représentation graphique :
Infocpge.blogspot.com Brahim BAKKAS
63
Vocabulaire (suite)
2. Une propriété est une caractéristique que l'on perçoit sur une entité ou sur une association entre entités dans le réel.
Exemples : - Une propriété peut être simple:
Nom de personne
Numéro de commande
Le prix d'un produit
Le mois
- Ou composée: La date (jour, mois, année) l'adresse : nom, rue, numéro, code postal, ville.
Client
Num client
Nom client
Adresse client
Infocpge.blogspot.com Brahim BAKKAS
64
Identifiant Un identifiant est une propriété particulière telle qu'il
n'existe pas deux occurrences de cette propriété pour lesquelles cette propriété puisse prendre la même valeur.
Une entité est complètement définie par :
Un nom
Un identifiant
Une liste de propriétés
Chaque fois que l'on veut définir une entité, on devra déterminer son identifiant.
Client
Num client
Nom client
Adresse client
Infocpge.blogspot.com Brahim BAKKAS
Occurrences
Infocpge.blogspot.com Brahim BAKKAS
65
Client
102
Ilhame Karam
Diour jamae Rabat
Client
103
Adnane Hajji
Hay Riyyad Rabat
Client
101
HAMID FATTAH
Hay salam Sallé
66
Association
Une association (ou relation) est perçue dans le réel entre des individus
Une association définit une relation entre une ou plusieurs entités
Exemple : un client passe une commande
Représentation graphique :
Commande
Num commande
Date commande
Passe
Client
Num client
Nom client
Adresse client
Infocpge.blogspot.com Brahim BAKKAS
67
Association (suite)
Une association n'a pas d'existence propre, elle
dépend des entités qu'elle regroupe
Une association peut être porteuse de propriétés
Exemple:
Pour désigner une occurrence de l'association, il
faut désigner les occurrences des entités qui la
composent
Produit
Ref_produit
Prix unitaire
Contenir
Quantité
Commande
Num commande
Infocpge.blogspot.com Brahim BAKKAS
68
Type d’association (suite)
1. Association binaire
2. Association ternaire:
Exemple:
matière
Nom_matiére Enseigne
Enseignant
Id_enseignant
Nom
Prenom
Salle
Num_salle
Infocpge.blogspot.com Brahim BAKKAS
69
Type d’association (suite)
Remarque:
- Plusieurs associations peuvent exister entre deux entités
- Exemple:
Infocpge.blogspot.com Brahim BAKKAS
70
Cardinalités
Les cardinalités, au sens arithmétique du
terme, permettent de dénombrer les
éléments de l'entité d'arrivée en
relation avec un élément de l'entité de
départ, et vice versa.
Infocpge.blogspot.com Brahim BAKKAS
71
Cardinalités
cardinalité minimale :combien
d ’occurrence au minimum? (0 ou 1)
cardinalité maximale :combien
d ’occurrence au maximum ? ( 1 ou n )
Infocpge.blogspot.com Brahim BAKKAS
72
Exemple
Considérons le cas de l'association "habite" et les
deux entités "être humain" et "appartement" du
schéma précédent, les cardinalités minimales et
maximales sont les suivantes
sens "être humain" vers "appartement" : 0
(minimum) et 1 (maximum)
sens "appartement" vers "être humain" : 0
(minimum) et n (maximum)
Infocpge.blogspot.com
Brahim BAKKAS
73
Cardinalités(suite)
Tout être humain ne réside pas forcément dans un
appartement, peut être dans une maison,
Un être humain réside dans un appartement et un
seul à la fois, mais qu’un appartement peut se
trouver vide ou être pourvu de plusieurs résidents.
En outre nous avons convenu qu’un même être
humain ne pouvait résider dans plusieurs
appartements à la fois.
Infocpge.blogspot.com Brahim BAKKAS
74
Cardinalités(suite)
On note les cardinalités de chaque côté de
l'association, sur les traits faisant la liaison entre
l'association et l'entité.
Infocpge.blogspot.com Brahim BAKKAS
75
Exemple
Appartement
Num Appartement
Adresse
Étage
Réside
Être humain
Id_etre_humain
Nom
Prénom
Adresse
Sexe
0,1 0,n
Infocpge.blogspot.com Brahim BAKKAS
76
Exercice1
Chaque client est caractérisé par un numéro, nom, prénom,adresse. Une commande est identifié par un numéro de commande. Un produit est caractérisé par une référence unique,libellé et le prix unitaire. Pour chaque fournisseur on connaît son identifiant, son nom,et son adresse. Un client peut passer plusieurs commandes, Une commande est passée par un et un seul client, une commande se compose de plusieurs produits, un produit peut être livré par plusieurs fournisseurs. Représenter le modèle conceptuel de données (MCD) ?
Infocpge.blogspot.com Brahim BAKKAS
77
Exercice 2
Pour les besoins d’un aéroport, on souhaite mémoriser dans une base de données les informations nécessaires à la description des faits suivants : chaque avion géré est identifié par un numéro
d’immatriculation. Il est la propriété soit d’une société, soit d’un particulier, dans les deux cas on doit connaître le nom et le numéro de téléphone du propriétaire, ainsi que la date d’achat de l’avion ;
chaque avion est d’un certain type, celui ci étant caractérisé par son nom, le nom du constructeur, la puissance du moteur et le nombre de places ;
la maintenance des avions est assurée par les mécaniciens de l’aéroport. Les interventions sont toujours effectuées par deux mécaniciens. Pour toute intervention effectuée, on conserve l’objet de l’intervention, la date et la durée ;
Infocpge.blogspot.com Brahim BAKKAS
78
Exercice 2(suite)
pour chaque mécanicien, on connaît son nom, son adresse et son numéro de téléphone;
un certain nombre de pilotes sont enregistrés auprès de l’aéroport. Pour chaque pilote on connaît son nom, son adresse, son numéro de brevet et le nombre total de vols qu’il a effectué sur chacun de ces types;
1. Extraire les entités et leurs attributs ?
2. Représenter le modèle conceptuel de données (MCD) ?
Infocpge.blogspot.com Brahim BAKKAS
79
Exercice 2 solution
Infocpge.blogspot.com Brahim BAKKAS
80
Exercice 3
Un enseignant est caractérisé par son nom, prénom et son bureau. Il peut enseigner une ou plusieurs matières.
Une matière peut être enseignée par un ou plusieurs enseignants. Une matière est distinguée par son intitulé.
Un étudiant est caractérisé par son nom, prénom.
Un étudiant doit s’inscrire à une ou plusieurs matières.
Un étudiant passe un ou plusieurs contrôles continus dans chaque matière. Chaque contrôle est caractérisé par une note et un coefficient.
Il passe aussi un ou plusieurs examens dans chaque matière où il est inscrit. Un examen est caractérisé par une note et un coefficient. Infocpge.blogspot.com
Brahim BAKKAS
81
Exercice 3: solution
Infocpge.blogspot.com Brahim BAKKAS
82
Recherche des propriétés à gérer
Regroupement des propriétés par entité
Représentation des entités
Recherche des relations
Recherche des cardinalités
Vérification et validation du modèle
Démarche dans la construction d’un MCD
Infocpge.blogspot.com Brahim BAKKAS
83
1ér forme normale
L’existence d’un identifiant pour chaque objet:
Certain objet réel ne sont pas identifié au préalable; il faut donc créer la donnée permettant de se mettre en conformité avec la regle1.
Remarque: Rappelons qu’on peut pas avoir deux occurrences identiques pour un même identifiant.
Client
Nom client
Adresse client
Client
Num client
Nom client
Adresse client
Infocpge.blogspot.com Brahim BAKKAS
81
1ére forme normale
Toutes les propriétés doivent être élémentaires c’est-à-dire non décomposable: il vaut mieux éclater des propriétés qui pourraient être regroupées que de regrouper des propriétés qui doivent être éclatées.
Exemple:
Décomposer la propriété adresse:
Rue
Ville
Code postal
Infocpge.blogspot.com Brahim BAKKAS
Client
Num client
Nom client
Adresse client
Client
Num client
Nom client
Rue
Ville
Code postal
85
2éme forme normale
Le modèle est en 1FN
Toute les propriétés autre que l’identifiant doivent être en dépendance fonctionnelle mono value à cet identifiant c.-à-d. pour une occurrence d’une entité, chacun des propriétés ne peut prendre qu’une valeur.
Infocpge.blogspot.com Brahim BAKKAS
86
2éme forme normale
Dépendances fonctionnelles
Une propriété (ou un groupe de propriétés) Y dépend fonctionnellement d’une autre propriété (ou groupe de propriétés) X si étant donné une valeur de X, il lui correspond une valeur unique de Y .
On note
X→Y (X détermine Y )
Infocpge.blogspot.com Brahim BAKKAS
87
Exemple:
Employé
Matricule
Nom
Prénom Diplôme
Diplôme
Id_diplome
Diplôme_employé
Avoir
détermine
Matricule Nom
détermine
Matricule
Infocpge.blogspot.com Brahim BAKKAS
diplôme
diplôme
diplôme
88
3éme forme normale
Le modèle est en 2FN
La dépendance fonctionnelle transitive doit être écartée.
Si une propriété est en dépendance fonctionnelle de l’identifiant , et d’une autre propriété de l’objet, elle-même en dépendance fonctionnelle simple de cet identifiant, il y a un objet imbriqué dans celui que l’on étudie;
Il faut éclater en deux objets celui qui contient une dépendance fonctionnelle transitive.
Infocpge.blogspot.com Brahim BAKKAS
89
3éme forme normale
Ou bien:
Toutes les DF entre les propriétés sont directes
– Les propriétés d’une entité doivent dépendre
de l’identifiant de l’entité de manière directe
– Toute propriété n’appartenant pas à un
identifiant ne dépend pas d’un attribut non
identifiant
Infocpge.blogspot.com Brahim BAKKAS
90
4éme forme normale
Le modèle est en 3FN
Une propriété ne peut qualifier qu’un seul objet ou qu’une seule relation.
Par exemple: la propriété «Nom» ne peut être présente à la fois dans l’objet «Client» et dans l’objet «Fournisseur»;si tel est le cas, alors il faut appeler l’une « Nom client » et l’autre « Nom fournisseur»
Client
Num client
Nom
Fournisseur
Num fournisseur
Nom
Polyséme
Infocpge.blogspot.com Brahim BAKKAS
Modèle logique des données
(MLD)
Infocpge.blogspot.com Brahim BAKKAS 91
92
Modèle logique des données(MLD)
le MCD a pour but de modéliser les données (aspect
statique)
Le modèle logique des données consiste à décrire la
structure de données utilisée sans faire référence à
un langage de programmation
Le MLD (Modèle Logique des Données) tient compte des
choix concernant le système de gestion des données utilise
dans l’entreprise. Le plus utilise est le modèle relationnel
associe aux bases de données relationnelles (Oracle,
Informix, SQLserver,..., Access, mySQL, postgreSQL...)
Infocpge.blogspot.com Brahim BAKKAS
93
Vocabulaire
Le domaine est l’ensemble des valeurs que peut prendre une donnée.
Une table est un sous-ensemble du produit des domaines ; une table est donc un ensemble d’enregistrements ( lignes).
la table est composée d’attributs prenant leurs valeurs dans les domaines correspondants et elle porte aussi un nom.
Une clé est constituée de 1 ou plusieurs attributs telle que une valeur de la clé détermine exactement l’enregistrement.
Infocpge.blogspot.com Brahim BAKKAS
Exemple
Id_client Nom Prénom Adresse tél
100 Hamdan Mohamed Hay salam sallé
066666666
120 Rachidi Nabiha Dior jamaa Rabat
0634234423
121 Naser Soultana Hay massira 1 temara
Infocpge.blogspot.com Brahim BAKKAS
94
Client Attributs
Enre
gis
trem
ents
95
Passer du MCD au MLD
Pour les entités : toute entité devient une table, les propriétés de l’entité sont les attributs de la table, l’identifiant de l’entité est la clé primaire de la table ;
Pour les relations : cela dépend des cardinalités. deux cas sont possibles:
la relation disparaît, elle est matérialisée par
l’ajout d’une clé étrangère,
la relation donne lieu à la création d’une table.
Infocpge.blogspot.com Brahim BAKKAS
96
Passer du MCD au MLD
Relation binaire aux cardinalités
(X,1) (X,n) avec X=0 ou X=1
La Clé Primaire de la table à la cardinalité (X,n) devient une Clé Étrangère dans la table à la cardinalité (X,1)
Infocpge.blogspot.com Brahim BAKKAS
Entité A
Clé_A
Entité B
Clé_B
X,n X,1
97
Passer du MCD au MLD
La Clé Primaire de la table à la cardinalité (X,n) devient une Clé Étrangère dans la table à la cardinalité (X,1)
Infocpge.blogspot.com Brahim BAKKAS
Entité A
Clé_A #Clé_B
Entité B
Clé_B
98
Exemple
Modèle Conceptuel de Donnée (MCD) :
Modèle Logique de Donnée Relationnelle (MLDR) :
EMPLOYE (id_Employe, Nom_Employe,#id_Societe)
SOCIETE (id_Societe, Nom_Societe)
Infocpge.blogspot.com
Brahim BAKKAS
99
Passer du MCD au MLD
Relation binaire aux cardinalités
(X,n) (X,n) avec X=0 ou X=1
Il y a création d'une table supplémentaire ayant comme Clé Primaire une clé composée des identifiants des 2 entités. On dit que la Clé Primaire de la nouvelle table est la concaténation des Clés Primaires des deux autres tables. Si la relation est porteuse de donnée, celles ci deviennent des attributs pour la nouvelle table.
Infocpge.blogspot.com Brahim BAKKAS
100
Exemple
Une commande est composée de 1 ou n produits distincts en certaine quantité. Un produit est présent dans 0 ou n commandes en certaine quantité.
MLDR COMMANDE (id_Commande, Date_commande) PRODUIT (id_Produit, libelle) COMPOSE (id_Commande, id_Produit, quantité)
Infocpge.blogspot.com Brahim BAKKAS
101
Passer du MCD au MLD: Relation n-aire
quelles que soient les cardinalités Il y a création d'une table supplémentaire ayant
comme Clé Primaire la concaténation des identifiants des entités participant à la relation.
Si la relation est porteuse de donnée, celles ci
deviennent des attributs pour la nouvelle table.
Infocpge.blogspot.com Brahim BAKKAS
102
Exemple:
Un étudiant parle une ou plusieurs langues avec un niveau. Chaque langue est donc parlée par 0 ou n étudiants avec un niveau. Pour chaque niveau, il y a 0 ou plusieurs étudiants qui parlent une langue.
MCD :
MLDR :
ETUDIANT (id_Etudiant, Nom_Etudiant)
NIVEAU (id_Niveau, Nom_Niveau) LANGUE (id_Langue, Nom_Langue) PARLE (id_Etudiant, id_Niveau, id_Langue) Infocpge.blogspot.com
Brahim BAKKAS
103
Passer du MCD au MLD
Relation binaire aux cardinalités (0,1) - (1,1): La Clé Primaire de la table à la cardinalité (0,1) devient une Clé Étrangère dans la table à la cardinalité (1,1)
Exemple: Chaque enseignant encadre 0 ou 1 groupe, chaque groupe étant encadré par un et un seul enseignant.
Infocpge.blogspot.com Brahim BAKKAS
104
MCD:
MLDR: enseignant (Id_ens, Nom,Prénom) groupe (Id_Groupe, Nom_Groupe, #Id_ens)
Exemple
groupe
Id_Groupe
Nom_Groupe
Encadre
enseignant
Id_ens
Nom
Prénom
0,1 1,1
Infocpge.blogspot.com Brahim BAKKAS
105
Contraintes d’intégrité
de structure : valeur de la clé primaire unique et toujours
définie,
de domaine : les valeurs prises par un attribut doivent
vérifier des contraintes,
de référence : les valeurs d’une clé étrangère doivent
correspondre à des valeurs existantes dans la table
d’origine.
La vérification des contraintes assurent que la base reste intègre.
Cette vérification s’effectue, soit directement par le système de gestion de bases de données utilisé quand c’est possible, soit par au moment de la programmation.
Infocpge.blogspot.com Brahim BAKKAS
106
EXERCICE
Client
Id_client
Nom client
Prenom client
Fournisseur
Id_f
Nom_f
Adresse_f
Commande
Id_commande
Date _commande
Passe
1,n 1,1
Contient
0,n
1,n
Qte
- Construire le MLDR correspondant à ce modèle conceptuel de données?
Produit
Id_produit
Libelle
Fournir
1,n 1,n
Infocpge.blogspot.com Brahim BAKKAS
107
MCD/MLDR
Infocpge.blogspot.com Brahim BAKKAS
108
Exercice:
Pour la gestion d’une bibliothèque, voici une partie d’un MCD établi ;
Est-ce que cette partie de MCD établi est valide ? c-a-d est ce que cette entité vérifie les formes normales ?
Etudiant
Nom
Prénom
Titre_livre
Cote_livre
Infocpge.blogspot.com Brahim BAKKAS
109
Exemple: Modèle Physique des Données
Infocpge.blogspot.com Brahim BAKKAS
110
Exemple 2
Infocpge.blogspot.com Brahim BAKKAS
Chapitre 3
L’algèbre relationnel
Infocpge.blogspot.com Brahim BAKKAS 111
112
L’algèbre relationnel
Vocabulaire:
l’algèbre relationnelle consiste en un ensemble d’opérations qui permettent de manipuler des relations(tables), considérées comme des ensemble de tuples : on peut ainsi
faire l’union ou la différence de deux relations, sélectionner une partie de la relation, effectuer des produits cartésiens ou des projections, etc.
Une propriété fondamentale de chaque opération est qu’elle prend une ou deux relations en entrée, et produit une relation en sortie.
Cette propriété permet de composer des opérations : on peut appliquer une sélection au résultat d’un produit cartésien, puis une projection au résultat de la sélection et ainsi de suite.
En fait on peut construire des expressions algébriques arbitrairement complexes qui permettent d’exprimer des manipulations sur un grand nombre de relations.
Infocpge.blogspot.com
Brahim BAKKAS
113
L’algèbre relationnel(suite)
Une requête est une expression algébrique qui s’applique à un ensemble de relations (la base de données) et produit une relation finale (le résultat de la requête).
On peut voir l’algèbre relationnelle comme un langage de programmation très simple qui permet d’exprimer des requêtes sur une base de données relationnelle.
Infocpge.blogspot.com Brahim BAKKAS
114
Les opérateurs de l’algèbre relationnelle
L’algèbre se compose d’un ensemble d’opérateurs, parmi lesquels 5 sont nécessaires et suffisants et permettent de définir les autres par composition. Ce sont :
1. La sélection, dénotée σ;
2. La projection, dénotée ∏;
3. Le produit cartésien, dénoté x;
4. L’union,U;
5. La différence, -
Infocpge.blogspot.com Brahim BAKKAS
115
Les opérateurs de l’algèbre relationnelle
Les deux premiers sont des opérateurs unaires (ils prennent en entrée une seule relation) et les autres sont des opérateurs binaires.
A partir de ces opérateurs il est possible d’en définir d’autres, et notamment la jointure, , ,qui est la composition d’un produit cartésien et d’une sélection.
Infocpge.blogspot.com Brahim BAKKAS
116
La sélection
La sélection s’applique à une relation R et extrait de cette relation des tuples qui satisfont un critère de sélection,F, ce critère peut être:
La comparaison entre un attribut de relation R et une constante
La comparaison entre deux attributs
Infocpge.blogspot.com Brahim BAKKAS
117
Exemple de sélection
Infocpge.blogspot.com Brahim BAKKAS
118
Projection
La projection s’applique à une relation R , et ne garde que les attributs donc, contrairement à la sélection, on ne supprime pas des lignes mais des colonnes.
Exemple :
Infocpge.blogspot.com Brahim BAKKAS
119
Produit cartésien
Le premier opérateur binaire, et le plus important, est le produit cartésien,x,
Le produit cartésien entre deux relations R et S se note U et permet de créer une nouvelle relation où chaque tuple de R est associé à chaque tuple de S.
Exemple:
Infocpge.blogspot.com Brahim BAKKAS
120
Exemple
Voici deux relations R et S:
X
=
Infocpge.blogspot.com Brahim BAKKAS
121
Union
L’Union de deux tables est la table contenant l'ensemble des tuples (cellules) appartenant à l'une ou l'autre des tables (ou les deux). Les deux tables opérandes doivent être de même schéma, c'est-à-dire que les attributs de la table (colonnes) doivent être les mêmes. On note l'union entre deux tables R1 et R2:
union(R1,R2) ou encore R1 U R2
Infocpge.blogspot.com Brahim BAKKAS
122
Différence
La différence entre deux tables est la table contenant l'ensemble des tuples (cellules) appartenant à une table mais pas à la seconde. Les deux tables opérandes doivent être de même schéma, c'est-à-dire que les attributs de la table (colonnes) doivent être les mêmes. On note la différence entre deux tables R1 et R2:
minus(R1,R2) ou encore R1 - R2
Infocpge.blogspot.com Brahim BAKKAS
123
Intersection
L'intersection entre deux tables est la table contenant l'ensemble des tuples (cellules) appartenant aux deux tables. Les deux tables opérandes doivent être de même schéma, c'est-à-dire que les attributs de la table (colonnes) doivent être les mêmes. On note l'intersection entre deux tables R1 et R2:
inter(R1,R2) ou encore R1 R2
Infocpge.blogspot.com Brahim BAKKAS
124
Quotient (ou division)
Le quotient de deux tables est la table contenant l'ensemble des tuples (cellules) qui concaténés à chaque tuple de l'une des tables fournissent des tuples appartenant à l'autre On note le quotient de deux tables R1 et R2:
div(R1,R2) ou encore R1/R2
Infocpge.blogspot.com Brahim BAKKAS
125
Jointure
θ-jointure :
On appelle θ-jointure selon une qualification Q l'ensemble des tuples provenant du produit cartésien de deux relations et satisfaisant la qualification, c'est-à-dire la condition exprimée à l'aide des comparateurs: ≥
≤
>
<
=
≠
¬
On note la θ-jointure de deux tables R1 et R2: joinQ(R1,R2) ou encore (R1 Q)R2
Infocpge.blogspot.com Brahim BAKKAS