Installation Standard pour W2K de Lotus Notes

publicité
MERISE PARTIE n°1
Mael Le Clech
Cours Méthode Merise – Base de données
relationnelles – SQL
Page 1 sur 12
Base de données relationnelle = banque d’information (l’information donnée étant définie
par le système d’entreprise), sert à gérer les informations nécessaires à un système.
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.
Le SQL a été créé à partir des mathématiques ensemblistes.
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.
CREATION D’UNE BASE DE DONNEES
MCD = Modèle conceptuel de données, il sert à schématiser les besoins du système
d’information.
Avant de créer en lui-même le MCD, il faut d’abord renseigner un Dictionnaire de
données. On le renseigne en demandant aux personnes concernées ce dont elles ont
besoins, on se base également sur l’existant informatique et papier… Il s’établie aussi en
fonction de nos propres idées car effectivement en parlant avec les interlocuteurs de
l’entreprise, on peut faire des propositions par rapport à notre visions des choses.
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.
Pour finaliser le MCD, il faut poser les cardinalités.
27/06/2007
Support MERISE
MERISE PARTIE n°1
Cours Méthode Merise – Base de données
relationnelles – SQL
Mael Le Clech
Page 2 sur 12
Exercice :
- Des étudiants effectuent différents stages au sein d’organismes dont on conserve le
numéro, nom, nom de la personne à contacter, numéro de téléphone.
- Un stage réalisé par un étudiant peut être de type A ou B.
- Un stage commence et se termine à des dates propres à chaque étudiant.
- Différents étudiants peuvent faire un ou plusieurs stages au sein d’un organisme.
- Pour chaque étudiant on connaît le numéro de la carte étudiant, le nom, le prénom et
le numéro de téléphone.
Voici le MCD correspondant à cette situation :
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
ET_NOM
ET_PRENOM
ET_NUMTEL
ORG_NUM
ORG_NOM
ORG_CONTACT
ORG_NUMTEL
1,n
1,n
Réaliser
1,1
STAGE
ST_NUM
ST_TYPE
ST_DATEDEB
ST_DATEFIN
27/06/2007
1,1
Effectuer
Support MERISE
MERISE PARTIE n°1
Mael Le Clech
Cours Méthode Merise – Base de données
relationnelles – SQL
Page 3 sur 12
OU
ETUDIANT
1,n
ET_NUMCART
ET_NOM
ET_PRENOM
ET_NUMTEL
Effectuer
ST_TYPE
ST_DATEDEB
ST_DATEFIN
ORGANISME
1,n
ORG_NUM
ORG_NOM
ORG_CONTACT
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
27/06/2007
Support MERISE
MERISE PARTIE n°1
Mael Le Clech
Cours Méthode Merise – Base de données
relationnelles – SQL
Page 4 sur 12
Exercice avec association réflexible :
Un grand magasin conserve le numéro, le nom, la date de naissance, l’adresse, le salaire,
le numéro du supérieur hiérarchique, le code du rayon ou le secteur, les activités de
chacun de ses employés.
Chaque employé n’a qu’un seul supérieur hiérarchique, n’appartient qu’à un seul rayon
mais peut avoir plusieurs activités (ex vendeur caissier étalagiste…).
A chaque code de rayon ou de secteur correspond un libellé (ex jouets, vêtements…).
Un rayon ou un secteur est situé dans un étage. Sur un même étage il peut y avoir
plusieurs rayons ou secteurs.
Chaque employé exerce une activité depuis une certaine date.
Voici le MCD correspondant à cette situation :
27/06/2007
Support MERISE
MERISE PARTIE n°1
Mael Le Clech
Cours Méthode Merise – Base de données
relationnelles – SQL
Page 5 sur 12
Exercice :
Une société dispose de centres délocalisés dans différentes régions de France.
La société est organisée en services (recherches, administration, vente).
Chaque service est installé dans une et une seule agglomération, mais une
agglomération peut recevoir plusieurs services.
Chaque service est référencé par un code service.
Les numéros d’employés, nom, prénom, salaire, commission de chacun des employés de
cette société sont stockés.
L’historique des fonctions de chacun des employés de cette société sont stockés.
Cet historique permet de connaître chacun des postes, des services et des dates par
lequel un employé est passé.
Voici le MCD correspondant à cette situation :
27/06/2007
Support MERISE
MERISE PARTIE n°1
Mael Le Clech
Cours Méthode Merise – Base de données
relationnelles – SQL
Page 6 sur 12
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.
Voici le MCD correspondant à cette situation :
27/06/2007
Support MERISE
MERISE PARTIE n°1
Mael Le Clech
Cours Méthode Merise – Base de données
relationnelles – SQL
Page 7 sur 12
Exercice :
RESTO
Voici le MCD correspondant à cette situation :
Utilisation Ternaire entre RECETTE, MENU et TYPE
27/06/2007
Support MERISE
MERISE PARTIE n°1
Mael Le Clech
Cours Méthode Merise – Base de données
relationnelles – SQL
Page 8 sur 12
ACCESS
Tous les énoncés suivants concernent la base ACCESS « Gestion de temps »
(voir clef usb).
Note : Une requête SQL avec « SELECT * FROM …. » est moins efficace que de lister tous
les champs « SELECT NOM, PRENOM, AGE FROM …. »
Sur access pour créer une requette :
Sélectionnez les tables a afficher
Maintenant a vous de créer votre requête
27/06/2007
Support MERISE
MERISE PARTIE n°1
Mael Le Clech
Cours Méthode Merise – Base de données
relationnelles – SQL
Page 9 sur 12
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 :
Pour voir le résultat :
27/06/2007
Support MERISE
MERISE PARTIE n°1
Mael Le Clech
Cours Méthode Merise – Base de données
relationnelles – SQL
Page 10 sur 12
EXERCICE :
Req1 = Afficher les numéros, les noms des clients et les villes triés par le numéro en
ordre décroissant.
SELECT clients.NumCli, clients.RaiSocCli, clients.VilleCli
FROM clients
ORDER BY clients.NumCli desc;
Req2 = Afficher tous les clients qui habitent le département « 92 »
SELECT clients.NumCli, clients.RaiSocCli, clients.VilleCli, clients.CPCli
FROM clients
WHERE clients.CPCli BETWEEN "92000" AND "92999";
Req3 = Afficher tous les clients dont le collaborateur n’est pas « JPE »
SELECT clients.RaiSocCli
FROM clients
WHERE clients.CodColCli<>"JPE";
Req4 = Afficher la liste des missions démarrant après le 31/12/2000
SELECT NumMis, LibelleMis
FROM missions
WHERE DateDebutMis > #12/31/2000#;
Req5 = Afficher les habitants du 92 et du 94.
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
SELECT NumMisTemps, DateTemps, DureeTemps
FROM temps
WHERE DureeTemps > 1
AND DateTemps >=#01/01/2001#;
Req7 = Afficher tous les clients habitant EVRY et de tous les clients qui ont le
collaborateurs « VPA »
SELECT RaiSocCli, VilleCli
FROM clients
WHERE VilleCli LIKE "Evry*"
AND CodColCli = "VPA";
27/06/2007
Support MERISE
MERISE PARTIE n°1
Mael Le Clech
Cours Méthode Merise – Base de données
relationnelles – SQL
Page 11 sur 12
Req8 = Afficher le nom des collaborateurs, leur taux horaire HT et TTC
SELECT collaborateurs.NomCol, collaborateurs.PrixHoraireCol, ([PrixHoraireCol]*1.196) &
" €" AS PrixHoraireTTC
FROM collaborateurs;
Req9 = Afficher le numéro de client, le numéro de mission et le nombre de jour écoulés
depuis le début de chaque mission.
SELECT missions.NumMis, missions.NumCliMis, (Date()-missions.DateDebutMis) AS
["Nombre de jours :"]
FROM missions;
Req10 = Compter le nombre de client par département
SELECT LEFT(CPCli,2) AS DEPARTEMENT, COUNT(NumCli) AS NOMBRECLIENT
FROM clients
GROUP BY LEFT(CPCli,2);
LEFT(CPCli,2) signifie les 2 chiffre en partant de la gauche
Req11 = Afficher la date de la première mission effectuée pour chaque client
SELECT NumCliMis, MIN(DateDebutMis) AS ['Premiere mission']
FROM missions
GROUP BY NumCliMis;
27/06/2007
Support MERISE
MERISE PARTIE n°1
Mael Le Clech
Cours Méthode Merise – Base de données
relationnelles – SQL
Page 12 sur 12
Req12 = Temps passé par mission
SELECT NumMisTemps, SUM(DureeTemps) AS DUREETOTALE
FROM temps
GROUP BY NumMisTemps;
Req13 = Temps en moyenne pour la durée des missions par collaborateur
SELECT CodColTemps, AVG(DureeTemps)
FROM temps
WHERE YEAR(DateTemps) = 2000
GROUP BY CodColTemps;
27/06/2007
Support MERISE
Téléchargement