Вы находитесь на странице: 1из 2

Concept de base de données : Modélisation : processus de description Système de gestion de bases de Niveaux de description des données ANSI/SPARC

-Ensemble structuré d'information permettant de représenter l’information de données (SGBD) Niveau externe Vue utilisateur
-Logiciel système de gestion de bases manière compréhensible. Programme gérant : Niveau conceptuel Description des entités et des
de données: On utilise un modèle de données : modèle -La définition des données relations
utilisation de données simultanés par relationnel -La manipulation des données Niveau interne Description de la façon dont les
plusieurs utilisateurs et programmes -L’intégrité des données données sont stockées
-La sécurité des données
Méthode d’analyse -La concurrence d’accès
Modele relationnel : MERISE : Méthode d'Etude et de Réalisation
-Formaliser une réflexion. -La résistance aux pannes
Principes de l'algèbre relationnelle Informatique pour les Systèmes d'Entreprise
-Garder une trace -L'indépendance physique
-Indépendance de la structure de la base de Concept : séparation des données et des traitements
compréhensible de la réflexion -L’indépendance logique
données avec sa mise en œuvre physique Niveau conceptuel :
grâce à :
-Intégrité des données
Une démarche admise et utilisée -L’information vue de l’utilisateur : Quoi ? Regle
-Redondance des données MERISE : Modèle entités- de Gestion
par tous
Modèle relationnel : associations Niveau logique :
Des modèles admis et utilisés
-Relations + attributs + clés
par tous -Entités -L’organisation logique des données : Qui, ou,
Base de données relationnelle :
-Tendre vers une réalisation -Attributs (propriétés) quand ? Regle d’organisation
-Tables + colonnes + clés -Identifiants (clefs) Niveau physique :
adaptée aux besoins
Dictionnaire de Données -Fournir des programmes -Associations -L’organisation du stockage : Comment ?
Recense les infos utiles au système structurés et donc maintenables -Cardinalités
-Une clé candidate d’une relation est un ensemble
Libellé de la propriété/ Nom du champ/ minimal des attributs de la relation dont les valeurs
Type/Dimension/Contrainte Modèle Conceptuel des Données (MCD) identifient à coup sûr une occurrence.
-Recherche des propriétés à gérer -La clé primaire d’une relation est une de ses clés
MCD à MLD -Regroupement des propriétés par entité candidates.Maniere unique d’enregistrement dans table
Règle 1 : Toute entité est représentée par une relation. Chaque attribut de -Construction des entités -Une clé étrangère dans une relation est formée d’un
l'entité devient un attribut de la relation. L'identifiant est conservé en tant -Recherche des associations ou plusieurs attributs qui constituent une clé primaire
que clé de la relation. -Recherche des cardinalités dans une autre relation. Notion d’association
Règle 2 : Toute association qui associe plus de deux entités (ternaire et -Vérification et validation du modèle
au-delà) est représentée par une relation. Dépendance fonctionnelle (DF):
Règle 3 : Toute association binaire dont les cardinalités maximales sont n Normalisation pour éviter : On dit que X détermine Y ou que Y dépend
de chaque côté est une relation (relation dont les attributs sont les -La redondance de données fonctionnellement de X ssi, des valeurs identiques
attributs clefs des entités qu'elle relie ainsi que les éventuels attributs -La perte de données de X impliquent des valeurs identiques de Y.On le
propres à l’association). -Les incohérences note : X → Y
Règle 4 : Une association de type père - fils, cardinalité maximum à n -L'effondrement de performance Une DF élémentaire est une DF de la forme X →
d’un côté et à 1 de l’autre, n’est pas représentée par une relation. des traitements A où A est un attribut unique n’appartenant pas à
Une relation est en 1FN si, et seulement si, tout attribut Base de données: les objets SQL: Structured Query Langage X et où il n’existe pas X' inclus au sens strict dans
contient une valeur atomique (non multiple, non Une table enregistre des -LDD : langage de définition de X tel que X' → A
composée). enregistrements qui décrivent données : CREATE, DROP, Une DF X → A est une DF directe s’il n’existe
Une relation est en 2FN si, et seulement si elle est en 1FNune instance d’une entité ALTER aucun attribut B tel que l’on puisse avoir X → B et
et si toutes les dépendances fonctionnelles entre la clé et Les vues sont des résultats -LMD : langage de manipulation B→A
les autres attributs sont élémentaires. d’exploration de données que des données (CRUDE Transaction :ensemble ordonné d'opérations modifiant des
Une relation est en 3FN si, et seulement si elle est en 2FNl’on fait apparaître comme enregistrement) données(LMD) qu'un SGBD effectuera complètement ou
et si toutes les dépendances fonctionnelles entre la clé et une table. SELECT, UPDATE, INSERT, pas du tout. (insert, update, delete)
les autres attributs sont directes. Un index est une table DELETE Propriété ACID :
Une relation est en BCNF (Forme normale de Boyce- d’encodage qui optimise -LCD : langage de contrôle de Atomicité : une transaction doit soit être complètement
Codd) si, et seulement si elle est en 3FN et si les seules l’accès aux données données validée ou annulée.
dépendances fonctionnelles élémentaires sont celles dansUn objet User représente un GRANT, REVOKE Cohérence :transaction ne peut pas laisser la base de
lesquelles une clé détermine un attribut (et non l’inverse).utilisateur des données. -LCT : langage de contrôle de données dans un état incohérent.
transactions Isolation : transaction ne peut voir aucune autre transaction
COMMIT, SAVEPOINT, en cours d'exécution.
ROLLBACK Durabilité : après que le client a été informé du succès de
la transaction, les résultats de celle-ci ne disparaîtront pas.

CREATE TABLE enseignant(


id NUMBER CONSTRAINT pk_enseignant PRIMARY KEY,
nom VARCHAR2(30),
nbPlaces NUMBER CHECK (nbPlaces > 0));
CREATE TABLE cours(

UPDATE UPDATE
id NUMBER CONSTRAINT pk_cours PRIMARY KEY,
nom VARCHAR2(30),
idEnseignant CONSTRAINT fk_cours1 REFERENCES enseignant(id) ;
DROP TABLE personne ;
ALTER TABLE table1 ADD (col1 type1, col2 type2, …);

MLD INSERT INTO employe VALUES('DERAY','ODILE',NULL);


Enseignant(id, nom, prénom) CREATE TABLE etudiant (...,
Etudiant(id, nom, prénom) classe CHAR(4) DEFAULT 'ING1');
Salle(id, nbPlaces) INSERT INTO etudiant VALUES('DUPONT','EMILE',DEFAULT);
Matière(id, intitulé) UPDATE personne SET date_naissance = DATE '1900-01-01’WHERE
Cours(id, nom, #idEnseignant,#idMatière, date_naissance IS NULL;
#idSalle) DELETE FROM personne WHERE date_naissance IS NULL;
Inscription(#idEtudiant, #idCours, évaluation)
Projection Restriction Tri Fonction Agrégat Jointure

R3=R1UR2
SELECT nom, prenom FROM etudiant
UNION
SELECT nom, prenom FROM professeur
Exemple algèbre relationnelle :
R3=R1∩R2
SELECT nom, prenom FROM etudiant
RENOMMAGE (algèbre relationnelle): INTERSECT
SELECT nom, prenom FROM professeur;

R3 = R1 x R2
SELECT * FROM table1, table2;

Arbre relationnel :
Jointure avect Pivot Jointure Interne Jointure Naturelle Jointure Externe :
LEFT/RIGHT/FULL
SELECT DISTINCT c.nom SELECT DISTINCT c.nom SELECT DISTINCT nom SELECT * FROM tab1
FROM cinema c, projection p, FROM cinema c FROM cinema NATURAL LEFT OUTER JOIN
film f, jouer j, individu i JOIN projection p ON JOIN projection tab2 ON tab1.col11
WHERE c.num_cine = c.num_cine = p.num_cine NATURAL JOIN film = tab2.col21;
p.num_cine JOIN film f ON p.num_film = NATURAL JOIN jouer La jointure externe permet de
AND p.num_film = f.num_film f.num_film NATURAL JOIN individu recuperer les lignes des
AND f.num_film = j.num_film JOIN jouer j ON f.num_film = WHERE nom = 'Travolta'; tables correspondant au
AND j.num_ind = i.num_ind j.num_film critere de jointure, mais aussi
AND i.nom = 'Travolta'; JOIN individu i ON j.num_ind celles pour lesquelles il
= i.num_ind n'existe pas de
WHERE i.nom = 'Travolta'; correspondances

Where/Having
SELECT num_cine, COUNT(*) Les vues Index
FROM Projection Une vue est une table virtuelle de la base de Permettent une recherche rapide
WHERE pdate< DATE '2000-01-01' données dont le contenu est défini par une requête lorsque le critère n’est pas une clef primaire.
GROUP BY num_cine; SELECT. Indépendants de la table. Sont mis à jour
-Les données de la vue ne sont pas stockées automatiquement.
SELECT num_cine, COUNT(*) physiquement. Peuvent concerner plusieurs colonnes (index
FROM Projection -Seule la requête décrivant la vue est stockée. composé).
GROUP BY num_cine Avantage :Sécurité/Simplicité des requêtes Ils ralentissent les mises à jours !
HAVING COUNT(*) >= 4; Simplicité structurelle/ Isolation des modifications
Intégrité des données On met en place des indexes sur :
Les transactions Inconvénients : perf. : traduction de requêtes les colonnes utilisées comme critère de jointure,
GRANT <privilege: select, insert, update, delete, longues/ mises à jours que sur vues simples les colonnes servant de critères de sélection, sur
alter, all> ON <table> TO <utilisateur> Contrôle d’intégrité : WITH CHECK OPTION une table de gros volume.
REVOKE <privilege> ON <table> FROM <utilisateur2>
Jalons: SAVEPOINT nom_point; CREATE INDEX nom_index ON nom_table
ROLLBACK TO SAVEPOINT nom_point; (nom_col [ASC/DESC], nom_col.. ) ;
DROP INDEX nom_index ;
SELECT * FROM film film_lars JOIN individu i
ON film_lars.num_ind = i.num_ind Index non utilisé dans ces cas :
AND nom = 'von Trier' AND prenom = 'Lars‘ SELECT * FROM client ;
WHERE NOT EXISTS ( SELECT * FROM client WHERE nom IS NULL ;
SELECT * FROM individu i JOIN jouer j SELECT * FROM client WHERE ca*10 > 10000;
ON i.num_ind = j.num_ind
WHERE i.num_ind = acteur_tous_lars.num_ind
AND num_film = film_lars.num_film));

Вам также может понравиться