Introduction à l’informatique Chapitre 2: Donnés et base données
Données et stockage Algorithme Données 2 domaines fortement liés = 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
Données et stockage Algorithme Données 2 domaines fortement liés = 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 Logique booléenne identique
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
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 !
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 IBM System/R IBM DB2 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
Tables de données “Enseignants” Num Nom Prenom Email StatutDerniere Vernier Frédéric frederic.vernier@limsi.fr DEPINFO-LIMSI 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 Longavesne Jean-P Grip@cnam.fr UP11-AUTRE Lisser Abdel lisser@fiifo.u-psud.fr DEPINFO-LRI 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 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 Elements Numero Texte court Choix multiples
Requêtes SQL Alban BERGUER Marina BILMONT Pauline BLANC … Récupération des données : SELECT Prenom, Nom FROM Etudiants WHERE Niveau=“S1” 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') Alban BERGUER Marina BILMONT Pauline BLANC …
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
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
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 Numero Prenom Nom … 1 Alban BERGUER 2 Marina BILMONT Numero NumeroEtudiant NumeroEnseign … 1 2 Numero Intitule Heures … 1 Math102 50 2 GEOS103 Etudiants Options Enseignements
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”
Numérotation / Clé Numérotation automatique Garantie que 2 étudiants ne peuvent pas avoir le même numéro. 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é Numero Prenom Nom … 1 Alban BERGUER 2 Marina BILMONT
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’ou viennent les redoublants ? Comment trouver le plus petit groupe de TD afin d’y inscrire les nouveaux arrivants ? Et le groupe de TD avec le plus de redoublants pour y mettre l’enseignant le plus expérimenté ?
Schémas de base de données Graphique synthétique des relations entre données Flèches / tables
Example plus réaliste ;-)
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
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.
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é
Et puis … Fonctions d'agrégations Performances, Optimisation Multimédia (images, sons, ...) 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<100km Réseaux, accès à distances, fragmentation. etc. Numero Prenom Nom Nb Etu. 1 Fred Vernier 22 2 Sandrine Gouraud 24
Applications Sciences Vie quotidienne Autre disciplines Informatique 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 (ITMS) BD de pages Web qui s’appelle Google (savoir faire des requêtes compliquées) Autre disciplines Gestion / Economie = pensez à la MiAGE DRH/ Gestion du personnel Médecine / Police (scientifique) Informatique DBA (administrateur de BD) Systèmes d’information (DSI)
FIN Algo SI BD Bio-Info RO Réseaux IG Archi IHM TAL IA GL Visu // Vision Sécurité Crypto parole Compil