Introduction aux bases de données

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

Bases de Données. Plan

Rappel sur les bases de données

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

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

16H Cours / 18H TD / 20H TP

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

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Information utiles. webpage : Google+ : digiusto/

UML et les Bases de Données

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

Bases de données relationnelles & SQL

Bases de données. Chapitre 1. Introduction

Les bases de données

I4 : Bases de Données

Créer le schéma relationnel d une base de données ACCESS

Premiers Pas en Programmation Objet : les Classes et les Objets

et les Systèmes Multidimensionnels

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

1 Introduction et installation

INTRODUCTION AUX BASES de DONNEES

INTRODUCTION AUX TECHNOLOGIES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

Bases de données - Modèle relationnel

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)

Vincent Augusto

Structure fonctionnelle d un SGBD

Les bases de données Page 1 / 8

OpenPaaS Le réseau social d'entreprise

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

CESI Bases de données

Introduction aux Bases de Données

COURS de BASES de DONNEES

OpenOffice Base Gestionnaire de Base de Données

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

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

Olivier Mondet

PROJET 1 : BASE DE DONNÉES REPARTIES

CERTIFICAT INFORMATIQUE ET INTERNET NIVEAU 1

Le langage SQL Rappels

CHAPITRE 1. Introduction aux bases de données

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

Les structures. Chapitre 3

Application web de gestion de comptes en banques

Bases de données avancées Introduction

Cours Bases de données

Langage SQL : créer et interroger une base

TD/TP PAC - Programmation n 3

Intégrité des données

Création et Gestion des tables

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

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

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

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

Bases de données élémentaires Maude Manouvrier

Bases de données relationnelles : Introduction

Le Langage De Description De Données(LDD)

Java DataBaseConnectivity

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Séance 1 Introduction aux bases de données

Modèle conceptuel : diagramme entité-association

Cours: Administration d'une Base de Données

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Introduction aux Bases de Données

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

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

PHP 5. La base de données MySql. A. Belaïd 1

CREATION WEB DYNAMIQUE

TD/TP PAC - Programmation n 3

INTEGRITE ET BD ACTIVES

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

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

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

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

A QUOI SERVENT LES BASES DE DONNÉES?

Circuits RL et RC. Chapitre Inductance

Bases de données cours 1

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

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

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

Atelier n 12 : Assistance à distance

OCL - Object Constraint Language

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

Chapitre 10 Arithmétique réelle

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

Optimisations des SGBDR. Étude de cas : MySQL

Module BDR Master d Informatique (SAR)

Génie Logiciel avec Ada. 4 février 2013

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

LE MODELE CONCEPTUEL DE DONNEES

Modèle Entité/Association

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Année Universitaire 2009/2010 Session 2 de Printemps

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

Base de Données et Langage SQL

Modélisation des données

Programmation Orientée Objet Java

Bases de Données Avancées

Entrepôt de données 1. Introduction

Transcription:

Introduction aux bases de données Cours 2. : Le modèle relationnel et les bases de données relationnelles Vincent Martin email : vincent.martin@univ-tln.fr page personnelle : http://lsis.univ-tln.fr/~martin/ Master 1. LLC Université du Sud Toulon - Var 16 novembre 2012 M1 - LLC 1/22

Le modèle relationnel Étudié dans les années 60-70 par Edgar Frank Codd Basé sur la théorie des ensembles Pose les fondations des SGBD Modèle largement dominant dans le monde des BD Simple et efficace Remarque On parle de BDR et de SGBDR Une base de données relationnelle est un ensemble de relations (tables) nommées M1 - LLC 2/22

Architecture ANSI-SPARC (Charles Bachman, 1965) Utilisateur Administrateur Developpeur Schéma externe Schéma externe Schéma externe Vue de la BD pour un groupe d utilisateurs. Vision simplifiée des données. Organisation des données (sur disque) et accès au support physique. Schéma conceptuel Schéma interne BD Description sémantique de l ensemble des données (schéma complet). Aucun détail d implantation. M1 - LLC 3/22

Les relations (tables) (1/2) Notation R(Attribut 1,Attribut 2,...,Attribut n ) Exemple : la relation ETUDIANT (vision relationnelle) exemple :ETUDIANT (ID, NOM, PRENOM, DATE NAISSANCE, PHOTO) Exemple : la relation ETUDIANT (vision tabulaire) ID NOM PRENOM DATE NAISSANCE PHOTO 1 Durand Pierre 14/10/1989 2 Dupond Marie 15/02/1988............... M1 - LLC 4/22

Les relations (tables) (2/2) Caractéristiques d une relation Chaque relation contient un ensemble d attributs (colonnes) Chaque attribut a un type (ID : numeric ; name : varchar ; photo : jpeg) Chaque tuple (n-uplet) a une valeur pour chaque attribut Schéma vs. Instance (donnée) Le schéma décrit la structure des relations Une instance est le contenu à un instant t de la BD M1 - LLC 5/22

Le schéma relationnel (1/2) Il représente la structure de la base de données et contient l ensemble des relations (mais sans les données). Le schéma relationnel décrit le nom de chaque relation les attributs de chaque relation le nom et le type des attributs Attention : le schéma ne contient pas les données Le schéma représente simplement la structure de la BD. On parle de meta-données. Le schéma permet de (i) de valider les données et (ii) d apporter des informations sémantiques à celles-ci. M1 - LLC 6/22

Le schéma relationnel (2/2) Exemple de schéma relationnel ETUDIANT (ID, NOM, PRENOM, DATE NAISSANCE, PHOTO, #FILIERE) FILIERE (CODE, CAPACITE) Attention Le schéma se définit à l avance! i.e. : on ne peut pas ajouter des données (par exemple des étudiants) avant d avoir défini le schéma. Le schéma se réfléchit indépendamment de toute considération d implantation. On parle de conception et de nombreuses méthodes ont été développées pour garantir un schéma relationnel correct (cours 4.) M1 - LLC 7/22

Les attributs (colonnes) Définition Un attribut est un identificateur nommé décrivant une information stockée dans la base de données Exercice : quels sont les attributs de la relation ETUDIANT? ID NOM PRENOM DATE NAISSANCE PHOTO 1 Durand Pierre 14/10/1989 2 Dupond Marie 15/02/1988............... M1 - LLC 8/22

Les types Définition Un type de donnée définit l ensemble des valeurs que peut prendre une donnée Quelques données et leur type donnée type BD description nom varchar(50) mot, éventuellement composé âge integer chiffre (entier, i.e. -1, 0, 1, 2, 3,... ) distance (en m) float nombre (réel, i.e. -5.76, 1.323, 8.231,... ) photo blob des 0 et des 1 http://dev.mysql.com/doc/refman/5.0/fr/column-types.html On peut maintenant typer les attributs de la relation ETUDIANT : ETUDIANT (ID : integer, NOM : varchar(50), PRENOM : varchar(50), DATE NAISSANCE : date, PHOTO : blob) M1 - LLC 9/22

Les domaines Définition a a. Source : http://docs.postgresqlfr.org/8.4/sql-createdomain.html Un domaine est essentiellement un type de données avec des contraintes optionnelles (restrictions sur l ensemble de valeurs autorisées). L utilisateur qui définit un domaine devient son propriétaire. Exemples Le genre : {Homme, Femme} Les PCS : {Employés, Ouvriers, Cadres,...} Domaines prédéfinis L ensemble des booléens {TRUE, FALSE} L ensemble des chaînes de caractères (texte),... un type forme un domaine M1 - LLC 10/22

Les tuples (enregistrements) Définition Un tuple ou n uplet ou un enregistrement est une liste de valeurs ordonnées. Concrètement, c est une ligne dans une table Exemple de tuple {123, Durand, Pierre, 14/10/1989, } (à regarder avec la relation ETUDIANT) Remarques Chaque entrée du tuple prend une valeur pour chaque attribut de la relation Cette entrée doit être du type défini dans le schéma On ne peut pas mettre un nombre là où du texte est attendu (c est l intérêt du schéma) M1 - LLC 11/22

Une valeur spéciale : NULL Que faire lorsqu une valeur d un tuple n est pas définie? Par exemple lorsqu un étudiant n a pas de photo? on utilise la valeur spéciale NULL NULL peut s utiliser comme valeur pour n importe quel type à partir du moment où elle est autorisée dans le schéma Exemple {Jean, Denis, 19/11/1986, NULL} indique que cet étudiant n a pas de photo définie M1 - LLC 12/22

Les contraintes d intégrité Définition Une contrainte d intégrité (structurelle) définit la règle que doivent respecter les tuples d une relation. Les contraintes garantissent la cohérence des données. Les contraintes se définissent au niveau du schéma Gérées par le SGBD Lorsqu une contrainte est définie, le SGBD garantit son respect. Si la contrainte est violée, le système refusera l opération Exemples Contrainte d unicité : garantit l unicité d une valeur d un tuple parmi l ensemble des tuples d une même relation Contrainte de taille : garantit la taille d une valeur d un attribut. Exemple : NOM : varchar(50) le nombre de caractères d un nom ne peut dépasser 50 M1 - LLC 13/22

Les clés Définition Une clé permet de caractériser un tuple dans son intégralité. Sa valeur est unique pour l ensemble des tuples d une même relation Notation ETUDIANT (ID : integer,...) ou ETUDIANT (ID* : integer,...) Intérêt Chaque enregistrement doit avoir un identifiant permettant de le retrouver facilement et d en accélérer les manipulations. Il convient donc de choisir quelle sera la clé (qui peut éventuellement être composée). Attention Une clé n est pas un type. Autrement dit, elle peut s appliquer à un entier, une chaine de caractères etc. M1 - LLC 14/22

Les clés primaires Exercice Selon-vous, pour la relation ETUDIANT : Le prénom peut-il être une clé? L adresse email peut-elle être une clé? La composition nom-prénom peut-elle être une clé? Clé primaire Lorsque plusieurs clés sont possibles (clés candidates), la clé retenue pour identifier un tuple est appellée clé primaire. M1 - LLC 15/22

Plusieurs tables & références entre les tables Problème Nous avons représenté des étudiants. Nous souhaitons maintenant représenter des filières (L1, L2, L3, M1, M2) en admettant qu un étudiant puisse appartenir à une et une seule filière. Une filière a un nom et une capacité. Solutions Ajouter dans la relation ETUDIANT ces deux informations Ajouter dans la relation FILIERE les informations concernant les etudiants qui la suivent Créer la relation FILIERE et référencer dans la relation ETUDIANT la relation FILIERE. Chaque étudiant pourra a ainsi être associé à une filière. a. Mais pas obligatoirement, dans ce cas on utilisera... la valeur NULL M1 - LLC 16/22

Les clés étrangères (1/2) Définition Une clé étrangère est une contrainte qui garantit l intégrité référentielle entre deux tables. Une clé étrangère d une table est primaire (ou au moins unique) d une autre. Exemple ETUDIANT ID NOM PRENOM NAISSANCE PHOTO #FILIERE 1 Durand Pierre 14/10/1989 M2 2 Dupond Marie 15/02/1988 M1 FILIERE CODE CAPACITE L1 300 L2 200 L3 150 M1 100 M2 50 M1 - LLC 17/22

Les clés étrangères (2/2) Notation ETUDIANT (ID, NOM, PRENOM, DATE NAISSANCE, PHOTO, #FILIERE) Remarque Contrainte référentielle : si la valeur change d un côté, elle change de l autre automatiquement Une table peut avoir plusieurs clés étrangères (ex. : un étudiant peut être dans une filière, être affilié à une sécu... ) M1 - LLC 18/22

En pratique M1 - LLC 19/22

Comment choisir les relations? Règle 1 : partir du monde réel Représenter les objets du monde réel et les classer par groupe. Pour chaque type d objet, identifier les attributs Règle 2 : cohérence des données Une fois les types d objets identifiés, écrire les relations et valider que chaque attribut soit une caractéristique unique de ces objets. Dans le cas contraire, il faut certainement créer deux relations Ex. : Une filière n est pas une caractéristique propre d un étudiant 2 relations Règle 3 : non duplication Pour des raisons de performance et de cohérence (mise à jour, suppression), une même donnée ne doit pas être dupliquée. Pour résoudre ce problème, on peut référencer les données en utilisant des clés étrangères. M1 - LLC 20/22

M1 - LLC 21/22

Ce qu il faut retenir Éléments du modèle relationnel : relations, attributs, type, tuple Une BDR a un schéma et les données respectent ce schéma Toute relation doit avoir une clé primaire Les contraintes permettent de garantir la cohérence des données (consistance, sémantique,... ) Ne pas dupliquer de données, préférer plusieurs relations et des références entre celles-ci (clés étrangères) M1 - LLC 22/22