Programme Introduction aux BD et aux SGBD Le modèle relationnel

Slides:



Advertisements
Présentations similaires
Le Nom L’adjectif Le verbe Objectif: Orthogram
Advertisements

ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
LES NOMBRES PREMIERS ET COMPOSÉS
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Bases de Données Avancées: Bases de Données Relationnelles
Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Licence pro MPCQ : Cours
Distance inter-locuteur
Matière/Sources: Daniel Bardou, Julie Dugdale &
Les numéros
Le Modèle Relationnel (Chapitre 4)
Le Modèle Logique de Données
Algèbre relationnelle
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
Optimisation de Requêtes
LE MODELE RELATIONNEL INVENTE PAR T. CODD (IBM SAN-JOSE)

Programme Introduction aux BD et aux SGBD Le modèle relationnel
1 7 Langues niveaux débutant à avancé. 2 Allemand.
Les fonctions.
ORTH 1 CE2 Je sais écrire sans erreur les pluriels des noms se terminant par s, x, z.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
-17 Anticipations économiques en Europe Septembre 2013 Indicateur > +20 Indicateur 0 a +20 Indicateur 0 a -20 Indicateur < -20 Union européenne total:
Développement d’applications web
Interagir avec un objet mixte Propriétés physiques et numériques Céline Coutrix, Laurence Nigay Équipe Ingénierie de lInteraction Homme-Machine (IIHM)
Contrôles d'accès aux données
Eléments d ’algèbre relationnelle
Algèbre relationnelle
B.Shishedjiev - Modèle relationnel
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
LANGAGES LIES AU MODELE RELATIONNEL
Les bases de données Cours assuré par: Mlle Smii imen
Chap 4 Les bases de données et le modèle relationnel
Titre : Implémentation des éléments finis sous Matlab
Le point le plus près Montage préparé par : André Ross
LES NOMBRES PREMIERS ET COMPOSÉS
VOC 1 CE2 Je sais utiliser des mots de la vie quotidienne.
MODELE RELATIONNEL concept mathématique de relation
1 INETOP
RACINES CARREES Définition Développer avec la distributivité Produit 1
Staf 2x Cours de bases de données
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Algèbre Relationnelle
1.1 LES VECTEURS GÉOMÉTRIQUES
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Inventé par T. Codd (IBM Recherche)
Titre : Implémentation des éléments finis en Matlab
Cours de Management des Systèmes d’Information
1 INETOP
Initiation aux bases de données et à la programmation événementielle
Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Cours de Management des Systèmes dInformation
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Bases de données   J-L Hainaut Partie 1 - Comprendre les bases de données Partie 2 - Utiliser les bases de données Partie 3 - Développer une base.
CALENDRIER-PLAYBOY 2020.
Les Chiffres Prêts?
Partie II: Temps et évolution Energie et mouvements des particules
Sélection de colonnes (la projection)
Le modèle relationnel Plan 1. Concepts descriptifs
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Bases de données – Cours 2
Transcription de la présentation:

Programme Introduction aux BD et aux SGBD Le modèle relationnel Le langage de requête SQL La conception d’une BD relationnelle Protection des informations Perspectives des BD

Le modèle relationnel Inventé par E. F. Codd Laboratoire de recherche IBM à San José Publication ACM 1970 "A Relational Model of Data for Large Shared Data Banks"

Les concepts descriptifs Notion de domaine Produit cartésien Relation Attribut Exemples de relations Clé Schéma de relation Clé étrangère Métabase Résumé des notions

Notion de domaine Définition Exemples Ensemble de valeurs Entier, réel, chaîne de caractères, booléen Salaire = 4000...100000 Couleur = {bleu, blanc, rouge} Point = [X: entier, Y: entier] Triangle = [P1, P2, P3: Point] Polygone = {Point}

Produit cartésien Définition Notation Le produit cartésien de D1, ...., Dn est l'ensemble des n-uplets (Tuples) <V1, ...., Vn> tel que Vi  Di. Notation D1 X ....X Dn

Produit cartésien (suite) Exemple D1 = {Cadre, Ouvrier, Directeur} D2 = {5000, 15000, 30000}

Relation Définition Exemple sous-ensemble du produit cartésien d'une liste de domaines caractérisée par un nom. Exemple D1 = Fonction D2 = Salaire

Relation (suite) Plus simplement, une relation est un tableau à deux dimensions. Une ligne est un n-uplet (tuple). On associe un nom à chaque colonne afin de la repérer indépendamment de l'ordre.

Attribut Définition Exemple nom donné à une colonne d'une relation prend ses valeurs dans un domaine Exemple Fonction

Exemples de relations

Clé Définition Exemple Contrainte d'intégrité Une clé est un groupe d'attributs minimum qui détermine un n-uplet unique dans une relation (à tout instant). Exemple Clé de salaire_moyen ? Clé de départements ? Contrainte d'intégrité Toute relation doit posséder une clé renseignée (sans valeur inconnue).

Schéma de relation Définition Exemple Le schéma d'une relation décrit: son nom la liste des attributs qu'elle comporte et des domaines associés la liste des attributs composant la clé (la clé est soulignée) Exemple Départements(Nom: texte, Région: texte, Directeur: texte, Nb_employés: entier)

Schéma de relation (suite) Intention Un schéma de relation: intention de la relation table: extension Le schéma d'une BD relationnelle: ensemble des schémas des relations

Clé étrangère Définition Rôle Une clé étrangère est un groupe d'attributs qui apparaît comme clé dans une autre relation R1(A1, A2, .... , Ap, Ap+1, ...., An) R2(B1, B2, ......, Bn) Rôle Les clés étrangères définissent des contraintes d'intégrités référentielles entre relations

Mises à jour et clés étrangères Insertion: la valeur des attributs doit exister dans la relation référencée. Insertion de (R&D4, 2222) ? Suppression dans la relation référencée, les n-uplets référençant doivent disparaître. Suppression de l'employé 5678 Les clés étrangères définissent les liens entités-associations.

Clé étrangère Exemples Département(No_départ, Libellé, Région) Employé(No_emp, Nom, Prénom, Adresse) Travaille_dans(No_dept, No_emp, Date_embauche) Clés étrangères: No_dept dans Travaille_dans référence No_départ dans Département; No_emp dans Travaille_dans référence No_emp dans Employé.

Métabase Définition Principe base de données contenant l'ensemble des schémas et des règles de correspondances associées à une base de données Principe Une base décrivant les autres bases, c'est-à-dire: les relations + les attributs + les domaines + les clés ..... Notion de dictionnaire de données Base particulière, système, gérée par l'administrateur de BD

Résumé des notions

Les opérateurs de manipulation Tout résultat d'une opération est une relation; celui-ci peut donc être réutilisé en entrée d'un nouvel opérateur. Les opérateurs peuvent être classifiés en : opérateurs ensemblistes / opérateurs relationnels opérateurs unaires / opérateurs binaires opérateurs de base / opérateurs dérivés Base: union, différence, restriction, projection, produit cartésien dérivés: intersection, jointure, division

Union But Contraintes Permet de fusionner deux relations Binaire Même schéma

Union (suite) Exemple

Union (suite) Notation Notation textuelle: T = R S Notation graphique: R S  T

Différence But Contraintes Conserver les tuples d'une relation ne figurant pas dans une autre Contraintes Binaire Même schéma Non commutatif

Différence (suite) Exemple

Différence (suite) Notation Notation textuelle: T = R - S Notation graphique: R S  T

Restriction But Contraintes Permet de "sélectionner" des tuples La restriction réduit la taille de la relation verticalement Contraintes Unaire Spécifier une condition

Restriction (suite) Exemple Restriction telle que salaire  15000 Restriction telle que Nom > 'Le Blanc'

Restriction (suite) Notation Notation textuelle: T =  cond (R) Notation graphique: R Cond T

Projection But Contraintes Permet de "sélectionner" des attributs La projection réduit la taille de la relation horizontalement Contraintes Unaire Spécifier une liste d'attributs

Projection (suite) Exemple Projection sur Nom Projection sur No_emp Projection sur Nom Projection sur No_emp et salaire

Projection (suite) Notation Notation textuelle: T =  liste d'attributs (R) Notation graphique: R Attributs T

Produit cartésien But Contraintes Ensemble de tous les tuples obtenus par concaténation de chaque tuple de R avec chaque tuple de S Relation X Relation Relation Contraintes Binaire Schéma du résultat: R(a1, a2, ...., an), S(b1, b2, ..., bp) T = R X S T(a1, a2, ...., an, b1, b2, ..., bp) Card (R X S) = Card (R) * Card (S)

Produit cartésien (suite) Exemple

Produit cartésien (suite) Notation Notation textuelle: T = R X S Notation graphique: R S X T

Intersection But Contraintes Permet d’obtenir l’ensemble des tuples appartenant à deux relations Contraintes Binaire Même schéma

Intersection (suite) Exemple

Intersection (suite) Notation Dérivation Notation textuelle: T = R S Notation graphique: R S  T Dérivation T = R - (R - S) T = S - (S - R)

Jointure But Contraintes Permet d’établir le lien sémantique entre les relations Contraintes Binaire Schéma du résultat: R(a1, a2, ...., an) S(b1, b2, ..., bp) T = R X S  T(a1, a2, ...., an, b1, b2, ..., bp)

Jointure (suite) Exemple

Jointure (suite) Notation Dérivation Notation textuelle: T = R >< S Critère de jointure Notation graphique : R S T Dérivation Produit cartésien + restriction

Division But Contraintes Répondre aux requêtes de type « tous les » Un tuple t est dans T si et seulement si pour tout tuple s de S, le tuple <t,s> est dans R Contraintes Binaire Schéma du résultat: R(a1, a2, ...., an, b1, b2, ..., bp) S(b1, b2, ..., bp) T = R ¸ S  T(a1, a2, ...., an)

Division (suite) Exemple Quels sont les employés qui travaillent sur tous les projets ?

Division (suite) Exemple Construire R: ensemble de toutes les informations dont on a besoin Construire S: ensemble correspondant à "tous les" (projets)

Division (suite) Notation Dérivation Notation textuelle: T = R S Notation graphique: R S  T Dérivation Projection + Produit cartésien + Différence. R  S = T1 - T2 avec: T1 =  schéma(R) - schéma(S) (R) T2 = schéma(R) - schéma(S) (( schéma(R) - schéma(S) (R) X (S) - R)

Bilan

Exemples de requêtes en algèbre relationnelle Base de données Employé(Nom_emp, Prénom_emp, No_ss, Date_naiss, Adresse_emp, Sexe, Salaire, No_chef, Nod) Département(Nom_d, No_dept, No_dir, Date_affect) Dept_local(Num_dept, Id_loc) Projet(Nom, No_proj, Local_proj, Nod) Travaille_sur(No_ss, No_projet, Nb_heures)

Requête 1 Nom et adresse de tous les employés travaillant pour le département "R&D" Solution textuelle DEPT_RECH <-  Nom_d="R&D" (Département) EMP_DE_RECH <- DEPT_RECH >< Employé No_dept = Nod RESULTAT <-  Nom_emp, Prénom_emp, Adresse_emp (EMP_DE_RECH)

Arbre algébrique (Requête 1)

Requête 2 Pour chaque projet situé à Paris, donner le numéro du projet, le numéro du département correspondant, et le nom, l'adresse et la date de naissance du directeur Solution textuelle PROJ_PARIS <-  Local_proj="Paris" (Projet) DEPT_DE_PROJ_PARIS <- PROJ_PARIS >< Département Nod= No_dept DIR_DE_PROJ_PARIS <- DEPT_DE_PROJ_PARIS >< Employé No_dir= No_ss RESULTAT <-  No_proj, No_dept, Nom_emp, Adresse_emp, Date_naiss (DIR_DE_PROJ_PARIS)

Arbre algébrique (Requête 2)

Requête 3 Donner le nom des employés qui travaillent sur tous les projets du departement Solution textuelle PROJ_DE_DEPT5 <-  No_proj ( Nod=5 (Projet)) EMP_PROJ <-  No_ss, No_projet(Travaille_sur) EMP_PROJETS_DEPT5 <- EMP_PROJ  PROJ_DE_DEPT5 RESULTAT <-  Nom_emp (EMP_PROJETS_DEPT5 >< Employé) No_ss = No_ss

Arbre algébrique (Requête 3)

Requête 4 Donner la liste des numéro de projets sur lesquels travaille "Karl", soit en tant que directeur soit en tant qu'exécutant Solution textuelle EMP_KARL <-  Prénom_emp="Karl" (Employé) TRAVAILLEUR_KARL  No_projet (EMP_KARL >< Travaille_sur) No_ss = No_ss DEPT_DIRIGES_KARL  No_dept (EMP_KARL >< Département) No_ss = No_dir PROJ_DIR_KARL <-  No_projet (DEPT_DIRIGES_KARL >< Projets) No_dept = No_d RESULTAT <- TRAVAILLEUR_KARL  PROJ_DIR_KARL

Arbre algébrique (Requête 4)

Requête 5 Donner le nom des employés qui ne travaillent sur aucun projet Solution textuelle TOUS_EMP <-  No_ss (Employé) EMP_SUR_PROJ <-  No_ss (Travaille_sur) EMP_SANS_PROJ <- TOUS_EMP - EMP_SUR_PROJ RESULTAT <-  Nom_emp (EMP_SANS_PROJ >< Employé) No_ss = No_ss

Arbre algébrique (Requête 5)

Requête 6 Donner le nom des directeurs qui travaillent au moins sur un projet Solution textuelle DIREC <-  No_dir (Département) TRAV <-  No_ss (Travaille_sur) RESULTAT <-  Nom_emp ((DIREC  TRAV) >< Employé) No_ss = No_ss

Arbre algébrique (Requête 6)

Optimisation de requêtes On peut répondre de diverses façon à une même requête Optimiser = choisir la meilleure façon

Exemple: Requête 1

Facteurs déterminants Ordre d'exécution des opérations algébriques Algorithme implantant les opérations algébriques Placement des données sur le disque Taille des relations intermédiaires

Restructuration Règles Propriétés Exécuter les opérateurs unaires le plus tôt possible (restriction, projection) => diminution de la taille des relations Exécuter les jointures le plus tard possible Propriétés Associativité des jointures Commutativité restriction / projection Commutativité restriction / jointure Commutativité projection / jointure