Aller au contenu

Composantes d'une BD

Sur un serveur on peut retrouver plusieurs BD. Chaque BD est propre à un système.
Les BD sont divisées en tables. Les tables contiennent des informations sur une entité.
Les tables comportent des colonnes (aussi appelés attributs). Chaque colonne décrit un type de données (semblable aux attributs dans une classe).

Exemple de base de données : Cégep Victo

Table «etudiants» : nom, code, année d'admission, adresse, etc.

Table «enseignants» : nom, code employé, adresse, etc.

Table «cours» : sigle, nom, etc.

Table «programmes» : nom, code, etc.

Contenu d'une table

Les tables contiennent des enregistrements qui correspondent à une entrée avec des valeurs indiquées pour chaque colonne.

Table « etudiant »

Code Nom Annee admission
2345678 Steve Rogers 2019
3456789 Nathasha Romanov 2020

Les enregistrements peuvent aussi être appelés lignes ou tuples.

Notation Entité-relation

ERD (Entity relation diagram) est un langage permettant d'exprimer graphiquement la structure d'un programme ou d'une BD.

On représente les entités (tables pour une BD) par un rectangle dans lequel on inscrit en haut le nom de la table.

Tables en diagrammes ER

On remarque que les colonnes (en minuscules) sont écrites dans la boîte sous le nom.

erDiagram  
    p[etudiants] {
        _ code PK
        _ nom
        _ annee_admission
    }

    q[cours] {
        _ cours_id PK
        _ nom
        _ duree
    }

    r[programmes] {
        _ cours_id PK
        _ nom
        _ duree
    }

Trouver un enregistrement

Comment faire pour identifier un enregistrement pour qu'il soit unique?

Marquer une colonne pour forcer chaque enregistrement à avoir une valeur distincte.

Il est important que chaque table ait au moins une colonne unique afin de permettre facilement d'identifier les enregistrements.

Clé primaire

On indique qu'une colonne est la clé primaire avec la notation

code <pk>

À noter: on rassemble en haut les colonnes de clé primaire

erDiagram  
etudiants {
        NUMERIC(8) code PK
        VARCHAR(255) nom
        YEAR annee_admission
        DATETIME date_naissance
        VARCHAR(10) programme
     } 
cours {
        INTEGER cours_id PK
        NUMERIC(8) enseignant FK
        CHAR(11) sigle
        TINYINT duree "=60"
        VARCHAR(255) nom
    }

Identifier les clés candidates

Comment choisir la clé primaire?

On sélectionne parmi les clés candidates une colonne pour jouer le rôle de clé primaire.

Si aucune colonne ne satisfait les conditions, alors on ajoute une colonne identifiant (ou simplement (nom de la table)_id) qui sert de clé primaire.

La colonne id sera un nombre entier dont la valeur est auto-incrémentée entre chaque enregistrement.

--- Exercice 1.2.1 ---

En créant une base de données pour le Cégep, vous devez identifier une clé primaire dans la table suivante. Justifiez votre choix.

erDiagram  
    p[enseignants] {
        _ code_employe
        _ nom
        _ prenom
        _ num_assurance_sociale
        _ anciennete
    }

--- Exercice 1.2.2 ---

La compagnie de livraison intergalactique du PlanetExpress souhaite informatiser son service de livraison. Pour ce faire, elle a besoin d'une base de données contenant les informations sur ses vaisseaux de livraison (modèle, immatriculation, chargement, équipage requis) et sur les commandes (nom du destinataire, planète du destinataire, type de livraison , masse de la livraison et date de livraison).

Proposez un digramme ER pour cette BD et identifiez pour chaque table une clé primaire.