Xem mẫu
- Cours de Spécialité
Cours de Sp
Terminologie
PGS.TS. Phan Huy Khánh
khanhph@vnn.vn
Donnés et Base de données
- 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
- 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
- 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
- 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
- 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
- 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=“LMPI”
Insertion
INSERT INTO `Etudiants` ( `NumEtudiant`, `Prenom`, `Nom`,
`Email`, `Filiere`, `Annee`, `Niveau`, `DateN`)
VALUES (’856', 'Jean', 'Nemaclac', 'jean.nemaclac@laposte.net',
’MPI', '2006', ’S1', ’19881129')
7/21
- 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
- Opérations de Sélection (clause WHERE)
SELECT * FROM Etudiants WHERE
(DateN > 19880101
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
- 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
- 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
- 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
- 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
- Schémas de base de données
Graphique synthétique des relations entre données
Flèches / tables
14/21
- Example plus réaliste ;)
15/21
- 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
- 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
- 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
- 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
- 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 / CDthè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