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 ( ...)