Xem mẫu

  1. Cours de Spécialité Cours de Sp Terminologie PGS.TS. Phan Huy Khánh khanhph@vnn.vn Donnés et Base de données
  2. Données et stockage   Algorithme = puissance de l’ordinateur  Problèmes : vitesse, exactitude, prévisibilité.   Données  = richesse de l’ordinateur   Problèmes : masse des données, structuration, sauvegarde   2 domaines fortement liés  Algorithme de visualisation de masses de données  Systèmes de sauvegarde et de gestion de version des   programmes 2/21
  3. Cycle de vie d’un système de stockage des données  Conception ­ Modélisation  Analyse des données   Solution sous forme de schémas    Langage de modélisation    Mise en oeuvre   Base de données    langage de « haut niveau »   Remplissage / Récupération  Croiser les données     La voiture 206 diesel est immatriculée en 75  Le département 75 a des frais de carte grise de 135 euros   Maintenance Mise à jour des données      Sauvegarde  Evolution du schéma => traduction des données  3/21
  4. Défis liés au stockage des données   Hétérogénéité des données Numériques, textuels, dates, multimédia, etc.  Taille / Passage à l'échelle    Nombre de « trucs », complexité des « trucs » Partage entre utilisateurs   Rôles : Contributeur, vérificateurs, visionneur, etc.  Accès simultanés Lisibilité du schéma   Comme en algo. Performances   Accès aux très grandes tables   Croisements complexes  Comptage des réponses Google vous donne 10 réponses en quelques millisecondes … mais aussi  le nombre de réponses … même quand il y en a des millions !  4/21
  5. Base de données relationelles   Modèle relationnel inventé par E. Codd en1970 Directeur de recherche du centre IBM de San José  IBM Sequel (Structured English Query Language) en 1977  IBM Sequel/2  Avant : Avant : IBM System/R  Modèle Hiérachique Modèle Hiérachique IBM DB2  Modèle de réseau Modèle de réseau SQL/86  SQL/89  SQL/92 ou SQL 2.0   Données tabulaires  Norme / Standard = SQL (Structured Query Language)  Typage des données  Protection des données  notions de propriétaires, de groupes et de droits d'accès   5/21
  6. Tables de données “Enseignants” Num Nom Prenom Email StatutDerniere 1 Vernier Frédéric frederic.vernier@limsi.fr DEPINFO-LIMSI 2 Max Aurelien aurelien.max@limsi.fr DEPINFO-LIMSI 3 Bautier Jean jean.bautier@laposte.net EXTERIEUR 4 Schlienger Francoise schlieng@fiifo.u-psud.fr IUT 5 Vauchelle Alain avauchel@fiifo.u-psud.fr IUT 6 Tixeuil Sebastien tixeuil@fiifo.u-psud.fr DEPINFO-LRI 7 Allauzen Alexandre allauzen@limsi.fr DEPINFO-LIMSI 8 Voisin Frederic voisin@fiifo.u-psud.fr DEPINFO-LRI 9 Nel Laurent laurent.nel@leuville.com UP11-AUTRE 10 Longavesne Jean-P Grip@cnam.fr UP11-AUTRE 11 Lisser Abdel lisser@fiifo.u-psud.fr DEPINFO-LRI 12 Rousseau Martine rousseau@fiifo.u-psud.fr IUT 13 Astier Roger astier@iut-orsay.fr IUT 14 Calisti Jean jean.calisti@ifips.u-psud.fr IFIPS Elements 15 Simon Laurent simon@lri.fr DEPINFO-LRI 16 Roussel Nicolas roussel@lri.fr DEPINFO-LRI 17 Alphonse Erick alphonse@lri.fr DEPINFO-LRI 18 Journiac Brigitte journiac@fiifo.u-psud.fr UP11-AUTRE 19 Lenoir Jean-Pierre lenoir@fiifo.u-psud.fr IUT 20 Barras Claude barras@fiifo.u-psud.fr DEPINFO-LIMSI 21 Blanch Renaud blanch@lri.fr DEPINFO-LRI 22 Fournier Jean-Pierre jpf@fiifo.u-psud.fr IUT 23 Herault Thomas Thomas.Herault@lri.fr DEPINFO-LRI … 518 Appert Caroline Caroline.Appert@lri.fr DEPINFO-LRI 519 Benoit Stacey stacey.benoit@supelec.fr EXTERIEUR 520 Panzer Claire clairepanzer92@free.fr EXTERIEUR Numero Numero Texte court Choix multiples 6/21
  7. Requêtes SQL Alban BERGUER  Récupération des données : SELECT Prenom, Nom Marina BILMONT FROM Etudiants WHERE Niveau=“S1” Pauline BLANC … … SELECT * FROM Enseignements  WHERE Niveau=“S1” AND Filiere=“L­MPI”  Insertion INSERT INTO `Etudiants` ( `NumEtudiant`, `Prenom`, `Nom`,                             `Email`, `Filiere`, `Annee`, `Niveau`, `DateN`) VALUES (’856', 'Jean', 'Nemaclac', 'jean.nemaclac@laposte.net',       ’MPI', '2006', ’S1', ’1988­11­29') 7/21
  8. Table des Résultats  Totale (SELECT * FROM Etudiants)  Partielle au niveau des lignes SELECT * FROM Etudiants WHERE Niveau=“S1”   Partielle au niveau des colonnes SELECT Nom, Prenom FROM Etudiants    Doublement partielle SELECT Nom, Age FROM Etudiants WHERE Niveau=“S1”   Ordonnée  SELECT * FROM `Etudiants` ORDER BY `Annee` DESC   Limitée dans le nombre d’élements  SELECT * FROM `Etudiants` LIMIT 0 , 30  8/21
  9. Opérations de Sélection (clause WHERE) SELECT * FROM Etudiants WHERE  (DateN > 1988­01­01  AND                                 % et logique    Prenom LIKE “Chris%”)  % ressemble à  OR             % ou logique   (AGE=19 AND          % et logique    Filiere NOT LIKE “%­MPI”) Composition identique à l’algorithmique mais les opérateurs  diffèrent  9/21
  10. Jointure / Croisement Une note par étudiants et par enseignement … mais tous les étudiants ne  suivent pas tous les enseignements ! SELECT *FROM Etudiants, Enseignements WHERE Etudiants.Filiere= Options.Filiere SELECT * FROM Etudiants, Enseignements, Options WHERE Etudiants.Numero= Options.NumeroEtudiants   AND Enseignements.Numero = Options.NumEnseign NumeroEtudiiant NumeroEnseiign NumeroEtud ant NumeroEnse gn Numero Numero Prenom Numero Numero Prenom Heures Heures Intiitulle Int tu e Nom Nom … … … … Numero Numero Alban BERGUER 1 … Math102 50 1 … Marina BILMONT GEOS103 50 2 … 2 … … … 1 1 1 … Etudiants Options Enseignements Enseignements 2 1 2 … 10/21
  11. Jointure + Selection  Jointure = Super  Selection = Super   Jointure + Selection = Genial ! (un peu comme les boucles et les conditions)  SELECT * FROM Etudiants, Enseignants, Groupes WHERE Etudiants.Numero= Groupes.NumeroEtudiants   AND Enseignants.Numero = Groupes.NumEnseignant AND Etudiants.NiveauScience=“Faible” AND Enseignants.TypeNotation=“Sévère” 11/21
  12. Numérotation / Clé  Numérotation automatique    Garantie que 2 étudiants ne Numero Prenom Numero Prenom    peuvent pas avoir le même N om N om    numéro … … Alban BERGUER 1 … Marina BILMONT 2 …  Autre raisons de ne pas avoir des doublons Etudiants avec le même nom => problèmes   Utiliser un numéro unique existant (No SS) Quelle garantie que je n’inscris pas 2 fois la même personne ?   Les tables peuvent définir des clés qui garantissent l’unicité 12/21
  13. Problèmes concrets   Et si un prof assure d’autres cours avec d’autres groupes ayant le même numéro (groupes B1 des Licence BIBS) ?  Et si un prof intervient 2 fois dans la même filière ?  Et si les étudiants font d’autres groupes pour les options ou pour les  langues ?  Et si un prof de Cours TD enseigne aussi en option ?  Comment se rappeler d’où viennent les redoublants ?  Comment trouver le plus petit groupe de TD afin d’inscrire les nouveaux  arrivants ?  Et le groupe de TD avec le plus de redoublants ? 13/21
  14. Schémas de base de données  Graphique synthétique des relations entre données Flèches / tables   14/21
  15. Example plus réaliste ;­) 15/21
  16. La bonne recette  Jointures multiples  Selections aux petits oignons  Tables nombreuses et bien organisées  Aucune données redondantes ou inutile  Un schéma bidon pour le patron / le chef  Un vrai schéma de pro pour le vrai boulot  (voir avant)  PS : logo/icone d’une BD  = cylindre 16/21
  17. Utilitaires  SQL ne gère pas que la recherche et le remplissage de la  BD. Rajouter / enlever des tables  Supprimer des éléments  DELETE FROM `Enseignants` WHERE `NumEns` =1 Modifier une valeur  UPDATE `Enseignants` SET `Statut` = “BonProf” WHERE `NumEns` =1 Modifier les droits d'accès  Créer / détruire / modifier des utilisateurs / groupes  etc.  17/21
  18. Interfaces  Interfaces graphique pour éditer / remplir  / détruire … mais pour les requêtes, on a rien fait de plus puissant que   le SQL !  Formulaires Gestion des  contraintes  Formulaire Web Facilité d’accès  Affichage formaté  18/21
  19. Et puis …  Fonctions d'agrégations Numero Prenom Numero Prenom Nb Etu. Nb Etu. Nom  Performances, Optimisation Nom 1 22 Fred Vernier  Multimédia (images, sons, ...) Sandrine Gouraud 2 24  Sécurité (chiffrements, droits)  Transactions (plusieurs utilisateurs/banque + €)  Clé multiples  Manipulation d’une BD depuis un programme  Sauvegarde d’une table  BD géographiques SELECT * FROM Villes WHERE dist
  20. Applications  Sciences BD génomiques, composes chimiques, articles, étoiles, etc..   Vie quotidienne  BD d’associations de joueurs de mandolines  électriques   BD des ouvrages d’une bibliothèque / CD­thèque  BD de pages Web qui s’appelle Google (savoir faire des requ êtes  compliquées)  Autre disciplines   Gestion / Economie = pensez a la MiAGE  DRH/ Gestion du personnel  Médecine  Informatique   DBA (administrateur de BD)  Systèmes d’information (DSI) 20/21
nguon tai.lieu . vn