Bases de Données Georges Gardarin 1. BD: Qu’est-ce que c’est ? Ensemble de données apparentées (même thématique) Facilement interrogeable et modifiable par un langage de haut niveau (proche langue naturelle) Stocké sur mémoire secondaire (disques) Exemples: – Base des véhicules {voitures, personnes, liens de propriétés } Quelles sont les véhicules de M. Dupont ? Qui possèdent des véhicules de prix > 10000 € ? – Base des vins {vins, buveurs …} Listes des vins de qualité excellente ? Ajouter un abus au buveur Dupont Jules Pourquoi faire ? Mémoriser des données – Structurées (voitures, personnes, employés, vins …) – Documents (texte, images, films …) Retrouver en ligne la bonne donnée au bon moment – Le salaire de Dupont, sa photo – L’avoir de votre compte en banque Mettre à jour les données variant dans le temps Volume de données de plus en plus grands – Giga, Terra, Péta bases (10**15 octets) – Numériques, Textuelles, Multimédia (images, films,...) – De plus en plus de données archivées Structure des données Les données sont structurées et identifiées – Données élémentaires ex: Votre salaire, Votre note en L1 – Données composées ex: Votre CV, vos résultats de l'année – Identifiant humain ex: NSS ou machine: P26215 De plus en plus de données faiblement structurées – – – – Texte libre, document, Images Emergence du semi-structuré avec le Web Il faut aussi les stocker et les interroger Interrogation approximative type Google Google maintient sans doute la plus grande base du monde – Interrogation par mots-clés – Interrogation approximative (top 10) La hiérarchie des mémoires Capacité vs Coût & Vitesse Mémoire terciaire 5-10 ms Mémoire secondaire 80-200 ns Mémoire principale (RAM) 3-10 ns Cache (SRAM) 2-5 ns Registres Un accès disque est environ 100,000 fois plus lent qu’un accès mémoire! – Eviter les accès disques grande mémoire principale – Amortir les accès disques placement des données – Minimiser le nombre d’accès disques méthodes d’accès Un peu d'histoire Années 60: – Récipients logique de données fichiers sur disque – Accès séquentiel puis sur clé Lire (Nomf, Article), Ecrire (Nomf, Article) Lire (Nomf, Article, Clé), Ecrire (Nomf, article, Clé) Années 70: – Avènement des Bases de Données Réseaux (issues d’Apollo) – Ensemble de fichiers reliés par des pointeurs – Langage d'interrogation par navigation Années 80: – Avènement des Bases de Données Relationnelles (BDR) – Relations entre ensemble de données – Langage d'interrogation par assertion logique 2. BD et Monde réel Les données représente des entités (objets) du monde réel – Nom du type d’objet Exemple: voiture – Caractéristiques des objets Exemple: puissance, couleur marque – Liens entre objets Exemple: Pierre possède la voiture 212 BDW 75 Une BD représente une partie du monde réel – Entreprise, Application, Univers Modélisation du réel Réel Modèle conceptuel Indépendant du modèle de données Indépendant du SGBD Modèle logique Dépendant du modèle de données Indépendant du SGBD Modèle Physique Dépendant du modèle de données Dépendant du SGBD Médecin effectue Visite Codasyl Relationnel Objet XML Organisation physique des données Structures de stockage des données Structures accélératrices (index) 3. Le transactionnel (OLTP) Opérations typiques – mises à jour ponctuelles de lignes par des écrans prédéfinis, souvent répétitives, sur les données les plus récentes Exemple – Benchmark TPC-A et TPC-B : débit / crédit sur une base de données bancaire – TPC-A transactionnel et TPC-B avec traitement par lot – Mesure le nombre de transactions par seconde (tps) et le coût par tps La base TPC-A/B 1 100000 Agences Caissiers Comptes Historique 100 Taille pour 10 terminaux, avec règle d'échelle ( scaling rule) La transaction Débit - Crédit Begin-Transaction – Update Account Set Balance = Balance + Delta Where AccountId = Aid ; – Insert into History (Aid, Tid, Bid, Delta, TimeStamp) – Update Teller Set Balance = Balance + Delta Where TellerId = Tid ; – Update Branch Set Balance = Balance + Delta Where TellerId = Tid ; End-Transaction. 90 % doivent avoir un temps de réponse < 2 secondes Chaque terminal génère une transaction toute les 10s Performance = Nb transactions commises / Ellapse time 4. Le décisionnel (OLAP) Utilisation des données pour aider à la prise de décision dans l’entreprise Maintient et prise en compte des versions historiques (6 mois, un an,…) Requêtes complexes sur toute la base – – – – Evolution du CA par produit Evolution des performances des vendeurs en France Que se passe-t-il si on ferme la filiale française ? Quid d’une campagne de marketing pour vendre des guimauves ? – Quels prospects cibler ? Explosion de l ’OLAP Facteurs économiques & technologiques 18 CA en Milliards de $ 16 14 12 10 8 6 4 2 0 1994 1995 1996 1997 1998 Années Introduction DW 1999 2000 2001 Motivations des entreprises Besoin des entreprises – accéder à toutes les données de l’entreprise – regrouper les informations disséminées – analyser et prendre des décisions rapidement (OLAP) Exemples d'applications concernées – Grande distribution : marketing, maintenance, ... produits à succès, modes, habitudes d’achat préférences par secteurs géographiques – Bancaire : suivi des clients, gestion de portefeuilles mailing ciblés pour le marketing – Télécommunications : pannes, fraudes, mobiles, ... classification des clients, détection fraudes, fuites de clients Introduction DW Datawarehouse : définition Entrepôt de données – Ensemble de données historisées variant dans le temps, organisé par sujets, consolidé dans une base de données unique, géré dans un environnement de stockage particulier, aidant à la prise de décision dans l’entreprise. Trois fonctions essentielles : – collecte de données de bases existantes et chargement – gestion des données dans l’entrepôt – analyse de données pour la prise de décision Introduction DW Architecture type Cohabitation décisionnel-transactionnel Les transactions doivent souvent cohabiter avec des requêtes décisionnelles, traitant un grand nombre de tuples en lecture Exemple : – Moyenne des avoir des comptes par agence – SELECT B.BranchId, AVG(C.Balance) FROM Branch B, Account C WHERE B.BrachId = C.BranchId GROUP BY B.BranchId ; 5. Le Multimédia (GED) Archivage et recherche de données multimédias – Texte (livres, articles, journaux, …) – Images – Films – Données géographiques (cartes 2D, 2,5 D) – Données spatiales (3D) Recherche par proximité – Textes : liste de mots-clés (à la Google) – Images : par proximité (couleur, forme, texture …) – Cartes : par erctangle englobant, distance, zoom Recherche plein texte Recherche sur mot-clés Recherche de phrase Support des mots de liaison Recherche sur préfix, suffix, infix Normalisation des mots, accents, capitales, … Recherche par proximité (unité = mots) Spécification de l'ordre des mots Combinaison logic avec AND, OR , NOT Recherche par similarité Tri des résultats par pertinence Recherche d’images Histogramme de couleur Texture Formes et contours Similarité Exemple: trouver toutes les images qui ressemble au bandit ? 6. Fichiers versus BD Fichiers composés d’articles Gérés par les systèmes opératoires Accédés par les applications – Lus – Écrits – Stockés sur disques – Avec des tables des matières (index) Technique connue depuis les années 60 Systèmes de fichiers Comptabilité Caractéristiques Chirurgie Problèmes Consultations Psychiatrie Format des fichiers Caractéristiques Plusieurs applications plusieurs formats Dupont Symptomes : y Turlututu : sqj Symptomes : y Turlututu : sdd Analyses : xxx Dupond plusieurs langages Turlututusqjsk Symptom: yyyy Analyses xxxx Turlututudhjsd Analyses :xx Problèmes Difficultés de gestion Duhpon Duipont Symptomes : yy Analyses : xxxx Symptomyyyy Analysesxxxx Symptomes : yy Turlututudhjsd Turlututu : sq Redondance (données) Caractéristiques Plusieurs applications plusieurs formats Dupont Symptomes : y Turlututu : sqj Symptomes : y Turlututu : sdd Analyses : xxx Dupond Turlututusqjsk Symptom: yyyy Analyses xxxx plusieurs langages Redondance de données Turlututudhjsd Analyses :xx Problèmes Difficultés de gestion Incohérence des données Duhpon Duipont Symptomes : yy Analyses : xxxx Symptomyyyy Analysesxxxx Symptomes : yy Turlututudhjsd Turlututu : sq Interrogations Caractéristiques Plusieurs applications ComptaSoft Dupont Symptomes : y Turlututu : sqj Symptomes : y Turlututu : sdd Analyses : xxx Dupond Turlututusqjsk Symptom: yyyy Analyses xxxx Turlututudhjsd Analyses :xx ChiruSoft plusieurs formats plusieurs langages Redondance de données Pas de facilité d’interrogation Question développement Problèmes ConsultSoft Duhpon Duipont Symptomes : yy Analyses : xxxx Symptomyyyy Analysesxxxx Symptomes : yy Turlututudhjsd Turlututu : sq PsychiaSoft Difficultés de gestion Incohérence des données Coûts élevés Maintenance difficile Pannes ??? Caractéristiques Plusieurs applications ComptaSoft Dupont Symptomes : y Turlututu : sqj Symptomes : y Turlututu : sdd Analyses : xxx Dupond Turlututusqjsk Symptom: yyyy Analyses xxxx Turlututudhjsd Analyses :xx ChiruSoft plusieurs formats plusieurs langages Redondance de données Pas de facilité d’interrogation Question développement Redondance de code ConsultSoft Duhpon Duipont Symptomes : yy Analyses : xxxx Symptomyyyy Analysesxxxx Symptomes : yy Turlututudhjsd Turlututu : sq PsychiaSoft Problèmes Difficultés de gestion Incohérence des données Coûts élevés Maintenance difficile Gestion de pannes ??? Partage de données Caractéristiques Plusieurs applications ComptaSoft Dupont Symptomes : y Turlututu : sqj Symptomes : y Turlututu : sdd Analyses : xxx Dupond Turlututusqjsk Symptom: yyyy Analyses xxxx Turlututudhjsd Analyses :xx ChiruSoft plusieurs formats plusieurs langages Redondance de données Pas de facilité d’interrogation Question développement Redondance de code ConsultSoft Duhpon Duipont Symptomes : yy Analyses : xxxx Symptomyyyy Analysesxxxx Symptomes : yy Turlututudhjsd Turlututu : sq PsychiaSoft Problèmes Difficultés de gestion Incohérence des données Coûts élevés Maintenance difficile Gestion de pannes ??? Partage des données ??? Confidentialité Caractéristiques Plusieurs applications ComptaSoft Dupont Symptomes : y Turlututu : sqj Symptomes : y Turlututu : sdd Analyses : xxx Dupond Turlututusqjsk Symptom: yyyy Analyses xxxx Turlututudhjsd Analyses :xx ChiruSoft plusieurs formats plusieurs langages Redondance de données Pas de facilité d’interrogation Question développement Redondance de code ConsultSoft Duhpon Duipont Symptomes : yy Analyses : xxxx Symptomyyyy Analysesxxxx Symptomes : yy Turlututudhjsd Turlututu : sq PsychiaSoft Problèmes Difficultés de gestion Incohérence des données Coûts élevés Maintenance difficile Gestion de pannes ??? Partage des données ??? Confidentialité ??? 7. L’approche ‘‘Bases de données’’ Modélisation des données Eliminer la redondance de données Centraliser et organiser correctement les données Plusieurs niveaux de modélisation Outils de conception Logiciel «Système de Gestion de Bases de Données» Factorisation des modules de contrôle des applications - Interrogation, cohérence, partage, gestion de pannes, etc… Administration facilitées des données Modélisation Relationnelle (1) Champs, attributs, colonnes Relation ou table Id-D Nom Prénom 1 Dupont Pierre 2 Durand Paul 3 Masse Jean …. …….. …… Tuples, lignes ou n-uplets Modélisation Relationnelle (2) Docteurs Id-D Nom Préno m 1 Dupo nt Pierre Duran d Paul Mass e Jean …….. …… 2 3 …. Patients Id-P Nom Prescriptions Visites Id-D Id-P IdV Date Prix 1 2 1 15 juin 250 1 1 2 12 août 180 2 2 3 13 juillet 350 1 mars 250 2 Préno m Ville 3 4 IdV Lign e Id-M Posolog ie 1 1 12 1 par jour 1 2 5 10 gouttes 2 1 8 2 par jour 2 2 12 1 par jour 2 3 3 Médicaments Id-M Nom 2 gouttes Description …. …. ………… ………………………… ….. 1 Lebea u Jacque s Paris 1 …. Aspegic 1000 2 Troge r Zoe Evry 2 Fluisédal ………………………… ….. 3 Doe John Paris 3 Mucomyst ………………………… ….. Fonctions des SGBD I- Indépendance Physique X - Standards II- Indépendance Logique III – Langage de manipulation IX - Gestion de la confidentialité VIII - Concurrence d’accès BD IV - Gestion des vues V - Optimisation des questions VII - Gestion des pannes VI - Gestion de la cohérence Qu’étudie-t-on en BD ? Les modèles de données Les méthodes de stockage Les langages de requêtes Les algorithmes d’optimisation de requêtes Les algorithmes de contrôles Les méthodes de publication de données Les architectures de systèmes La répartition des données La prise en compte du web