cours bases de données nguyen tuan loc. contact nguyen tuanloc, dr nguyen tuanloc, dr laboratoire...
TRANSCRIPT
Cours Bases de donnéesCours Bases de données
Nguyen Tuan LocNguyen Tuan Loc
ContactContact Nguyen TuanLoc, DrNguyen TuanLoc, Dr
Laboratoire LIP6Laboratoire LIP6--CNRSCNRSUniversité Pierre et Marie CurieUniversité Pierre et Marie Curie
bureau c569bureau c5698, rue du capitaine Scott8, rue du capitaine Scott75015 Paris - France75015 Paris - France
Tél: 01 44 27 87 85Tél: 01 44 27 87 85
Web: Web: http://nguyentuanloc.online.frhttp://nguyentuanloc.online.fr Email:Email:[email protected]@lip6.fr
RéferencesRéferences
Base de données – G. Gardarin - EyrollesBase de données – G. Gardarin - Eyrolles
Databases complete book – Databases complete book – H.Garcia/J.UllmanH.Garcia/J.Ullman
Cours en ligne :Cours en ligne :http://nguyentuanloc.online.frhttp://nguyentuanloc.online.fr
Besoin du cours :Besoin du cours : Objectif :Objectif :
Approfondir les concepts de bases de données Approfondir les concepts de bases de données relationnelles.relationnelles.
Maîtriser la conception et la mise en œuvre d’une base de Maîtriser la conception et la mise en œuvre d’une base de données relationnelles.données relationnelles.
Découvrir quelques SGBD relationnelles (MySQL, Access, Découvrir quelques SGBD relationnelles (MySQL, Access, SQL Server)SQL Server)
Acquérir une expériences dans la normalisation et Acquérir une expériences dans la normalisation et l’optimisation des performances.l’optimisation des performances.
Découvrir et pratiquer les principales fonctions Découvrir et pratiquer les principales fonctions d’administration d’un SGBD relationnel.d’administration d’un SGBD relationnel.
Pre-requisPre-requis MotivéMotivé
ContenuContenu Cours 1: Introduction (1)Cours 1: Introduction (1) 3,5h3,5h Cours 2: Introduction (2)Cours 2: Introduction (2) 3,5h3,5h Cours 3: Modèle relationnel Cours 3: Modèle relationnel 3,5h3,5h
Démo & TP (MySQL)Démo & TP (MySQL) 45’ 45’ Cours 4: Présentation SQL Cours 4: Présentation SQL 2,5h2,5h
& Algèbre relationnelle& Algèbre relationnelle Démo Démo & TP& TP (Access)(Access) 1h1h
Cours 5: Normalisation (1)Cours 5: Normalisation (1) 3,5h3,5h Cours 6: Normalisation (2)& optimisationCours 6: Normalisation (2)& optimisation 2h2h
Démo Démo & TP (Access,MySQL)& TP (Access,MySQL) 45’ 45’ Contrôle continuContrôle continu 1,5h1,5h
Cours 7: Présentation SQL avancé Cours 7: Présentation SQL avancé 2,5h2,5h Démo Démo & TP& TP (MySQL)(MySQL) 45’ 45’ Préparer projet (30/10->30/11)Préparer projet (30/10->30/11) 1h1h
Cours 8: SGBD XML&Web Services Cours 8: SGBD XML&Web Services 2h2h Démo Démo & TP& TP (MySQL) (MySQL) 1,5h1,5h
Cours 9: BD et Web – AdministrationCours 9: BD et Web – Administration 2,5h2,5h Contrôle continu (soutenance de projet)Contrôle continu (soutenance de projet) 2,5h2,5h
ExamensExamens 2h302h30
Contenu du cours 1Contenu du cours 1 Définition de bases de donnéesDéfinition de bases de données Définition de SGBDDéfinition de SGBD SGBD: SGBD:
CaractéristiquesCaractéristiques PourquoiPourquoi
Modèles de modélisation des donnéesModèles de modélisation des données Objectif du SGBDObjectif du SGBD Architecture Architecture
deux niveauxdeux niveaux trois niveauxtrois niveaux répartierépartie
RésuméRésumé
BBases de ases de ddonnées, définition:onnées, définition: Collection de fichiers reliés par des Collection de fichiers reliés par des
pointeurs multiples, bien organisés, pointeurs multiples, bien organisés, répondre efficacement des demandes répondre efficacement des demandes variéesvariées
Collection d’informations via la Collection d’informations via la modélisation du monde réelmodélisation du monde réel
SGBD - Qu’est-ce c’est ?SGBD - Qu’est-ce c’est ? SGBD (DBMS): SGBD (DBMS): DDataatabbases ases MManagement anagement
SSystemystemSSystème de ystème de GGestion de estion de BBases de ases de DDonnéesonnées
Définition de SGBD:Définition de SGBD: Logiciel:Logiciel:
données persistantesdonnées persistantes accès efficaceaccès efficace(Ullman)(Ullman)
Ensemble de logiciels systèmes permettant de Ensemble de logiciels systèmes permettant de stocker et d’interroger un ensemble de fichiers stocker et d’interroger un ensemble de fichiers indépendants. Il est aussi un outil permettant de indépendants. Il est aussi un outil permettant de modéliser et de gérer des donnéesmodéliser et de gérer des données (G.Gardarin)(G.Gardarin)
SGBD: CaractéristiquesSGBD: Caractéristiques
Management des données persistantesManagement des données persistantes Accéder aux larges données avec Accéder aux larges données avec
efficacitéefficacité Supporter modèles de donnéesSupporter modèles de données TransactionTransaction Permettre de définir des Permettre de définir des
données(structure, accès, manipuler)données(structure, accès, manipuler) Recouverte des donnéesRecouverte des données Control d’accèsControl d’accès
Objectif du SGBD (1)Objectif du SGBD (1)
Assurer l’indépendance des programmes Assurer l’indépendance des programmes aux données (architecture 2-tiers)aux données (architecture 2-tiers)
What non HowWhat non How Indépendance:Indépendance:
Physique des programmes aux données Physique des programmes aux données Logique des programmes aux donnéesLogique des programmes aux données Administration facileAdministration facile Permettre de manipuler par langages query Permettre de manipuler par langages query
(SQL)(SQL)
1. Objectifs des SGBD (2)1. Objectifs des SGBD (2)
INDÉPENDANCE PROGRAMMES/DONNÉESINDÉPENDANCE PROGRAMMES/DONNÉES Indépendance physiqueIndépendance physique Indépendance logiqueIndépendance logique
ACCÉS PAR DES LANGAGES ASSERTIONNELSACCÉS PAR DES LANGAGES ASSERTIONNELS Recherche (le quoi et non le comment)Recherche (le quoi et non le comment) Insertion (en groupes, calculées)Insertion (en groupes, calculées) Mise à jour (basée sur la recherche)Mise à jour (basée sur la recherche)
EFFICACITÉ DES ACCÈSEFFICACITÉ DES ACCÈS Temps de réponseTemps de réponse
SGBDSGBD
données
SGBD
physique
logique
Objectifs des SGBD (3)Objectifs des SGBD (3)
SUPPORT DE TRANSACTIONSSUPPORT DE TRANSACTIONS Atomique (tout ou rien)Atomique (tout ou rien) Cohérente (respect de l'intégrité)Cohérente (respect de l'intégrité)
PARTAGEABILITÉ ET SÉCURITE DES DONNÉESPARTAGEABILITÉ ET SÉCURITE DES DONNÉES Simultanéité lecture/écriture maximumSimultanéité lecture/écriture maximum Accès transactionnels & décisionnelsAccès transactionnels & décisionnels Confidentialité (authentification, droits d'accès, Confidentialité (authentification, droits d'accès,
cryptage)cryptage) Restauration après pannes (journaux, sauvegardes)Restauration après pannes (journaux, sauvegardes)
Objectifs des SGBD (4)Objectifs des SGBD (4)
CONCEPTION FACILITÉE DES APPLICATIONSCONCEPTION FACILITÉE DES APPLICATIONS Conception visuelle des BD (diagrammes E/R, Conception visuelle des BD (diagrammes E/R,
objets)objets) Conception des traitements (diagrammes de flux Conception des traitements (diagrammes de flux
entre modules)entre modules) Dictionnaire de données (objets BD, graphiques, Dictionnaire de données (objets BD, graphiques,
applicatifs)applicatifs)
ADMINISTRATION SYSTÈME FACILITÉEADMINISTRATION SYSTÈME FACILITÉE Visualisation des plans d ’accèsVisualisation des plans d ’accès Élaboration de statistiquesÉlaboration de statistiques
Architecture ANSI/SPARC 78Architecture ANSI/SPARC 78
Externe (vues)Externe (vues) description des entités et description des entités et
associations vues par un associations vues par un utilisateur (ou un groupe utilisateur (ou un groupe d’utilisateurs)d’utilisateurs)
Conceptuel Conceptuel description des entités et description des entités et
associations du monde réelassociations du monde réel
InterneInterne implémentation physique implémentation physique
des des entités et associations dans les entités et associations dans les
fichiersfichiers
Vue externe
Vue externe
Vue externe
conceptuel
interne
Architectures Client-ServeurArchitectures Client-Serveur
DéfinitionDéfinition modèle d'architecture applicative où les programmes modèle d'architecture applicative où les programmes
sont répartis entre processus clients et serveurs sont répartis entre processus clients et serveurs communiquant par des requêtes avec réponses.communiquant par des requêtes avec réponses.
Une répartition hiérarchique des fonctionsUne répartition hiérarchique des fonctions données sur le serveur partagées entre N clientsdonnées sur le serveur partagées entre N clients interfaces graphiques sur la station de travail interfaces graphiques sur la station de travail
personnellepersonnelle communication par des protocoles standardiséscommunication par des protocoles standardisés distribution des programmes applicatifs afin de distribution des programmes applicatifs afin de
minimiser les coûtsminimiser les coûts
Pourquoi le Client-serveur ?Pourquoi le Client-serveur ? Évolution des besoins de l'entrepriseÉvolution des besoins de l'entreprise
Augmentation de productivité, de réactivitéAugmentation de productivité, de réactivité Utilisation des micros assurant flexibilité et faibles coûtsUtilisation des micros assurant flexibilité et faibles coûts Besoin de décisionnel et transactionnel sur gros volumes Besoin de décisionnel et transactionnel sur gros volumes
Évolution des technologiesÉvolution des technologies Systèmes ouverts permettant l'usage de standardsSystèmes ouverts permettant l'usage de standards Environnements de développement graphiquesEnvironnements de développement graphiques Explosion de la puissance des micros et des serveursExplosion de la puissance des micros et des serveurs
Solutions techniques séduisantesSolutions techniques séduisantes Les données partagées enfin accessibles simplementLes données partagées enfin accessibles simplement Mise en commun des services (règles de gestion, Mise en commun des services (règles de gestion,
procédures)procédures) Gestion de transactions et fiabilité au niveau du serveurGestion de transactions et fiabilité au niveau du serveur
Architecture 1e générationArchitecture 1e génération
Windows NT UNIXCLIENTS
APPLICATIONS
REQUETERESULTAT
règlesSGBD
NT, UNIX, NOVELL
GCOS, VMS, MVS
APPLICATIONS
SERVEUR
APPLICATION
Données
Architecture Client-Serveur
Application
Outil Applicatif
Outil de connectabilité
Protocole Réseau
Serveur BD
base de données
Client
Requêtes de services
Résultats
Serveur
Protocole Réseau
Outil de connectabilitéProcédures
Stockées
Le C/S de 2e générationLe C/S de 2e génération Procédure stockéeProcédure stockée
Procédure accomplissant une Procédure accomplissant une fonction de service sur les donnéesfonction de service sur les données
Exemple : Entrée ou sortie de stockExemple : Entrée ou sortie de stock Architecture orientée services plutôt Architecture orientée services plutôt
que requêtesque requêtes Distribution des traitementsDistribution des traitements Peut être automatiséePeut être automatisée
Évolution et passage à l'échelleÉvolution et passage à l'échelle Possibilité de serveurs multiples, Possibilité de serveurs multiples,
avec redondancesavec redondances Possibilité de données privées sur Possibilité de données privées sur
les clientsles clients
Intérêt du C/S de 2e Intérêt du C/S de 2e générationgénération
Réduction des transferts réseauxRéduction des transferts réseaux non nécessité de monter les données dans le client pour non nécessité de monter les données dans le client pour
les modifierles modifier appel de services plus compactappel de services plus compact
Distribution automatique des applicationsDistribution automatique des applications développement sur le poste de travaildéveloppement sur le poste de travail partitionnement par tirer-déposer (drag & drop)partitionnement par tirer-déposer (drag & drop)
Simplification des outils de développementSimplification des outils de développement principe de la fenêtre uniqueprincipe de la fenêtre unique modélisation uniforme des objets applicatifsmodélisation uniforme des objets applicatifs invisibilité du modèle de données à l'extérieur du serveurinvisibilité du modèle de données à l'extérieur du serveur
Vers le 3e générationVers le 3e génération Intégration du Web et du client-serveurIntégration du Web et du client-serveur
navigateur à présentation standard pour le clientnavigateur à présentation standard pour le client possibilité de petites applications (contrôles) sur le clientpossibilité de petites applications (contrôles) sur le client très grande portabilité (Intranet, Internet)très grande portabilité (Intranet, Internet)
Architecture à 3 strates (3-tiered)Architecture à 3 strates (3-tiered) Base de données avec procédures stockéesBase de données avec procédures stockées Services applicatifs partagés et objets métiers (EJB, ActiveX)Services applicatifs partagés et objets métiers (EJB, ActiveX) Présentation hypertexte multimédia avec contrôlesPrésentation hypertexte multimédia avec contrôles
Support de l'hypermédiaSupport de l'hypermédia types de données variées et extensibles (texte, types de données variées et extensibles (texte,
image,vidéo)image,vidéo) hypertexte et navigation entre documents et applicationshypertexte et navigation entre documents et applications
Analyse syntaxique Analyse sémantique Gestion des schémas Modification de requêtes Contrôle d'intégrité Contrôle d'autorisation Ordonnancement Optimisation Ellaboration d'un plan Exécution du plan Méthodes d'accès Contrôle de concurrence Atomicité des transactions
META-BASE
BD
ANALYSEUR
TRADUCTEUR
OPTIMISEUR
EXECUTEUR
Gestionnairede fichiers
Concepts de BaseConcepts de Base Le gestionnaire de fichiers est la couche Le gestionnaire de fichiers est la couche
interne d'un SGBD, souvent intégrée au interne d'un SGBD, souvent intégrée au système opératoire. système opératoire.
Innermost cylinder
Outermost cylinder
(a) Side view
(b) Top view
Structures des DisquesStructures des Disques
Notion 1: Notion 1: Volume (Disk Volume (Disk Pack)Pack) Unité de Unité de
mémoire mémoire secondaire secondaire amovible.amovible.
Notion de fichierNotion de fichier
Notion 2: Fichier (File)Notion 2: Fichier (File) Récipient d'information caractérisé par un nom, Récipient d'information caractérisé par un nom,
constituant une mémoire secondaire idéale, constituant une mémoire secondaire idéale, permettant d'écrire des programmes d'application permettant d'écrire des programmes d'application indépendants des mémoires secondaires.indépendants des mémoires secondaires.
Un fichier se caractérise plus particulièrement par :Un fichier se caractérise plus particulièrement par : UN NOMUN NOM UN CREATEURUN CREATEUR UNE DATE DE CREATIONUNE DATE DE CREATION UN OU PLUSIEURS TYPES D'ARTICLEUN OU PLUSIEURS TYPES D'ARTICLE UN EMPLACEMENT EN MSUN EMPLACEMENT EN MS UNE ORGANISATIONUNE ORGANISATION
Les fichiers sur les volumesLes fichiers sur les volumes
Notion 7: Label de volume (Label)Notion 7: Label de volume (Label) Premier secteur d'un volume permettant d'identifier Premier secteur d'un volume permettant d'identifier
ce volume et contenant en particulier son numéro.ce volume et contenant en particulier son numéro. Notion 8: Descripteur de fichier (Directory entry) Notion 8: Descripteur de fichier (Directory entry)
Ensemble des informations permettant de retrouver Ensemble des informations permettant de retrouver les caractéristiques d'un fichier, contenant en les caractéristiques d'un fichier, contenant en particulier le nom du fichier, sa localisation sur particulier le nom du fichier, sa localisation sur disque, etc…disque, etc…
Notion 9: Catalogue (Directory)Notion 9: Catalogue (Directory) Table (ou fichier) située sur un volume et contenant Table (ou fichier) située sur un volume et contenant
les descripteurs des fichiers du volume.les descripteurs des fichiers du volume.
LABEL n
CATALOGUE
F1 F2 F3 F4 …
F1 F2
F3 F4
VOLUME n
Organisation d'un volumeOrganisation d'un volume
Catalogue HiérarchiséCatalogue Hiérarchisé
Notion 10: Catalogue hiérarchiséNotion 10: Catalogue hiérarchisé Catalogue constitué d'une hiérarchie de Catalogue constitué d'une hiérarchie de
fichiers, chaque fichier contenant les fichiers, chaque fichier contenant les descripteurs des fichiers immédiatement descripteurs des fichiers immédiatement inférieurs dans la hiérarchie.inférieurs dans la hiérarchie.
> PIERRE> PIERRE > PIERRE > BASES-DE-DONNEES> PIERRE > BASES-DE-DONNEES > PIERRE > BASES-DE-DONNES > MODELES> PIERRE > BASES-DE-DONNES > MODELES
Allocation de l'espace Allocation de l'espace disquedisque
Notion 11: Région (Allocation area)Notion 11: Région (Allocation area) Ensemble de zones de mémoires secondaires Ensemble de zones de mémoires secondaires
(pistes) adjacentes allouées en une seule fois à (pistes) adjacentes allouées en une seule fois à un fichier.un fichier.
Notion 12: Granule d'allocation (Allocation Notion 12: Granule d'allocation (Allocation granule)granule) Unité de mémoire secondaire allouable à un Unité de mémoire secondaire allouable à un
fichier.fichier.
Stratégie d'allocationStratégie d'allocation
Objectifs d'une stratégieObjectifs d'une stratégie (1) minimiser le nombre de régions à allouer à (1) minimiser le nombre de régions à allouer à
un fichier de sorte à réduire d'une part les un fichier de sorte à réduire d'une part les déplacements des bras des disques lors des déplacements des bras des disques lors des lectures en séquentiel et d'autre part le nombre lectures en séquentiel et d'autre part le nombre de descripteurs de régions associés à un fichier;de descripteurs de régions associés à un fichier;
(2) minimiser la distance qui sépare les régions (2) minimiser la distance qui sépare les régions successives d'un fichier, de sorte à réduire les successives d'un fichier, de sorte à réduire les déplacements de bras en amplitude.déplacements de bras en amplitude.
| | | | | | | | | |
offset = adresse relative
Adressage RelatifAdressage Relatif
Notion 13: Adresse relative (Relative address)Notion 13: Adresse relative (Relative address) Numéro d'unité d'adressage dans un fichier Numéro d'unité d'adressage dans un fichier
(autrement dit: déplacement par rapport au (autrement dit: déplacement par rapport au début du fichier).début du fichier).