Introduction à l’informatique Chapitre 2: Donnés et base données Université PARIS-SUD - Licence MPI - S1 1 Données et stockage Algorithme Données = puissance de l’ordinateur Problèmes : vitesse, exactitude, prévisibilité. = 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 Université PARIS-SUD - Licence MPI - S1 Données et stockage Algorithme Données = puissance de l’ordinateur Problèmes : vitesse, exactitude, prévisibilité. = 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 3 Université PARIS-SUD - Licence MPI - S1 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 Mise en oeuvre Base de données langage de « haut niveau » Remplissage / Récupération Croiser les données Langage de modélisation 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 4 Université PARIS-SUD - Licence MPI - S1 Défis liés au stockage des données Hétérogénéité des données Taille / Passage à l'échelle Rôles : Contributeur, vérificateurs, visionneur, etc. Accès simultanés Lisibilité du schéma Nombre de « trucs », complexité des « trucs » Partage entre utilisateurs Numériques, textuels, dates, multimédia, etc. 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 ! 5 Université PARIS-SUD - Licence MPI - S1 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 6 Université PARIS-SUD - Licence MPI - S1 Tables de données “Enseignants” Num Nom Prenom 1 Vernier Frédéric 2 Max Aurelien 3 Bautier Jean 4 Schlienger Francoise 5 Vauchelle Alain 6 Tixeuil Sebastien 7 Allauzen Alexandre 8 Voisin Frederic 9 Nel Laurent 10 Longavesne Jean-P 11 Lisser Abdel 12 Rousseau Martine 13 Astier Roger 14 Calisti Jean 15 Simon Laurent 16 Roussel Nicolas 17 Alphonse Erick 18 Journiac Brigitte 19 Lenoir Jean-Pierre 20 Barras Claude 21 Blanch Renaud 22 Fournier 23 Herault Thomas … 518 Appert Caroline 519 Benoit Stacey 520 Panzer Claire Numero Email [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] Jean-Pierre [email protected] [email protected] StatutDerniere DEPINFO-LIMSI DEPINFO-LIMSI EXTERIEUR IUT IUT DEPINFO-LRI DEPINFO-LIMSI DEPINFO-LRI UP11-AUTRE UP11-AUTRE DEPINFO-LRI IUT IUT IFIPS DEPINFO-LRI DEPINFO-LRI DEPINFO-LRI UP11-AUTRE IUT DEPINFO-LIMSI DEPINFO-LRI IUT DEPINFO-LRI [email protected] [email protected] [email protected] DEPINFO-LRI EXTERIEUR EXTERIEUR Texte court Université PARIS-SUD - Licence MPI - S1 Choix multiples Elements 7 Requêtes SQL Récupération des données : SELECT Prenom, Nom FROM Etudiants WHERE Niveau=“S1” Alban BERGUER Marina BILMONT 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', '[email protected]', ’MPI', '2006', ’S1', ’1988-11-29') 8 Université PARIS-SUD - Licence MPI - S1 Table des Résultats Totale (SELECT * FROM Etudiants) Partielle au niveau des lignes Partielle au niveau des colonnes SELECT Nom, Age FROM Etudiants WHERE Niveau=“S1” Ordonnée SELECT Nom, Prenom FROM Etudiants Doublement partielle SELECT * FROM Etudiants WHERE Niveau=“S1” SELECT * FROM `Etudiants` ORDER BY `Annee` DESC Limitée dans le nombre d’élements SELECT * FROM `Etudiants` LIMIT 0 , 30 9 Université PARIS-SUD - Licence MPI - S1 Opérations de Sélection (clause WHERE) SELECT * FROM Etudiants WHERE (DateN > 1988-01-01 % et logique Prenom LIKE “Chris%”) % ressemble à OR % ou logique (AGE=19 AND AND % et logique Filiere NOT LIKE “%-MPI”) Composition identique à l’algorithmique mais les opérateurs diffèrent 10 Université PARIS-SUD - Licence MPI - S1 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 Université PARIS-SUD - Licence MPI - S1 1 2 1 2 1 Options Math102 GEOS103 … Heures Etudiants … … 1 Intitule 1 2 Numero Marina BILMONT … … … Numero Enseign Alban BERGUER Numero Etudiant Numero … Nom Prenom Numero 1 2 … 50 … 50 Enseignements 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” 12 Université PARIS-SUD - Licence MPI - S1 Numérotation / Clé Etudiants avec le même nom => problèmes Utiliser un numéro unique existant (No SS) … Nom Prenom Numero Numérotation automatique Garantie que 2 étudiants ne peuvent pas avoir le même 1 Alban BERGUER … 2 Marina BILMONT … numéro. Autre raisons de ne pas avoir des doublons 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é 13 Université PARIS-SUD - Licence MPI - S1 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’inscrire les nouveaux arrivants ? Et le groupe de TD avec le plus de redoublants ? 14 Université PARIS-SUD - Licence MPI - S1 Schémas de base de données Graphique synthétique des relations entre données Flèches / tables Université PARIS-SUD - Licence MPI - S1 15 Example plus réaliste ;-) 16 Université PARIS-SUD - Licence MPI - S1 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 17 Université PARIS-SUD - Licence MPI - S1 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. 18 Université PARIS-SUD - Licence MPI - S1 Interfaces Interfaces graphique pour éditer / remplir / détruire Formulaires … mais pour les requêtes, on a rien fait de plus puissant que le SQL ! Gestion des contraintes Formulaire Web Facilité d’accès Affichage formaté 19 Université PARIS-SUD - Licence MPI - S1 Et puis … Nb Etu. Nom Prenom Fonctions d'agrégations Performances, Optimisation Vernier 1 Fred 22 Multimédia (images, sons, ...) 2 Sandrine Gouraud 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<100km Réseaux, accès à distances, fragmentation. etc. Numero 20 Université PARIS-SUD - Licence MPI - S1 Applications Sciences 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 BD génomiques, composes chimiques, articles, étoiles, etc.. Gestion / Economie = pensez a la MiAGE DRH/ Gestion du personnel Médecine Informatique DBA (administrateur de BD) Systèmes d’information (DSI) Université PARIS-SUD - Licence MPI - S1 21 FIN Algo SI BD Bio-Info RO IG Réseaux Archi IHM TAL IA Sécurité GL Visu Vision // parole Compil Crypto 22 Université PARIS-SUD - Licence MPI - S1