Академический Документы
Профессиональный Документы
Культура Документы
relationnelles – SQL
Première base de données créée par IBM en 1964 suite à un besoin de gérer des
informations, elle a été créée par des groupes de mathématiciens.
Avant pour gérer les données on utilisait des fichiers. Ils utilisaient chacun une structure
différente, il n’y avait donc pas de norme. Fonctionner sous forme de fichier pouvait
poser des problèmes de MAJ et/ou de doublons.
Alors que dans une base de données la donnée est stockée une et une seule
fois !
Une donnée = l’information la plus petite non décomposable et utile pour le système.
Pour qu’une donnée soit unique dans la base de données, on doit pouvoir la retrouver de
la façon la plus simple possible, on utilise pour cela
Pour créer les bases de données et de savoir ce dont on a besoin au sein d’une
entreprise, des Français ont créé une méthode d’analyse des systèmes d’information qui
s’appelle la méthode Merise aux alentours de 1970.
Aujourd’hui, toutes les méthodes d’analyse qui existent sont plus ou moins basées sur
Merise.
Lors de la création du premier jet du dictionnaire des données, il faudra trouver les
informations qui serviront d’identifiant. Ensuite, il faudra créer des entités qui
représentent le regroupement des données concernant une même idée (ex : code client
– nom - prénom… donnera naissance à l’entité client). A partir du moment où on a trouvé
un identifiant, cela donnera lieu à la création d’une entité.
Dans l’exemple du type : « Code Client – Nom Client – Prénom client », le nom et le
prénom sont déterminés par l’identifiant, le nom et le prénom sont donc en dépendance
fonctionnelle avec l’identifiant.
Attention, lorsque l’on parle d’identifiant, on est bien au niveau du MCD et non de la base
de données, où on parlerait de clef primaire.
Dans une entité, chaque information s’appelle un attribut. Et l’ensemble des attributs et
l’identifiant permettent la création de l’entité.
Si par exemple lors de la conversation avec notre interlocuteur il nous dit qu’un client est
géré par un représentant, il faut bien pouvoir lier les informations, pour cela, il faut faire
des associations. Par exemple, il faudra créer une association entre « Client » et
« Représentant » qui s’appellera « Gérer » par exemple.
relationnelles – SQL
Exercice :
Dictionnaire de données :
STAGE
ETUDIANT
ORGANISME
ET_NUMCART
ET_NOM
ET_PRENOM
ET_NUMTEL
ORG_NUM
ORG_NOM
ORG_CONTACT
ORG_NUMTEL
ST_NUM
ST_TYPE
ST_DATEDEB
ST_DATEFIN
ETUDIANT ORGANISME
ET_NUMCART ORG_NUM
ET_NOM ORG_NOM
ET_PRENOM ORG_CONTACT
ET_NUMTEL ORG_NUMTEL
1,n 1,n
Réaliser
1,1
STAGE
ST_NUM
ST_TYPE 1,1
Effectuer
ST_DATEDEB
ST_DATEFIN
relationnelles – SQL
OU
ETUDIANT Effectuer
ORGANISME
1,n ST_TYPE 1,n
ST_DATEDEB
ET_NUMCART ST_DATEFIN ORG_NUM
ET_NOM ORG_NOM
ET_PRENOM ORG_CONTACT
ET_NUMTEL ORG_NUMTEL
Une association réflexive = lorsque l’on présente une notion de hiérarchie. Par
exemple, on veut gérer une généalogie, pour se faire on va utiliser une seule entité qui
est PERSONNE.
0,n
PERSONNE
ID_PERS
NOM_PERS Enfant de
2,2
relationnelles – SQL
Exercice avec association réflexible :
relationnelles – SQL
Exercice :
relationnelles – SQL
Exercice :
Une société propose à ses clients de concevoir et monter ses meubles soi mêmes, une
liste de codes de composants et description de ces composants (tiroirs, portes, fonds).
Chaque composant peut être de plusieurs couleurs, mais suivant sa couleur le composant
est d’un prix différent. Ainsi une porte rouge est plus chère qu’une porte blanche.
Certains composants comme les vis sont d’une couleur.
Une composition propre à un client référencée par un numéro, attribuée à une date
donnée, éventuellement définie par un intitulé est constituée d’un ou de plusieurs
composants, chacun de ces composants est présent en quantité variable.
La composition constitue le meuble conçu par le client.
Chaque client est référencé avec un ensemble de caractéristiques qui permettent de
l’identifier et le contacter.
relationnelles – SQL
Exercice :
RESTO
relationnelles – SQL
ACCESS
Note : Une requête SQL avec « SELECT * FROM …. » est moins efficace que de lister tous
les champs « SELECT NOM, PRENOM, AGE FROM …. »
relationnelles – SQL
Exemple pour Afficher les noms des clients et les villes triés par ville.
Pour voir le résultat en SQL ou même pour directement écrire la requête en SQL :
relationnelles – SQL
EXERCICE :
Req1 = Afficher les numéros, les noms des clients et les villes triés par le numéro en
ordre décroissant.
Req3 = Afficher tous les clients dont le collaborateur n’est pas « JPE »
SELECT clients.RaiSocCli
FROM clients
WHERE clients.CodColCli<>"JPE";
SELECT clients.RaiSocCli
FROM clients
WHERE CPCli BETWEEN "92000" AND "92999"
OR CPCli BETWEEN "94000" AND "94999";
Req6 = Afficher tous les temps de plus d’une heure depuis le 01/01/2001
Req7 = Afficher tous les clients habitant EVRY et de tous les clients qui ont le
collaborateurs « VPA »
relationnelles – SQL
relationnelles – SQL