1 - Limsi

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
1 Math102
2 GEOS103
Options
…
…
…
Heures
Université PARIS-SUD - Licence MPI - S1
1
1
Intitule
Etudiants
Numero
1
2
…
Numero
Etudiant
1
2
Numero
Enseign
Numero
…
Nom
Prenom
Numero
1 Alban BERGUER …
2 Marina BILMONT …
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