Skip to content

Introduction Symfony

Architechure de SGBD

LDD : Langauge de définition des Données (CREATE, ALTER, DROP) LMD : Language de manipulation de Données (SELECT, INSERT, UPDATE, DELETE) LCT : transaction (BEGIN, COMMIT, ROLLBACK) LCD : controle (GRANT, REVOKE)

Métabase

Il ya une la méta-base qui contient toutes les informations sur les bases de données, c'est celle utilisé par l'admin, alors que l'utilisateur parle lui à la base de données précise directement.

  • Schéma = descripton du types de donnés contenue dans les BD
  • Métabase = schéma organiser sous forme d'une BD relationnel
  • Le contenu de la méta-base est manipuler par le LDD.

LDD : Langauge de définition des données

graph TD
Schéma
Tables
Vues
Contraites
Colonnes
Clés
Domaines

Tables --> Schéma
Vues --> Schéma
Contraites --> Schéma
Colonnes --> Tables
Clés --> Tables
Domaines --> Tables

Création d'une relation

Créer une relation :

CREATE TABLE etudiant (descripton);

La description est la liste des attributs et des contraintes sur la relation

Défintion d'un attribut :

nom_attribut TYPE [ NULL | NOT NULL ]
id      CHAR(3) NOT NULL,
nom     VARCHAR(50) NOT NULL,
adresse VARCHAR(150) NULL

Exemple

CREATE TABLE etudiant {
    id      CHAR(3) NOT NULL,
    nom     VARCHAR(50) NOT NULL,
    adresse VARCHAR(150) NULL
    PRIMARY KEY (id)
}

Clé primaire

CONSTRAINT cleEtudiant PRIMARY KEY (id)

ou

PRIMARY KEY (id)

Clé étrangère

CONSTRAINT fkEtudiant FOREIGN KEY (id_etudiant) REFERENCES etudiant (id),

ou

FOREIGN KEY (id_etudiant) REFERENCES etudiant (id),

Validité d'un attribut

CREATE TABLE ... {
    id      CHAR(3) NOT NULL,
    note DECILAM (3, 1) CHECK (note BETWEEN 0 AND 20)
}

On rajoute le check après la définition de l'attribut

Création de Domaine

CReATE DOMAIN nom_domaine (type de données)
    [ DEFAULT (valeur par défaut)] (contraintre de domaine)

Exemple

CREATE DOMAIN num-etape (INTEGER CHECK (VALUE BETWEEN 1 AND 5))

Mise à jour d'une relation

ALTER tAble NOM_RELATION .. ;
ALTER TABLE suite ADD COLUMN semestre INTEGER
ALTER TABLE nom ADD COLUMN TYPE VARCHAR(50)

Vue

Mécanisme assurant :

  • L'indépendance logique
  • Description des données manipulées par une application \(\ne\) description logique des relations

  • La confidentialité

Création de Vues

CREATE VIEW nom_vue (liste d'attributs) AS (spécification)
CREATE VIEW etudiantAge (id, nom, prénom, age) AS (spécification)
CREATE VIEW clientVIP(numéro, nom, ville, adresse, cumulAnnee)
    AS SELECT n_client, nomCli, adrCli, totCli, FROM client
    WHERE totCli > 1000;

Supression d'une vue

DROP VIEW (nom de la vlue)

Ajout d'un tuple

INSERT INTO nom_table VALUES (valeurs);
INSERT INTO etudiant VALUES('001', ...)

Suppression d'un tuple

DELETE FROM nom_table WHERE condition ;
DELETE FROM etudiant WHERE sexe = 'M' ;

Mise à jour d'un tuple

UPDATE nom_table SET nouvelle_valeur WHERE condition;
UPDATE etudiant SET nom = 'GALLON' WHERE id = '001';
UPDATE suit SET note = 17.5
    WHERE id IS IN SELECT ( ...)