Bases de Données Relationnelles. Le Modèle Relationnel

Documents pareils
Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Modélisation Conceptuelle. Partie 2: Le modèle Entité-Association

Les bases de données

Modèle conceptuel : diagramme entité-association

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Les bases de données Page 1 / 8

Chapitre 1 Généralités sur les bases de données

Bases de données relationnelles

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Information utiles. webpage : Google+ : digiusto/

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

PROJET 1 : BASE DE DONNÉES REPARTIES

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Bases de Données. Plan

Bases de Données relationnelles et leurs systèmes de Gestion

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Introduction aux Bases de Données

Introduction aux Bases de Données

Rappel sur les bases de données

Bases de Données Avancées

Modélisation de bases de données : Le modèle relationnel

Le langage SQL Rappels

Conception des bases de données : Modèle Entité-Association

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Séance 1 Introduction aux bases de données

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Bases de données - Modèle relationnel

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

Le Langage SQL version Oracle

16H Cours / 18H TD / 20H TP

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Modélisation des données

Bases de données relationnelles & SQL

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

II. Modèle conceptuel le modèle entité-association

Mercredi 15 Janvier 2014

LE MODELE CONCEPTUEL DE DONNEES

1 Introduction et installation

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

CHAPITRE 1. Introduction aux bases de données

MERISE. Modélisation et Conception de Systèmes d Information

Bases de données relationnelles : Introduction

Bases de données élémentaires Maude Manouvrier

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

IFT3030 Base de données. Chapitre 1 Introduction

Modélisation conceptuelle des données Responsable: Dominique Schneuwly, Regis Caloz

INTRODUCTION AUX TECHNOLOGIES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

Dossier I Découverte de Base d Open Office

Application web de gestion de comptes en banques

Présentation du module Base de données spatio-temporelles

Chap. 3: Le modèle de données entité-association (E.A.)

I4 : Bases de Données

INTRODUCTION : Données structurées et accès simplifié

UML et les Bases de Données

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Bases de Données Avancées

Schéma relationnel et contraintes d intégrité : le cas ConduiteAuto

CESI Bases de données

Introduction au Système de Gestion de Base de Données et aux Base de Données

Le langage SQL (première partie) c Olivier Caron

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Master I Génie Logiciel

Bases de données Cours 1 : Généralités sur les bases de données

SQL Historique

INTRODUCTION AUX BASES de DONNEES

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Systèmes d information et bases de données (niveau 1)

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Création et Gestion des tables

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

CHAPITRE 1 ARCHITECTURE

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

Créer une base de données

Bases de données avancées Introduction

Le Langage De Description De Données(LDD)

MEGA Database Builder. Guide d utilisation

Table des matières. Avant-propos

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

PHP 4 PARTIE : BASE DE DONNEES

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Bases de données. Chapitre 1. Introduction

Gestion des bases de données

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Intégrité sémantique dans les bases de données relationnelles

INTEGRITE ET BD ACTIVES

Langage SQL : créer et interroger une base

COURS de BASES de DONNEES

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

SQL MAP. Etude d un logiciel SQL Injection

Module BDR Master d Informatique (SAR)

Chapitre 07 Le modèle relationnel des données

Java DataBaseConnectivity

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Année Universitaire 2009/2010 Session 2 de Printemps

Transcription:

Bases de Données Relationnelles Le Modèle Relationnel

Le modèle relationnel modèle de niveau logique modèle simple : deux concepts relation (table) attribut (colonne) défini par Ted Codd en 1970 ; prix Turing en 1986. Développé par IBM lab. support théorique très solide aujourd'hui utilisé par beaucoup de SGBD commerciaux (Oracle, Informix, DB2, Ingres, Sybase, dbase, Access ) et SIG BDA 4.2

Deux modèles relationnels Modèle formel relation, attribut, tuple, identifiant normalisation algèbre relationnelle calculs relationnels Modèle logique, implémenté : SQL table, colonne, ligne, clé primaire SQL - définition et modification du schéma SQL - entrée et mise à jour des données SQL - requêtes BDA 4.3

Le modèle relationnel formel

Concepts de base Monde réel objet > Relationnel > relation propriété simple, monovaluée > attribut lien binaire, sans attribut > identifiant externe représentation multiple > / BDA 4.5

Concepts de base (suite) Etudiant (N Etud, nom, prénom, age) nom de la relation noms des attributs schéma Etudiant N Etud nom prénom age tuple ou occurrence 136 Rochat Jean 19 253 Aubry Annie 20 101 Duval André 21 147 Rochat Marc 21 population BDA 4.6

Schéma relationnel une BD = ensemble de relations schéma d'une BD relationnelle = un ensemble de schémas de relation : R1, R2,, Rn schéma d'une relation = un ensemble d'attributs avec leurs domaines R = (A1/d1, A2/d2,, Ap/dp) ou, plus simplement, R = (A1, A2,, Ap) BDA 4.7

Règles de structuration attributs : simples et monovalués (domaine de valeurs atomiques) structure plate régulière x x x x y y y y x, y : une et une seule valeur atomique par attribut x x x x x x w w w w w w INTERDIT BDA 4.8

Valeurs nulles Un attribut peut ne pas être valué pour un tuple. On dit alors qu'il a une valeur nulle exemple : on ne connaît ni l'age d'annie ni le prénom de Duval Etudiant N Etud nom prénom age 136 Rochat Jean 19 253 Aubry Annie NULL 101 Duval NULL 21 147 Rochat Marc 21 BDA 4.9

Identifiant Rappel : ensemble minimum d'attributs tel qu'il n'existe jamais 2 tuples ayant mêmes valeurs pour tous ces attributs L'identifiant n'admet pas de valeurs nulles Etudiant N Etud nom prénom age 136 Rochat Jean 19 253 Aubry Annie NULL 101 Duval NULL 21 147 Rochat Marc 21 BDA 4.10

Identifiant Modèle formel : jamais de tuple en double Il existe donc toujours un identifiant : dans la cas le pire, c'est l'ensemble des attributs de la relation Il peut exister plusieurs identifiants Etudiant ( AVS, N inscription, nom, prénom, adresse, tél ) AVS N inscription ( nom + prénom ) BDA 4.11

Identifiants externes Décrivent les liens binaires entre les relations Etudiant ( N, nom, prénoms, adresse, tél) Cours ( Nom, horaire, prof ) Suit ( N Etud, NomC ) N Etud référence un Etudiant NomC référence un Cours La valeur de N Etud dans Suit est : celle de l'identifiant d'un tuple existant de Etudiant (intégrité référentielle) ou éventuellement nulle (si attribut facultatif) Même contrainte pour NomC de Suit BDA 4.12

Identifiant externe - Exemple Cours ( NomC, horaire, prof) BD Mercredi 15-17 Rochat SI Mardi 16-19 Martin Réseaux Jeudi 16-19 Suit ( N Etud, NomC) 253 SI 136 BD 253 BD 101 SI Martin Suit traduit un TA entre Etudiant et Cours. Suit contient les identifiants de Etudiant et de Cours. Suit.NomC est un identifiant externe sur Cours. BDA 4.13

Identifiants externes (suite) Si la relation référencée possède plusieurs identifiants, il faut préciser lequel : Etudiant (AVS, N inscript, nom, prénoms, adresse) identifiants : AVS N inscript Suit (N Etud, NomC) identifiants externes : N Etud référence un Etudiant.N inscript NomC référence un Cours BDA 4.14

Vérification de l'intégrité référentielle automatiquement, par le SGBD Si un utilisateur veut entrer (INSERT) un tuple dans Suit avec un NomC qui n'existe pas dans Cours refus Si un utilisateur veut modifier (UPDATE) le nom du cours d'un tuple dans Suit avec un NomC qui n'existe pas dans Cours refus BDA 4.15

Vérification de l'intégrité référentielle Si un utilisateur veut supprimer (DELETE) un tuple de Cours pour lequel il existe des tuples dans Suit refus? détruire les tuples de Suit correspondants? mettre à NULL la valeur de NomC dans Suit? Si un utilisateur veut mettre à jour (UPDATE) le nom d'un cours pour lequel il existe des tuples dans Suit refus? propager la mise à jour de NomC dans Suit? BDA 4.16

Domaines de valeurs Un domaine est un ensemble de valeurs atomiques que peut prendre un attribut Exemples de domaines : Dnom : chaînes de caractères de longueur maximale 30 Dâge : entiers compris entre 16 et 65 Dcouleur : {"bleu", "vert", "jaune"} DétatCivil : {"célibataire", "marié", "veuf", "divorcé"} BDA 4.17

Définition d'une relation Une relation est définie par : son nom sa liste de couples <nom d'attribut : domaine> son (ses) identifiant(s) ses identifiants externes s'il en existe la définition de sa sémantique (phrase en français) Exemple : Etudiant (N Etud : Dnum, Nom : Dnom, Prénom : Dnom, Age : Dâge) Identifiant : N Etud Définition : tout étudiant actuellement inscrit BDA 4.18

Contraintes de modélisation Les notions d'attribut multivalué ou complexe n'existent pas dans le modèle relationnel. Il faut donc les modéliser autrement. Pour un attribut monovalué complexe, il faut choisir entre le composé ou les composants Pour un attribut multivalué, il faut créer une autre relation (ceci pour chaque attribut multivalué) BDA 4.19

Représentation d'attribut monovalué complexe Soit pour Personne adresse : nom-rue, n, ville, NPA Solution 1 : un attribut par composant : Personne (AVS, nom,, nom-rue, n, ville, NPA) "Rue de Bourg", "2", "Lausanne", "1003" il est éventuellement possible de définir par ailleurs une vue restituant la notion globale d'adresse Solution 2 : un attribut adresse, de domaine : chaine de caractères Personne (AVS, nom,, adresse) "Rue de Bourg 2, Lausanne, 1003" le système ignore nom-rue, n, ville et NPA BDA 4.20

Représentation d'attribut multivalué Exemple : mémoriser les différents prénoms des étudiants Mauvaise modélisation : plusieurs attributs Etudiant (N Etud, nom, prénom1, prénom2, ) 136 Duval Jean Marie 101 Rochat Annie NULL 253 Martin Annie Claudine Bonne modélisation : créer une relation supplémentaire Etudiant (N Etud, nom) EtudPrénoms ( N Etud, prénom ) 136 Jean 136 Marie 101 Annie 253 Annie 253 Claudine identifiant externe : N Etud référence Etudiant BDA 4.21

Représentation d'attribut multivalué (2) Les prénoms sont ordonnés => Autre bonne modélisation Etudiant (N Etud, nom) EtudPrénoms2 ( N Etud, N prénom, prénom ) identifiants : (N Etud + N prénom) (N Etud + prénom) identifiant externe : N Etud référence Etudiant EtudPrénoms2 ( N Etud, N prénom, prénom ) 136 1 Jean 136 2 Marie 101 1 Annie 253 1 Annie 253 2 Claudine BDA 4.22

Cas d'attribut multivalué et complexe Même solution que pour un attribut simple multivalué : création d'une nouvelle relation Exemple : Personne avec téléphones (intitulé, numéro) Personne ( AVS, nom, adresse, ) PersTel ( AVS, intitulé, numéro ) identifiant externe : AVS référence Personne BDA 4.23

Récapitulatif Un schéma relationnel se compose : pour chaque relation de : nom de la relation définition attributs + domaines identifiant(s) éventuellement identifiant(s) externe(s) contraintes d'intégrité associées et des autres contraintes d'intégrité qui portent sur plusieurs relations. BDA 4.24

Exemple de schéma relationnel Schéma FormaPerm (institut de formation permanente) Domaines : Dnom : chaînes de caractères de longueur inférieure à 30 Dch100 : chaînes de caractères de longueur inférieure à 100 Dannée : [1970 : 1990 ] Dnote : [0.0 : 20.0 ] Ddate : [1 :31 ] / [1 :12 ] / [1920 :2010 ] BDA 4.25

Diagramme relationnel Personne n? P nom adr PersonnePr?noms n? P n? pr?nom pr?nom Etudiant Enseignant Etudiant- Etudes n? E ann?e dipl me n? P n? E daten Inscrit n? E nomc Obtenu n? E nomc note ann?e n? P tel statut banque agence compte Cours Pr?requis nomc cycle n? Ens nomc nomcpr?requis BDA 4.26

Relation : Personne Attributs: n P : entier sans nul nom : Dnom sans nul adr : Dch100 sans nul Identifiant: (n P ) Définition: tout étudiant et tout enseignant de l'institut (état actuel). Relation : PersonnePrénoms Attributs: n P : entier sans nul n prénom : entier sans nul prénom : Dnom sans nul Identifiants: (n P + prénom ) (n prénom + prénom ) Identifiant externe: n P référence une Personne Définition: prénoms des personnes BDA 4.27

Relation : Etudiant Attributs: n P : entier sans nul n E : entier sans nul daten : Ddate sans nul Identifiants: (n E ) (n P ) Identifiant externe : n P référence une Personne Définition: tout individu qui est actuellement inscrit à l'institut, ou qui a déjà passé avec succès un des cours de l'institut Relation : EtudiantEtudes Attributs: n E : entier sans nul année : Dannée sans nul diplôme : Dnom sans nul Identifiant: (n E + diplôme ) Identifiant externe : n E référence un Etudiant.n E Définition: études antérieures des étudiants BDA 4.28

Relation : Enseignant Attributs: n P : entier sans nul tel : entier sans nul statut : Dnom sans nul banque : Dnom sans nul agence : Dnom sans nul compte : entier sans nul Identifiant: (n P ) Identifiant externe : n P référence une Personne Définition: tout individu assurant actuellement un ou plusieurs cours à l'institut Relation : Cours Attributs: nomc : Dnom sans nul cycle : entier sans nul n Ens : entier sans nul Identifiant: (nomc ) Identifiant externe : n Ens référence un Enseignant Définition: tout cours actuellement offert par l'institut BDA 4.29

Relation : Obtenu Attributs: n E : entier sans nul nomc : Dnom sans nul note : Dnote sans nul année : Dannée sans nul Identifiant: (n E + nomc ) Identifiants externes : n E référence un Etudiant.n E nomc référence un Cours Définition: l'étudiant n E a réussi le cours nomc telle année et a obtenu telle note Relation : Inscrit Attributs: n E : entier sans nul nomc : Dnom sans nul Identifiant: (n E + nomc ) Identifiants externes : n E référence un Etudiant.n E nomc référence un Cours Définition: actuellement, l'étudiant n E est inscrit au cours nomc BDA 4.30

Relation : Prérequis Attributs: nomc : Dnom sans nul nomcprérequis : Dnom sans nul Identifiant: (nomc + nomcprérequis ) Identifiants externes : nomc référence un Cours nomcprérequis référence un Cours Définition: le cours nomcprérequis est un prérequis pour le cours nomc Contrainte d'intégrité: dans tout tuple, nomcprérequis doit être différent de nomc BDA 4.31

FormaPerm : contraintes d'intégrité Pour tout tuple de Prérequis <nomc, nomcprérequis>, le cycle de nomcprérequis dans Cours doit être inférieur ou égal à celui de nomc Pour tout tuple de EtudiantEtudes <n E, année, diplôme>, soit daten la date de naissance de l'étudiant n E dans la relation Etudiant, alors : daten < année BDA 4.32

Contraintes d'intégrité (suite) Pour tout tuple de Etudiant : cette-année - daten >= 18, où cette-année est la variable du système indiquant l'année en cours Pour tout tuple de Obtenu <n E, nomc, note, année>, soit daten la date de naissance de l'étudiant dans la relation Etudiant, alors: daten < année Pour tout tuple de Inscrit <n E, nomc>, le n E doit exister dans Obtenu associé à tous les cours existants dans Prérequis associés à nomc. BDA 4.33