La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

1 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

2 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

3 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

4 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

5 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

6 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.

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

8 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

9 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)‏

10 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

11 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

12 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 : 1 300  Salaire  250 000 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

13 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é

14 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

15 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)‏

16 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

17 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)‏

18 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)‏

19 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)‏

20 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.

21 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;

22 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

23 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)‏

24 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

25 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).

26 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

27 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

28 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.

29 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

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

31 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

32 Introduction aux BD - 32 / Djamel Berrabah Spécialisation

33 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

34 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

35 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

36 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 P1Instrumentation150000 P3CAD/CAM250000 P2Database Develop.135000 P4Maintenance310000 P5CAD/CAM500000 schéma instance n-uplet

37 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

38 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.

39 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)

40 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

41 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

42 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

43 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


Télécharger ppt "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."

Présentations similaires


Annonces Google