Introduction aux BD - 1 / Djamel Berrabah Introduction aux Bases de Données Organisation du cours Introduction aux SGBD Modèle Entités/Associations Modèle.

Slides:



Advertisements
Présentations similaires
1 Bases de donn é es relationnelles. 2 Introduction au mod è le relationnel les donn é es sont repr é sent é es par des tables, sans pr é juger de la.
Advertisements

L’Intéroperabilité. Sommaire  Définition  Développer l’intéroperabilité  Les différents degrés d’opérabilité  La nécessité des normes  Sources.
Evaluation de requêtes Quelques résultats préliminaires 1 Amin Mesmoudi.
Université de Nantes CHORD Vincent Trève. Introduction ● Problématique – Comment accéder efficacement aux données réparties sur un système pair à pair?
Reformulation  L’AFPA promoteur du projet souhaite mettre en place une application WEB afin de remplacer une solution en Java. Pour ce projet 4 mandataires.
Présentation du projet JAVA Système de messagerie instantanée cryptée.
Présentation LabPlus v3. Solution novatrice en Technologies de l’information Solution novatrice en Technologies de l’information Application pour la Gestion.
1 Programmation Orientée Objet ● Qu'est-ce qu'un objet ● Collaboration des objets ● Les classes ● Relations entre les classes – “Utilise”, “Contient”,
Algèbre relationnelle - 1 / Djamel Berrabah Algèbre relationnelle Modèle relationnel : rappel Algèbre relationnelle.
Logiciel Assistant Gestion d’Événement Rémi Papillie (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
DIAGRAMME DE DEPLOIEMENT Exposé de: MBALLA MEKONGO Michèle MBOUNA FEUZE William SIEYADJEU Alex Lionel CHOPGWE Leonard NDUMATE Landry TIDJON Lionel.
ARCHITECTURE MULTITENANT CONTAINER DATABASE ET PLUGGABLE DATABASES Pr. A. MESRAR
Introduction aux bases de données
Cross-Plateform Cours JavaScript
FARAH.Z "Cours sécurité1" /2016
Google analytics.
Base de données: Généralité IFT6800 Jian-Yun Nie.
Les Bases de données Définition Architecture d’un SGBD
Algorithmique demander jeu du pendu.
MOT Éditeur de modèles de connaissances par objets typés
Initiation aux bases de données et à la programmation événementielle
FENIX Aperçu GLOBALE DU Système
Généralité sur les bases de données
JAVA et POO : Notion d'héritage
Principes de programmation (suite)
Technologies d’intelligence d’affaires
Virtualisation d’applications mobiles dans un réseau de Cloudlets
Présentation des EJB Enterprise Java Beans.
Notion De Gestion De Bases De Données
Création Et Modification De La Structure De La Base De Données
PROGRAMMATION INFORMATIQUE D’INGÉNIERIE II
1 ANGAMAN LUDOVIC UTT-LOKO-ITER. Organisation  10 séances de 3h  Présentation des bases de données  TP/TD.
Programmation Orientée Objet
Plan du chapitre Diagramme de classes Les extensions syntaxiques
Programmation Android Bases De Données, SQL-lite
Structuration du contenu
Deuxième partie LE DOSSIER TECHNIQUE DU MARINGOUIN.
Formation sur les bases de données relationnelles.
Développement d’applications interactives
Conception d’une BD.
Introduction en systèmes d’information et bases de données B.Shishedjiev -Introduction en BD 1.
I Copyright © 2004, Oracle. Tous droits réservés. Introduction.
Integrated Business intelligence
Diagrammes UML 420-KE2-LG.
Atelier sous régional sur l'intégration des données administratives, des données de masse et des informations géospatiales pour la compilation des indicateurs.
Programmation Android Première application Android
6. CONCEPTION PHYSIQUE RELATIONNELLE
L1 Technique informatique
5 Analyse avec Designer d'Oracle
Programmation Android Composantes d’une application
„La plate-forme EAI “ Initiation à WBI
7 Contraintes d’intégrité en SQL
5 Introduction au modèle relationnel 5.1 Concepts de base
© Robert Godin. Tous droits réservés.
Langages de programmation TP11
Bilan de projet pour [Nom du projet]
Catherine Cyrot - bibliothèques numériques - Cours 5
20 Données semi-structurées et XML
EPITECH 2009 UML EPITECH 2009
JDepend - Analyse de la qualité du code Java -
Un Mécanisme d‘Adaptation Guidé par le Contexte en Utilisant une Représentation par Objets Manuele Kirsch Pinheiro Laboratoire LSR – IMAG, Équipe SIGMA.
Chapitre 7 La gestion des données.
Design, innovation et créativité
SQL Structured Query Language
Modélisation des SI et de la connaissance
1 Semestre stic Sébastien PARFAIT – Faculté de Médecine – Bureau 145.
© Robert Godin. Tous droits réservés.
MOT Éditeur de modèles de connaissances par objets typés
Les données structurées et leur traitement
Séquence 1:Analyse du système d’information comptable
Transcription de la présentation:

Introduction aux BD - 1 / Djamel Berrabah Introduction aux Bases de Données Organisation du cours Introduction aux SGBD Modèle Entités/Associations Modèle Relationnel

Introduction aux BD - 2 / Djamel Berrabah Étudier les « bases de données » selon différents points de vue : utilisateur développeur administrateur Comprendre les principes des systèmes de gestion de bases de données (SGBD) relationnels Apprendre à construire des applications sur un SGBD : modèles et langages Étudier les mécanismes internes des SGBD Objectifs du cours

Introduction aux BD - 3 / Djamel Berrabah Plan général du cours (en italique, les chapitres qui donneront lieu à des TME)‏ Introduction et modélisation BD Algèbre relationnelle Calcul relationnel SQL : Interrogation SQL : Mises-à-jour SQL : Triggers et vues Dépendances fonctionnelles Normalisation de schémas relationnels Évaluation et optimisation de requêtes Transactions et tolérance aux pannes Contrôle de concurrence Modèles de données et langages logiques : conception interrogation mise-à-jour, cohérence Théorie de la conception Performances et cohérence d’exécution utilisateur développeur administrateur

Introduction aux BD - 4 / Djamel Berrabah Introduction aux Bases de Données ● Fichiers versus Bases de Données ● Architecture et fonctions d’un Système de Gestion de Bases de Données (SGBD) ● Modèle Entité-Association ● Modèle Relationnel

Introduction aux BD - 5 / Djamel Berrabah Système de Gestion de Fichiers (SGF) Les données sont stockées dans des fichiers différentes méthodes d’accès (séquentiel, indexé, haché, etc.)‏ un fichiers peut être utilisé par plusieurs programmes PROGRAM 1 Données PROGRAM 2 PROGRAM 3 Données Fichier 1 Fichier 2 SGF read/write open/close

Introduction aux BD - 6 / Djamel Berrabah « Problèmes » avec les fichiers Faible structuration des données données « plates » Dépendance entre programmes et fichiers modif. du format de stockage implique modif. de programmes Redondance des données partage de données au niveau du fichier Absence de contrôle de cohérence globale des données La gestion de données structurées dans des fichiers représente une partie importante du coût de développement et de maintenance d’applications.

Introduction aux BD - 7 / Djamel Berrabah PROGRAM 1 PROGRAM 2 Base de données SGBD Requêtes Transactions Index … Approche « Base de Données »

Introduction aux BD - 8 / Djamel Berrabah Introduction aux Bases de Données ● Fichiers versus Bases de Données ● Architecture et fonctions d’un Système de Gestion de Bases de Données (SGBD) ● Modèle Entité-Association ● Modèle Relationnel

Introduction aux BD - 9 / Djamel Berrabah Objectif : faciliter le partage de grands volumes de données entre différents utilisateurs / applications Un SGBD doit garantir la cohérence et l’intégrité des données en cas d’erreurs de programmation, d’accès concurrents, de pannes, d’accès non- autorisés, … des performances d’accès sur des grands volumes de données pour des grands nombres de clients Système de Gestion de Bases de Données (SGBD)‏

Introduction aux BD - 10 / Djamel Berrabah Approche Bases de Données Séparation le problème de la gestion de données en trois « couches » : Traitements (calcul, affichage, …)‏ Représentation logique des données Représentation physique des données Traitement séparé des sous-problèmes : Indépendance traitements/représentation logique des données : vues externes cachent les détails de l’organisation logique des données Indépendance représentation logique/représentation physique : schéma logique cache les détails du stockage physique des données SGBD Programme

Introduction aux BD - 11 / Djamel Berrabah Architecture ANSI/SPARC Schéma logique Schéma physique tables vue externe SGBD EMP(ENO: string, ENOM: string, EMPLOI: string)‏ PROJ(PNO: string, PNOM: string, BUDGET: int)‏ WORKS(ENO: string, PNO: string, RESP: string, DUR: int)‏ Stocke les relations dans des fichiers, avec des index sur certains attributs. ASSIGNMENT(ENO,PNO,ENOM,PNAME)‏ vue externe index, données vue externe

Introduction aux BD - 12 / Djamel Berrabah Fonctions d’un SGBD Gestion de schémas et de vues (logique) : Description de la structure logique des données : Employés, salaires, … Description de contraintes sur les données :  Salaire  Réorganisation (virtuelle) de données pour des besoins spécifiques Gestion de l’intégrité des données : Le SGBD vérifie les contraintes spécifiées dans le schéma Exécution transactionnelle des requêtes (mises-à-jours)‏ Gestion de la concurrence multi-utilisateur et des pannes Traitement et optimisation de requêtes : La performance est un problème gérée par le système et non pas par l’application

Introduction aux BD - 13 / Djamel Berrabah Utilisateurs d’un SGBD Utilisateur final (end user)‏ accède la BD par des formes d’écran, des interfaces applicatives ou, pour les plus experts, des requêtes ad hoc en DML (SQL)‏ Développeur d’applications construit (avec l’utilisateur) le schéma conceptuel définit et gère le schéma logique et les vues conçoit et implémente des applications qui accèdent la BD Administrateur BD (DBA)‏ gère le schéma physique et règle les performances charge et organise la BD gère la sécurité et la fiabilité

Introduction aux BD - 14 / Djamel Berrabah Langages et interfaces d’un SGBD Langages de conception : E/A, UML conception haut-niveau d’applications (données et traitements)‏ Langages BD : SQL, algèbre/calcul relationnel langage déclaratif : l’utilisateur spécifie quoi (et non comment)‏ puissance d’expression limitée Utilisation : définition schémas, interrogation et mises-à-jour, administration Langages de programmation : PL/SQL, Java, PHP, … langages procéduraux/impératifs Turing complet Utilisation : programmation d’applications

Introduction aux BD - 15 / Djamel Berrabah Langages BD Langage de définition de données (DDL)‏ pour définir les schémas externes (vues), logiques et physiques les définitions sont stockées dans le répertoire système (dictionnaire)‏ Langage de manipulation de données (DML)‏ langage de requêtes déclaratif pour interroger et mettre à jour les données peut être autonome (par ex. SQL seul) ou intégré dans un langage de programmation (à travers une API comme JDBC)‏

Introduction aux BD - 16 / Djamel Berrabah Architecture SGBD Utilisateurs finauxProgrammeurs d’application Administrateur de BD Formulaires Applications DMLLang. ProgDDL Index Répertoire système Fichiers Compilateur DDL Gérant du disque Gérant de tampons Gérant de fichiers Processeur de requêtes Commandes SQL Gérant de pannes Gérant de transactions SGBD

Introduction aux BD - 17 / Djamel Berrabah Histoire des bases de données Années 1960: début 1960: Charles Bachmann développe le premier SGBD, IDS, chez Honeywell modèle réseau: les associations entre les données sont représentées par un graphe fin1960: IBM lance le SGBD IMS modèle hiérarchique: les associations entre les données sont représentées par un arbre fin 1960: standardisation du modèle réseau Conference On DAta Systems Languages (CODASYL)‏

Introduction aux BD - 18 / Djamel Berrabah Histoire des bases de données Années 1970: 1970: Ted Codd définit le modèle relationnel au IBM San Jose Laboratory (aujourd’hui IBM Almaden)‏ 2 projets de recherche majeurs INGRES, University of California, Berkeley  devint le produit INGRES, suivi par POSTGRES, logiciel libre, qui devint le produit ILLUSTRA, racheté par INFORMIX System R, IBM San Jose Laboratory  devint DB2, inspira ORACLE 1976: Peter Chen définit le modèle Entité-Association (Entity- Relationship)‏

Introduction aux BD - 19 / Djamel Berrabah Histoire des bases de données Années 1980 maturation de la technologie relationnelle standardisation de SQL Années1990 amélioration constante de la technologie relationnelle support de la distribution et du parallélisme modèle objet, ODMG fin 1990 : le relationnel-objet, SQL3 nouveaux domaines d’application: entrepôts de données et décisionnel, Web, multimédia, mobiles, etc. Années 2000 apparition de XML et de nouvelles architectures (eg. P2P)‏

Introduction aux BD - 20 / Djamel Berrabah Définitions Une base de données (BD) est une collection de données structurées sur des entités (objets, individus) et des relations dans un contexte (applicatif) particulier. La structure (conceptuel, logique et physique) des données est décrites par des schémas définis dans des modèles de données. Un système de gestion de base de données (SGBD) est un (ensemble de) logiciel(s) qui facilite la création et l‘utilisation de bases de données.

Introduction aux BD - 21 / Djamel Berrabah Modèles de données Modèle de données = langage + sémantique pour structurer et manipuler des données Modèle conceptuel : conception structuration haut-niveau (conceptuelle) de l’information (pas d’opérations)‏ modèle entité-association (E/A), UML, Merise, … Modèle logique : conception et développement définition et utilisation des données dans le SGBD modèles hiérarchique, réseau, relationnel, objet Modèle physique : administration organisation physique des données et implantation des opérations modèles de stockage sur disque, indexes, algorithmes … R(A,B); select A from R where B=2; use index RI; read record r;

Introduction aux BD - 22 / Djamel Berrabah Introduction aux Bases de Données ● Fichiers versus Bases de Données ● Architecture et fonctions d’un Système de Gestion de Bases de Données (SGBD) ● Modèle Entité-Association ● Modèle Relationnel

Introduction aux BD - 23 / Djamel Berrabah « E/R (entity-relationship) model » en anglais Modèle de conception / schémas conceptuels : Modélisation graphique des entités, de leurs attributs et des associations entre entités détection d’erreurs de conception avant le développement ! traduction automatique dans un modèle logique (relationnel)‏ Supporté par les outils CASE pour BD Le modèle entité-association (E/A)‏

Introduction aux BD - 24 / Djamel Berrabah Entité : un objet qui existe dans le monde réel et possède une identité et des propriétés Exemples : l’employé Martin, le projet Compilateur Association : une « relation » entre deux ou plusieurs entités Exemples : l’employé Smith dirige le projet Compilateur l’employé Martin travaille dans le projet Compilateur Attribut : propriété d’une entité ou d'une association prend ses valeurs dans un domaine (string, [1..10], etc.)‏ Exemples : le No de l’employé Smith est 10 la durée de l’affectation de Martin dans le projet Compilateur est 6 Les concepts

Introduction aux BD - 25 / Djamel Berrabah Une classe d'entités est un ensemble d'entités similaires, ayant les mêmes attributs Une classe d’associations est un ensemble d’associations entres les entités d’une ou de plusieurs classes. Classe d'entités et d'associations Employé nom salaire no dirige Proje t nom budget Par abus de langage, on utilise souvent entité (association) à la place de classe d’entité (d’association).

Introduction aux BD - 26 / Djamel Berrabah Identificateur d'entité un ou plusieurs attributs permettant d'identifier une entité dans une classe d'entités Exemple : EmployéNo d'employé Identificateur d'association un identificateur composé de tous les identificateurs d’entités reliées par l'association exemple Travaille No d'employé, Nom de projet Identificateurs Employé nom no

Introduction aux BD - 27 / Djamel Berrabah Un intervalle [min:max] indique pour une classe d’entités C et une classe d’associations A, le nombre d'associations de type A qu’une entité de C peut avoir avec d’autres entités. Exemples : [min:max] un employé peut travailler dans un ou plusieurs projets [1:N ] un projet peut avoir zéro ou plusieurs employés [ 0:N ] un employé peut travailler dans zéro ou un projet [ 0:1 ] un projet peut avoir zéro ou plusieurs employés [ 0:N ] un employé doit travailler dans exactement un projet [ 1:1 ] un employé doit travailler dans au moins deux projets [ 2:N ] Cardinalités d'une classe d'associations

Introduction aux BD - 28 / Djamel Berrabah Schéma entité-association EMPLOYEPROJET Responsabilité Durée Budget NOM No Nom Salaire Titre PARTICIPE VilleApt. # Rue # Lieu 1:10:N min:max Chaque employé travaille dans exactement un projet. Il y a zéro ou plusieurs employés affectés à chaque projet.

Introduction aux BD - 29 / Djamel Berrabah Association réflexive : une entité d'une classe C est associé à une ou plusieurs entités de la même classe C. Association réflexive EMPLOYE DIRIGE 1:1 0:N Manager subordonné COMPOSANT CONTIENT 0:N Partie_de Consiste_de

Introduction aux BD - 30 / Djamel Berrabah Association ternaire est différent de Etudiant Prof Matière Etudiant Prof Matière Pourquoi ? 0:N

Introduction aux BD - 31 / Djamel Berrabah Entité forte: entièrement identifiable par ses attributs Entité faible: ne peut être identifiée que par rapport à une autre entité, dite dominante, à laquelle elle se réfère. Son identificateur est : identificateur partiel + identificateur de l'entité dominante. Entités fortes et faibles identificateur partiel 1:1 implicit

Introduction aux BD - 32 / Djamel Berrabah Spécialisation

Introduction aux BD - 33 / Djamel Berrabah Introduction aux Bases de Données ● Fichiers versus Bases de Données ● Architecture et fonctions d’un Système de Gestion de Bases de Données (SGBD) ● Modèle Entité-Association ● Modèle Relationnel

Introduction aux BD - 34 / Djamel Berrabah Modèle Relationnel Un modèle de données logique permet de décrire la structure des données ou le schéma les données ou instances les opérations sur le schéma et les données Exemple : Modèle relationnel schéma = ensemble de noms de tables ou relations avec des attributs instance = ensemble de n-uplets (tuples, lignes) stockés dans les tables opération = expression SQL

Introduction aux BD - 35 / Djamel Berrabah Schéma entité-association EMPLOYEPROJET Responsabilité Durée Budget NOM No Nom Salaire Titre PARTICIPE VilleApt. # Rue # Lieu 1:N 0:N min:max

Introduction aux BD - 36 / Djamel Berrabah Une base de données relationnelle ENOENOMEMPLOI E1J. DoeElect. Eng. E2M. SmithSyst. Anal. E3A. LeeMech. Eng. E4J. MillerProgrammer E5B. CaseySyst. Anal. E6L. ChuElect. Eng. E7R. DavisMech. Eng. E8J. JonesSyst. Anal. EMP ENOPNORESP E1P1Manager12 DUR E2P1Analyst24 E2P2Analyst 6 E3P3Consultant10 E3P4Engineer48 E4P2Programmer18 E5P2Manager24 E6P4Manager48 E7P3Engineer36 E8P3Manager40 PARTICIPE E7P5Engineer23 PROJ PNOPNOMBUDGET P1Instrumentation P3CAD/CAM P2Database Develop P4Maintenance P5CAD/CAM schéma instance n-uplet

Introduction aux BD - 37 / Djamel Berrabah Un schéma de relation R(A 1 : D 1, A 2 : D 2, …, A n : D n ) est composé d’un nom de relation R : Ex. : EMP, PARTICIPE, PROJ et d’un ensemble d’attributs A={A 1, A 2, …, A n } définis sur n domaines de valeurs D={D 1, D 2,..., D n } : Ex. : ENO:string, ENOM:string, PNO:string, DUR:int, … Autre notation (sans domaines): R(A 1, A 2, …, A n )‏ Ex. : EMP(ENO, ENOM, EMPLOI)‏ Un schéma relationnel est un ensemble de schémas de relations. Schéma relationnel

Introduction aux BD - 38 / Djamel Berrabah Base de données relationnelle Une relation r est un ensemble fini de n-uplets Une relation r est une instance d’un schéma de R(A 1 : D 1, A 2 : D 2, …, A n : D n ) si r est un sous-ensemble du produit cartésien des domaines de R (r  D 1  D 2  …  D n ). Une base de données relationnelle (BD) est définie par un schéma relationnelle R 1, R 2,….R n et un ensemble d’instances de R 1, R 2,….R n (tables)‏ Généralement on considère que pour chaque schéma de relation R i, il existe exactement une instance qu’on note également R i.

Introduction aux BD - 39 / Djamel Berrabah Conception de schémas relationnels Une schéma relationnel peut contenir des centaines de tables avec des milliers d’attributs. Problème: comment éviter des erreurs de conception? Deux solutions (complémentaires): Génération (automatique) à partir d’un schéma E/A Théorie des dépendances et normalisation (on verra plus tard)

Introduction aux BD - 40 / Djamel Berrabah Règles de passage d’E/A vers un schéma relationnel Pour chaque type d’entité C avec les attributs A 1, A 2, …, A n créer un schéma de relation R C (A 1, A 2, …, A n ) clé de R = attributs clés de C Pour chaque type d’association A avec au moins un 1:1: rajouter dans le schéma de relation R C du type d’entité C du côté du 1:1, les clés des autres types d’entité associés ainsi que les attributs de l’association. la clé de R C ne change pas (sauf pour une entité faible). Pour les autres associations A (1:N, N:M, 0:1) : créer un schéma de relation R A avec les clés des types d’entité reliés et les attributs de l’association. clé de R A = union des clés des types d’entités associés

Introduction aux BD - 41 / Djamel Berrabah Client( client, nom, #agence) Agence( agence, adresse)‏ Client(client, nom) Compte(compte, solde) Acompte(#client, #compte, depuis)‏ Client client domicilieAgence agence adresse nom 1:11:n nom Client Compte compte solde depuis client 0:m1:n a_compte

Introduction aux BD - 42 / Djamel Berrabah Client(client, nom) Agence(agence, adresse) Domicile(#client, #agence)‏ Client client domicilieAgence agence adresse nom 0:11:n La clé de l’entité dominante fait partie de la clé de l’entité faible Salle( salle, #bat, nbplaces) Batiment(bat, …)‏ est_dans 1:n bat salle nb_places Batiment Salle

Introduction aux BD - 43 / Djamel Berrabah Spécialisation Compte( compte, solde) CompteCh(#compte, dec-aut) CompteEp(#compte, taux)‏ Si Compte est un type d’éntité « abstrait » (sans instances) : CompteCh(solde, dec-aut, compte) CompteEp(solde, taux, compte)‏ CompteEpargne CompteCheque nom Client Compte compte solde depui s client 0:m1:n a_compte a_carte est_un Carte carte code dec_autor taux 1:n1:1