Bases de données – cours 1

Introduction

Catalin Dima

Conception de bases de données. Cours essentiel pour votre stage ! . SQL et PHP.Objectifs du cours ◮ ◮ ◮ ◮ Modèle relationnel et logique des bases de données. Langage SQL.

Chris J. Widom. Introduction aux bases de données (7e édition). Ullman & J..D. Evaluation en contrôle continu : ◮ 2 contrôles en TD. 8 TDs×1h30 (au lieu de 12) et 4 TPs×3h (au lieu de 2). Database system. Page web : http://lacl. Garcia-Molina.S. Date.Ressources et évaluation ◮ ◮ ◮ ◮ ◮ ◮ H. J. the complete book. 6 séances A. D. .univ-paris12.fr/dima/BD 6 séances C.

◮ ◮ Gestion des transactions. Flexibilité et complexité de manipulation de données. Durabilité. Donnée = information stockée. Base de donée = collection des données persistantes. ◮ ◮ ◮ . Accès concurrent aux données : utilisateurs. mais orientée structuration des données. Séparation donnée (valeur) / information (signification). ◮ Interface de programmation. Atomicité des transactions.Fonctionnalités d’une BD ◮ Stockage persistent de données. ◮ ◮ ◮ ◮ Similaire aux systèmes de fichiers.

Systèmes bancaires. Systèmes de BD distribués.Exemples de systèmes de BD ◮ ◮ ◮ ◮ Systèmes de réservation de billets. Serveurs web et CMS. .

Langage de définition de données (LDD) : structuration de la BD. Gestion de la durabilité : journalisation et recouvrement. Gestionnaire de transactions : ◮ ◮ Gestion de la concurrence : contrôle de l’atomicité et de l’isolation. programmes applicatifs. Requêtes processées par un compilateur fournissant des plans d’opérations à une machine d’exécution des requêtes. ◮ ◮ Langage de manipulation de données (LMD) : définition de requêtes. ◮ ◮ ◮ ◮ Transaction : suite d’opérations sur la base de données. . ◮ Administrateurs : responsables de la structure de la BD. Outils d’aide à la définition de la structure d’une BD.Survol d’un système de gestion de bases de données (SGBD) ◮ Modificateurs de données : utilisateurs conventionnels.

Java). Représentation des champs mémoire. ◮ Niveau externe : logique utilisateur. Combinaison de LMD et de LDD. Utilisation intégrées : requêtes intégrées dans un programme d’un autre langage (Javascript. ◮ ◮ ◮ Types d’enregistrements internes. Séquencement physique. Utilisation interactive : requêtes saisies par utilisateur. ◮ ◮ ◮ ◮ ◮ Niveau (schéma) conceptuel : vue commune entre utilisateurs. Indépendant des représentations physiques des informations. PHP. SQL est un exemple. ◮ ◮ .Une architecture à trois niveaux ◮ Niveau interne : mémoire physique. Définition de types d’enregistrements et des relations entre eux.

Intègre aussi le compilateur de requêtes.Architecture client-serveur ◮ ◮ Séparation entre développeur d’outils BD et développeur de BD. Applications/outils développés à l’aide de ces fonctionnalités. . Serveur du SGBD : ◮ ◮ ◮ ◮ Responsable de la sécurité et l’intégrité des BD créées par les utilisateurs. ◮ Client SGBD : ◮ ◮ Exemples : Oracle. Intègre tout le niveau interne. Responsable de la gestion de la concurrence entre les requêtes des différents utilisateurs. plus la définition des LDD et LMD. Fonctionnalités offertes par les concepteurs des SGBD orientées client-serveur. MySQL server.

pour rentre leur utilisation plus cohérente. D’autres ensembles d’opérateurs peuvent constituer une base du calcul des relations. vus comme des relations. Un ensemble réduit d’opérateurs est suffisant pour manipuler les tables et définir des nouveaux tables. Certaines contraintes d’intégrité doivent être satisfaites par les tables. Un table a un nom et contient des attributs (colonnes).Les SGBD relationnels ◮ Modèle de BD basé sur la manipulation des tables (tableaux). Aspects essentiels : ◮ ◮ ◮ ◮ ◮ Toute relation est représentée par un tables. ◮ . restriction et jointure. des tuples (lignes). ◮ Opérateurs de base : projection.

Exemple de BD relationnelle PC : Produit : fabricant A A A A A A B B B B B B C C C C C C D D D D E E E E E F F F F F modèle 1003 1002 1010 2004 2005 2009 1001 1003 3001 3002 3004 1009 1001 2001 1010 2001 2009 3001 1002 1010 2002 2005 2001 2009 3001 1002 1004 2002 3005 3006 3009 2009 type pc pc pc portable portable portable pc pc imprimante imprimante imprimante pc pc portable pc portable portable imprimante pc pc portable portable portable portable imprimante pc pc portable imprimante imprimante imprimante portable modèle 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 processeur i3 i3 i5 i5 i7 i7 a4 a4 a6 a8 RAM 2 4 4 8 8 16 4 8 8 16 DD 400 450 500 400 600 800 500 800 600 800 DVD/Blu-ray 8xDVD 16xDVD 8xBR 16xDVD 6xBR 8xDVD 16xDVD 6xBR 7xBR 12xBR prix 400 500 450 600 650 700 350 450 500 700 Portables : modèle 2001 2002 2003 2004 2005 2006 2007 2008 2009 processeur a4 a6 a6 a8 a8 i3 i3 i5 i5 RAM 4 4 6 4 6 16 4 8 8 Imprimantes : modèle 3001 3002 3003 3004 3005 3006 3007 3008 type laser jet d’encre laser laser multifonction jet d’encre laser multifonction couleur oui oui non non non oui oui oui prix 250 150 100 90 350 120 230 450 DD 200 250 300 200 300 200 300 200 400 écran 14 13 14 15 14 11 13 15 13 prix 600 700 750 700 650 700 650 850 800 .

indices.Relations. Utilisateurs. nécessaire au fonctionnement de celui-ci. Une relvar TABLE ayant comme colonnes NOMTAB. catalogue ◮ ◮ ◮ Chaque BD est identifiée avec une relation sur un ensemble d’attributs. COMPTCOL. ◮ Le catalogue est constitué de relvars : ◮ ◮ ◮ . Une relvar COLONNE ayant comme colonnes NOMTAB. Une variable relationnelle (relvar) est une variable qui prend comme valeur des relations. Contraintes d’intégrité et de sécurité. etc. colonnes/attributs. Toute autre description du système. relvars. Le catalogue (dictionnaire) d’un SGBD est l’ensemble des objets présents dans le système de BD : ◮ ◮ ◮ ◮ Relations/tables. COMPTLIGNE. NOMCOL. etc. On verra plus tard leur nom (et d’autres exemples) en SQL.

Durabilité : lorsqu’une transaction se termine avec succès.g. ◮ Mais aussi si une transaction se termine par un échec. lorsqu’une mise à jour d’une table dans la BD implique plusieurs actions sensibles qui.Transactions Unités logiques de travail : ◮ Font intervenir plusieurs opérations de base dans la BD. lorsqu’elles sont entrelacés avec d’autres actions. le système revient à son état avant la transaction ! ◮ Isolation : les mises à jour effectuées en cours d’exécution d’une transaction ne sont visibles (pour d’autres transactions ou utilisateurs) qu’à la fin de celle-ci (si succès). . ◮ Utilisées e. les mises à jour ont bien été effectuées sur la BD. peuvent entraîner des incohérences dans la BD. ◮ ◮ Atomicité : aucun entrelacement possible avec d’autres opérations ne faisant pas partie de la transaction.