Gestion de Masse de Données (GMD) Cours 2 Adrien Coulet

Slides:



Advertisements
Présentations similaires
REFERENTIEL DE LA SERIE STG
Advertisements

Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL.
Access Frédéric Gava (MCF)
Créer une base de données MySQL Et création de tables, enregistrements, interaction avec PHP.
Exposé de Système - Informatique et Réseau
Fonctionnalités des SGBD
TRANSFER Alger – Serveur Web Nicolas Larrousse Septembre Petit historique du Worl Wide Web Notion dHypertexte Extension à internet par Tim Berners.
51 Les technologies XML Cours 6 : XML et les architectures N-tiers – Tier Métier Janvier Version 1.0 -
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
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,
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Common Gateway Interface
Le Téléphone Russe Le Téléphone Russe. Le Téléphone Russe Le Téléphone Russe.
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
Connexion en mode application. Bases de données - Yann Loyer2 Connexion en mode application Pour tout type dutilisateurs : –passif, actif, gérant Permettre.
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Les instructions PHP pour l'accès à une base de données MySql
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
L’utilisation des bases de données
Services fournis par le SI et technologies associées
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Intégration ActiveXML - Xyleme
SQL: Contraintes et Triggers
MySQL Création des sites dynamiques
Les concepts et les méthodes des bases de données
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Ipchains TP 1 TP 2 TP 3 Installer un serveur web sur votre poste,
PHP & My SQL.
Programmation Internet en PHP SIL module M12
Content Management System CMS. Pourquoi ? Obligation de ressaisir des contenus publiés à plusieurs endroits Pas d’outils de gestion de qualité de l’information.
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
0 Objectifs de la session n°1  Revenir sur toutes les bases théoriques nécessaires pour devenir un développeur Web,  Découvrir l’ensemble des langages.
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Créer des packages.
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Fonctionnalités et limites d’outils d’indexation et de recherche.
Module 12 : Implémentation de procédures stockées.
 Requêtes MySQL en PHP Introduction
05/02/98WEB ESNIG Modèle logique de données Oracle Designer/2000 & Oracle Web Server.
Campus-Booster ID : **XXXXX Copyright © SUPINFO. All rights reserved Le développement Web.
Page 1Dernière mise à jour: 17 avril 2015 Service de l'enseignement des technologies de l'information, © HEC Montréal, Tous droits réservés.
G.KEMBELLEC - UP81 Master 2 THYP Cas pratique d’utilisation De simpleXML Un lecteur de RSS Novembre 2009.
 Formulaires HTML : traiter les entrées utilisateur
Master 1 SIGLIS Intégration des données dans l’entreprise Stéphane Tallard JDBC: Java Database Connectivity Master 1 SIGLIS1JDBC.
Cours MIAGE « Architectures Orientées Services »Henry Boccon-GibodCours MIAGE « Architectures Orientées Services »Henry Boccon-Gibod 1 Architectures Orientées.
Présentation ESTRABOX
Initiation au web dynamique Licence Professionnelle.
Module 1 : Vue d'ensemble de Microsoft SQL Server
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.
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
02/06/2015© Robert Godin. Tous droits réservés.1 5 Interface entre SQL et un programme n SQL incomplet n Défaut d'impédance (impedance mismatch) – modèle.
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
06/04/06 LES BASES DE DONNEES INTRODUCTION CogniTIC – Bruxelles Formation - Cepegra.
Architecture Client/Serveur
Les bases de données Séance 8 Jointures.
JDBC (Complément de cours) IFT 3030
LES BASES DE DONNEES PRÉSENTÉ PAR CATHY ET THIBAULT.
Séance /10/2004 SGBD - Approches & Principes.
Cours n°2 Implémentation et exploitation
Introduction Module 1.
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
De Arnault Chazareix :
1 CEC A.-CHAVANNE Sites Web et bases de données. 2 UNE BASE DE DONNÉES : POURQUOI ? Manipulation de grandes quantités d’information – représentation des.
Sextant RFS Consultants – Octobre Sextant Le logiciel d’assistance administrative indispensable à toute structure de plus d’une personne. Le premier.
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
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.
module SIE depuis 2011 et IAMD depuis l’an dernier ! Gestion de Masse de Données (GMD) Introduction Adrien Coulet
Transcription de la présentation:

Gestion de Masse de Données (GMD) Cours 2 Adrien Coulet

I. Accéder et extraire des données INSERT – unique : INSERT INTO nom_de_table (col1,col2,col3) VALUES(15,Elise,BOINNOT); – multiple : INSERT INTO nom_de_table (col1,col2,col3) VALUES(15,Elise,BOINNOT), (16,Mathieu,BOULDOIRE); LOAD DATA INFILE (plus rapide) LOAD DATA INFILE '/Users/coulet/teaching/esial/GMD/dossier_test/liste_2a.csv' INTO TABLE Etudiant FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r' IGNORE 1 LINES; ②dans un système de gestion de base de données a)insert

I. Accéder et extraire des données ②dans un système de gestion de base de données b)select Faire une simple requête – Rappel – Important TP Projet votre vie professionnelle – Questions

Les paramètres de connexions Chargement driver de connexion MySQL : le jar mysql-connector-java bin.jar doit être dans le path et pas importé Ouverture de la connexion Création d'un Statement Exécution de la requête via le statement Itération sur le ResultSet Fermeture de tout Gestion des erreurs

I. Accéder et extraire des données ②dans un système de gestion de base de données b)select Les procédures stockées (simples) – on enregistre dans la BD la procédure – on lance son exécution à partir du code java – disponible uniquement si >= MySQL 5 CREATE PROCEDURE getEtudiantClement() BEGIN SELECT * FROM Etudiant WHERE prenom='Clement'; END;

CREATE PROCEDURE getEtudiantClement() BEGIN SELECT * FROM Etudiant WHERE prenom='Clement'; END;

I. Accéder et extraire des données ②dans un système de gestion de base de données b)select Les procédure stockées (simples) – intérêt centralisées, sécurisées…et rapidité

I. Accéder et extraire des données ②dans un système de gestion de base de données b)select Les procédures stockées avec des paramètres CREATE PROCEDURE getEtudiantParam(IN inputAttribute VARCHAR(80), IN inputValue VARCHAR(80)) BEGIN DECLARE inputAttribute VARCHAR(80); DECLARE inputValue VARCHAR(80); IF inputAttribute = 'nom' THEN SELECT * FROM Etudiant WHERE nom=inputValue ; END IF; IF inputAttribute = 'prenom' THEN SELECT * FROM Etudiant WHERE prenom=inputValue ; END IF; IF inputAttribute = 'id' THEN SELECT * FROM Etudiant WHERE id=inputValue ; END IF; END;

CREATE PROCEDURE getEtudiantParam(IN inputAttribute VARCHAR(80), (IN inputValue VARCHAR(80)) BEGIN DECLARE inputAttribute VARCHAR(80); DECLARE inputValue VARCHAR(80); IF inputAttribute = 'nom' THEN SELECT * FROM Etudiant WHERE nom=inputValue ; END IF; IF inputAttribute = 'prenom' THEN SELECT * FROM Etudiant WHERE prenom=inputValue ; END IF; IF inputAttribute = 'id' THEN SELECT * FROM Etudiant WHERE id=inputValue ; END IF; END;

I. Accéder et extraire des données ②dans un système de gestion de base de données b)select Les PreparedStatement – correspond à un "pattern" de requête que l'on veut exécuter souvent lors d'une même connexion – on ouvre un PreparedStatement dans la BD – on envoie ensuite simplement les paramètres manquants ( ? ) – intérêt : plus rapide que de créer plusieurs Statement car le pattern est déjà envoyé au SGBD et précompilé SELECT id, nom, prenom FROM Etudiant WHERE nom=?;

SELECT id, nom, prenom FROM Etudiant WHERE nom=?;

SELECT id, nom, prenom FROM Etudiant WHERE nom=?; Si SELECT id, nom, prenom FROM Etudiant WHERE nom=? AND prenom=?; alors pStmt.setString(1,nom) pStmt.setString(2,prenom)

I. Accéder et extraire des données Un PreparedStatement est valable le temps d'une connexion Si les requêtes sont longues… – si l'on enchaînes des requêtes longues lors d'une même connexion, – la connexion se ferme automatiquement au bout d'un certain temps, – il faut donc détecter la fermeture et ouvrir une nouvelle connexion – Cela peut impliquer de devoir ré-ouvrir les PreparedStatement ①dans un système de gestion de base de données a)java

Si lorsque l'on veut exécuter une nouvelle requête, cela échoue car la connexion est fermée on ré-ouvre la connexion on relance la méthode de déclaration du PreparedStatement on relance la méthode elle-même

I. Accéder et extraire des données InnoDB vs MyISAM vs MEMORY – Trois types de "storage engine" – InnoDB par défaut dans MySQL – sinon CREATE TABLE […] ENGINE=MyISAM 1.InnoDB stocke physiquement les lignes dans l'ordre de la clé primaire vs MyISAM les stocke dans l'ordre de leur ajout – par conséquent InnoDB retourne plus vite les lignes avec moins de besoin de mémoire. 2.La taille des tables InnoDB < MyISAM 3.Une BD de table InnoDB ne peut pas être copié-collé d'un serveur à un autre (si le serveur tourne) 4.MyISAM permet de créer des indexes "full text" càd des indexes qui permettent des recherches rapides sur le contenu de champs texte longs. 5.et plus… ②dans un système de gestion de base de données a)java

I. Accéder et extraire des données Quelques éléments pour améliorer l'accès au contenu de bases de données – utiliser les PreparedStatements – utiliser le bon type de table (InnoDB vs. MyISAM vs.Memory) – limiter le nombre de connexions (en parallèle et successives) – exécuter les requêtes directement sur la machine du serveur de BD – utiliser des types de données et tailles de champs adaptés – indexer les bons champs des tables – utiliser des clés numériques – faire les jointures sur des clés numériques – créer des tables d'index pour les jointures – partition horizontale / partition verticale ②dans un système de gestion de base de données a)java

I. Accéder et extraire des données Service Web – ensemble de fonctionnalités exposées sur Internet REST est un type de service Web – REpresentational State Transfer – Les services REST exposent leurs fonctionnalités comme un ensemble de ressources (URI) identifiables et accessibles par la syntaxe et la sémantique du protocole HTTP. Les Services Web de type REST sont donc basés sur l'architecture du web et ses standards de base : HTTP et URIURIHTTPREST webHTTPURI – client/serveur sont remplacé par agent/ressource ②à partir d'un service REST a)Client REST

I. Accéder et extraire des données Exemple de serveur REST – le NCBO et son serveur d'ontologies biomédicales ②à partir d'un service REST a)Client REST GUI

I. Accéder et extraire des données Exemple de serveur REST – le NCBO et son serveur d'ontologies biomédicales ②à partir d'un service REST a)Client REST

I. Accéder et extraire des données 2 modes d'interrogation (comme http) – GET : – POST : les paramètres ne sont pas visibles dans l'URL ②à partir d'un service REST a)Client REST

I. Accéder et extraire des données ②à partir d'un service REST b)Serveur REST Déployer un Serveur REST : Non abordé dans ce module.

I. Accéder et extraire des données Rappels – les API SAX et DOM DOM : chargement de l'intégralité de l'arbre XML en mémoire SAX scales : – SAX traitre l'arborescence élément par élément (un peu comme awk finalement !) – SAX est dirigé par l'utilisateur (notion d'événement) ②à partir d'un service REST c)Parser le XML

Cynoc Nicolas Laurent Superwoman Don Corleone

I. Accéder et extraire des données 3avec JSON { "firstName": "Adrien", "lastName" : "Coulet", "age" : 32, "address" : { "streetAddress": "625 Rhodes Island Street", "city" : "San Francisco", "state" : "CA", "postalCode" : "94107" }, "phoneNumber": [ { "type" : "home", "number": " " }, { "type" : "work", "number": " " } ] }

I. Accéder et extraire des données format pour l'échange de données moins verbeux que l'XML plus facile à lire que l'XML 3avec JSON

I. Accéder et extraire des données SQLite – pas d'installation – pas de configuration – pas de serveur – un seul fichier avec les données – copiable-collable 3avec SQLite

I. Accéder et extraire des données SQLite – limites : accès concurrent gros volumes de données architecture client – serveur – simple et bon pour application locale petit site Web logiciel embarqué testing 3avec SQLite

I. Accéder et extraire des données C'est une bibliothèque C qui implémente un moteur de base de données accessible par le langage SQL 3avec SQLite

Not only SQL but more NoREL "The term covers a wide rang of technologies and data architectures and priorities" "it represents as much a movements or a school of though as it does any particular technology" databases (diff from RDBMS) mostly addressing some of the points: being non relational distributed open-source and horizontally scalable

Various types – key-value store – document store – wide column store – graph store – illustration in Harry Kauhanen slides