Méthode d’analyse et de conception

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Programme Introduction aux BD et aux SGBD Le modèle relationnel
Bases de données : modèlisation et SGBD
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
Fonctionnalités des SGBD
Le Modèle Logique de Données
Les requêtes Manière de dialoguer avec une base de donnée pour :
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
LMD: Langage de Manipulation de Données
Développement d’applications web
AYARI Mejdi Formation 2121 * ISD * 1 tructured uery Anguage 2006.
Contrôles d'accès aux données
L’utilisation des bases de données
Rappel sur les bases de données et le vocabulaire
BASE DE DONNEES RELATIONNELLES
L’utilisation des bases de données
SQL Partie 3 : (LID : Langage d'interrogation de données)
SQL partie3: Langage de définition des données
Manipulation des données Requêtes simples
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
Cours 4b: Introduction au SQL, le langage des SGBD Relationnels
PHP & My SQL.
SQL partie 3. SQL est un langage de définition de données SQL est un langage de définition de données (LDD), c'est-à-dire qu'il permet de créer des tables.
Le langage SQL LDD : Langage de Définition de Données
Chap 4.5 : SQL (LDD) LDD : Langage de définition de données Réfs : Manuel p105.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
SQL (deuxième partie) Langage de manipulation de données (LMD) Chap 4.6 p 107.
Créer des packages.
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Module 7 : Utilisation de requêtes élaborées
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Module 4 : Implémentation de l'intégrité des données.
Sélection de colonnes (la projection)
SQL : Langage de Manipulation des données
Cours SQL.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Le Langage de Définition de Données LDD
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Les vues Une vue: c’est une relation virtuelle. Définie par:
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Les bases de données Séance 8 Jointures.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
INTRODUCTION AUX BASES DE DONNEES
Initiation aux bases de données et à la programmation événementielle Cours N°2 : langage d’interrogation de données. (Les requêtes statistiques et autres).
Initiation aux bases de données et à la programmation événementielle
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Cours n°2 Implémentation et exploitation
Le Langage d ’ Interrogation des donn é es (LID) Module 2.
Bases de données – Cours 3
Le Langage de Manipulation de Données LMD Module 6.
CONCEPTS BD - Synthèse journée 1 :
SQL Partie 2. SQL est un langage de manipulation de données SQL est un langage de manipulation de données (LMD), cela signifie qu'il permet de sélectionner,
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
De Arnault Chazareix :
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
Bases de données : modèlisation et SGBD Séance 3.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Langage de manipulation de données (LMD)
Structured Query Language
SQL LMD FICHE 4.6.
Manipulation D’Une Base De Données
Transcription de la présentation:

Méthode d’analyse et de conception MERISE - SQL Méthode d'Etude et de Réalisation Informatique pour les Systèmes d'Entreprise Strutured Query Langage

sommaire MERISE SQL le modèle logique des données les règles de passage du MCD au MLD (modèle logique de donnée) création d’un modèle relationnel par langage SQL grâce au MLD déclaration des champs d’une table définition des contraintes d’intégrité mode d'accès en écriture/lecture SQL généralité des bases de données accès et de sécurité database et dataspace syntaxe les tables création / suppression définition des champs définition des contraintes les requêtes sélection d'insertion mise à jour / suppression sous requête

le modèle logique des données Le MCD fait précédemment rend compte le plus fidèlement possible de la réalité. Mais cette représentation ne peut pas être directement manipulé par le système, il faut donc passer par un niveau conceptuel prenant en compte les impératifs du système : Modèle hiérarchique Modèle réseau Modèle relationnel Le SGBD (système de gestion de base de donnée) est le système que nous allons étudier.

Modèle relationnel C’est une modélisation reposant sur un système de table. table constitué de propriété (ou rubrique, ou champs) et répondant à des contraintes relationnelles (entre table, entre propriété). Ex : table personne nom prenom dupont claude loiseau bernard

les règles de passage du MCD au MLD Toute entité devient une table L’identifiant de l’entité devient la clef de la table. Les relations du MCD sont traduite grâce à leur cardinalité Si l’on a 0,1 ou 1,1 sur une entité alors celle-ci admettra dans le MLD la clef étrangère de l’entité en relation.

les règles de passage du MCD au MLD Exemple : Devient : ville(nomVille, nbHabitant, nomPays#) pays(nomPays, PNB, PIB) ville pays #nomVille nbHabitant #nomPays PNB PIB 1,1 0,n appartient Clef étrangère# clef

les règles de passage du MCD au MLD Si l’on a 0,n ou 1,n sur les deux entités alors la relation deviendra une table portant les 2 clefs des entités ainsi que les autres propriétés nécessaires au modèle. Exemple : Donne composer(refCommand#, refProd#, quant) commande(refCommand) produit(refProd, designation, prixHT, typProd) produit commande #refProd designation prixHT typProd #refCommand composer quantité 1,n 0,n

les règles de passage du MCD au MLD Traduction de l’héritage 1ère traduction : EMPLOYE(numEmploye,nom,prenom, nomSSII,dateEmbauche) 2ème traduction : EMPLOYE(numEmploye,nom,prenom) EXTERNE(numEmploye#, nomSSII) INTERNE (numEmploye#, dateEmbauche) 3ème traduction (attention redondance d’info possible): EXTERNE(numEmploye,nom,prenom,nomSSII) INTERNE (numEmploye,nom,prenom,dateEmbauche) EMPLOYE #numEmploye Nom prenom EXTERNE INTERNE nomSSII dateEmbauche

sommaire SQL généralité des bases de données syntaxe accès database sécurité syntaxe les tables création / suppression définition des champs définition des contraintes les requêtes sélection d'insertion mise à jour / suppression sous requête

Accès et database Pour accéder à une base de donnée SQL, il faut d’abord s’y connecter (user et password) Ensuite on communique avec le SGBD par requête auquel il répond le résultat (mise à jour effectué, résultat de la sélection ou code erreur). Ces connections avec le SGBD peuvent se faire de façon manuelle (par une console SQL) ou par traitement (fonction dédier dans le langage programmé). Une database d’un SGBD est une base de donnée (le SGBD peut regrouper plusieurs databases)

sécurité L’administrateur SQL autorise les utilisateurs à faire des demandes au système par la commande GRANT, exemples : donner le droit de créer des tables à userX GRANT CREATE TABLE TO userX; donner le droit de supprimer des utilisateurs à userX GRANT DROP USER TO userX; donner le droit de sélection, insertion, modification sur la table table_name aux userX, userY et userZ GRANT SELECT, INSERT, UPDATE ON TABLE table_name TO userX, userY, userZ; donner tout les droits sur la propriété prop_name de la table table_name à userX GRANT ALL PRIVILEGES (prop_name) ON TABLE table_name TO userX;

Syntaxe des tables : création / suppression create table nomTable (nomChamp type, nomChamp type,…); suppression drop table nomTable; Exemple : create table employe (numEmpl integer, nom varchar(25), prenom varchar(25)); drop table employe;

Syntaxe des tables : modification alter table nomTable add newPropertyName type, pour ajouter une propriété modify name type, pour modifier le type change oldName newName type, pour modifier nom et type drop propertyDropName; pour supprimer une propriété Exemple : create table employe (numEmpl integer, nom varchar(25), prenom varchar(25)); alter table employe add dateEmb date, change prenom surname varchar(15), change nom name varchar(25));

Syntaxe des tables : Type SQL Type de donnée Syntaxe Description Type alphanum CHAR(n) Chaîne de caractères de longueur fixe n (n<16383) Type alphanum VARCHAR(n) Chaîne de caractères de n car max (n<16383) Type numérique NUMBER(n,[d]) Nombre de n chiffres [option: d chiffres après la virgule] Type numérique SMALLINT Entier signé de 16 bits (-32768 à 32757) Type numérique INTEGER Entier signé de 32 bits (-2E31 à 2E31-1) Type numérique FLOAT Nombre à virgule flottante Type horaire DATE Date sous la forme 16/07/99 Type horaire TIME Heure sous la forme 12:54:24.85 Type horaire TIMESTAMP Date et Heure

Syntaxe des tables les contraintes des propriétés DEFAULT valeur affecte une valeur par défaut à la propriété. NOT NULL la propriété doit être renseigné dès l’initialisation. UNIQUE la propriété n’admet pas 2 fois la même valeur. CHECK (condition) Les valeurs renseignées doivent respecter les conditions PRIMARY KEY(nom_propriété) La propriété est la clef de la table FOREIGN KEY(nom_prop1) REFERENCES table_nom(nom_prop2)  La prop1 est lié a la prop2 de la table table_nom (donc la valeur entrée dans prop1 doivent être présente dans prop2)

Syntaxe des tables les contraintes des propriétés Exemple : create table employe (numEmpl integer not null, numSecuSoc varchar(15) unique, nom varchar(25) default 'dupond', prenom varchar(25) check(prenom <> 'régis'), primary key(numEmpl)); create table EmpSSII (numEmpSSII integer not null, nomSsii varchar(30) not null, foreign key(numEmpSSII) references employe(numEmpl));

Syntaxe des requêtes : sélection sélection des propriétés SELECT list_nom_propriété list_nom_propriété : * pour sélectionner toute les propriétés, sinon la liste (séparé de virgule) des propriétés à renvoyer Provenant des tables FROM list_nom_table list_nom_table : la liste (séparé de virgule) des tables à scanner Répondant au conditions logiques suivante WHERE conditions conditions - logique et numérique habituelle (AND, OR, NOT, =, <, >, <>,>=,<=, IS NULL, IS NOT NULL) - nom_propriété IN ('valeur1', 'valeur2', 'valeur3') - nom_propriété BETWEEN 'valeur1' AND 'valeur2‘ - nom_propriété LIKE '%val%eur1%' (le % représente un nombre de caractères quelconque)

Syntaxe des requêtes : sélection exemple SELECT employe.numEmpl, numSecuSoc FROM EmpSSII, employe WHERE employe.numEmpl= numEmpSSII AND numSecuSoc LIKE '1%'; Renverra : numEmpl numSecuSoc ------ --------------- 012578 178455689634789 089578 174789456344778 012585 187454423478945 ……… ………

sélection : alias alias on peut renommer une table ou une propriété exemple SELECT b.numEmpl AS numéroEmployé, numSecuSoc AS numéroSecuritéSocial FROM EmpSSII AS a, employe AS b WHERE b.numEmpl=a.numEmpSSII AND numSecuSoc LIKE '1%'; Renverra : numéroEmployé numéroSecuritéSocial ------ --------------- 012578 178455689634789 089578 174789456344778 012585 187454423478945 ……… ………

sélection : jointure SELECT * FROM table1 AS a JOIN table2 AS b ON a.prop1Join=b.prop1Join AND a.prop2Join=b.prop2Join … JOIN table3 AS c ON … WHERE …; Veux dire existe obligatoirement en table1 et en table2 exemple SELECT b.numEmpl AS numéroEmployé, numSecuSoc AS numéroSecuritéSocial FROM EmpSSII AS a JOIN employe AS b ON b.numEmpl=a.numEmpSSII WHERE numSecuSoc LIKE '1%'; NB : JOIN peut-être remplacé par INNER JOIN dans certains SGBD

sélection : jointure Autres jointures existantes SELECT * FROM table1 AS a LEFT JOIN table2 AS b ON … Veux dire existe obligatoirement en table1 SELECT * FROM table1 AS a RIGHT JOIN table2 AS b ON … Veux dire existe obligatoirement en table2 SELECT * FROM table1 AS a OUTER JOIN table2 AS b ON … Veux dire existe obligatoirement en table2 ou en table1

sélection : fonction et regroupement Fonction de groupe Fonction de ligne Regroupement des propriétés condition post regroupement ordonnancement SELECT COUNT(*) AS nombre, MAX(a.age) AS ageMax, MIN(a.age) AS ageMin, AVG(a.age) AS ageMoyen, SUM(a.age) AS ageSomme, SUBSTR(a.typeClient,1,1) FROM personne AS a WHERE a.sexe = ‘F‘ AND LENGTH(TRIM(nom)) GROUP BY a.typeClient HAVING COUNT(*) > 5 AND COUNT(*) < 55 ORDER BY COUNT(*) DESC, a.typeClient;

Sélection : les sous requêtes Une sous requête est comme son nom l’indique une requête inclus dans une requête : SELECT * FROM (SELECT * FROM table a WHERE…) AS a WHERE NOT EXISTS (SELECT * FROM table1 b WHERE a.id=b.id); La sous-requête est intéressante pour factoriser l’information, mais la complexité peut augmenter si les sous-requêtes sont nombreuses ou complexe à résoudre.

Syntaxe des requêtes : insertion / suppression / modification Insertion d’un enregistrement : INSERT INTO nom_table (nom_prop1, …) VALUES (valeur1,…); ou INSERT INTO nom_table (nom_prop1, …) SELECT nom_propA,…; Suppression d’un enregistrement : DELETE FROM nom_table (nom_prop1, …) WHERE …; Modification d’un enregistrement : UPDATE nom_table SET nom_prop1 = 'nouvelle valeur', nom_prop2 = 15,…