Bases de données. Mihaela Mathieu

Dimension: px
Commencer à balayer dès la page:

Download "Bases de données. Mihaela Mathieu"

Transcription

1 Bases de données Mihaela Mathieu

2 Objectifs : comprendre et maîtriser les fonctions d un SGBD relationnel (Oracle et MySQL) connaître le langage SQL savoir développer une application sous Oracle et MySQL c M. Mathieu 2

3 Contenu du cours : Introduction aux SGBD(R) historique définitions, panorama du marché présentation d Oracle et de SQL*Plus présentation de MySQL Manipulation et description des objets d une base - langage SQL Système transactionnel Administration système d Oracle catalogues de données gestion des utilisateurs c M. Mathieu 3

4 Programmation et bases de données programmation en PL/SQL Java et le SGBD (Oracle) c M. Mathieu 4

5 Contenu TP : travail avec Oracle (SQL, PL/SQL, C, Java) depuis une plate-forme Windows ou Unix Contenu TD : * rappel du modèle relationnel c M. Mathieu 5

6 Le cours ne comprend pas : progammation C pour les bases de données aspects XML module Oracle Web... d autres modules d Oracle notions de bases de données OLAP, bases de données distribuées c M. Mathieu 6

7 Pré-requis : logique cours Systèmes d Informations c M. Mathieu 7

8 Chapitre 1 : Introduction aux SGBD(R) 1. Définitions 2. État du marché 3. Présentation d Oracle et de SQL*Plus 4. Présentation de MySQL c M. Mathieu 8

9 Base de données = collection structurée de données cohérentes, intègres, protégées et accessibles simultanément aux utilisateurs. Système de Gestion de Bases de Données = logiciel complexe capable d assurer l exploitation correcte et efficace des BD. BD au coeur des Systèmes d Information importance capitale de la qualité, de la fiabilité et de la bonne exploitation des SGBDs. Volume d une BD : entre 1 MegaBytes et 10? TeraBytes. La taille d une BD doit être transparente à l utilisateur et au développeur (-), de même pour son déploiement. c M. Mathieu 9

10 Une représentation d une BD : Schéma externe Schéma externe Schéma conceptuel Schéma physique Mémoire (externe) c M. Mathieu 10

11 Le schéma conceptuel indique la façon dont les données sont modélisées, structurées (selon le modèle choisi : relationnel, objet ou autre ; les tables et les indexes, les procédures...) Le schéma physique indique comment dont les structures choisies sont implantées physiquement. Tout est stocké en mémoire. Les schémas externes sont dédiées aux utilisateurs et donnent des vues (partielles) des données de la base. c M. Mathieu 11

12 Les acteurs d une BD : utilisateurs : naïfs, occasionnels, avertis développeurs administrateurs (DBA) : administrateurs de données et administrateurs système experts c M. Mathieu 12

13 UTILISATEUR Schéma externe Schéma externe Schéma conceptuel DEVELOPPEUR Schéma physique EXPERT DBA Mémoire (externe) c M. Mathieu 13

14 Plusieurs configurations sont possibles : une BD sur une seule machine plusieurs BD sur la même machine une BD sur plusieurs machines (BD distribuée) Une BD peut admettre 1 ou plusieurs utilisateurs simultanés. Pour n importe quelle configuration le SGBD doit assurer le bon fonctionnement dans la transparence. Un SGBD doit assurer : la définition des bases de données et des objets contenus la manipulation des données la confidentialité l intégrité des données la sécurité de fonctionnement la gestion des accès concurrents c M. Mathieu 14

15 Les SGBD ont un modèle de représentation des données. Classification de SGBD selon leur modèle : relationnel réseau, hiérarchique (plus maintenant) orienté objet (passé de mode). Exemple : O2 XML Les fonctions d un SGBD sont indépendantes du modèle de représentation des données, mais la réalisation de ces fonctions y dépend. Quelques SGBD : petits (bureautique) : Paradox, MS Access moyens SGBD : dbase, FoxPro de taille importante : Oracle, DB2, SQL Server, Ingres logiciel libre : MySQL, PostgeSQL. Le prix d un SGBD varie entre 100 et quelques 10 6 euros. c M. Mathieu 15

16 MySQL - logiciel libre - SGBD relationnel, client/serveur - facile à installer et à utiliser - supporte mal les gros volumes de données - langage SQL réduit par rapport au standard - assure mal la cohérence et la consistence de données c M. Mathieu 16

17 ORACLE - SGBD produit depuis 1975 par Oracle Corporation - SGBD périodiquement mis à jour et en évolution (dernières versions : 9i et 10G). Version utilisée SGBD relationnel (qui tolère des représentations objets depuis la version 8 et des traitements RI et en langage XML depuis la version 9). Pourquoi Oracle? utilise SQL très proche du standard comme langage d interrogation fiable multi-utilisateurs comporte toutes des fonctions des SGBD possibilité de développer des applications variées très répandu en milieu industriel (les moins : administration assez lourde pour des gros volumes de données, son prix) c M. Mathieu 17

18 Les composants d Oracle : SQL*Plus : permet de description et la manipulation des données à travers le langage SQL SQL*Loader, SQL*Net, SQL*Admin compilateur Pro*C Oracle Entreprise Manager OracleWeb : développement des application Web Portail d entreprise, gestionnaire de documents papiers et multimédia Oracle JDevelopper : réalisation des applications multi-fonctions, multi-fenêtres sur la BD... Architecture Client /Serveur sur des serveurs Unix, Windows (NT, XP...), Linux et clients PC, Linux, Unix. c M. Mathieu 18

19 Les objets qu Oracle manipule : pour la manipulation des données : les tables les séquences les indexes les synonymes les clusters - jointure physiques sur plusieurs tables (distantes) pour les traitements : les fonctions et procédures stockées et/ou appelées explicitement les triggers - procédures déclenchées lors des événements précis les assertions - procédures de vérifications lancées systématiquement pour la gestion des utilisateurs les users et leurs droits explicites c M. Mathieu 19

20 Les méta-données d Oracle : des tables spécifiques avec des informations sur des objets de la même catégorie Oracle sait aussi gérer les transactions. Une base Oracle peut s interfacer facilement avec une autre base Oracle ou autre. Des nombreux logiciels de développement d applications travaillent sur les bases Oracle (Swing, PowerBuilder, OpenRoad,...) c M. Mathieu 20

21 Présentation SQL*Plus SQL*Plus est un outil d Oracle pour interroger la BD. fonctionne comme un interpréteur en ligne En entrée : des commandes propres des ordres SQL des procédures PL/SQL des fichiers SQL Il est appelé avec la commande : >sqlplus nom de passe] c M. Mathieu 21

22 Exemple 1 : SQL>desc agent ou SQL>describe agent commande SQL*PLUS qui indique la structure de l objet agent. Équivalent à : SQL > desc - agent Exemple 2 : SQL > select * from agent ; (toutes les instructions SQL finissent par les caractère ; ) Exemple 3 : SQL exécute les ordres contenus dans fichier.sql c M. Mathieu 22

23 Architecture Oracle utilisée : Oracle en client/serveur sur educusers (le serveur) et optxy et asixy (les clients Sun) et PC (les clients Windows). c M. Mathieu 23

24 Chapitre 2 : Types de données Les tables d une BD relationnel se composent des attributs qui contiennent des données. Chaque attribut a un type de données précis. Les types de données sous SQL : tous les types sont simples (pas de types composés, pas de références...) ordonnés ou pas, indexables ou pas c M. Mathieu 24

25 Les types de données sont les suivants : Chaînes de caractères : VARCHAR2(taille) : taille variable d au plus 2000 caractères (VARCHAR sous MySQL) CHAR(taille) :taille fixe d au plus 255 caractères LONG : au plus caractères non-indexable un seul champ LONG par table c M. Mathieu 25

26 Nombres : NUMBER(n,v) : n chiffres, v chiffres après la virgule (DECIMAL sous MySQL) INTEGER FLOAT Dates : DATE : date et heure type ordonné permet des opérations numériques (elle est visible comme une chaîne de caractères selon le format de sortie) Données binaires : RAW(taille) : jusqu à 255 octets LONG RAW : jusqu à 2 Giga Octets pareil que long pb pour la récupération de la valeur c M. Mathieu 26

27 Les constantes : texte : délimitées par des apostrophes ou guillemets : Chaîne ou Chaine numériques : nombre entiers ou à virgule : 12, 12,5 ou 12.5 valeurs logiques : TRUE, FALSE la date courante : SYSDATE (ou NOW sous MySQL) l objet NULL manque de données, vide c M. Mathieu 27

28 La valeur NULL : désigne un manque de données 0 n est pas NULL si une expression contient NULL, est vaut NULL la comparaison avec NULL : IS NULL, est pas = NULL La fonction NVL permet de corriger dans des expressions une possible valeur NULL : NVL (attribut, valeur par-défaut) La fonction COALESCE est une extension de NVL en admettant un nombre variable de paramètres, elle retourne la première valeur non nulle rencontrée dans la liste de ses paramètres. c M. Mathieu 28

29 Fonctions de conversion : TO CHAR : numérique ou date -> chaîne de caractères TO NUMBER : chaîne ->numérique TO DATE : chaîne -> date Autres fonctions : GREATEST, LEAST Opération et fonctions pour le type DATE : opérations + et - avec la signification : date + - nombre : ajout ou suppression d un nombre de jours de la date date1 - date2 : le nombre de jours entre les deux dates calcul de dates : LAST DAY, NEXT DAY, ADD MONTHS c M. Mathieu 29

30 La table DUAL est créée par défaut par Oracle et accessible par tous les utilisateurs ne contient qu un champ DUMMY avec la valeur C est utilisée pour obtenir des valeurs calculées sur la base des constantes Oracle Exemple : SELECT SYSDATE FROM DUAL ; c M. Mathieu 30

31 Chapitre 3 : Langage SQL 1. Manipulations (interrogations et modifications des objets données d une base) 2. Descriptions (créations, modifications, suppressions) 3. Contrôle (gestion des transactions). c M. Mathieu 31

32 SQL = Structured Query Language version stable issu de QUEL sur Ingres et SEQUEL sur SYSTEM R (IBM) langage non-procédural langage interactif Trois dimensions du langage : définition et modification du schéma d une base de données relationnelle interrogation et modification (non-procédurale) de la base contrôle de sécurité et confidentialité de la base. Une commande SQL est souvent appelée requête. SQL ne fait pas la différence entre les petites et les grandes lettres (sauf à l intérieur des chaînes de caractère). c M. Mathieu 32

33 1. Consultation de données - une seule commande : SELECT [ALL/DISTINCT/UNIQUE] liste de sélection FROM nom table,... [WHERE condition de recherche] [GROUP BY liste attributs] [HAVING condition de recherche] [ORDER BY liste attributs] ou une version qui opère avec des ensembles : requête SELECT1 {UNION MINUS INTERSECT} requête SELECT2 car le résulat d une requête SELECT est un ensemble de tuples, i.e. une table. c M. Mathieu 33

34 On appèle clause une partie d une requête. Les clauses SELECT et FROM sont obligatoires. La clause SELECT contient la liste de séléction ainsi que des descripteurs pour la présentation du résultat. La liste de sélection contient : des attributs, des expressions où des attributs ou des constantes interviennent. Un attribut est sous la forme champs ou table.champs. Le symbole * dans la liste de sélection signifie tous les champs de la table. Exemple : SELECT * FROM LECTEUR ; fournit tous les enregistrements de cette table. c M. Mathieu 34

35 SELECT NOM, PRENOM, AGE FROM LECTEUR fournit uniquement les champs indiqués de la table, présentés enregistrement par enregistrement. Les options DISTINCT, UNIQUE assurent la non-redondance du résultat (option implicite : ALL, donc rédondance). Exemple : SELECT PRENOM FROM LECTEUR ; fournit tous les champs PRENOM des enregistrements de cette table, même les doublons. SELECT DISTINCT PRENOM FROM LECTEUR fournit l ensemble des champs PRENOM, donc sans les doublons. c M. Mathieu 35

36 La clause FROM contient une liste d au moins une table avec ou sans synonyme pour une écriture équivalente plus rapide. Exemple : les deux requêtes ci-dessous sont strictement équivalentes : SELECT NOM, PRENOM, AGE FROM LECTEUR et SELECT L.NOM, L.PRENOM, L.AGE FROM LECTEUR L Une vue ou un synonyme se comporte dans une requête SELECT comme une table. (On se concentre pour l instant sur les requêtes SELECT qui opèrent sur une seule table). c M. Mathieu 36

37 La clause ORDER BY permet d afficher les résultats selon des champs présents dans sa liste de sélection. Le tri peut être croissant (option ASC - implicite) ou décroissant (option DESC). La liste de la clause ORDER BY contient des éléments de même type que la clause SELECT (sauf le * ) et / ou des numéros. Exemple : SELECT NOM, PRENOM FROM LECTEUR ORDER BY AGE et SELECT NOM, PRENOM, AGE FROM LECTEUR ORDER BY 3 Les numéros font référence aux éléments de la clause SELECT. En absence de cette clause les résultats sont présentés dans leur ordre d obtention par le système. c M. Mathieu 37

38 Les conditions de recherche sont formées d une ou plusieurs conditions reliées par les opérateurs logiques : NOT, AND et OR. Ces conditions sont de 3 types : conditions de comparaisons conditions de jointure conditions sous-requête c M. Mathieu 38

39 Conditions de comparaison permettent de comparer un attribut ou une expression à un autre attribut ou valeur. La syntaxe est : exp opérateur comparaison exp exp [NOT] BETWEEN exp AND exp exp [NOT] IN (liste valeurs) attribut [NOT] LIKE chaîne attribut IS [NOT] NULL exp désigne une expression formée des attributs, constantes, fonctions reliés par les opérateurs : +, -, *, /,. Les opérateurs de comparaisons sont ceux connus. Exemple : SELECT * FROM LECTEUR WHERE AGE < 10 ; c M. Mathieu 39

40 Le prédicat BETWEEN permet de vérifier si l expression située à gauche se trouve dans l intervalle défini. Exemple : SELECT * FROM LECTEUR WHERE AGE BETWEEN 10 AND 14 ; Le prédicat IN permet de vérifier si un attribut se trouve dans la liste de valeurs indiquées. Exemple : SELECT * FROM LECTEUR WHERE AGE IN (10, 11, 12, 13, 14) ; c M. Mathieu 40

41 Le prédicat LIKE permet de réaliser des comparaisons entre un attribut et une chaîne de caractères en utilisant des caractères de substitution : pour zéro ou plusieurs caractères (%) pour un seul caractère ( ) Exemple : SELECT * FROM LECTEUR WHERE PRENOM LIKE Mich% ; permet d avoir les enregistrements qui correspond aux lecteurs dont le prénom commence par Mich. c M. Mathieu 41

42 Les fonctions sur les chaînes de caractères : UPPER() - conversion en majuscules LOWER() - conversion en minuscules TRIM() - suppression des répétitions d un caractère à gauche ou à droite ou aux deux extrémités SUBTRING() - création d une chaîne a partir d une autre. Les fonction sur les dates : DATE(exp) - conversion d une expression numérique ou chaîne de caractère vers une date DAY(date) - le jour du mois de la date MONTH(date) - le mais de la date YEAR(date) - l année de la date c M. Mathieu 42

43 Les fonctions agrégat (de regroupement) permettent d obtenir des données synthétiques concernant une table ou des attributs de la table : COUNT(* / attribut) - le nombre d enregistrements satisfaisant la requête SUM(attribut) - la somme des valeurs MIN(attribut) - le minimum MAX(attribut) - le maximum AVG(attribut) - la moyenne arithmétique STDEV(attribut) - l écart-type VARIANCE(attribut) - la variance liée à l écart-type La fonction COUNT peut contenir aussi les directives DISTINCT ou ALL. Exemple : SELECT COUNT(*), AVG(AGE) FROM LECTEUR ; fournit le nombre d enregistrements dans la table LECTEUR et la moyenne d âge. c M. Mathieu 43

44 La clause GROUP BY permet de grouper le résultat en fonction des valeurs des attributs présents dans la liste SELECT. Exemple 1 : SELECT COUNT(*), AGE FROM LECTEUR GROUP BY AGE ; fournit le nombre d enregistrements dans la table LECTEUR pour chaque tranche d age. La même requête sans la clause GROUP BY est érronnée, car imbigue. Exemple 2 : SELECT COUNT(*) FROM LECTEUR WHERE PRENOM = Anna ; fournit le nombre d enregistrements dans la table LECTEUR qui ont le prénom Anna. c M. Mathieu 44

45 La clause HAVING décrit une restriction posées sur un groupe des tuples, donc toute condition qui est posée sur un agrégat doit figurer dans la clause HA- VING. Exemple 3 : SELECT COUNT(*), AGE FROM LECTEUR GROUP BY AGE HAVING COUNT(*) >= 2 ; fournit les tranches d age avec au moins deux enregistrements dans la table LECTEUR. c M. Mathieu 45

46 Travail avec la valeur NULL Des champs peuvent avoir la valeur NULL. Exemple : select anom, aprenom, commission from agent ; Résultat : JACQ Aime LEM Roger DESCH Didier BART Fabs BLANCO Laurent 10.5 DESS Lim... c M. Mathieu 46

47 Les requêtes d agrégat comme : select min(commission) from agent ou select count(commission) from agent opèrent uniquement sur des valeurs non NULL. La requête : select anom, aprenom, nvl(to char(commission), sans ) from agent affiche : ANOM APRENOM NVL(TO CHAR(COMMISSION), SANS ) JACQ Aime sans LEM Roger sans DESCH Didier sans BART Fabs sans BLANCO Laurent 10.5 DESS Lim sans c M. Mathieu 47

48 Le fonctionnement de la fonction COUNT et des autres fonctions agrégat Exemples : select count(*) from agent ; fournit le nombre total d enregistrements de la table AGENT. select count(fonction) from agent ; fournit le nombre d apparitions du champ FONCTION de la table AGENT. select count(distinct fonction) from agent ; fournit le nombre d apparitions des valeurs distinctes du champ FONCTION. c M. Mathieu 48

49 La requete : select fonction, count(*) from agent ; est ambigue et non-résolue. La requete : select fonction, count(*) from agent group by fonction ; fournit : FONCTION COUNT(*) ANALYSTE 2 CAPITAINE 1 COMMERCIAL 4 DIRECTEUR 1 EMPLOYE 4 GARDIEN 1 PRESIDENT 1 qui est la liste de toutes les valeurs du champ FONCTION, avec leur nombre d apparitions. c M. Mathieu 49

50 Si la liste de sélection d une requete SELECT contient des fonctions d agrégat et des attributs des tables de sélection, dans la clause GROUP BY il faut impérativement indiquer tous les attributs ou fonctions scalaires sur ces attributs qui apparaissent dans la clause SELECT. c M. Mathieu 50

51 Requêtes SELECT sur plusieurs tables Dans la clause FROM on fait figurer plusieurs tables ou on utilise une condition de sous-requête. Exemple : SELECT lecteur.*, pret.* FROM lecteur, pret ; fournit les enregistrements concatennés de deux tables. En absence de toute condition entre les champs de deux tables la requête réalise simplement le produit cartésien : il faut donc ajouter des conditions de jointure. c M. Mathieu 51

52 Conditions de jointure Un jointure est un lien entre des attributs semblables des deux tables différente : table1.attribut1 opérateur table2.attribut2 L opérateur de comparaison peut être : =, <, >, <> (!=), <=, >=. Exemple : SELECT LECTEUR.CODE LECTEUR, LECTEUR.NOM, LECTEUR.PRENOM FROM LECTEUR, ENSEIGNANT WHERE LECTEUR.NOM = ENSEIGNANT.NOM AND LECTEUR.PRENOM = ENSEIGNANT.PRENOM ; permet d extraire des informations de la table LECTEUR qui ont un correspondant dans la table ENSEIGNANT. c M. Mathieu 52

53 Les jointures s appèlent internes quand l existence des deux attributs (table1.attribut1, table2.attribut2) est obligatoire. Un cas particulier de jointure interne est l équijointure : on teste l égalité entre des attributs qui ont des domaines compatibles et la même signification sémantique. Exemple : SELECT lecteur.*, pret.* FROM lecteur, pret WHERE lecteur.code lecteur = pret.code lecteur ; on fournit uniquement les lecteurs qui ont des prêts en cours, un lecteur apparaît autant de fois que le nombre d enregistrements de la table pret. c M. Mathieu 53

54 Exemple : les lecteurs qui ont en prêt la livre L Ile Mistérieuse : SELECT nom, prenom FROM lecteur l, pret p, document d WHERE lecteur.code lecteur = pret.code lecteur AND p.code document = d.code document AND d.titre = L Ile Mystérieuse ; L ordre des conditions d équijointure n est pas importante, de même dans une équijointure on peut permuter les deux attributs. Remarque : d autres conditions que = ou!= sont rarement utilisées dans les jointures. c M. Mathieu 54

55 Une condition de jointure externe s exprime à l aide du (+) mis à coté d un attribut : table1.attribut1 = table2.attribut2(+) ou table2.attribut2(+) = table1.attribut1 avec la signification : si des enregistrement de la table2 existent et vérifient la clause WHERE ils sont sélectionnés conformément à une jointure classique ; si des enregistrement de la table2 n existent pas les enregistrements de la table1 sont toutefois sélectionnés. c M. Mathieu 55

56 Exemple : soient les tables EMPLOYE(NOM, CODE S) et SERVICE(CODE S, NOM SERVICE) avec les enregistrements : NOM CODE S Anna 117 Nicolas 170 André 170 Paul CODE S NOM SERVICE 170 RH 800 Direction 117 Comptabilité c M. Mathieu 56

57 Pour afficher les employés et leur service : SELECT nom, nom service FROM employe, service WHERE e.code s = s.code s ; mais l employé Paul n y figure pas. La jointure ouverte (externe) : SELECT nom, nom service FROM employe, service WHERE e.code s = s.code s(+) ; fournit : NOM André Anna Nicolas Paul NOM SERVICE RH Comptabilité RH c M. Mathieu 57

58 Autre jointure ouverte : SELECT nom, nom service FROM employe, service WHERE e.code s(+) = s.code s ; fournit : NOM André Anna Nicolas NOM SERVICE RH Contabilité RH Direction Si on veut obtenir une jointure à deux entrées, il faut utiliser l opération UNION. c M. Mathieu 58

59 Une condition de sous-requête : [NOT] EXISTS (requête SELECT) la condition est évaluée à vrai, si la requête SELECT retourne au moins une ligne. Exemple : SELECT * FROM PRET WHERE EXISTS (SELECT * FROM DOCUMENT) ; affiche le contenu de la table PRET uniquement si la table DOCUMENT n est pas vide. c M. Mathieu 59

60 Exemple 1 : vérifier que des exemplaires du livre Les Fourmis sont en prêt : SELECT COUNT(*) FROM document d WHERE d.titre = Les formis AND EXISTS (SELECT * FROM pret p WHERE d.code document = p.code document) ; c M. Mathieu 60

61 Exemple 2 : vérifier que tous les exemplaires du livre Les Fourmis sont en prêt : SELECT Oui FROM document d WHERE d.titre = Les formis AND NOT EXISTS (SELECT * FROM pret p WHERE d.code document = p.code document) HAVING COUNT(*) = 0 ; c M. Mathieu 61

62 Requêtes imbriquées Les imbrications des requêtes peuvent apparaître au niveau des conditions de la clause WHERE et au niveau des tables de sélection. (Oracle admet jusqu à 16 requêtes imbriquées.) Les imbrications de la clause WHERE sont de type : table.attribut = (requête SELECT) ou table.attribut IN (requête SELECT) ou table.attribut {<,>,<=,>=} {ANY ALL}(requête SELECT) Les deux premières formes sont sémantiquement équivalentes, mais leur façon d être résolues par le SGBD est différent. c M. Mathieu 62

63 Les sous-requêtes qui apparaissent dans la partie droite ne doivent pas contenir des clauses ORDER BY. Une requête imbriquée peut s écrire comme une requête non-imbriquée. Exemple : afficher tous les lecteurs ayant emprunté des livres depuis 24h : SELECT DISTINCT l.nom, l.prenom FROM lecteurs l WHERE l.code lecteur IN (SELECT p.code lecteur FROM pret p WHERE p.date pret > SYSDATE -1) ; Cette requête peut s écrire comme : SELECT DISTINCT l.nom, l.prenom FROM lecteurs l, pret p WHERE l.code lecteur = p.code lecteur AND p.date pret > SYSDATE -1 ; c M. Mathieu 63

64 Exemple : afficher les agents qui gangent au moins comme un plus grand salaire d une fonction : SELECT anom, aprenom FROM agent WHERE salaire >= ANY (SELECT MAX(salaire) FROM agent GROUP BY fonction) Exemple : afficher les agents qui gangent plus que le plus grand salaire de chaque fonction : SELECT anom, aprenom FROM agent WHERE salaire >= ALL (SELECT MAX(salaire) FROM agent GROUP BY fonction) c M. Mathieu 64

65 Le résultat d une requête SELECT peut être utilisé comme une table de sélection. Exemple : afficher les agents qui gagnent le plus grand et le plus bas salaire : select anom, aprenom from agent A, ( select min(salaire) as sal from agent) B, ( select max(salaire) as sala from agent) C where A.salaire = B.sal or A.salaire = C.sala ; Dans les requêtes de cette forme l usage des synonymes devient impératif. (Les synonymes sont utilisés pour les noms des tables de la clause FROM et pour la liste de sélection de la clause SELECT. Ces synonymes sont volatiles.) c M. Mathieu 65

66 Une requête ensembliste est de forme : requête1 UNION [ALL] MINUS INTERSECT requête2 où UNION, MINUS, INTERSECT réalise les opérations des ensembles connues. La version UNION ALL réalise l union des résultats de chaque requête sans éliminer les doublons. Les listes de sélection des deux requêtes se doivent être compatibles par type. c M. Mathieu 66

67 Exemple : afficher les agents qui gagnent le plus grand et le plus bas salaire : select anom, aprenom from agent where salaire = (select min(salaire) from agent) union select anom, aprenom from agent where salaire = (select max(salaire) from agent) ; c M. Mathieu 67

68 Modifications de données : Langage SQL - Mise à jour des données insertion INSERT mise à jour - UPDATE suppression - DELETE (TRUNCATE) 1. Insertion INSERT INTO nom table [(liste attributs)] VALUES (liste valeurs) Si les champs de la table sont explicités par (liste attributs), la liste des valeurs doit avoir la même longueur car la correspondance se fait de 1 à 1, sinon, la liste des valeurs doit correspondre en longueur et en type à la liste des attributs de la table dans leur ordre de définition. Si des attributs ne sont pas spécifiés, ils prendront la valeur NULL ou leur valeur par défaut. c M. Mathieu 68

69 Exemple : la table COLLECTIVITE a la structure suivante : SQL>desc collectivite Name Type IDCOLLECT NUMBER CDESINATION VARCHAR2(20) alors : INSERT INTO COLLECTIVITE VALUES (9, Picardie ) ; est équivalent à : INSERT INTO COLLECTIVITE (CDESINATION, IDCOLLECT) VALUES ( Picardie, 8) ; c M. Mathieu 69

70 Une autre forme de l ordre INSERT : INSERT INTO nom table[(liste attributs)] requête SELECT ; permet l insertion dans la table indiquée des enregistrements (même plusieurs) obtenus avec la requête SELECT. Exemple : INSERT INTO AGENT BIS SELECT * FROM AGENT ; réalise une copie de la table AGENT dans la table AGENT BIS qui a la même structure. c M. Mathieu 70

71 2. Modification UPDATE nom table SET nom attribut = valeur,.../ (liste attributs) = (liste valeurs)... WHERE condition ; Cette instruction permet la modification des enregistrements vérifiant la condition ; cette modification porte sur les attributs précisés dans la clause SET qui se voient attribués les valeurs indiquées. Ces valeurs sont soit des constantes, soit des expressions contenant des opérateurs et fonctions (excepté les fonctions agrégats) qui portent sur des constantes et des attributs. Le type d une valeur associée pour un attribut modifié doit être compatible avec le type de l attribut. c M. Mathieu 71

72 Exemple : UPDATE COMMANDE SET DATEC = sysdate, DATEL = DATEL + 10 WHERE IDCOMM = 20 ; est équivalent avec : UPDATE COMMANDE SET (DATEC, DATEL) = (sysdate, DATEL+ 10) WHERE IDOMM = 20 ; Cette requête modifie l enregistrement de la table COMMANDE ayant la valeur 20 pour l attribut clé IDCOMM. c M. Mathieu 72

73 La forme suivante de UPDATE permet de faire la modification des attributs avec des valeurs obtenues par une ou plusieurs requêtes SELECT (appelées sous-requêtes) : UPDATE nom table SET (attribut) = (sous-requête),... (liste attributs) = (sous-requête) [WHERE condition] ; Les sous requêtes doivent impérativement retourner un seul enregistrement. Si la sous-requête fait intervenir la table nom table et les attributs à modifier, on dit que la requête est corrélée. Dans une requête corrélée on doit utiliser des synonymes pour les tables. c M. Mathieu 73

74 Exemple 1 - une requête non-corrélée qui attribue à un certain agent le salaire maximum de la fonction COMMERCIAL : UPDATE AGENT SET SALAIRE = (SELECT MAX(SALAIRE) FROM AGENT WHERE FONCTION = COMMERCIAL ) WHERE IDAGENT = 210 ; Exemple 2 - une requête corrélée, qui attribue à un certain agent le salaire maximum de son service : UPDATE AGENT A1 SET SALAIRE = (SELECT MAX(A2.SALAIRE) FROM AGENT A2 WHERE A2.SERVICE ID = A1.SERVICE ID) WHERE IDAGENT = 210 ; c M. Mathieu 74

75 3. Suppression DELETE FROM nom table [WHERE condition] ; Cette instruction permet d enlever de la table nom table tous les enregistrements qui vérifient la condition. En absence de la clause WHERE tous les enregistrements de la table seront effacés. L ordre : TRUNCATE nom table ; permet la suppression rapide de tous les enregistrements de la table nom table. c M. Mathieu 75

76 Exemple : DELETE FROM COMMANDE WHERE DATEL < SYSDATE ; efface les enregistrements de la table COMMANDE qui ont la date de livraison passé de plus d un an. Les instructions : DELETE FROM COMMANDE ; et TRUNCATE COMMANDE ; fournissent presque le même résultat : l effacement de tous les enregistrements de la table COMMANDE, mais la deuxième forme est plus rapide et ne nécessite pas de confirmation. c M. Mathieu 76

77 L effet des mises à jour : SQL - langage de contrôle des données les requête INSERT, UPDATE, DELETE modifient d abord le buffer utilisateur. Elles doivent être rendues définitives avec l ordre SQL : COMMIT ou annulées avec l ordre ROLLBACK la requête TRUNCATE est effective (une fois qu elle est saisie, elle est directement exécutée sur la base). c M. Mathieu 77

78 Transactions Transaction = une séquence de commandes traitée comme une opération atomique afin de garantir la cohérence et l intégrité des données de la base. Les commandes sont des mises à jour et / ou des simples consultations. Exemple 1 : l enregistrement d une commande VPC de plusieurs produits, qui comporte : l insertion de l entête de la commande l insertions des produits commandés Ces insertions doivent être exécutées de façon indissociable et définitive. Exemple 2 : la réservation de places dans un avion (problème de concurrence d accès) - solution : gestion transactionnelle des opérations sur la base. Exemple 3 : un transfert bancaire entre 2 comptes. c M. Mathieu 78

79 Les propriétés d une transactions : atomicité : les opérations d une transaction sont exécutées comme une unique opération consistance : la base reste dans un état cohérent à la fin de la transaction isolation : la transaction s exécute indépendamment d autres opérations sur la base durabilité : les mises à jour d une transaction sont définitives (ACID) Une transaction comporte : un début : création une fin : validation ou annulation c M. Mathieu 79

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)

Plus en détail

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions

Plus en détail

Le Langage SQL version Oracle

Le Langage SQL version Oracle Université de Manouba École Supérieure d Économie Numérique Département des Technologies des Systèmes d Information Le Langage SQL version Oracle Document version 1.1 Mohamed Anis BACH TOBJI anis.bach@isg.rnu.tn

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

Considérons une partie d un modèle conceptuel de données avec les schémas d entités. Figure 1: Une partie du modèle conceptuel de données

Considérons une partie d un modèle conceptuel de données avec les schémas d entités. Figure 1: Une partie du modèle conceptuel de données Considérons une partie d un modèle conceptuel de données avec les schémas d entités suivants: EMP(EmpNo, Enom, Job, DirNo, Sal, Prime) DEPT(DeptNo, Dnom, Adr) Où EmpNo est la clé primaire de EMP et DeptNo

Plus en détail

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple

Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Apprendre le langage SQL le DDL - 1 / 30 - Apprendre le langage SQL par l exemple Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire l objet d une exploitation

Plus en détail

Bases de Données relationnelles et leurs systèmes de Gestion

Bases de Données relationnelles et leurs systèmes de Gestion III.1- Définition de schémas Bases de Données relationnelles et leurs systèmes de Gestion RAPPELS Contraintes d intégrité sous Oracle Notion de vue Typage des attributs Contrainte d intégrité Intra-relation

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Langage SQL : créer et interroger une base

Langage SQL : créer et interroger une base Langage SQL : créer et interroger une base Dans ce chapitre, nous revenons sur les principales requêtes de création de table et d accès aux données. Nous verrons aussi quelques fonctions d agrégation (MAX,

Plus en détail

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL pour Oracle - partie 1 : SQL comme LDD Le langage SQL pour Oracle - partie 1 : SQL comme LDD 1 SQL : Introduction SQL : Structured Query Langage langage de gestion de bases de donn ees relationnelles pour Définir les données (LDD) interroger

Plus en détail

Le Langage De Description De Données(LDD)

Le Langage De Description De Données(LDD) Base de données Le Langage De Description De Données(LDD) Créer des tables Décrire les différents types de données utilisables pour les définitions de colonne Modifier la définition des tables Supprimer,

Plus en détail

Bases de Données Avancées PL/SQL

Bases de Données Avancées PL/SQL 1/170 Bases de Données Avancées Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017

Plus en détail

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5

1. Qu'est-ce que SQL?... 2. 2. La maintenance des bases de données... 2. 3. Les manipulations des bases de données... 5 1. Qu'est-ce que SQL?... 2 2. La maintenance des bases de données... 2 2.1 La commande CREATE TABLE... 3 2.2 La commande ALTER TABLE... 4 2.3 La commande CREATE INDEX... 4 3. Les manipulations des bases

Plus en détail

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 ORACLE 10G DISTRIBUTION ET REPLICATION Distribution de données avec Oracle G. Mopolo-Moké prof. Associé UNSA 2009/ 2010 1 Plan 12. Distribution de données 12.1 Génération des architectures C/S et Oracle

Plus en détail

Devoir Data WareHouse

Devoir Data WareHouse Université Paris XIII Institut Galilée Master 2-EID BENSI Ahmed CHARIFOU Evelyne Devoir Data WareHouse Optimisation, Transformation et Mise à jour utilisées par un ETL Mr R. NEFOUSSI Année 2007-2008 FICHE

Plus en détail

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes. Les Triggers SQL Didier DONSEZ Université de Valenciennes Institut des Sciences et Techniques de Valenciennes donsez@univ-valenciennes.fr 1 Sommaire Motivations Trigger Ordre Trigger Ligne Condition Trigger

Plus en détail

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

Plus en détail

Pour les débutants. langage de manipulation des données

Pour les débutants. langage de manipulation des données Pour les débutants SQL : langage de manipulation des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles) SGBDR Systèmes de Gestion de Bases de Données (Relationnelles) Plan Approches Les tâches du SGBD Les transactions Approche 1 Systèmes traditionnels basés sur des fichiers Application 1 Gestion clients

Plus en détail

Notes de cours : bases de données distribuées et repliquées

Notes de cours : bases de données distribuées et repliquées Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées

Plus en détail

Bases de données. Chapitre 1. 1.1 Généralité sur les bases de données. 1.2 Avec sqlite3. 1.1.1 Le langage SQL et les bases de données

Bases de données. Chapitre 1. 1.1 Généralité sur les bases de données. 1.2 Avec sqlite3. 1.1.1 Le langage SQL et les bases de données Chapitre 1 Bases de données 1.1 Généralité sur les bases de données 1.1.1 Le langage SQL et les bases de données La base de données (BDD) est un système qui enregistre des informations. Ces informations

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours Bilan : Des vues à PL/SQL corrigé Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Cas exemple 2 Les tables... 3 Vues et index 4 Privilèges 5 Fonctions

Plus en détail

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie

11. MySQL. Cours Web. MySQL. 11. MySQL. 11. MySQL. Structured Query Language. Lionel Seinturier. Université Pierre & Marie Curie Cours Web Lionel Seinturier Université Pierre & Marie Curie Lionel.Seinturier@lip6.fr Structured Query Language Langage de manipulation des données stockées dans une base de données interrogation/insertion/modification/suppression

Plus en détail

Auto-évaluation DB2 for z/os: cours de base

Auto-évaluation DB2 for z/os: cours de base Auto-évaluation DB2 for z/os: cours de base Document: f1067test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION DB2 FOR Z/OS:

Plus en détail

Auto-évaluation Oracle: cours de base

Auto-évaluation Oracle: cours de base Auto-évaluation Oracle: cours de base Document: F0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION ORACLE: COURS DE

Plus en détail

Instructions SQL. Première partie : Langage de description et de gestion des données

Instructions SQL. Première partie : Langage de description et de gestion des données Instructions SQL Première partie : Langage de description et de gestion des données Quelques instructions et leur syntaxe 1. Introduction Trois principales catégories d instructions. Instructions de création

Plus en détail

Olivier Mondet http://unidentified-one.net

Olivier Mondet http://unidentified-one.net T-GSI Ch.4 Le Langage SQL LDD, LCD Cet exercice guidé reprend le plan suivis lors de l intervention de formation faite pour l académie de Versailles. L objectif principal visait en la présentation du langage

Plus en détail

Bases de données avancées

Bases de données avancées Bases de données avancées Jean-Yves Antoine LI - Université François Rabelais de Tours Jean-Yves.Antoine@univ-tours.fr UFR Sciences et Techniques IUP SIR Blois Master 1 Bases de Données avancées IUP Blois,

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

Le langage SQL Rappels

Le langage SQL Rappels Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,

Plus en détail

Introduction au Système de Gestion de Base de Données et aux Base de Données

Introduction au Système de Gestion de Base de Données et aux Base de Données Introduction au Système de Gestion de Base de Données et aux Base de Données Formation «Gestion des données scientifiques : stockage et consultation en utilisant des bases de données» 24 au 27 /06/08 Dernière

Plus en détail

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Cours Base de données relationnelles. M. Boughanem, IUP STRI Cours Base de données relationnelles 1 Plan 1. Notions de base 2. Modèle relationnel 3. SQL 2 Notions de base (1) Définition intuitive : une base de données est un ensemble d informations, (fichiers),

Plus en détail

Le langage SQL (première partie) c Olivier Caron

Le langage SQL (première partie) c Olivier Caron Le langage SQL (première partie) 1 Plan Le S.G.B.D. postgres Le langage SQL Langage de manipulation de données Langage de requêtes 2 Quelques mots sur Postgres (1/2) Travaux de Stonebraker (Univ. Berkeley)

Plus en détail

Bases de données et sites WEB

Bases de données et sites WEB Bases de données et sites WEB Cours2 : Sécurité et contrôles d accès Anne Doucet 1 Authentification Autorisation Privilèges Rôles Profils Limitations de ressources Plan Audit Contrôle d accès via les vues

Plus en détail

1 Introduction et installation

1 Introduction et installation TP d introduction aux bases de données 1 TP d introduction aux bases de données Le but de ce TP est d apprendre à manipuler des bases de données. Dans le cadre du programme d informatique pour tous, on

Plus en détail

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Partie 0 : Gestion des tablespace et des utilisateurs... 3 Sommaire Partie 0 : Gestion des tablespace et des utilisateurs... 3 1- Créer deux TableSpaces votre_nom-tbs et Votre_nom-TempTBS :... 3 2. Créer un utilisateur qui porte votre nom :... 3 3. Attribuer à

Plus en détail

PRESENTATION. Document1 Serge GUERINET Page 1

PRESENTATION. Document1 Serge GUERINET Page 1 PRESENTATION Les domaines couverts par la série STG sont tous des pourvoyeurs ou exploitants des bases de données. Que l'on gère la relation aux clients, le suivi de l'activité financière, la comptabilité

Plus en détail

Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML

Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML Bases de données Niveau 1 SQL - MySQL MariaDB - Cours et TP 5 DDL et DML MariaDB : https://mariadb.org/ Site officiel MySQL : http://www-fr.mysql.com/ Zone pour les développeurs : http://dev.mysql.com/

Plus en détail

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/

Administration des bases de données. Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ Administration des bases de données II Objets avancés dans les bases de données OBJECTIFS 2.1. NOTIONS 2.1.1.

Plus en détail

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry Cours 3 Développement d une application BD 1 Plan du cours Gestion de la sécurité des données Optimisation des schémas de bases via la dénormalisation Utilisation de vues Placement du code applicatif dans

Plus en détail

Gestion des utilisateurs et de leurs droits

Gestion des utilisateurs et de leurs droits Gestion des utilisateurs et de leurs droits Chap. 12, page 323 à 360 Lors de la création d'un utilisateur vous devez indiquer son nom, ses attributs, son profil, la méthode d'authentification (par le SE

Plus en détail

//////////////////////////////////////////////////////////////////// Administration bases de données

//////////////////////////////////////////////////////////////////// Administration bases de données ////////////////////// Administration bases de données / INTRODUCTION Système d informations Un système d'information (SI) est un ensemble organisé de ressources (matériels, logiciels, personnel, données

Plus en détail

1 Création et manipulation d une base de données

1 Création et manipulation d une base de données Université Paris 13 TP Base de données Année 2013-2014 Institut Galilée SQL et ORACLE LI3 1 Création et manipulation d une base de données ans ce TP, nous allons créer la base de données de l exercice

Plus en détail

Bases de Données & Interfaces Web. stanislas.oger@univ-avignon.fr

Bases de Données & Interfaces Web. stanislas.oger@univ-avignon.fr Bases de Données & Interfaces Web stanislas.oger@univ-avignon.fr 1 Architecture d'un SI Web Fonctionnement Dynamique avec Base de Données 2 Idée Dynamiser les pages avec des infos venant de BDD Enregistrer

Plus en détail

Langages de requêtes. Plan du cours. Base de données exemple. Objectifs du cours. Plan du cours. Base de données exemple

Langages de requêtes. Plan du cours. Base de données exemple. Objectifs du cours. Plan du cours. Base de données exemple Plan du cours Langages de requêtes M1 Informatique Année 2010-2011 Jérôme Darmont Introduction Algèbre relationnelle Langage SQL Langage XQuery http://eric.univ-lyon2.fr/~jdarmont/ http://eric.univ-lyon2.fr/~jdarmont/

Plus en détail

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste Christian Soutou Avec la participation d Olivier Teste SQL pour Oracle 4 e édition Groupe eyrolles, 2004, 2005, 2008, 2010, is BN : 978-2-212-12794-2 Partie III SQL avancé La table suivante organisée en

Plus en détail

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES Dossier G11 - Interroger une base de données La base de données Facturation contient tout un ensemble d'informations concernant la facturation de la SAFPB (société anonyme de fabrication de produits de

Plus en détail

SQL Historique 1982 1986 1992

SQL Historique 1982 1986 1992 SQL Historique 1950-1960: gestion par simple fichier texte 1960: COBOL (début de notion de base de données) 1968: premier produit de sgbdr structuré (IBM -> IDMS) 1970-74: élaboration de l'outil d'analyse

Plus en détail

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :

Plus en détail

Cours Bases de données

Cours Bases de données Informations sur le cours Cours Bases de données 9 (10) séances de 3h Polycopié (Cours + TD/TP) 3 année (MISI) Antoine Cornuéjols www.lri.fr/~antoine antoine.cornuejols@agroparistech.fr Transparents Disponibles

Plus en détail

Généralités sur les bases de données

Généralités sur les bases de données Généralités sur les bases de données Qu est-ce donc qu une base de données? Que peut-on attendre d un système de gestion de bases de données? Que peut-on faire avec une base de données? 1 Des données?

Plus en détail

Présentation du module. Base de données spatio-temporelles. Exemple. Introduction Exemple. Plan. Plan

Présentation du module. Base de données spatio-temporelles. Exemple. Introduction Exemple. Plan. Plan Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Partie 1 : Notion de bases de données (Conception

Plus en détail

Apprendre le langage SQL - Le DML - 1 / 41 - Apprendre le langage SQL par l exemple Partie 2 : le DML

Apprendre le langage SQL - Le DML - 1 / 41 - Apprendre le langage SQL par l exemple Partie 2 : le DML Apprendre le langage SQL - Le DML - 1 / 41 - Apprendre le langage SQL par l exemple Partie 2 : le DML Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire

Plus en détail

Partie I du TD 1 au TD 5. Bases de données et MySQL -

Partie I du TD 1 au TD 5. Bases de données et MySQL - Système d information http://www.agroparistech.fr/systeme-d-information.html Partie I du TD 1 au TD 5 - Bases de données et MySQL - Liliana Ibănescu liliana.ibanescu@agroparistech.fr UFR d informatique

Plus en détail

Présentation du module Base de données spatio-temporelles

Présentation du module Base de données spatio-temporelles Présentation du module Base de données spatio-temporelles S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Partie 1 : Notion de bases de données (12,5h ) Enjeux et principes

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

PHP 5. La base de données MySql. A. Belaïd 1

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Pour les débutants. langage de définition des données

Pour les débutants. langage de définition des données Pour les débutants SQL : langage de définition des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

16H Cours / 18H TD / 20H TP

16H Cours / 18H TD / 20H TP INTRODUCTION AUX BASES DE DONNEES 16H Cours / 18H TD / 20H TP 1. INTRODUCTION Des Fichiers aux Bases de Données 2. SYSTEME DE GESTION DE BASE DE DONNEES 2.1. INTRODUCTION AUX SYSTEMES DE GESTION DE BASES

Plus en détail

INSIA Bases de données ORACLE 2 SELECT avancé SQL*Plus SQL Developper

INSIA Bases de données ORACLE 2 SELECT avancé SQL*Plus SQL Developper INSIA Bases de données ORACLE SELECT avancé SQL*Plus SQL Developper http://st-curriculum.oracle.com/tutorial/dbxetutorial/index.htm http://st-curriculum.oracle.com/ http://www.oracle.com/ Bertrand LIAUDET

Plus en détail

Intégrité des données

Intégrité des données . Contraintes d intégrité : Définition et objectif Intégrité des données Définition des contraintes Vérification des contraintes Contrainte d'intégrité : propriété sémantique que doivent respecter les

Plus en détail

Optimisation SQL. Quelques règles de bases

Optimisation SQL. Quelques règles de bases Optimisation SQL Quelques règles de bases Optimisation des ordres SQL Page 2 1. QUELQUES RÈGLES DE BASE POUR DES ORDRES SQL OPTIMISÉS...3 1.1 INTRODUCTION...3 1.2 L OPTIMISEUR ORACLE...3 1.3 OPTIMISEUR

Plus en détail

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K. Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique CHAPITRE 4 ADMINISTRATION ET TUNING DE BASES DE DONNÉES RESPONSABLE DR K. BOUKHALFA POLITIQUES DE CONTRÔLES

Plus en détail

Apprendre le langage SQL - Le DML - 1 / 21 - Apprendre le langage SQL par l exemple Partie 2 : le DML

Apprendre le langage SQL - Le DML - 1 / 21 - Apprendre le langage SQL par l exemple Partie 2 : le DML Apprendre le langage SQL - Le DML - 1 / 21 - Apprendre le langage SQL par l exemple Partie 2 : le DML Ce document est publié sous licence Creative Commons CC-by-nc-nd. Il ne peut ni être modifié, ni faire

Plus en détail

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD Plan Bases de Données L3 Info Céline Rouveirol 2010-2011 Bases de Données 1 / 77 Sources des transparents Bases de Données 2 / 77 Bases de SQL - M.P. Dorville/F. Goasdoué, LRI, Université Paris Sud - V.

Plus en détail

Memento MYSQL LINUX. Pour installer le serveur Mysql. Installer les paquets suivants :

Memento MYSQL LINUX. Pour installer le serveur Mysql. Installer les paquets suivants : Memento MYSQL LINUX Pour installer le serveur Mysql Installer les paquets suivants : Mysql-server (moteur de bases de données) Apache2 (serveur web si besoin) Php5 (langage de programmation permettant

Plus en détail

Les bases de données

Les bases de données Les bases de données Introduction aux fonctions de tableur et logiciels ou langages spécialisés (MS-Access, Base, SQL ) Yves Roggeman Boulevard du Triomphe CP 212 B-1050 Bruxelles (Belgium) Idée intuitive

Plus en détail

Testez vos connaissances avec Oracle Forms 11g Niveau débutant Réponses aux questions

Testez vos connaissances avec Oracle Forms 11g Niveau débutant Réponses aux questions Testez vos connaissances avec Oracle Forms 11g Niveau débutant Réponses aux questions Document préparé par Abderrahmane Abed Octobre 2013 Version 1.0 Courriel : aabed@oraweb.ca Site web: www.oraweb.ca

Plus en détail

Création et Gestion des tables

Création et Gestion des tables Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5

Plus en détail

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ; RÈGLES A SUIVRE POUR OPTIMISER LES REQUÊTES SQL Le but de ce rapport est d énumérer quelques règles pratiques à appliquer dans l élaboration des requêtes. Il permettra de comprendre pourquoi certaines

Plus en détail

Cours Web n o 7 MySQL et PHP

Cours Web n o 7 MySQL et PHP Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart

Plus en détail

CHAPITRE 1 ARCHITECTURE

CHAPITRE 1 ARCHITECTURE 07/04/2014 Université des sciences et de la Technologie Houari Boumediene USTHB Alger Département d Informatique ADMINISTRATION ET TUNING DE BASES DE DONNÉES CHAPITRE 1 ARCHITECTURE RESPONSABLE DR K. BOUKHALFA

Plus en détail

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW Groupe : 322 Exploitation des Banques de données 420-PK6-SL (1-2-1) Étape : 3 Professeur Nom: Marcel Aubin Courriel : maubin@cegep-st-laurent.qc.ca

Plus en détail

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés

Plus en détail

Structure fonctionnelle d un SGBD

Structure fonctionnelle d un SGBD Fichiers et Disques Structure fonctionnelle d un SGBD Requetes Optimiseur de requetes Operateurs relationnels Methodes d acces Gestion de tampon Gestion de disque BD 1 Fichiers et Disques Lecture : Transfert

Plus en détail

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble. Gaëlle PERRIN SID2 Grenoble Le 10/04/2014 Base de Données (BD) : une grande quantité de données, centralisées ou non, servant pour les besoins d'une ou plusieurs applications, interrogeables et modifiables

Plus en détail

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées ANNEE 2014 / 2015 Désignation de l enseignement : Bases de données Nom du document : TP SQL sous PostgreSQL Rédacteur :

Plus en détail

A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES? BASE DE DONNÉES OBJET Virginie Sans virginie.sans@irisa.fr A QUOI SERVENT LES BASES DE DONNÉES? Stockage des informations : sur un support informatique pendant une longue période de taille importante accès

Plus en détail

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions Exemple accessible via une interface Web Une base de données consultable en ligne : Bases de données et systèmes de gestion de bases de données The Trans-atlantic slave trade database: http://www.slavevoyages.org/tast/index.faces

Plus en détail

Bases de données cours 1

Bases de données cours 1 Bases de données cours 1 Introduction Catalin Dima Objectifs du cours Modèle relationnel et logique des bases de données. Langage SQL. Conception de bases de données. SQL et PHP. Cours essentiel pour votre

Plus en détail

TP1 - Corrigé. Manipulations de données

TP1 - Corrigé. Manipulations de données TP1 - Corrigé Manipulations de données 1. Démarrez mysql comme suit : bash$ mysql -h 127.0.0.1 -u user4 -D db_4 p Remarque: le mot de passe est le nom de user. Ici user4 2. Afficher la liste des bases

Plus en détail

2011 Hakim Benameurlaine 1

2011 Hakim Benameurlaine 1 Table des matières 1 CRÉATION DES OBJETS DE BASES DE DONNÉES... 2 1.1 Architecture d une base de données... 2 1.1.1 Niveau logique... 2 1.1.2 Niveau physique... 3 1.2 Gestion d une base de données... 3

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

Bases de données et sites WEB Licence d informatique LI345

Bases de données et sites WEB Licence d informatique LI345 Bases de données et sites WEB Licence d informatique LI345 Anne Doucet Anne.Doucet@lip6.fr http://www-bd.lip6.fr/ens/li345-2013/index.php/lescours 1 Contenu Transactions en pratique Modèle relationnel-objet

Plus en détail

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

Plus en détail

Cours de Bases de Données Avancées 2006-2007 Groupe cinema, Rapport 4

Cours de Bases de Données Avancées 2006-2007 Groupe cinema, Rapport 4 1 Annexes Avec ce rapport il faut rendre en annexe le script SQL corrigé qui permet de créer la base de données selon votre modèle relationnel ainsi que de la peupler avec un nombre de tuples suffisant.

Plus en détail

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

MySQL / SQL EXEMPLES

MySQL / SQL EXEMPLES MySQL_exemples_janv04_mpT EXEMPLES 1 MySQL / SQL EXEMPLES Typologie du langage Il est possible d'inclure des requêtes SQL dans un programme écrit dans un autre langage (en langage C par exemple), ainsi

Plus en détail

Sauvegarde locale des données : SharedPreferences, SQLite, Files

Sauvegarde locale des données : SharedPreferences, SQLite, Files Sauvegarde locale des données : SharedPreferences,, Files Jean-Ferdinand Susini Maître de conférences au CNAM Sources : Wikipedia, developper.android.com Paris, 31/05/2015 Les SharedPreferences 2 Héritier

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 12 : Concurrence d accès Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Accès concurrents Définitions Verrous Collisions Niveaux de cohérence Blocage

Plus en détail

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige. : JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL

Plus en détail

Requêtes SQL avec la date et le groupement Chapitre 7 série 3 Base de données AcciRoute SOLUTIONS

Requêtes SQL avec la date et le groupement Chapitre 7 série 3 Base de données AcciRoute SOLUTIONS 2003-07-01 1 Requêtes SQL avec la date et le groupement Chapitre 7 série 3 Base de données AcciRoute SOLUTIONS Voici MRD de la BD AcciRoute pour représenter les rapports d accidents de la route. Le MRD

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

TP Architecture et Administration des SGBDR Un compte-rendu pourra être demandé à chaque fin de séance.

TP Architecture et Administration des SGBDR Un compte-rendu pourra être demandé à chaque fin de séance. Université de Lorraine Telecom Nancy 3ème année, Spécialités IL, SIE, IAMD TP Architecture et Administration des SGBDR Un compte-rendu pourra être demandé à chaque fin de séance. TRES IMPORTANT : La plus

Plus en détail

Master Exploration Informatique des données DataWareHouse

Master Exploration Informatique des données DataWareHouse Master Exploration Informatique des données DataWareHouse Binôme Ahmed BENSI Enseignant tahar ARIB SOMMAIRE I. Conception...1 1. Contexte des contrats...1 2. Contexte des factures...1 II. Modèle physique...2

Plus en détail

Si le médecin agit en situation d urgence, insérer une trace de ses requêtes. Si le patient est cardiaque, le préciser dans le motif de la visite

Si le médecin agit en situation d urgence, insérer une trace de ses requêtes. Si le patient est cardiaque, le préciser dans le motif de la visite Précompilateur Compilateur LP PROGRAMMATION SQL Limites de SQL Problématique de la connexion langage hôte/sql 3 approches Embedded SQL (PRO*C, SQLJ ) API de bas niveau (SQL-CLI, ODBC, ) Langage dédié (PL/SQL,

Plus en détail