SGBD - Larribe

Embed Size (px)

DESCRIPTION

sgbd

Citation preview

  • Systmes de Gestion des bases de donnes (SGBD) Sbastien Larribe

    Objectifs des SGBD

    Structurer les donnes :

    - permet dobtenir lintgration

    - lindpendance logique des donnes (indpendantes des traitements affrents)

    Apprendre modliser le monde rel sous la forme dun MCD (Modle Conceptuel de

    Donnes) :

    - Apprendre lire des MCD

    - Apprendre faire des MCD

    - Situer le MCD dans la dmarche globale de conception de BD (Base de Donnes)

    Piloter, Organiser et conduire une dmarche de projet en tant que MCD

    La modlisation comme processus de conception

    - Au dpart il y a un problme ou un besoin dans le monde rel

    - La voie de rsolution du problme passe par une bonne reprsentation du

    problme (Boileau)

    - Il faut donc souvent savoir reprsenter un problme, et savoir changer de systme

    de reprsentation en fonction de la nature du problme.

    - Modliser revient donc laborer une vue partielle plus ou moins abstraite, dune

    ralit existante en vue daugmenter la comprhension quon a de la ralit

    associe.

    - Le modle est correct sil permet de rpondre aux questions quon se pose, de

    rsoudre des problmes identifis.

  • - Le modle est oprationnel sil peut tre excut par une machine

    - Un modle est une reprsentation explicite par un utilisateur de sa comprhension

    dune situation, de lide quil se fait dune situation

    - Cette reprsentation peut sexprimer sous divers langages (mathmatiques,

    artistiques, symboliques )

    La modlisation est le passage dune smantique du monde rel une smantique formelle reprsentant le monde rel. (Formel veut dire par exemple que 1+1=2, sans aucun sens derrire, que ce soit une tarte + une tarte ou un tudiant + un tudiant, cest pareil)

    Le choix dune mthode de modlisation

    La mthode est :

    - Une faon de voir (une philosophie)

    - Une dmarche (une technique)

    - Des outils (un formalisme voire des normes de reprsentation ou dexpression du

    problme et des solutions)

    o MERISE, UML

    SI de Gestion

    Stockage important dinformations, traitements de consultation, mise jour des

    informations, gestion de clientle, accs distant

    SI de Calcul scientifique

    Simulations, imagerie, stockage des informations ncessaires aux calculs

    SI Temps rel

    Ractivit forte du SI : aide au pilotage auto sur les avions, surveillance centrales nuclaires,

    info en temps rel

    3 Axes de modlisation

    STRUCTUREL : dcrit la structure du SI, aspect statique du SI (modlisation des donnes)

  • FONCTIONNEL : traitements oprs par le SI (modlisation des traitements (flots de

    donnes))

    COMPORTEMENTAL : dcrit lvolution du SI au cours du temps, dynamique de SI

    (modlisation du comportement (automates, rseaux de Ptri ..))

    Systme dinformation manuel expression des besoins modle conceptuel modle logique modle physique systme dinformation automatis

    Conception

    - Modle conceptuel de donnes (EA (Entit-Association), UML)

    - Modle logique de donnes (relationnel, objet, rseau, hirarchique)

    - Modle physique de donnes (Oracle, MySQL, Access)

    La modlisation comme rsultat du processus

    - LE point charnire entre utilisateurs (schmas externes) et les informaticiens (MLD)

    - Le MCD est formel

    Il sagit de construire une spcification non-ambige des besoins. Il sagit de lever toute ambigit du langage naturel

    - Il existe des outils pour traduire directement un MCD en MLD puis gnrer le code

    de cration de la base de donnes Mais pas doutils pour faire un MCD

    Le MCD manipule des types de donnes

  • Ensemble (abstrait) dobjets qui possdent des caractristiques similaires et manipulables

    par des oprations identiques

    - entiers, rels, boolens, voiture

    - [classe]

    - Elment effectif, rel, correspondant un type de donnes

    - 1, 2, 3.14116, ma_voiture

    - [occurrence, instance]

    Donc toutes les donnes

    Schma de BD

    - Etudiant (numEtu, nom, ville)

    - Module (numMod, titre, coeff)

    - Inscription (numEtu, numModule)

    Instance de BD

    - Etudiant (166, Dupont, Tours)

    - Etudiant (188, Durant, Orlans)

    - Module (1, SGBD, 7)

    - Inscription (166, 3)

    Le dictionnaire de donnes dun SGBD contient

    Les informations relatives aux schmas et aux droits de toutes les BD dun SGBD. Il prend la

    forme dune BD qui contient des donnes sur les BD. On gre ainsi les donnes des bases

    comme nimporte quelles autres donnes

    - P.CHEN ( The entity-Relationship Model - Towards a Unified View of Data , ACM

    Transactions on Database Systems, mars 1976, n1)

  • Le Modle Conceptuel de Donnes (MCD)

    Principales caractristiques

    - Une reprsentation graphique simple et naturelle.

    - Une puissance dexpression leve pour un nombre de symboles raisonnables.

    - Un outil de dialogue entre acteurs techniques ou non.

    - Une formalisation

    Une entit est un type dobjet du monde rel pourvu dune existence propre

    Une entit, abstraite ou concrte, se distingue des autres entits (Ex : Un client, une

    commande, un produit )

    Chaque entit a des proprits ou attributs qui la dcrivent

    Chaque attribut est associ un domaine de valeurs potentielles (Ex : numro dtudiant

    cod sur 1 ou 2 octets ?)

    Un attribut est lmentaire, il ne peut tre driv dautres attributs (Ex : ge VS

    date_de_naissance)

    Loccurrence dune entit est un lment particulier associ un lment du monde rel.

    Une occurrence a UNE valeur dans le domaine pour chacun des attributs de lentit (et la

    combinaison des valeurs est unique)

    - Un attribut est atomique (cest--dire quil na quune valeur pour un lment

    particulier. Ex : pour lentit *lve+ on prend llment Maurice, avec pour attribut

    [nom] et [prnom]. Eh bien les attributs [nom] et [prnom] ne peuvent contenir

    quune valeur chacun)

    - Un attribut cl (qui sera unique et qui permettra didentifier un lment, on lappelle

    par convention id )

    Une interaction perue dans le rel entre 2 ou plusieurs entits est modlise par une

    association

    Qualifie par des attributs

    Prend la forme doccurrences (Ex: Passation dun commande par un client)

  • Le degr (dimension) dune association caractris le nombre dentits y participant

    La cardinalit maximale indique le nombre de fois maximum quune occurrence de lentit

    participe aux occurrences de la relation (1 ou n)

    Type dune association

    1,1 --- 1,1 = 1,1

    1,1 --- 0,1 = 1,1

    1,1 --- 0,n = 1,n

    Le type est lassociation des cardinalits maximales. Indispensable au MLD (Modle Logique

    de Donnes)

    Exemple de la gestion dune DVD thque

    - Mise en place dun service de location dun DVD

    Il faut mettre au point une application informatique permettant :

    - de grer le stock de films

    - aux clients de faire des recherches de films louer

    Il faut identifier les utilisateurs et dcrire leurs besoins vis--vis du SI en langage naturel.

    Pour la construction dun MCD, on passe par plusieurs tapes :

    - Identifier des entits

    - Identifier des associations

    - Prciser les cardinalits

  • Ct Client :

    - Venir louer un film pour une priode dtermine

    - Pouvoir louer plusieurs films la fois

    - Pouvoir choisir un film sur plusieurs critres

    Ct Gestionnaire :

    - Ne louer des DVD qu des clients enregistrs

    - Suivre les locations (rappels)

    - Faire du prospect clients

    - Faire des nouvelles commandes (suggres par les clients)

    - Pouvoir louer un film simultanment plusieurs clients

    Des entits :

    - Acteurs

    - Films

    - Ralisateurs

    - Genres

    - Exemplaires de Films

    - Clients

    Des associations :

    - joue dans

    - mis en scne

    - est du

  • - copi en

    - emprunte

    Exemple du cabinet mdical :

    Un cabinet mdical regroupe plusieurs mdecins :

    - Un mdecin donne une consultation

    - Un mdecin ne prend quun patient la fois

    - Un patient assiste une consultation

    - Une consultation donne lieu ou non une prescription de mdicaments

    Identifier les utilisateurs et dcrire leurs besoins vis--vis du SI en langage naturel.

    Construction du MCD :

    - Identifier des entits

    - Identifier des associations

    - Prciser les cardinalits

    Un mdecin :

    - donne des consultations

    o une date fixe

    o un patient la fois

    - Prescrit des mdicaments

    o Imprativement via une ordonnance

    o Imprativement lissue dune consultation

  • Un patient :

    - Prend rendez-vous pour une consultation date fixe

    - Assiste une consultation unique la fois

    Les formes normales

    Dans une base de donnes relationnelle, une forme normale dsigne un type de relation

    particulier entre les entits.

    Le but essentiel de la normalisation est d'viter les anomalies transactionnelles pouvant

    dcouler d'une mauvaise modlisation des donnes et ainsi viter un certain nombre de

    problmes potentiels tels que les anomalies de lecture, les anomalies d'criture, la

    redondance des donnes et la contre-performance.

    Une relation de premire forme normale (NF1) est une relation dont tous les attributs :

    - contiennent une valeur atomique (les valeurs ne peuvent pas tre divises en

    plusieurs sous-valeurs dpendant galement individuellement de la cl primaire)

    - contiennent des valeurs non rptitives (le cas contraire consiste mettre une liste

    dans un seul attribut).

    - sont constants dans le temps (utiliser par exemple la date de naissance plutt que

    l'ge).

    Le non-respect des deux premires conditions de la NF1 rend la recherche parmi les donnes

    plus lente parce qu'il faut analyser le contenu des attributs. La troisime condition quant

    elle vite qu'on doive rgulirement mettre jour les donnes.

    Une relation de deuxime forme normale (NF2) est une relation dont tous les attributs :

    Respecte la deuxime forme normale, la relation respectant la premire forme normale et

    dont :

    - Tout attribut ne composant pas un identifiant ( id ) dpend d'un identifiant.

    Le non-respect de la NF2 entraine une redondance des donnes qui encombrent alors

    inutilement la mmoire et l'espace disque.

    Une relation de troisime forme normale (NF3) est une relation dont tous les attributs :

    Respecte la troisime forme normale, la relation respectant la seconde forme normale et

    dont :

    - Tout attribut ne composant pas un identifiant dpend directement d'un identifiant.

  • Le non-respect de la NF3 peut galement entrainer une redondance des donnes.

    Le Modle Logique de Donnes (MLD)

    Du ct du MLD, on va travailler en relationnel. Mais on pourrait aussi travailler en objet, le

    travail en relationnel est juste plus facile aprs un passage en MCD Entit Association.

    On va remplacer les entits et les associations par des tables reprsentant des relations.

    La premire chose quon va faire cest transformer les entits :

    - Les entits deviennent des relations ou tables

    - Convertir les attributs en champs

    - Typer les champs (Cette opration de typage de champs est trs importante car cela

    va permettre de stocker les donnes dans des botes adaptes et permettra

    aussi de raliser les bonnes oprations)

    Les associations deviennent des relations (= table) ou un attribut dans une table

    - Typer les associations (cardinalit maximum de chaque ct de lassociation)

    Le cas du (0, 0), cela signifie quun auteur nest pas forcment connect un ouvrage (dans le cas dun journaliste et dun article par ex.)

  • Le cas des associations de type (1-n)

    Lassociation va se transformer en un attribut dans une table.

    Exemple :

    Pour le MCD, on a :

    Et pour le MLD :

    Dans le MLD, num_auteur est la cl primaire de la table AUTEUR et NUM_AUTEUR est la cl

    trangre de la table LIVRE. Ces cls primaire et trangre traduisent lassociation ECRIRE

    dans le MLD. Ici au lieu de remettre toutes les infos de lauteur pour chaque livre, on lui

    attribue une cl trangre afin de crer une jointure entre les tables AUTEUR et LIVRE afin

    dviter la redondance.

    Le cas du zro (0, 1) et (0, n)

    Un ouvrage a t crit par 0 ou 1 auteur ?

    Un auteur na crit aucun ou plusieurs ouvrages ?

    Un ouvrage na t crit par aucun auteur : NULL autoris sur tbl_ouvrage.id_auteur (cest-

    -dire sur id_auteur dans la table OUVRAGE )

    ____AUTEUR____

    Num_auteur

    Nom

    Prnom

    ______LIVRE______

    Num_livre

    Titre

    Date

    ___ECRIRE___ 1, n 1,1

    1, n

    ______LIVRE______

    Num_livre

    Titre

    Date

    NUM_AUTEUR

    ____AUTEUR____

    Num_auteur

    Nom

    Prnom

  • On doit autoriser le NULL ou pas au niveau du MPD et non pas du MLD (cest donc

    linformaticien qui va sen occuper et pas nous). Cela permettra de ne pas perdre

    dinformation. (Comme un livre sans auteur ou un auteur sans livre par ex)

    Un auteur a crit 0 album :

    - Dans quel ordre se font les saisies ?

    - Post-traitement

    Le cas du (1, 1)

    Pas la peine de modliser le schma universel, puisque un auteur a crit un seul livre et un

    livre a t crit par un seul auteur. Donc pas besoin de crer 2 tables relies par un attribut,

    mais seulement une table, car il ny aura pas de redondance.

    Le cas (n, n)

    Pour ce cas, on cre une nouvelle table (dite associative) dans laquelle on met les cls de

    chacune des tables. Ce sont des cls primaires composes.

    Le cas du pas nimporte qui avec (0, n), (1, n) ou (n, n)

    Un ouvrage est crit par un auteur prsent dans la table des auteurs :

    - Mise en uvre dune intgrit rfrentielle

    Lintgrit rfrentielle signifie que si on a une cl trangre dans une table, elle renvoie

    forcment une cl primaire dans une autre table (ex de tout lheure avec LIVRE et

    AUTEUR)

    NB : Une option existe pour activer cette Intgrit Rfrentielle dans Publisher

    Une relation dite universelle, est la relation vue du ct utilisateur. Cest--dire, la BDD avec ses redondances et ses dfauts (ex : table auteurs et table albums, avec des albums en double par ex)

  • Le Modle Physique de Donnes (MPD)

    Cette tape consiste implmenter le modle dans le SGBD, c'est--dire le traduire dans un

    langage de dfinition de donnes.

    Le langage gnralement utilis pour ce type d'opration est le SQL.

    Mthode de ralisation du MPD

    1. Proposer un MCD en rapport avec les donnes fournies

    2. En dduire un MLD

    3. Mettre les donnes en compatibilit avec le MLD

    4. Importer les donnes dans un SGBDR (Systme de Gestion de Base de Donnes

    Relationnelle)

    5. Vrifier ou mettre en uvre les proprits envisages dans le MCD ou le MLD

    6. Mettre en uvre une IR (Intgrit Rfrentielle)

    7. Tester de nouvelles saisies

    8. Requtes

    Les Requtes

    Il y a trois grandes oprations dans lalgbre relationnel connatre absolument :

    - La Restriction

    - La Projection

    - La Jointure

    Restriction

    La restriction est une opration qui slectionne un ensemble de lignes (n-uplets) d'une

    relation, en fonction d'un critre de slection (prdicat ou expression logique de prdicats).

    Le rsultat d'une restriction est une relation de mme schma que la relation initiale.

    En SQL, les restrictions s'expriment l'aide de la clause WHERE suivie d'une condition

    logique exprime l'aide d'oprateurs logiques (AND, OR, NOT), de comparateurs de chane

    (IN, BETWEEN, LIKE), de comparateurs arithmtiques (=, !=, , >=, etc.)

  • Exemple :

    gens

    id nom prenom age

    1 DUPOND MICHEL 40

    2 MARTIN ROBERT 50

    3 DURAND MARCEL 35

    On a la table gens. On veut uniquement les entres (=lignes) des personnes ayant moins de

    45 ans. La commande sera : SELECT * FROM gens WHERE age

  • Et le rsultat sera :

    id nom prenom

    1 DUPOND MICHEL

    2 MARTIN ROBERT

    3 DURAND MARCEL

    Jointure

    Une jointure est un produit cartsien de deux tables. On appelle quijointure une jointure

    dont la qualification est une galit entre deux colonnes.

    En SQL, l'expression d'une jointure se fait en prcisant le nom des colonnes des tables sur

    lesquelles on fait la jointure, en dsignant les colonnes des diffrentes tables en crivant le

    nom de la table, suivie d'un point puis du nom de la colonne. La clause WHERE permet de

    prciser la qualification de la jointure.

    Exemple :

    gens

    id nom prenom age

    1 DUPOND MICHEL 40

    2 MARTIN ROBERT 50

    3 DURAND MARCEL 35

    nationalite

    nom pays

    DUPOND France

    MARTIN France

    DURAND Belgique

    On a la table gens et la table nationalite. On veut effectuer une jointure de telle sorte que

    lon ait les noms, prnoms et nationalits de la totalit des gens de notre BD. La commande

    sera alors :

    SELECT gens.nom, gens.prenom, nationalite.pays FROM gens, nationalite WHERE gens.nom =

    nationalite.nom ;

    Le rsultat sera alors :

    nom prenom pays

    DUPOND MICHEL France

    MARTIN ROBERT France

    DURAND MARCEL Belgique

  • On voit bien quon a effectu une jointure entre nos deux tables.

    Attention, il faut bien retenir quune requte ne stocke pas de donnes ! Elle ne sert qu les acheminer.

  • Le langage SQL (Structured Query Language) :

    Objectif

    Comprendre la structure du langage SQL pour tre un meilleur concepteur en envisageant

    les possibilits de requtes

    Ds quil y a une base de donnes, il y a du SQL.

    Le SQL est donc le langage unique dinteraction avec une base de donnes :

    - Utilisation des donnes avec les DML (Data Manipulation Language) Ct

    client

    - Administration avec le DDL (Data Definition Language) Ct administrateur

    - Contrle daccs aux donnes avec le LCD (Langage de contrle de donnes)

    Ct administrateur (autorisation en particulier)

    Voil quelques exemples de commandes dans les 3 diffrents registres de langage SQL :

    DML - Langage de manipulation des donnes (LMD) : SELECT, INSERT, UPDATE, DELETE

    LDD - Langage de dfinition des donnes : CREATE, ALTER, DROP, RENAME, TRUNCATE

    LCD - Langage de contrle des donnes (transactions) : COMMIT, ROLLBACK, SAVEPOINT,

    GRANT, REVOKE

    Le Langage de Manipulation des Donnes

    Les 4 objectifs du DML :

    - Lire le contenu des TABLES

    - Insrer des LIGNES dans les TABLES

    - Modifier des valeurs dans les TABLES

    - Supprimer des LIGNES dans les TABLES

  • Les 4 verbes du DML

    - SELECT pour lire

    - INSERT pour insrer

    - UPDATE pour modifier

    - DELETE pour supprimer

    Le langage SQL est un langage ensembliste et non-procdural.

    Ensembliste : Un ordre traite un ensemble dinformation. Ce langage se doit dtre

    ensembliste car si on commence excuter une commande SQL et que la procdure plante,

    il ne FAUT PAS que juste quelques donnes soient modifies (ex : Modification du prix des

    produits sur un site marchand et modification de la priode de vente si a plante, a ne

    modifie que certains prix ou autre et cest le bordel).

    Non-procdural : Dans un ordre, on dcrit ce que lon veut obtenir, pas comment cela doit

    tre fait.

    Syntaxe : SQL > UN_ORDRE PARAM1, PARAM2 ;

    Exemple :

    Dans cet exemple, lordre est SELECT FROM et les paramtres sont * (qui signifie

    tout ) et emp qui dsigne une table.

  • Dans quoi est stocke linformation

    - TABLE

    - LIGNE

    - COLONNE

    - TYPE

    MySQL est un systme de gestion de BDR, un serveur de BDR, open Source.

    Utilisation de MySQL

    Connexion au serveur

    - On dmarre le service mysql

    - On ouvre ensuite le shell, on change de disque (on passe de U:/ C:/) en tapant

    C :

    - On change de rpertoire avec la commande cd (pour change directory) et on

    indique ensuite le chemin du dossier.

    - On connecte ensuite mysql : mysql h localhost u user ( -h et -u

    signifiants respectivement host et user ).

    - On se connecte la base test : use test

    Il faut savoir que chaque colonne a un type (integer, boolean, text, ) dfinissant son domaine (partiellement) en comprhension

  • Toutes les jointures ne sont pas des qui-jointures

    - Permet de ramener les lignes correspondant aux critres de jointure, mme si elles

    nont pas de correspondant