Documente Academic
Documente Profesional
Documente Cultură
Toute organisation quelle qu’elle soit, doit consacrer une partie de son effort
à récolter, traiter, stocker et diffuser l’information issue de son propre fonctionnement.
L’information est indispensable dans le processus de décision d’une
organisation.
Ainsi, pour une automatisation réussie, l’information devra être cernée et
classifiée de manière très précise et devra également pouvoir être représentable dans le
système informatique.
Prof KAF
I.1.1.3. Mode de représentation de données
En vue de traiter de manière automatisée, les données doivent être
représentables sous formalisme acceptable par le système informatique qui sera employé.
Les formes de représentation (type ou format) classiques rencontrées en informatique
sont :
Alphabet (des lettres uniquement) ;
Alpha numérique (lettre, chiffre, symbole, etc.) ;
Numérique (nombre)
Date ;
Logique booléen (vrai, faux, oui, non).
I.1.2. SYSTEME
Tous travaux informatiques s’effectuent dans un système. Ainsi, il existe
plusieurs définitions du mot SYSTEME.
Le système est un ensemble d’éléments en interaction dynamique, dont les
éléments sont organisés et coordonnées en vue d’atteindre un objectif, qui évolue dans un
même environnement.
Jean Louis LEMOIGNE définit un système comme suit :
Quelque chose (n’importe quoi identifiable) ;
Qui fait quelque chose (activité ou fonction) ;
Qui est doté d’une structure ;
Qui évolue dans le temps ;
Dans quelque chose ;
Pour quelque chose ;
Ainsi la faculté de sciences peut être considérée comme un système
constitué d’éléments en interaction dynamiques.
Du point de vue de la structuration, le système d’entreprise est définit comme suit :
Système de pilotage
Informations traitées
Système d’information
Informations collectées
Système Opérant
Prof KAF
1. Le système de Pilotage
Définit la politique de développement de l’entreprise, les stratégies qui
peuvent être à court, moyen ou long terme pour atteindre ses objectifs. Il décide des
actions à conduire sur le système opérant en fonction des objectifs et des politiques de
l’entreprise.
Ainsi, le système de pilotage à pour rôle la prise de décision. Une décision
est un choix parmi plusieurs autres. Elle est constituée du comité (les membres du comité
de gestion) ou des membres décisionnels. Il transmet au sous système opérant
2. Le système opérant
Concerne l’ensemble des activités, opérations, effectuées dans l’entreprise.
C’est le système qui exécute les ordres provenant du système de pilotage.
Il est constitué des exécutants. En d’autres termes le système opérant englobe toutes les
fonctions liées à l’activité propre de l’entreprise
Exécute les tâches, produits les biens selon les besoins des utilisateurs, au
système de pilotage Système de décision (ou pilotages, management, etc.). Guide de
l’organisation vers ses objectifs (activités de planifications et de contrôle. Système
opérant ou logistique, technologies, physique, de production, etc.
3. Le système d’information
C’est le trait d’union entre le système de pilotage et le système opérant
Ainsi, le système d’information peut être définit comme l’ensemble des informations
internes et externes circulants dans l’entreprise.
a. Définition
Le système d’information est un ensemble des moyens (humains et
matériels) et des méthodes se rapportant au traitement de l’information d’une
organisation. Ou encore l’ensemble des informations circulant dans l’organisation, elle est
le trait d’union entre le système de pilotage et le système opérant.
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,
Le système opérant englobe toutes les fonctions liées à l’activité propre de
l’entreprise
Le 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.
b. Rôle du système d’information
Prof KAF
INFORMATIONS EXTERNES
INFORMATIONS INTERNES
ECRITES
ECRITES ORALES
ORALES PICTURALES
PICTURALES
APPROBATION
TRAITEMENT BRUT
STRUCTURATION
RESULTAT
DIFFUSION
UTILISATEURS
Prof KAF
La pertinence : un bon système doit être capable d’assurer une sécurité pour les
informations en son sein.
La sécurité : un bon système d’information ne peut être accédé que par les
utilisateurs prédéfinis.
Prof KAF
SERVICE COMMERCIAL SERVICE COMPTABLE
I.1.3. CONNAISSANCE.
La connaissance peut être considérée comme une combinaison d’intuitions,
de modèles, de méthodes de règles de gestion, de programme et de principes d’utilisation
qui guident les décisions et les actions.
On distingue deux types de connaissance :
La connaissance formalisée ou explicite : c’est une connaissance qui peut se
transmettre notamment lors de formations ou dans les ouvrages, documents,
Internet, tec.
La connaissance tactile : c’est une connaissance qui s’acquiert principalement par
la pratique.
Prof KAF
Par exemple : savoir conduire une automobile ou savoir nager.
Prof KAF
Connaissance (schémas, Apprentissage
modèles, programmes)
Modèle Programmes
Filtrage interprétatif
principes
etc.
Apprentissage
I.2.1.1 Introduction
La conception d'un système d'information n'est pas évidente car il faut
réfléchir à l'ensemble de l'organisation que l'on doit mettre en place. La phase de
conception nécessite des méthodes permettant de mettre en place un modèle sur lequel on
va s'appuyer. La modélisation consiste à créer une représentation virtuelle d'une réalité de
telle façon à faire ressortir les points auxquels on s'intéresse. Ce type de méthode est
appelé analyse. Il existe plusieurs méthodes d'analyse, la méthode la plus utilisée en
France étant la méthode MERISE.
Prof KAF
Le but de cette méthode est d'arrivé à concevoir un système d'information.
La méthode MERISE est basée sur la séparation des données et des traitements à effectuer
en plusieurs modèles conceptuels et physiques. La séparation des données et des
traitements assure une longévité au modèle. En effet, l'agencement des données n'a pas à
être souvent remanié, tandis que les traitements le sont plus fréquemment.
I.2.1.2. Historique
I.2.1.3 Présentation
La méthode de recherche en informatique par sous-ensemble, Merise est une
méthode de conception et de réalisation des projets informatiques. Elle préconise une
démarche en étape et fait appel à des modèles pour représenter les objets qui composent le
système information, les relations existant entre ces objets ainsi que les règles des gestions
sous jacentes.
En tant que conception, Merise a comme atouts majeurs :
Une approche du SI menée parallèlement et simultanément sur les données et les
traitements.
Une description du système d’information par niveau.
a. Niveau d’abstraction.
Prof KAF
c. Le niveau organisationnel
Le niveau organisationnel permet de définir l’organisation qu’il est
souhaitable de mettre en place dans l’entreprise pour atteindre les objectifs visés, on parle
alors de choix d’organisation pour lesquels la marge de manœuvre est plus importante. Il
précise les postes de travail, la chronologie des opérations, les choix d’automatisation,
tout en intégrant les contraintes éventuelles.
Il consiste donc à se poser la question du point de vue des traitements : Qui,
Où, et Quand ? Et on envisage le partage des taches entre les hommes et la machine. Ce
niveau se traduit en termes de :
La conception du système d'information se fait par étapes, afin d'aboutir à un système
d'information fonctionnel reflétant une réalité physique. Il s'agit donc de valider une à une
chacune des étapes en prenant en compte les résultats de la phase précédente. D'autre part,
les données étant séparées des traitements, il faut vérifier la concordance entre données et
traitements afin de vérifier que toutes les données nécessaires aux traitements sont
présentes et qu'il n'y a pas de données superflues.
Cette succession d'étapes est appelée cycle d'abstraction pour la conception
des systèmes d'information:
L'expression des besoins aboutit au MCC (Modèle conceptuel de la communication) qui
définit les flux d'informations à prendre compte.
L'étape suivante consiste à mettre au point le MCD (Modèle conceptuel des
données) et le MCT (Modèle conceptuel des traitements) décrivant les règles et les
contraintes à prendre en compte.
Le modèle organisationnel consiste à définir le MLD (Modèle logique des
données) qui représente un choix logiciel pour le système d'information et le MOT
(Modèle organisationnel des traitements) décrivant les contraintes dues à l'environnement
(organisationnel, spatial et temporel).
Enfin, le modèle physique reflète un choix matériel pour le système d'information.
Statique Dynamique
Niveau
(données) (traitement)
Indépendant du système :
Conceptuel MCD MCT
QUOI ?
Organisationnel ou MLD MOT Choix du SGBD
logique (ou ?) (QUI ? QUAND ?) QUI ? QUAND ? OU ?
Opérationnel ou Haute connaissance du
MPD MOPT
physique SGBD : COMMENT
Prof KAF
Elle consiste à sélectionner un domaine sans tenir compte des interactions
avec des autres domaines ou projets.
2. Approche Systémique
Consiste à étudier un domaine en tenant compte des interactions avec les
autres domaines. L’approche systémique nous conduit à faire l’étude de la structure
statique d’une organisation et de sa représentation dans le système d’information qui
s’étend jusqu’à la prise en compte de son évolution.
a. Entité.
Une entité est la représentation d'un élément matériel ou immatériel ayant
un rôle dans le système que l'on désire décrire. On appelle classe d'entité un ensemble
composé d'entités de même type, c'est-à-dire dont la définition est la même. Le
classement des entités au sein d'une classe s'appelle classification (ou abstraction). Une
entité est une instanciation de la classe. Chaque entité est composée de propriétés,
données élémentaires permettant de la décrire.
Une entité est aussi un objet, ou un individu au sens large, du système
d’information pourvu d’une existence propre ; conforme au choix de gestion de
l’entreprise et, le plus souvent, porteur d’une ou plusieurs propriétés.
Elle est formalisée par un rectangle comme suit :
Libellé
Propriété 1
Propriété 2
Propriété 3
.
.
Propriété N
Prof KAF
Les classes d'entités sont représentées par un rectangle. Ce rectangle est
séparé en deux champs : Le champ du haut contient le libellé. Ce libellé est généralement
une abréviation pour une raison de simplification de l'écriture. Il s'agit par contre de
vérifier qu'à chaque classe d'entité correspond un et un seul libellé, et réciproquement.
Le champ du bas contient la liste des propriétés de la classe d'entité.
002
001 Robert
Sam 55
22
c. Identifiant
L’identifiant est une propriété permettant de distinguer, sans ambiguïté,
l’occurrence d’une entité. On visualise cet identifiant en le plaçant généralement comme
première propriété et éventuellement en le soulignant ou parfois de le faire précéder d’une
dièse (#).
Prof KAF
L’identifiant est formalisé comme suit :
Client
#N° Client
Nomcl
Prénom
AgeCl
VilleCl
d. Relation ou association
Une association est un lien sémantique entre deux ou plusieurs entités. Elle
est pourvue existence propre mais, elle peut être porteuse de propriétés.
Une classe de relation contient donc toutes les relations de même type (qui relient donc
des entités appartenant à des mêmes classes d'entité).
Une classe de relation peut lier plus de deux classes d'entité. Voici les
dénominations des classes de relation selon le nombre d’intervenants :
- une classe de relation récursive (ou réflexive) relie la même classe d'entité
- une classe de relation binaire relie deux classes d'entité
- une classe de relation ternaire relie trois classes d'entité
Une classe de relation n-aire relie n classes d'entité. Les classes de relations
sont représentées par des hexagones (parfois des ellipses) dont l'intitulé décrit le type de
relation qui relie les classes d'entité (généralement un verbe). On définit pour chaque
classe de relation un identificateur de la forme Ri permettant de désigner de façon unique
la classe de relation à laquelle il est associé. On peut éventuellement ajouter des
propriétés aux classes de relation.
Dans la pratique, elle peut être traduite par une action ou par un verbe en action.
L’association est formalisée par une ellipse comme suit :
Propriété 1 Propriété 1
Propriété 2 Nom association Propriété 2
Propriété 3 Propriété 1 Propriété 3
. Propriété 2 .
. .
. .
Propriété n Propriété n
Prof KAF
Une association peut être caractérisée par sa dimension selon le nombre
d’entités qu’elle implique. Ainsi, on a des relations de dimension 2 ou binaire qui
associent deux entités, de dimension 3 ou ternaire qui associent trois entités, de dimension
n, ou n-aire qui associent n entités.
e. Cardinalité
Les cardinalités permettent de caractériser le lien qui existe entre une entité
et la relation à laquelle elle est reliée. La cardinalité d'une relation est composée d'un
couple comportant une borne maximale et une borne minimale, intervalle dans lequel la
cardinalité d'une entité peut prendre sa valeur :
- la borne minimale (généralement 0 ou 1) décrit le nombre minimum de fois qu'une
entité peut participer à une relation.
- la borne maximale (généralement 1 ou n) décrit le nombre maximum de fois qu'une
entité peut participer à une relation.
Un couple de cardinalités placé entre une entité E et une association A
représenté le nombre minimal et maximal d’occurrences de l’association A qui peuvent
être « ancrées » à une occurrence de l’association E. Le tableau ci-après récapitule les
valeurs que peut prendre ce couple.
La cardinalité représente le nombre de fois minimale et maximale d’une entité par rapport
à une association.
Prof KAF
La cardinalité minimale exprime le nombre de fois minimal ou une
occurrence de l’entité participé aux occurrences de l’association. Cette cardinalité est
souvent 0 ou 1.
La cardinalité maximale exprime le nombre de fois maximal ou une
occurrence de l’entité participe aux occurrences de la relation. Cette cardinalité est
souvent 1 ou n (n indique une cardinalité maximum non connue à priori).
NumLocation Num
1.1 1.n
Categorie Possède Prénom
Type Adresse
NbrePersonne Code postale
Adresselocation ville
Photo Numtél
Equipement E-mail
Prof KAF
Appartement Propriétaire
NumLocation Num
Categorie CIF Prénom
Type Adresse
NbrePersonne Code postale
Adresselocation Ville
Photo Numtél
Equipement E-mail
A un instant donné, dans une entité, pour un individu, un attribut ne peut prendre qu’une valeur et
non un ensemble ou une liste de valeurs (les attributs doivent être atomiques)
L’identifiant peut être composé de plusieurs attributs mais les autres attributs de l’entité doivent
dépendre de l’identifiant en entier.
Prof KAF
I.2.3 NOTION PAR RAPPORT AUX TRAITEMENTS
I.2.3.1 Evénement
I.2.3.2 Opération
L’opération peut se définir comme une suite d’action qui ne peut être
interrompue. Cette suite d’action peut être réalisée sur les données en réactions à
l’événement déclenclencheur, en vue d’y apporter une réponse appropriée.
Les opérations peuvent regroupées sous l’appellation générique de processus, dès lors,
qu’elle concerne un même secteur d’activité
I.2.3.3 Résultat
Prof KAF
Evénement ext2 : Réception des pièces manquantes du dossier n° D
Evénement ext3 : La date actuelle est JJ/MM/AAAA
Evénement int1 : Dossier de pré inscription n° D accepté le JJ/MM/AAAA
Evénement int2 : Dossier de pré-inscription n° D mis en attente le JJ/MM/AAAA
Evénement int3 : Avis de suppression du dossier n° D émis le JJ/MM/AAAA
Synchronisation : Si ext2 et int2 Avec ext2.D = int2.D
Synchronisation : Si int2 et ext3 Avec Pour tout int2 ayant
int2.JJ/MM/AAAA+ 8 = ext3.JJ/MM/AAAA
Prof KAF
CHAPITRE II. BASES DE DONNEES ET
ARCHITECTURE CLIENT - SERVEUR
II.1 INTRODUCTION
II.1.1 HISTORIQUE
II.1.2.1 Généralités
Les fichiers composant le SGF sont des fichiers de données et des fichiers
de programmes :
Les fichiers de programmes permettent deux types de traitements :
Prof KAF
b. Objectifs d'un SGF
a. Inconvénients directs
Prof KAF
La tâche la plus couramment effectuée en terme de traitement des données
consiste à associer des informations à d'autres informations, éparpillées un peu
partout dans le système d'information de l'entreprise.
Ce sont ces associations entre informations qui sont traduites dans un MCD par la mise en
place de Relations.
Or les données sont de structures différentes et ne sont pas reliées
physiquement entre elles, ce qui rend très difficile l'exécution de ces rapprochements :
le développeur doit se charger d'effectuer ces rapprochements par comparaison des
rubriques des fichiers concernés, en tenant compte de leur organisation, de leurs
méthodes d'accès et en espérant qu'il n'y ait pas d'inconsistance .
b. Inconvénients indirects
1. Difficultés d'accès
Exemple : Un stagiaire féminin du nom de Bobange se marie et décide de porter son nom
d'épouse, Kanku. Il devient obligatoire de modifier la rubrique Nom dans chaque fichier.
Cette multiplicité des mises à jour est aggravée par les difficultés
d'accès et par l'inconsistance des données ainsi que par le facteur temps qui rend le
système incohérent tant que l'ensemble des mises à jour n'est pas fini.
3. Problèmes d'intégrité
Prof KAF
- le contrôle des valeurs possibles d'un attribut ;
Exemple : solde >0 ; année naissance < année courante …
- la référence ou appartenance à un ensemble variable de valeurs.
4. Problèmes de sécurité
a. Définition normalisée
Prof KAF
D'autres définitions reprennent les mêmes éléments tout en insistant sur
certains aspects :
o Une base de données est une collection de fichiers (entités) reliés entre eux par des
liens logiques et/ou physiques et organisés de manière à répondre efficacement à
une grande variété de questions ;
o Une BD peut apparaître comme une collection d'informations modélisant une
entreprise du monde réel, servant de support à une application informatique et
dont les données peuvent être interrogées au moins par leur contenu ;
o Une BD est destinée à la gestion, au stockage, à l'actualisation et à la consultation
d'entités de différentes natures (et de leurs données), sachant que ces entités ont un
lien les unes avec les autres.
3. Entrepôts de données :
Les entrepôts de données intègrent les données de l’entreprise dans une base
unique de puis laquelle les utilisateurs peuvent facilement extraire des indications pour
l’aide à la décision.
Est un logiciel qui permet d’interagir avec une base de données. Il permet à
l’utilisateur de définir des données, de consulter la base ou de la mettre à jour.
1. Exhaustivité : implique que l’on dispose de toutes les informations relatives au sujet
donné.
2. La non redondance : implique l’unicité des informations dans la base de données .En
général on essaie d’éviter la duplication des données car cela pose des problèmes de
cohérence lors des mises à jour de ces donnés.
3. La structure : implique l’adaptation du mode de stockage des renseignements aux
traitements qui les exploiterons et les mettrons à jour ; ainsi qu’au coût de stockage de ces
renseignements dans l’ordinateur.
Prof KAF
Le stockage physique d’une base de donnée consiste en un ensemble
d’enregistrements physiques. Organisés à l’aide des listes, des pointeurs et différentes
méthodes d’indexation.
II.3.1 INTRODUCTION
1. Centraliser l'information
En visant cet objectif, on cherche naturellement à supprimer la redondance,
à assurer l’unicité des saisies et mises à jour et à centraliser les contrôles.
C'est la modélisation conceptuelle qui va permettre, dans un premier temps, de répondre à
ce souci. Assurer l'indépendance données – traitements. Il s'agit ici de pouvoir faire
évoluer indépendamment les données et les traitements.
Cette indépendance sera assurée grâce à une approche en plusieurs niveaux
de la base de données.
2. Permettre les liaisons entre ensembles de données
On doit pouvoir ainsi établir des liaisons entre ensembles de données qui
n'ont que peu de points communs (faculté, départements, auditoires, cours.).
Dans un premier temps, ces rapprochements seront matérialisés dans la base de
données par des liens physiques visibles et manipulables par certains utilisateurs de la
base de données. On pourrait alors qualifier cela de "ficelles" existant entre les données
Prof KAF
L'information étant stockée de manière unique, il faut d’autant plus s'assurer
de son intégrité, de sa fiabilité et de sa cohérence. Pour cela, il faut pouvoir définir des
contraintes d'intégrité ou des contraintes de cohérence entre données, contraintes qui
doivent être prises en compte aussi bien pour la définition que pour le traitement des
données et sans faire appel à la programmation (ou le moins possible, pour ne pas
invalider les efforts fournis en terme d'indépendance données / traitements).
5. Sécurité
Prof KAF
Transaction : Ensemble de 1 à n requêtes nécessaires à la réalisation d'une opération
particulière.
Exemple : - Retrait d'argent d'un compte avec vérification préalable du solde ;
- Enregistrement de la livraison d'un produit avec mise à jour de la quantité en stock …
Pour que ces opérations soient réalisées de manière fiable en obtenant des
résultats cohérents, il est indispensable que l'intégralité des requêtes constituant une
transaction soit exécutée et que les résultats définitifs soient enregistrés dans la base de
données.
En fait, un SGBD devra veiller à ce qu'une base de données reste dans un
état cohérent. Pour cela les transactions ne doivent pas être exécutées partiellement : elles
doivent être réalisées, soit entièrement, soit pas du tout. D'où le qualificatif d'atomique
(qui constitue un tout indissociable).
- La commande COMMIT
- La commande ROLLBACK
Prof KAF
Si une transaction ne s'exécute pas complètement, le système dispose de la
commande ROLLBACK, lui permettant d'annuler les effets partiels de la transaction :
Roll Back : commande exécutée par le système, qui annule les résultats d'une
transaction.
Comme pour la commande COMMIT, l'utilisateur a la possibilité
d'employer cette commande, pour éviter, par exemple, qu'une opération malheureuse ne
vienne endommager la base de données (suppression intempestive, annulation de toutes
les requêtes en cas de message d'erreur .). La commande ROLLBACK libère également
les verrous posés par les différentes requêtes.
Exemple : Opération de crédit d'un montant de 100,00 FF sur un compte C1 :
La procédure de reprise
6. Confidentialité
Prof KAF
Un SGBD doit offrir une protection des données afin d'éviter les accès
illicites.
On peut notamment assurer la confidentialité en mettant en oeuvre des procédures :
- d'identification ; Exemple : nom d'utilisateur ou login
- d'authentification ; Exemple : mot de passe
d'autorisation d'accès. Exemple : définition des possibilités de consultation de
création, de modification, de suppression d'une ou plusieurs entités au profit des
utilisateurs.
N.B. : Le souci d’identification et d’authentification pour accéder à un SGBD se
superpose systématiquement au même besoin pour le système d'exploitation.
Pour éviter qu'un utilisateur ne soit obligé de s’identifier et de s'authentifier
deux fois (une fois pour accéder à sa machine et une fois pour accéder au SGBD), il peut
être possible de reprendre les éléments d'identification et d'authentification du SE (même
nom d'utilisateur, même mot de passe). Ce dispositif s'appelle le "mapping".
L’administrateur de la base
L’administrateur de la base de données est chargé du contrôle de la base de
données, précisément l’accès aux données.
Le Programmeur :
Ecrit des applications qui utilisent la base de données et crée les tables et les
structures associées (vues, index,…) utilisées par ses applications.
L’utilisateur final :
N’a accès qu’aux données qui lui sont utilises par l’intermédiaire des
applications ou en interrogeant directement les tables ou vues sur lesquelles
l’administrateur de base de données lui a accordé des droits.
Prof KAF
La notion de type d’article qui désigne le schéma d’un article (description
contenant) sa distingue ici de celle d’occurrences d’article qui représentent les différentes
valeurs stockées de la base.
On peut formuler quelques remarques sur la structure hiérarchique :
Nota : Détruire une occurrence d’article père, détruit par conséquent également les
occurrences des ses enfants.
Pour cela, il modifie l'une des règles de dépendance entre les entités :
Une entité "fille" peut avoir plusieurs entités "mères".
1. Avantages
Il est clair que ce type de SGBD apporte une plus grande souplesse et une
plus grande rapidité aux différents traitements.
Prof KAF
2. Inconvénients
Prof KAF
non navigationnel, permettant de spécifier les données que l’on veut obtenir sans dire
comment y accéder, ainsi que de traitements ensemblistes. C’est donc le moteur du SGBD
qui doit déterminer le meilleur plan possible d’accès aux données.
Les SGBD objet enregistrent les données sous forme d’objets : les données sont
enregistrées avec les procédures et les fonctions qui permettent de les
manupiler
Ils supportent la notion d’héritage entre classes d’objets complexes (les
pointeurs remplacent les jointures pour les structures hiérarchiques)
A priori, beaucoup d’avantages sur le relationnel, mais manque de
normalisation et de standard inertie de l’existant (presque toutes les bases
actuelles sont de type relationnel)
Prof KAF
Adopte le niveau conceptuel au type de SGBD utilisé pour le SGBD
relationnels, il traduit le niveau conceptuel sous forme de relations.
Pour le SGBD objet, le model conceptuel est traduit sous forme de classes (direct depuis
un schéma UML)
REMARQUE : niveau logique pour le SGBD relationnels, les relations sont normalisées
pour éviter les problèmes liées à une mauvaise répartition entre les relations. Des besoins
d’optimisation peuvent conduire à dénormaliser certaines relations
c. Niveau Physique
Décrit l’implantation du niveau logique à l’aide du matériel et du SGBD
choisi. On précise les emplacements des données en utilisant les possibilités sur les
différents supports.
On peut optimiser les accès aux données en utilisant les possibilités particulières offertes
pour les SGBD
Le modèle relationnel est un model qui a été formalisé par CODD en 1970.
ce modèle stocke les données dans les tables sans préjuger de la façon dont les
informations sont stockées dans la machine. D’où un ensemble de données sera donc
modélisé par un ensemble de tables.
Le succès du modèle relationnel auprès des chercheurs, concepteurs et
utilisateurs est dû à la puissance et à la simplicité de ses concepts. En outre contrairement
à certains autres modèles, il repose sur les bases théoriques.
1. Définition
D’une manière générale, on peut dire que le modèle relationnel permet une
présentation de l’univers décrite sous la forme de tableaux à deux dimensions. Ce modèle
repose sur quelques concepts très simples.
2. Relation
La relation est encore appelée table relationnelle ou table.
Afin d’expliquer ce concept, on peut utiliser les deux ensembles suivants :
PRODUITS = {P1, P2, P3}
FOURNISSEUR = {F1, F2}
Le produit cartésien PRODUIT x FOURNISSEUR est défini par :
P x F = {P1-F1 ; P1-F2 ; P2-F1 ; P2-F2 ; P3-F1 ; P3-F2}
Généralités sur les Bases de Données
Ce produit cartésien peut être représenté par la relation suivante :
PRODUITS FOURNISSEUR
P1 F1
P1 F2
Prof KAF
P2 F1
P2 F2
P3 F1
P3 F1
3. L'attribut
Afin de pouvoir distinguer les colonnes d’une relation, et ainsi rendre leur
ordre sans importance, il est nécessaire d’associer un nom à chaque colonne.
Un attribut d’une table relationnelle est le nom d’une colonne de cette relation. Le nom
de cette colonne doit être unique pour la relation considérée. Les valeurs acceptées dans
chaque colonne respectent un certain nombre de règles et/ou appartiennent à un ensemble
défini de valeurs :
Un attribut est défini par rapport à un domaine.
4. Le domaine
Un domaine est un ensemble dans lequel les données prennent valeur, c'est-
à-dire dans lequel elles sont significatives.
Il peut être défini :
Prof KAF
- en extension, en donnant la liste des valeurs composantes ;
- en intention, en définissant une propriété caractéristique des valeurs du domaine.
A titre d’exemple, on peut considérer :
- le domaine des couleurs de l’arc-en-ciel, ce qui suffit à définir en intention ce domaine ;
- {rouge, orangé, jaune, vert, bleu, indigo, violet} si l'on souhaite définir en extension ce
même domaine. C'est l'utilisation de ce concept de domaine qui va faciliter les
rapprochements entre informations contenues dans des tables différentes, stockées dans
des colonnes aux noms différents et parfois même n'ayant d'autre lien entre elles que cette
appartenance à un même domaine.
5. Le degré
Le degré d’une table est le nombre d’attributs composant cette table.
6. Le tuple
Tuple est l’ensemble des valeurs de chaque attribut pour un élément de la
relation. C'est en fait une ligne de la table ou une occurrence du lot d'informations. Une
relation est donc un ensemble de tuples et elle ne possède pas 2 tuples identiques.
7. La valeur
La valeur est le contenu d'un attribut pour un tuple donné.
En résumé
ATTRIBUTS
RELATION
ttribut1 Attribut2 Attribut3 Attribut4
Prof KAF
DEGRE=4
Fig 1. le résumé
2) Clé primaire
3) Clé étrangère
Prof KAF
Le schéma d’une relation est composé de son nom suivi de la liste de ses attributs
Exemple : RELATION (attribut 1, attribut 2, attribut 3,...attribut n)
Il est à souligner que le schéma d’une relation représente son intention, c’est à dire les
propriétés communes et invariantes des tuples qu.elle va contenir au cours du temps. Au
contraire, une relation représentée en extension est une représentation des tuples qu’elle
contient à un instant donné.
Exemple
STAGIAIRES (N° Identité, Nom, Prénom, Grade Définition en intention de la table
INDENTIFIAN NOM PRENOM GRADE
T
120120 KABAMBA Vincent Sergent Déf. en extension de la
120121 BAJOMBA Bacc Adjudant table
130131 KIAYIMA Bill Lieutenant
130130 KANKU Bobo Major
1. Relation Un -vers-Un
Une relation Un -vers-Un existe quand pour chaque clé primaire il y a zéro
ou une valeur correspondante pour un autre champ ou un autre enregistrement. Lorsque la
relation concerne des champs, ceux-ci sont généralement placés dans une même table,
mais cela n’est pas obligatoire. Lorsque la relation concerne des entités (des
enregistrements dans le modèle physique) elle peut s’entendre entre deux entités ou bien
d’une entité vers elle -même. Ce dernier cas permet la représentation de hiérarchies (par
exemple l’entité “ employé ” peut avoir une relation vers une autre entité “employé ” avec
la définition “ a pour chef... ”).
Un tel bouclage dune table sur elle-même s'appelle aussi une auto-jointure
Prof KAF
2. Relation Un -vers-N
Une relation Un -vers-N (un vers plusieurs) existe quand, pour chaque
enregistrement dans une table il existe zéro ou plusieurs enregistrements liés dans une
autre table (exemple : un client a plusieurs commandes).
3. Relation N-vers-Un
Une telle relation existe lorsque plusieurs enregistrements d’une même table
font référence de façon non ambiguë à un seul enregistrement d’une autre table. On
appelle parfois cette relation une relation “ Lookup ” ou table de référence car elle
représente une référence vers la clé primaire d’une autre table. Une relation N-vers-Un
impliquant des clés étrangères peut généralement être renversée (en Un -vers-N), alors
qu’une relation Un -vers-N impliquant que des clés primaires (liens identifiants) ne peut
pas être renversée en N-vers-Un.
4. Relation N-vers-N
Une telle relation existe lorsque plusieurs enregistrements d’une même table
sont liés à plusieurs autres enregistrements d’une autre table. Cette relation est réversible
par essence. Un exemple classique est celui des commandes et des articles : plusieurs
commandes peuvent faire références au même article, et plusieurs articles peut être
utilisés dans une même commande. Les bases de données relationnelles ne peuvent
représenter directement les relations N-vers-N, le concepteur de la base doit créer une
table intermédiaire (contenant des couples formés des clés primaires des deux tables en
relation plus d’éventuelles propriétés spécifiques à la relation). Si on utilise un outil de
type AMC Designor ou Win-Design, c’est cet outil qui lors de la traduction du modèle
logique en modèle physique fera apparaître la table intermédiaire automatiquement. Nous
verrons un tel exemple plus loin.
Prof KAF
12. La transformation des objets du MCD
Dans tous les cas de figure :
o Les objets sont transformés en RELATION (ou TABLE).
o L'identifiant de l'objet devient la CLE PRIMAIRE unique de la table.
o Les propriétés deviennent des ATTRIBUTS de la table.
Prof KAF
14. Unicité d’occurrence
II.7 LE SQL
II.7.1 DEFINITION
SQL (Structured Query Language, en français Langage de requêtes
structuré) est un langage de définition de données (LDD, ou en anglais DDL Data
Definition Language), un langage de manipulation de données (LMD, ou en anglais
DML, Data Manipulation Language), et un langage de contrôle de données (LCD, ou en
anglais DCL, Data Control Language), pour les bases de données relationnelles.
.
a. SQL est un langage de définition de données
Prof KAF
c. SQL est un langage de protections d'accès
Il est possible d'inclure des requêtes SQL dans un programme écrit dans un
autre langage (en langage C par exemple), ainsi que d'envoyer directement les requêtes
SQL telles quelles au SGBD.
Il est possible d'ajouter des commentaires grâce :
• au caractère %. Tous les caractères situés après celui-ci sur la même ligne ne
seront pas interprétés
• aux délimiteurs /* et */. Tous les caractères compris entre les délimiteurs sont
considérés comme des commentaires Les commentaires ne peuvent pas être
imbriqués
Le langage SQL n'est pas sensible à la casse (en anglais case sensitive), cela
signifie que l'on peut aussi bien écrire les instructions en minuscules qu'en majuscule.
Toutefois, cette insensibilité à la casse n'est que partielle dans la mesure où la
différenciation entre minuscules et majuscules existe au niveau des identificateurs 'objets.
1. La commande SELECT
Prof KAF
NOTA : dans cette syntaxe, les mots clef du SQL sont en majuscule droite, les paramètres
en minuscule et entre crochets on trouve les parties optionnelles.
En fait l'ordre SQL SELECT est composé de 6 clauses dont 4 sont optionnelles. Clauses
de l'ordre SELECT :
CLI_NOM CLI_PRENOM
DUPONT Alain
MARTIN Marc
SELECT CLI_NOM, CLI_PRENOM BOUVIER Alain
FROM T_CLIENT DUBOIS Paul
WHERE TIT_CODE = 'M.' DREYFUS Jean
FAURE Alain
PAUL Marcel
DUVAL Arsène
PHILIPPE André
CHABAUD Daniel
BAILLY Jean-François
Permet de trouver les noms et prénoms des clients dont le titre est ‘M.’ (monsieur).
NOTA : comme tous les paramètres à prendre sous forme de littéraux doivent être
exprimées entourés d'apostrophes (simples côtes), il faut dédoubler un tel caractère s'il
s'avère présent dans la chaîne utilisée.
Prof KAF
ramène toutes les colonnes de la table dans la réponse. Dans le cas contraire il faut
expressément nommer chacune des colonnes et les séparer par des virgules.
Exemple :
SELECT *
FROM T_CLIENT
WHERE TIT_CODE = “M”
CLI ID TIT CODE CLI NOM CLI PRENOM CLI ENSEIGNE
1 M. DUPONT ALAIN NULL
2 M. MARTIN MARC Trans. MARTIN
3 M. BOUVIER ALAIN NULL
4 M. DUBOIS PAUL NULL
5 M. DREYFUS JEAN NULL
6 M. FAURE ALAIN Boulangerie
11 M. PAUL MARCEL Cie internationale
Machines Electromécaniques
1.3 Opérateur AS
Prof KAF
On peut utiliser les opérateurs mathématiques de base (+,-, *, /,), pour
combiner différentes colonnes.
Lorsqu’un nom d’un élément d’une base de données (table, colonne par
exemple) est identique à un mot clef du SQL, il convient de l’entourer de guillemets
(double quote). En principe, les mots réservés du SQL sont déconseillés pour nommer des
objets du modèle physique de données...
Imaginons une table de nom JOIN, composée des champs suivants
2. Clause ORDER BY
NOTA : le tri est un tri interne, il ne faut donc placer dans cette clause que les noms des
colonnes présentées dans la clause SELECT. Souvent, le fait de placer DISTINCT suffit,
en général, à établir un tri puisque le moteur doit se livrer à une comparaison des lignes
mais ce mécanisme n'est pas garantit car ce tri s’effectue dans un ordre non contrôlable
qui peut varier d’un serveur à l’autre.
La clause ORDER BY est la dernière clause de tout ordre SQL et ne doit figurer qu'une
seule fois dans le SELECT, même s'i l existe des requêtes imbriquées ou un jeu de
requêtes ensemblistes
3. La clause WHERE
WHERE prédicats
Prof KAF
Le prédicat doit contenir n’importe quelle expression logique renvoyant une valeur vraie.
Ainsi, une requête aussi stupide que la suivante, est supposée fonctionner :
Attention : la plupart des SGBDR ne comporte pas de colonne de type booléen. Une
requête comme la première risque d'échouer.
3.2 Opérateur IN
NOTA : les opérateurs IN et BETWEEN sont très pratiques dans le cas où l’on désire
effectuer des requêtes où l’utilisateur peut saisir une liste de choix multiples (IN) ou une
plage de valeur (BETWEEN).
3.5 Résumé des opérateurs pour les prédicats de la clause WHERE Voici un tableau
résumant les principaux opérateurs utilisés pour la construction des prédicats :
o connecteurs logiques {OR | AND}
Prof KAF
o opérateur de négation NOT
o parenthèses (...)
o opérateurs mathématiques + - * /
o comparaison logique IS [NOT] {TRUE | FALSE | UNKNOWN}
o comparaison avec valeur IS [NOT] NULL
o intervalle valeur BETWEEN borne_basse AND borne_haute
o comparaison partielle de chaîne de caractères valeur LIKE motif [ESCAPE
Échappement]
o comparaison à une liste de valeur [NOT] IN (liste)
4. Fonctions diverses
Prof KAF
NOTA : certains serveurs SQL proposent différentes fonctions comme LTRIM et RTRIM
pour une suppression des blancs en tête ou en queue.
Prof KAF
o BIT_LENGTH Taille d'une colonne de type BIT ou BIT VARYING (nombre
de bits) CHAR_LENGTH Taille d'une colonne de type caractère (nombre de
caractères)
o OCTET_LENGTH Taille d'une colonne de type caractère (nombre d'octets)
o CURRENT_DATE Date en cours
o CURRENT_TIME Heure en cours
o CURRENT_TIMESTAMP Date et heure en cours
o CONVERT Conversion paramétrée d'une chaîne de caractères
o POSITION Position d'une chaîne de caractères dans une sous chaîne
o TRANSLATE Traduction d'une chaîne de caractères dans un format spécifié
LN logarithme népérien
LOG logarithme décimal
POWER puissance
COS cosinus
COSH cosinus hyperbolique
SIN sinus
SINH sinus hyperbolique
TAN tangente
Prof KAF
48
Certains sont rarement implémentés du fait que les SGBDR sont axés sur
l’informatique de gestion, la collecte et le traitement d’informations et non le calcul
mathématique.
II.8 LA NORMALISATION
Le schéma est équivalent si la jointure naturelle sur les attributs communs des
relations obtenues par éclatement redonne la relation de départ.
Normaliser une relation consiste à extraire les DF internes qui posent des
problèmes, en les transférant dans de nouvelles relations.
Il s’agit de la première règle qu’on pourrait dire fondatrice. Elle fait partie
de la définition formelle des bases de données relationnelles.
Cette règle stipule que les champs de chaque table doivent être atomiques et qu’il ne
peut exister de champs répétitifs. De plus, chaque champ doit avoir une signification
précise constante dans le temps. En d’autres termes chaque entité doit posséder un
identifiant qui caractérise ses individus de manière unique.
Une relation est dite dans la troisième forme normale si aucun champ non-
clé n’est en dépendance transitive avec la clé primaire.
Ce qu’on peut noter aussi : soit trois colonnes (A, B, C), A étant la clé primaire, si (A
B) et que (B C) on peut en déduire que (A C), dans ce cas il existe une relation
transitive entre A et C et la table n’est pas dans la 3NF. Ou encore une relation est en
3FN si tout attribut qui ne fait pas partie d’une clé candidate ne peut dépendre que d’une
clé candidate.
En fait il s’agit toujours de bon sens et cette définition peut se comprendre
facilement : si la valeur d’un champ non-clé peut être déduite de la valeur d’une autre
50
champ non-clé alors sa relation à la clé primaire est, par force, transitive (puisqu’elle
transite par un autre champ) et la table n’est pas dans la troisième forme normale.
Cette forme normale est une extension de la troisième forme, elle seule
supprime toute dépendance transitive. Si la table possède plus d’un candidat pour la clé
primaire, elle doit être examinée selon le point de vue de chacune de ces clés
potentielles. Si après un tel examen elle se trouve toujours être dans la troisième forme
normale (quel que soit la clé primaire choisie) alors elle est dans la forme normale de
Boyce-Codd.
Une FNBC est toujours en 3FN mais l’inverse n’est pas vrai car pour la 3FN on
n’impose rien pour les DF dont le but est un attribut clé
a. Opérations ensemblistes
Opérations binaires
51
PERSONNE(NOM,PRÉNOM)
Sélection ()
opération unaire
résultat: relation composée des tuples qui vérifient une condition spécifiée dans la
sélection
expression de la condition:
- des opérandes (noms d’attribut et valeurs de dom.)
- des opérateurs logiques (=, <,, >,,)
- des connecteurs logiques (,et)
Exemple:
(COUL.=rouge) (QUALITÉ très bonne) (vins)
53
C. Opération de projection
Projection ( )
opération unaire qui consiste à enlever à la relation initiale tous les attributs non
mentionnés dans la projection et à éliminer les tuples à double
résultat: relation restreinte aux attributs spécifiés dans la projection
Exemple :
54
c. Opération de jointure
1. Jointure ( )
Equi-jointure
si le seul opérateur utilisé dans la condition de jointure est l’égalité, l’opération
est appelée équi-jointure Jointure naturelle
dans le cas de l’équi-jointure, les colonnes jointes ont toujours un contenu
identique, on en supprime une, dans ce cas l’opération est appelée jointure
naturelle
restriction: il faut que les attributs à joindre portent le même nom
55
Expressions algébriques
Le résultat d’une opération algébrique est une relation –> cette nouvelle relation peut à
son tour être utilisée dans une opération algébrique Règles d’écriture On obtient une e
xpression a lgébrique b ien f ormée (eabf) en applicant les règles suivantes:
On peut monter que {,,,,} est un ensemble complet, c’est à dire que l’on peut
exprimer les autres opérations comme une séquence d’opérations de cet ensemble:
1. VINS
(région :string, coul .:couleurs, mill .:entier, qualité :qualités) où qualités = {médiocre,
passable, moyenne, bonne, très bonne, excellente}||vins( région , coul ., mill ., qualité) ||
“Le millésime mill.des vins coul . de région est de qualités qualité”.
2. CÉPAGE-RÉGION
Dans un monde où la course à la productivité conduit les technologies à évoluer de plus en plus
vite, le client-serveur s'est taillé une part de choix depuis le début des années 1990. En effet, il
faut pouvoir disposer de systèmes d'information évolutifs permettant une coopération fructueuse
entre les différentes entités de l'entreprise. Les systèmes des années 70 et 80 ne répondaient pas
à ces exigences.
58
Les entreprises sont soumises à des contraintes de plus en plus fortes, aussi bien du monde
extérieur que de l'intérieur de l'entreprise. Les contraintes externes sont imposées par les clients
de plus en plus exigeants, la régulation de plus en plus complexe, la compétition de plus en plus
dure qui conduit à réduire le temps de passage d'un produit de la conception à la vente. Plus
précisément, il s'agit donc de :
mieux satisfaire les clients, par exemple en leur présentant des informations
consolidées et claires ;
respecter les régulations en vigueur, malgré leur évolutivité, par exemple en étant
capable de générer rapidement de nouvelles déclarations ;
produire mieux et plus vite les nouveaux produits, de sorte à participer à la
compétition active vers la nouveauté, et à réduire le time ta market.
Définition
Ce paragraphe propose une vue d'ensemble de l'architecture client-serveur et définit les notions
de base indispensables à la compréhension du modèle. Qu'est-ce que le client-serveur? C'est
avant tout un mode de dialogue entre deux processus. Le premier appelé client demande
l'exécution de services au second appelé serveur. Le serveur accomplit les services et envoie en
retour des réponses. En général, un serveur est capable de traiter les requêtes de plusieurs
clients. Un serveur permet donc de partager des ressources entre plusieurs clients qui s'adressent
à lui par des requêtes envoyées sous forme de messages.
Le client-serveur étant un mode de dialogue, il peut être utilisé pour réaliser de multiples
fonctions. Il existe donc différents types de client-serveur qui ont été définis dans un schéma
célèbre publié pour la première fois par le Gartner Group. On distingue plus particulièrement le
client-serveur de présentation, le client serveur de données et le client-serveur de procédures.
Avec le client serveur de présentation, le client assure seulement l'affichage et la saisie des
informations. Avec le client-serveur de données, le serveur accomplit la gestion des données.
Dans le cas du serveur de procédures, le serveur exécute des procédures pour le compte des
clients; ces procédures peuvent accéder aux données. Ces deux derniers types de client-serveur
convergent aujourd'hui vers une architecture client-serveur de données et procédures
Notions de base
Notion 4 :Réponse(Reply)
Message transmis par un serveur à un client suite à l'exécution d'une opération contenant les
paramètres de retour de l'opération.
En résumé, la figure suivante illustre ces notions: un client exécute une application et demande
l'exécution d'une opération à un serveur par le biais d'une requête. Il reçoit une réponse, lui
indiquant par exemple que l'opération a été bien exécutée. Les appels au service de transport
mis en jeu sont au nombre de quatre: SendRequest() permet au client d'émettre le message
décrivant la requête à une adresse correspondant à la porte d'écoute du serveur, ReceiveReply()
permet au client de recevoir la réponse en provenance du serveur ; ReceiveRequest() permet au
serveur de recevoir la requête sur sa porte d'écoute, SendReply() permet au serveur d'envoyer la
réponse sur la porte d'écoute du client.
La tendance est donc d'aller vers un système d'information du type client-serveur de données et
procédures. De plus en plus souvent, ce type de client-serveur permet de mettre en commun des
procédures communes autour de la base de données au niveau du serveur, et donc de répartir les
traitements entre client et serveur.
Plus précisément, les composants d'une telle architecture (cf. figure 5) sont les suivants :
1. Les clients. Ils supportent le code de l'application non lié directement aux données. Ce code
est réalisé grâce à un outil de développement d'application. Il implémente les dialogues
interactifs avec les utilisateurs, les traitements spécialisés des messages, l'affichage des
résultats.
2. Le serveur. Il assure le stockage, la distribution, la gestion de la disponibilité et de la sécurité
des données. Il permet l'accès transactionnel et décisionnel aux informations.
ANNEXE
62
A - GENERALITES
Qu'est-ce que SQL ?
SQL a ete developpe chez IBM dans le milieu des annees 70. Adopts des sa
parution par de nombreuses societes, il est considers aujourd'hui comme une norme
dans les environnements de grandes et moyennes entreprises.
B - REQUETES DE SELECTION SUR UNE TABLE
1 - L'instruction SELECT
SELECT nom champ1, nom champ2, ... FROM table ;
Le nom de champ sert d'en tete de colonne, pour utiliser un autre titre, appele alias, utiliser
('instruction AS
Exercices :
2 - Clause DISTINCT
N'affiche qu'un exemplaire de chaque jeu de lignes identiques. SELECT DISTINCT nom
champl, nom champ2, ... FROM table ;
3 - Clause WHERE
L'instruction WHERE permet d'introduire une condition pour specifier les lignes a afficher.
SELECT nom champ1, nom champ2, ...
FROM table
WHERE condition
- Between peut-titre utilise pour verifier si une valeur de colonne (caractere, date,
numerique) se situe entre 2 valeurs.
- In verifie si une valeur de colonne correspond a l'une de celle specifie dans la liste
- Not In verifie si une valeur de colonne ne correspond pas a l'une de celle specifie
dans la liste
Ex : Liste des clients n 'habitant pas a Paris, Monteal ou
Londres SELECT societe, ville
FROM clients
WHERE ville NOT IN ('Paris', 'Montreal','London')
- Like selectionne les lignes en comparant la valeur d'une colonne de type caractere a
une chaine de caracteres specifiee.
8 – Nom de sociótó, contact du client habitant une adresse dont le nom contient le
mot "place "
5 - Utilisation d'expressions
Dans la clause SELECT on peut :
- inserer des instructions descriptives qui seraient repetees a chaque ligne,
- definir une nouvelle colonne (colonne calculee)
SELECT nom champl, nom champ2, ..., expression calculee, "expression repetee"
FROM table ;
Ex d'expression numerique :
Liste des lignes commandes avec le total facture par ligne (hors remise)
SELECT ref produit, quantite, prix_unitaire, quantite * prix_unitaire as total
FROM details commandes
Liste des lignes commandes dont le montant est inferieur a 100 f
SELECT n_commande, prix_unitaire * quantite as montant
FROM details_commandes
WHERE prix_unitaire * quantite <100
Exercices :
6 - Utilisation de fonctions
II existe 3 principaux types de fonctions dans le langage SQL : les fonctions mathematiques et
statistiques, les fonctions de date et les fonctions relatives aux caracteres.
Ex : Nombre d'employes
SELECT COUNT (*) FROM employes ;
Exercices :
b) Fonctions de date
Exercices :
La clause ORDER BY specifie la liste des colonnes sur lesquelles l'affichage doit titre
the (ASC ou DESC).
Exercice :
14 - Classer par ordre dócroissant de prix, les produits vendus dans I'entreprise
8 - Regroupement d'enregistrements
a) - Clause GROUP BY
Cette clause regroupe les lignes ayant des valeurs identiques dans une ou plusieurs colonnes issues de
('instruction SELECT, en une ligne.
I Remarque : Chaque colonne figurant dans la clause select doit figurer dans la clause Group
B y . Ex : Nombre d 'articles differents par fournisseur
SELECT n_fournisseur, count(*)
FROM produits
GROUP BY n_fournisseur
Exercices :
b) - Clause Having
Cette clause permet de restreindre la selection des groupes figurant dans le resultat. Elle precise la
condition a laquelle chaque groupe doit repondre.
Ex :Nombre d'articles par commande, pour les n° de commandes
apres 10030 SELECT n_commande,count(*) as «Nombre
d'articles» FROM details_commandes
GROUP BY n_commande
HAVING n_commande>10030
Exercices :
Explication de la jointure
Commandes Employes
04 Al 0 101
1 - Jointure de 2 tables
Exercices :
La jointure fonctionne selon le meme principe qu'avec 2 tables, ilfaut juste proceder a
plusieurs jointures
Exercices :
23 - Quantites du produit reference 38, pour chaque commande de ce produit, vendu apres le
31/07/93
23 bis - Liste des produits de reference 20 a 38 vendus a plus de 100 exemplaires apres le
19-07-1993.
On affichera le nom du produit, la reference et la quantite.
On peut joindre une table avec une copie de celle-ci. Attention, II faut definir
differents noms ou alias pour la table et sa copie.
Ex : Liste des employes et de leur chef de service classes par ordre decroissant des noms de
chefs de service
4 - Jointure externe
Les jointures precedentes sont qualifiees de jointures internes, si la condition de jointure n'est pas verifiee,
l'enregistrement n'apparait pas dans le resultat. Pour visualiser tous les enregistrements, y compris ceux ne
repondant pas au critere, it faut realiser une jointure externe
Exercice :
Normalement, l'ordre de mise a jour des lignes importe peu. Cependant, il existe certains cas oil on
peut avoir inter& a specifier cet ordre (ex : si on veut augmenter un champ cle de 1, il faut
commencer par la fin des enregistrements). On utilisera dans ces cas la clause ORDER BY.
Ex : UPDATE produits SET prix_unitaire = prix_ unitaire * 1.12 WHERE code_categorie = '1'
Exercice :
Exercice :
Dans le cas d'une agreation, soit on veut obtenir un seul resultat (dans ce
cas, on ne peut pas faire apparaitre d'autres champs dans le select.) soit
on veut obtenir x lignes de resultat (ex : le nombre de produits
commandos par commande) : dans ce cas, it faut obligatoirement creer
un niveau de regroupement : GROUP BY.
- Les informations de restriction de selection. On en a de 2 types :
o Des informations de restriction qui portent sur des lignes d'une table =>
WHERE
o Des informations de restrictions d'affichage des groupes (celles-ci
portent en general sur des fonctions d'agregation) => HAVING
Cette methode s'applique pour les requ8tes de selection (type SELECT). Pour les
autres types de requ'êtes, le principe reste le m8rne.
Table des matières
CHAPITRE I. GENERALITE SUR LE SYSTEME D’INFORMATION............................- 1 -
I.1.1. INFORMATION...................................................................................................- 1 -
I.1.2. SYSTEME............................................................................................................- 2 -
I.1.3. CONNAISSANCE...............................................................................................- 6 -
I.2 LA METHODE MERISE............................................................................................- 8 -
I.2.1 PRESENTATION DE LA METHODE MERISE................................................- 8 -
I.2.2. NOTIONS FONDAMENTALES DE LA MODELISATION DE SYSTEME
D’INFORMATION......................................................................................................- 11 -
Les Formes normales...................................................................................................- 16 -
Deuxième forme normale.............................................................................................- 16 -
Troisième forme normale de Boyce – codd.................................................................- 16 -
I.2.3 NOTION PAR RAPPORT AUX TRAITEMENTS...........................................- 16 -
CHAPITRE II. BASES DE DONNEES ET ARCHITECTURE CLIENT - SERVEUR...- 19 -
II.1 INTRODUCTION....................................................................................................- 19 -
II.1.1 HISTORIQUE...................................................................................................- 19 -
II.1.2 LE SYSTEME DE GESTION DES FICHIERS (SGF)....................................- 19 -
II.2 NOTION SUR LES BASES DE DONNEES..........................................................- 22 -
II.2.1 DEFINITIONS DE QUELQUES CONCEPTS.................................................- 22 -
II.2.2 LES CRITERES D’UNE BASE DE DONNEES.............................................- 23 -
II.3 LE SYSTEME DE GESTION DE BASES DE DONNEES...................................- 24 -
II.3.1 INTRODUCTION.............................................................................................- 24 -
II.3.2 LES OBJECTIFS ET AVANTAGES D'UN SGBD..........................................- 24 -
II.4. TYPES D’UTILISATEURS...............................................................................- 28 -
II.5. TYPES DE SGBD...................................................................................................- 28 -
II.5.1. SGBD HIERARCHIQUE.................................................................................- 28 -
II.5.2 SGBD RESEAU.................................................................................................- 29 -
II.5..3 SGBD RELATIONNEL....................................................................................- 30 -
II.5.4 SGBD OBJET.....................................................................................................- 31 -
II.6 MODELES DE DONNEES......................................................................................- 31 -
II.6.1. NIVEAU D’ABSTRACTION...........................................................................- 31 -
II.6.2. MODELE RELATIONNEL.............................................................................- 32 -
II.7 LE SQL.....................................................................................................................- 39 -
II.7.1 DEFINITION.....................................................................................................- 39 -
II.8 LA NORMALISATION...............................................................................................48
II.8.1. BUT ET PRINCIPE..............................................................................................48
II.8.2. PRATIQUE DE LA NORMALISATION............................................................48
II.8.3. THEOREMES IMPORTANTS...........................................................................49
II.9 L'ALGEBRE RELATIONNELLE................................................................................50
Les contraintes de l'entreprise...........................................................................................58
Notions de base.................................................................................................................58