Database Flashcards
CIA + S (securité)
- Confidentialité
- Intégrité
- Accessibilité
+ Sensibilisation
Objectif de DICP ? (Sécurité)
Disponibilité Integrité Confidentialité Preuve(Trace)
Donnée :
Valeur brute. Élément qui peut prendre des valeurs et qui renseigne
Information :
Donnée ayant subi un traitement.
Données Élémentaires
Données brutes, basiques, dont on ne peut inventer la valeur Exemple : Prenom, DateNaissance
Données Calculées
Données dont la valeur est obtenue par calcul en utilisant des données : élémentaires, et/ou paramétriques et/ou calculées Si donnée calculée : on doit donner la formule
Donnée Numérique :
La donnée prend une valeur de nombre (1234, 556, 3.12…)
Donnée Alphanumérique
La donnée prend une valeur de chaîne de caractères : (“Hello World”, “Jean-Pierre” ou “8, rue du Château”…)
1234 sans guillemets :
valeur de type Numérique
“1234” avec guillemets :
valeur Alphanumérique
Dictionnaire Épuré :
Débarrassé de toute donnée superflue, non-pertinente. On enlève donc les données paramètres et/ou calculées (on garde les donnés élémentaires).
données polysèmes
Les données qui portent le même nom mais des sens différents (ex : Date/date/date)
Contrainte Format des données
n° client, nom du client en maj
Contrainte Domaine
M. ou Mme, M ou F, Mode de règlement, groupe sanguin, <0,
DF Directes
une DF simple de type A→ B est directe s’il n’y a pas de 3° donnée C telle que A → C et C → B
la DF n’est pas directe si
S’il existe un autre chemin possible que A → C (comme A → B et B → C), et même s’il n’est pas emprunté
DFPGC
Dépendances fonctionnelles dont la source est composée d’au moins 2 données donc du type : A,B → C
une DFPGC n’est pas élémentaire si
Si on n’a pas besoin de toutes les données qu’on a dans la source pour trouver le but
Tableau des DF
Col 1 : Pour 1 val de a j’ai combien de val de b ? Col 2 : Si + d’un élément à g. : J’ai besoin des 2 ? Col 3 : il existe/ il faut : - Un intermédiaire entre a et b ? - Un autre chemin pour a = c ou b = c ?
Que trouve t-on dan l’Ensemble S ?
Les différents identifiants des entités du MCD
Pour construire l’Ensemble S on prendra dans la colonne “source” :
- Toutes les données qui sont sources de DF - Toutes les données qui seraient isolées Si AB → C mettre A et/ou B dans S (Si pas déjà dans S car elles sont sources de données)
ENSEMBLE S On prendra Dans la colonne BUT :
Toutes les données qui sont but de PLUSIEURS sources
Une association est une CIF si :
Elle relie 2 entités et AU MOINS 1 de ses cardinalités est 1,1 ou 0,1
Une Cif est porteuse de données ?
JAMAIS
Une CIM est porteuse de données ?
Pas Obligatoirement
Toute DF du type A → B (simple) pour laquelle A et B sont dans S donne :
une CIF entre l’entité dont A est l’identifiant et l’entité dont B est l’identifiant. Et une cardinalité 1,1 ou 0,1 se trouve du côté de la 1ere entité.
SI (a → b ET S{a,b}) alors
On a une CIF entre Entité de a et Entité de b et 1.1 ou 0.1 du coté de a
Quelle catégorie d’association obtient-on si on a une cardinalité de 1.1 ou 0.1 sur au moins une des branches ?
Une CIF
Dans quelle catégorie d’association la cardinalité max est N sur toutes les branches ?
Une CIM
Comment savoir si on a une CIM ?
Si la cardinalité max est N sur toutes les branches de l’asssociation.
Par quoi se caractérise une CIM ?
l’absence de 1 en cardinalité maximale (sur aucune « patte » de la relation). Par déduction, on ne peut avoir que 0,n ou 1,n en cardinalité.
Comment construire une CIM ?
à partir des identifiants des entités qui lui sont liées
CIF multiples
Un lien entre 3 entités donne obligatoirement une CIFM
La CIFM Est Elle Porteuse de données ?
Pas obligatoirement
Toutes DFPGC du type A,B → C ou la source n’est composée que de 2 données où le but C est dans S, donne ?
une CIF multiple entre les entités dont A et B sont les identifiants et l’entité dont C est l’identifiant
SI (a,b → c ET S{c}) alors
CIFM entre Entité de Ida, Entité de b et Entité de c
Associations reflexives (definition)
Une association est réflexive si elle relie une entité et elle-même.
Associations reflexives (cardinalités)
Tout sauf n sur toutes les branches
PASSAGE AU MCD
Trouver les CIF évidentes. Ne permet pas de relier toutes les entités Trouver les CIM Trouver les CIFM
Que manipule t-on dans un MCD ?
Des relations (tables)
De quoi se compose une table ?
De champs comportant des données (ou attributs)
Comment appelle t-on une ligne dans une table ?
Enregistrement ou tuple
Type entier ?
Int, integer
Type réel ?
Float, double
Type chaine de caractère ?
Char(nb), Varchar(nb)
Que permet d’identifier une Clé Primaire ?
un enregistrement unique de la table
Qu’est-ce qu’une clé étrangère ?
Donnée qui est clé primaire dans une autre table
A quoi sert une clé étrangère ?
A faire la liaison entre différentes tables
Clé primaire (syntaxe)
soulignée et en premier
Clef etrangère (syntaxe)
avec # et à la fin
Que faut-il pour considérer qu’une table est définie dans le MLD ?
Quand elle a -Un nom -Une clé primaire
Combien de PK min/max dans une table ?
1 min, 1 max
Combien de FK min/max dans une table ?
0 min, n max
si une clé est composée de 2 données elle est PK ou FK ?
PK
Que faire si une donnée est dans l’ensemble S mais que le but de la donnée n’est pas dans S ?
Le but de la donnée va dans le MCD sous son identifiant
Quel type de clé peut être simple ou composée ?
Clé primaire
MCD vers MLD
Comment convertir une entité du MCD ?
MLD vers MCD
Comment traiter une table avec un nom et une clé primaire ?
MCD vers MLD
Comment convertir une entité du MCD ?
Chaque entité devient une table avec un nom et une clé primaire.
Quelle est la premiere chose a faire quand on passe du MCD au MLD ?
Décomposer les données
(exemple = adresses, dates)
Passage MCD –> MLD
Quand la cim donne t-elle une table ?
Toujours
Passage MCD –> MLD
De quoi se compose la clé Primaire de la CIM ?
De TOUS LES identifiants des entités concernées par la CIM
MCD –> MLD
CIM : Comment composer les FK ?
Les FK sont les identifiants d’entités qui composent la PK
MCD –> MLD
CIM Reflexive : Comment composer la PK ?
2 fois la même entité (renommer la 2eme)
MCD –> MLD
Comment traiter la donnée portée par la CIM ?
A la suite de la PK, à la fin
MCD –> MLD
Une CIF donne t-elle une table ?
NON, jamais
MCD –> MLD
Une CIM Donne t-elle une table ?
Oui, Toujours
MCD –> MLD
Une entité donne t-elle une table ?
Oui, Toujours
MCD –> MLD
Cas de la CIF
Quelle table récupère l’identifiant de la table liée en tant que clé étrangère ?
La table issue du côté 1.1
MCD –> MLD
Cas de la CIF
Que récupère la table issue du côté 1.1 ?
l’identifiant de la table liée en tant que clé étrangère.
MCD –> MLD
CIFM
Quel cas donne une nouvelle table ?
Cas de A, B (1.1) → C
MCD –> MLD
CIFM
Quel cas ne donne pas de nouvelle table ?
Cas de A, B (1.1) → C + CIM entre A et B
MCD –> MLD
CIFM
Cas de A, B (1.1) → C
Comment composer la PK ?
Sa clé primaire sera composée des 2 identifiants des entités côté 1.1 (IDA et IDB)
MCD –> MLD
CIFM
Cas de A, B (1.1) → C
Comment composer la FK ?
Les PK seront FK puisque PK de A et B
MCD –> MLD
CIFM
Cas de A, B (1.1) → C
Que récupère la table en tant que clé étrangère en plus des autres FK ?
l’identifiant du côté 1,n ou 0,n
MCD –> MLD
CIFM
Cas de A, B (1.1) → C
Que devient l’identifiant du côté 1,n ou 0,n ?
FK de la table en plus des autres FK
MCD –> MLD
CIFM
Cas de A, B (1.1) → C + CIM entre A et B
Que devient l’identifiant du côté 1,n ou 0,n ?
Il est récupéré par la table issue de la CIM entre A et B en tant que FK
MCD –> MLD
CIFM
Cas de A, B (1.1) → C + CIM entre A et B
Que récupère La table issue de la CIM entre A et B ?
l’identifiant de l’entité côté 1,n ou 0,n en tant que clé étrangère.
MCD –> MLD
CIFM
Cas de A, B (1.1) → C + CIM entre A et B
Comment traite t-on la CIF ?
On crée une table pour la CIM et on l’utilise pour traiter la CIF
MLD –> MCD
Une table avec une PK simple donne t-elle une entité ?
Oui, Touours
MLD –> MCD
Comment repérer une CIF ?
La table a une FK qui ne fait pas partie de la PK
MLD –> MCD
Qu’indique une FK qui ne fait pas partie de la PK dans une table ?
Une CIF
MLD –> MCD
FK qui ne fait pas partie de la PK dans une table :
Quels éléments sont concernés par la CIF ?
la table dont elle est issue (et où elle est PK)
et la table dans laquelle elle est FK
MLD –> MCD
CIF : De quel côté se situe la cardinalité 1.1 ?
Près de la table dans laquelle elle est FK
MLD –> MCD
CIF : quel cardinalité se situe du côté de la table dans laquelle la clé est FK ?
la 1.1
MLD –> MCD
Que donne une table dont la clé primaire est composée d’au moins 2 données et dont chacune d’elle est aussi clé étrangère ?
Ex. : Table(#Numclt, #NumCmd)
Une CIM ?
MLD –> MCD
Comment reconnaitre une CIM ?
Toute table dont la clé primaire est composée d’au moins 2 données et dont chacune d’elle est aussi clé étrangère
SQL Contrainte de domaine
NomDonnee CHECK (Donnée Operateur Valeur),
UPDATE nomtable
SET NomDuChamp = Valeur1;
Clause a préciser si on ne veut pas updater tous les enregistrements
SQL mettre a jour les données
SQL mettre a jour les données
UPDATE nomtable
SET NomDuChamp = Valeur1;
Clause a préciser si on ne veut pas updater tous les enregistrements
SQL inserer valeurs
INSERT INTO nomtable (champ1, champ2)
VALUES Valeur1, Valeur2 ;
Champs pas a préciser si on les remplit tous
SQL ajouter une contrainte
ALTER TABLE nomtable
ADD CONSTRAINT NomChamp Contrainte;
ALTER TABLE nomtable
ADD CONSTRAINT NomChamp Contrainte;
SQL ajouter une contrainte
ALTER TABLE nomtable
DROP COLUMN nomChamp;
SQL Supprimer une colonne
SQL Supprimer une colonne
ALTER TABLE nomtable
DROP COLUMN nomChamp;
SQL Rajouter une colonne
ALTER TABLE nomtable
ADD COLUMN NomChamp(type,contrainte);
ALTER TABLE nomtable
ADD COLUMN NomChamp(type,contrainte);
SQL Rajouter une colonne
NomDonnee CHECK (Donnée Operateur Valeur),
SQL Contrainte de domaine
(NomDonnee1 DEFAULT Valeur),
SQL valeur par défaut
SQL valeur par défaut
(NomDonnee1 DEFAULT Valeur),
SQL declarer PK
Primary key (NomDonnee1,NomDonnee2),
Primary key (NomDonnee1,NomDonnee2),
SQL declarer PK
FOREIGN KEY(DonneeRef) REFERENCES TableRef(DonneeRef)
);
SQL declarer FK
SQL declarer FK
FOREIGN KEY(DonneeRef) REFERENCES TableRef(DonneeRef)
);
SQL Creer Table
CREATE TABLE NomTable(
NomChamp1, type, contrainte1,
);
SQL Creer Table
CREATE TABLE NomTable(
NomChamp1, type, contrainte1>,<contrainte2></contrainte2>
<p>);</p>
</contrainte2>
Min(NomChamp) :
Declarer alias pour champ SQL :
NomChamp ALIAS
Declarer alias pour champ SQL :
Declarer alias pour champ SQL :
NomChamp ALIAS
Enregistrement max (n’importe qel type de champ)
Min(NomChamp) :
Min(NomChamp) :
Enregistrement max (n’importe qel type de champ)
Enregistrement max (n’importe qel type de champ)
Max(NomChamp) :
Max(NomChamp) :
Enregistrement max (n’importe qel type de champ)
Avg(NomChamp)
Moyenne (type de champs = numérique)
additionne les enregistrements (type de champs = numérique)
Sum(NomChamp)
Sum(NomChamp)
additionne les enregistrements (type de champs = numérique)
Compter le nb d’enregistrements
Count(NomChamp)
Count(NomChamp)
Compter le nb d’enregistrements
Liste des champs ascendant/Descendant
Order by ASC/DESC
Order by ASC/DESC
Liste des champs ascendant/Descendant
HAVING
condition sur les champs calculés dans le group by
condition sur les champs calculés dans le group by
HAVING
liste de TOUTES les données du select (SAUF champs calculés)
GROUP BY
GROUP BY
liste de TOUTES les données du select (SAUF champs calculés)
ALIAS.NomChamp
Utiliser un alias
Utiliser un alias
ALIAS.NomChamp
Que met on dans le GroupBY ?
Tous les champs du select SAUF les champs calculés
Sur quel champ met on de preference les operateurs Sum, count… en SQL ?
Sur les champs qui sont clé primaire
Quelle association n’est jamais porteuse de donnée ?
La CIF