La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

21/05/2014© Robert Godin. Tous droits réservés.1 3Introduction au modèle relationnel 3.1Concepts de base n Domaine : ensemble de valeurs n Relation : ensemble.

Présentations similaires


Présentation au sujet: "21/05/2014© Robert Godin. Tous droits réservés.1 3Introduction au modèle relationnel 3.1Concepts de base n Domaine : ensemble de valeurs n Relation : ensemble."— Transcription de la présentation:

1 21/05/2014© Robert Godin. Tous droits réservés.1 3Introduction au modèle relationnel 3.1Concepts de base n Domaine : ensemble de valeurs n Relation : ensemble de n-uplets (tuples) n SQL : multi-ensemble

2 21/05/2014© Robert Godin. Tous droits réservés.2 suite n Deux facettes du concept de table – Schéma d'une table (table schema) n définition de son type (intention) n ex: Client(noClient, nomClient, noTéléphone) – Instance ou extension d'une table n état de la table n ~ variable qui contient un ensemble de lignes n modifications d état n Schéma relationnel – ensemble de schémas de tables

3 Instance de BD VentesPleinDeFoin

4 21/05/2014© Robert Godin. Tous droits réservés.4 3.2Contraintes d'intégrité du modèle relationnel 3.2.1Contrainte de domaine et de valeur non nulle n T(A 1 : D 1, A 2 : D 2, …, A n : D n ) – D i : domaine de A i n Valeur nulle – Comportement particulier – Valeur inconnue – Valeur non applicable –...

5 21/05/2014© Robert Godin. Tous droits réservés.5 3.2.2Clé primaire et contrainte d'entité n Clé unique (unique key) – ou superclé (superkey ) – identifiant n Clé candidate (candidate key) – clé unique minimale n Clé primaire (primary key) – sert de mécanisme de référence aux lignes de la table n Contrainte d'entité (entity constraint) – clé primaire – non nulle

6 21/05/2014© Robert Godin. Tous droits réservés.6 3.2.3Contrainte d'intégrité référentielle n Clé étrangère non nulle clé primaire

7 21/05/2014© Robert Godin. Tous droits réservés.7 Représentation UML

8 21/05/2014© Robert Godin. Tous droits réservés.8 Nom clé étrangère nom clé primaire n Étiquette de la relation de dépendance

9 21/05/2014© Robert Godin. Tous droits réservés.9 3.3 Conception logique : traduction du modèle conceptuel de données en schéma conceptuel relationnel n Output : schéma relationnel (niveau conceptuel) – tables – colonnes n types, domaines,... – contraintes d intégrité n clés primaires, étrangères,... n Input à la conception – modèle conceptuel des données n MDA – Platform Specific Model (PSM)

10 21/05/2014© Robert Godin. Tous droits réservés.10 3.3.1 Première ébauche du schéma : une table par classe

11 21/05/2014© Robert Godin. Tous droits réservés.11 3.3.2 Traduction des attributs n Attribut de la classe -> colonne de la table

12 21/05/2014© Robert Godin. Tous droits réservés.12 3.3.2.1 TRADUCTION DES CONTRAINTES D'IDENTIFICATION (UNIQUE) n Contrainte UNIQUE -> clé candidate relationnelle – clé primaire ?

13 21/05/2014© Robert Godin. Tous droits réservés.13 3.3.2.2 TRADUCTION DES TYPES DE DONNÉES

14 21/05/2014© Robert Godin. Tous droits réservés.14 Types de données déclarés n Domaine pas toujours supporté par le dialecte SQL

15 21/05/2014© Robert Godin. Tous droits réservés.15 3.3.2.3 TYPES ÉNUMÉRÉS n Petit domaine invariant – création d un domaine VARCHAR + CHECK

16 21/05/2014© Robert Godin. Tous droits réservés.16 Création d une table n Gros domaine ou extensible – création d une table à part – utilisé comme liste de valeurs (LOV Designer) – introduction d une clé primaire artificielle ?

17 21/05/2014© Robert Godin. Tous droits réservés.17 3.3.2.4 TYPES COMPLEXES n 1. Représentation explicite des attributs du type complexe

18 21/05/2014© Robert Godin. Tous droits réservés.18 2. Création d'une nouvelle table n N.B. Pas de partage de la même adresse !

19 21/05/2014© Robert Godin. Tous droits réservés.19 3.3.2.5 QUALIFICATEUR n Colonne dans la table du rôle opposé – voir 3.3.3.2

20 21/05/2014© Robert Godin. Tous droits réservés.20 3.3.2.6 DISCRIMINANT n Redondant ?

21 21/05/2014© Robert Godin. Tous droits réservés.21 3.3.2.7 ATTRIBUT MULTIVALUÉ n Table à part – clé étrangère + colonne pour l attribut n Petit tableau de taille fixe – n colonnes (valeurs nulles) n Encodage – invisible au SGBD n Oracle8 – VARRAY, NESTED TABLE

22 21/05/2014© Robert Godin. Tous droits réservés.22 3.3.2.8 COMPRESSION DES VALEURS DES ATTRIBUTS DE GRANDE TAILLE n Supporté par le SGBD ? n Multimédia

23 21/05/2014© Robert Godin. Tous droits réservés.23 3.3.2.9 CRÉATION DE TABLES SUPPLÉMENTAIRES POUR LES ATTRIBUTS DE CLASSE

24 21/05/2014© Robert Godin. Tous droits réservés.24 3.3.3 Réalisation de l'identité par les clés primaires

25 21/05/2014© Robert Godin. Tous droits réservés.25 3.3.3.1 CRÉATION D'UNE CLÉ PRIMAIRE ARTIFICIELLE n De manière systématique ? n Mécanisme de SEQUENCE Oracle

26 21/05/2014© Robert Godin. Tous droits réservés.26 3.3.3.2 UTILISATION D'UN IDENTIFIANT NATUREL COMME CLÉ PRIMAIRE n 1. Utilisation d'un identifiant naturel (UNIQUE) n Si identifiant naturel trop lourd – introduire clé primaire artificielle

27 21/05/2014© Robert Godin. Tous droits réservés.27 2. Utilisation du qualificateur

28 21/05/2014© Robert Godin. Tous droits réservés.28 3.3.3.3 IDENTIFIANT NATUREL POUR UNE SPÉCIALISATION n Éviter de changer de clé primaire dans le contexte d une hiérarchie de généralisation n Si la table du parent est omise – considérer identifiant naturel de la spécialisation

29 21/05/2014© Robert Godin. Tous droits réservés.29 3.3.4 Traduction des associations

30 21/05/2014© Robert Godin. Tous droits réservés.30 3.3.4.1 CAS GÉNÉRAL : TRADUCTION D'UNE ASSOCIATION PAR UNE TABLE

31 21/05/2014© Robert Godin. Tous droits réservés.31 3.3.4.2 TRADUCTION D'UN RÔLE ORDONNÉ POUR UNE ASSOCIATION

32 21/05/2014© Robert Godin. Tous droits réservés.32 3.3.4.3 CLASSE ASSOCIATIVE

33 21/05/2014© Robert Godin. Tous droits réservés.33 3.3.4.4 CAS UN À PLUSIEURS n 1. Traduction par une table ?

34 21/05/2014© Robert Godin. Tous droits réservés.34 2. Traduction par l'ajout d'une clé étrangère à privilégier n Navigation plus performante

35 21/05/2014© Robert Godin. Tous droits réservés.35 Renommer la clé étrangère au besoin

36 21/05/2014© Robert Godin. Tous droits réservés.36 3.3.4.5 CAS UN À UN n 1. Une clé étrangère (du côté obligatoire)

37 21/05/2014© Robert Godin. Tous droits réservés.37 2. Une nouvelle table

38 21/05/2014© Robert Godin. Tous droits réservés.38 3. Fusion n Cas 1-1 obligatoire

39 21/05/2014© Robert Godin. Tous droits réservés.39 3.3.4.6 CAS DE L'AGRÉGATION n Comme une association normale

40 21/05/2014© Robert Godin. Tous droits réservés.40 Composition n Cas 1-1 – ~ attribut complexe n Mode SQL CASCADE n Oracle8 – VARRAY, NESTED TABLE

41 21/05/2014© Robert Godin. Tous droits réservés.41 3.3.5 Traduction des relations de généralisation/spécialisation n Délégation n Fusion n Concaténation

42 21/05/2014© Robert Godin. Tous droits réservés.42 3.3.5.1 DÉLÉGATION

43 21/05/2014© Robert Godin. Tous droits réservés.43 Changement de clé primaire ? n Extraire le téléphone résidence d'un Membre possédant l'idUtilisateur 12345

44 21/05/2014© Robert Godin. Tous droits réservés.44 Traduction de la contrainte {disjointe, complète}

45 21/05/2014© Robert Godin. Tous droits réservés.45 3.3.5.1.1 Cas de la multi-classification et de l'héritage multiple 1. Créer une table de jointure

46 21/05/2014© Robert Godin. Tous droits réservés.46 Alternatives n 2. Identité commune sans table de jointure n 3. Identité séparée et redondance de données

47 21/05/2014© Robert Godin. Tous droits réservés.47 3.3.5.2 ANALOGIE AVEC UNE ASSOCIATION UN À UN n Clé étrangère – dans l enfant – dans le parent ??? n Approche Arc de Designer n Fusion – vers le parent (approche par fusion) – vers l enfant (approche par concaténation) n Nouvelle table ???

48 21/05/2014© Robert Godin. Tous droits réservés.48 3.3.5.3 FUSION

49 21/05/2014© Robert Godin. Tous droits réservés.49 3.3.5.4 CONCATÉNATION Conserver une table pour le parent ?

50 21/05/2014© Robert Godin. Tous droits réservés.50 Cas d une référence au parent

51 21/05/2014© Robert Godin. Tous droits réservés.51 3.3.5.5 TRADUCTION DES GÉNÉRALISATIONS POUR SYLERAT

52 21/05/2014© Robert Godin. Tous droits réservés.52 3.3.6 Traduction des autres contraintes

53 21/05/2014© Robert Godin. Tous droits réservés.53 3.4Algèbre relationnelle n Opérations de manipulation de données n Entrée – une table : opération unaire – deux tables : opération binaire n Sortie – une table – permet la composition n Origine de SQL (« SQUARE de IBM, San Jose »)

54 21/05/2014© Robert Godin. Tous droits réservés.54 3.4.1Sélection ( ) prixUnitaire 30 (Article)

55 21/05/2014© Robert Godin. Tous droits réservés.55 3.4.2Projection ( ) noClient, dateCommande (Commande)

56 21/05/2014© Robert Godin. Tous droits réservés.56 3.4.3Expressions complexes noClient, dateCommande ( dateCommande > 05/07/2000 Commande) dateCommande > 05/07/2000 Commande

57 21/05/2014© Robert Godin. Tous droits réservés.57 3.4.4Produit cartésien ( ) Client Commande...

58 21/05/2014© Robert Godin. Tous droits réservés.58 Exemple. Produire les informations au sujet des Clients et de leurs Commandes Client Commande clé primaire = clé étrangère Client.noClient = Commande.noClient (Client Commande)

59 21/05/2014© Robert Godin. Tous droits réservés.59 Exemple. Produire les informations au sujet des Clients et de leurs Commandes Client.noClient, nomClient, noTéléphone, noCommande, dateCommande (…)) Colonne redondante

60 21/05/2014© Robert Godin. Tous droits réservés.60 3.4.5Jointure naturelle ( ) Client Commande Colonnes communes : colonnes de jointure ou clé de jointure Schéma : union des colonnes

61 21/05/2014© Robert Godin. Tous droits réservés.61 Sélectionner les nomClient qui ont commandé au moins un plant d'herbe à puce

62 21/05/2014© Robert Godin. Tous droits réservés.62 Sélectionner les nomClient qui ont commandé au moins un plant d'herbe à puce nomClient ( description = Herbe à puce (Client Commande LigneCommande Article))

63 21/05/2014© Robert Godin. Tous droits réservés.63 Formulations équivalentes n nomClient ( description = Herbe à puce (Client Commande LigneCommande Article)) n nomClient ( description = Herbe à puce (((Client Commande) LigneCommande) Article)) n nomClient ( description = Herbe à puce (((Client LigneCommande) Commande) Article)) n …

64 21/05/2014© Robert Godin. Tous droits réservés.64 Quelques règles d équivalence Eclatement d'une sélection conjonctive (SE) – e1 ET e2 (T) = e1 ( e2 (T)) Commutativité de la sélection (SC) – e1 ( e2 (T)) = e2 ( e1 (T)) Elimination des projections en cascades (PE) – liste1 ( liste2 (T)) = liste1 (T) Commutativité de la jointure (JC) – T 1 T 2 = T 1 T 2 Associativité de la jointure (JA) – T 1 (T 2 T 3 ) = (T 1 T 2 ) T 3 n Voir évaluation des requêtes

65 21/05/2014© Robert Godin. Tous droits réservés.65 Représentation sous forme d arbre de l expression algébrique n nomClient ( description = Herbe à puce (((Client Commande) LigneCommande) Article))

66 21/05/2014© Robert Godin. Tous droits réservés.66 Cas d une clé de jointure composée LigneCommande DétailLivraison

67 21/05/2014© Robert Godin. Tous droits réservés.67 3.4.6Opération renommer ( ) n Quels sont les Clients qui ont le même numéro de téléphone? Client2 (Client) Client.noClient, Client2.noClient, ( Client.noTéléphone = Client2.noTéléphone (Client Client2 (Client)))

68 21/05/2014© Robert Godin. Tous droits réservés.68 Renommer les colonnes n Quels sont les Clients qui ont le même numéro de téléphone? Client2(noClient2, nomClient2, noTéléphone) (Client) noClient, noClient2 (Client Client2(noClient2, nomClient2, noTéléphone) (Client))

69 21/05/2014© Robert Godin. Tous droits réservés.69 3.4.7Jointure- Client noClient = numéroClient Commande altérée = noClient = numéroClient (Client Commande altérée)

70 21/05/2014© Robert Godin. Tous droits réservés.70 Cherchez les LigneCommandes qui ont été livrées en une seule livraison LigneCommande.noCommande, LigneCommande.noArtilce, quantité, noLivraison, quantitéLivrée (LigneCommande LigneCommande.noCommande = DétailLivraison.noCommande ET LigneCommande.noArticle = DétailLivraison.noArticle ET quantité = quantitéLivrée DétailLivraison)

71 21/05/2014© Robert Godin. Tous droits réservés.71 3.4.8Jointure externe n Inclure les « célibataires » La jointure externe à gauche T 1 = T 2 (célibataires de T 1 ) La jointure externe à droite T 1 = T 2 La jointure externe pleine T 1 = = T 2

72 21/05/2014© Robert Godin. Tous droits réservés.72 Produire les informations au sujet des Clients et de leurs Commandes incluant les informations sur les Clients qui nont pas placé de Commande Client = Commande

73 21/05/2014© Robert Godin. Tous droits réservés.73 3.4.9Semi-jointure ( ) Client Commande

74 21/05/2014© Robert Godin. Tous droits réservés.74 3.4.10Opérations ensemblistes (,, -) n Schémas compatibles

75 21/05/2014© Robert Godin. Tous droits réservés.75 Produire les noms et numéros de téléphone des Employés qui sont aussi des Clients de la pépinière ( nomPersonne, noTéléphone ( Client (noClient, nomPersonne, noTéléphone) (Client))) ( nomPersonne, noTéléphone ( Employé (codeEmployé, nomPersonne, noTéléphone) (Employé))) équivalent à si compatibles

76 21/05/2014© Robert Godin. Tous droits réservés.76 3.4.11Division ( ) n A B – plus grande table C qui est telle que B C A – ~ inverse du produit cartésien n T 1 (X) T 2 (Y) = – X-Y (T 1 ) - (( X-Y (T 1 ) T 2 ) - T 1 )

77 21/05/2014© Robert Godin. Tous droits réservés.77 Quelles sont les noCommande des Commandes qui incluent tous les Articles dont le prixUnitaire est $10.99 noArticle ( prixUnitaire = 10.99 (Article)) noCommande, noArticle (LigneCommande) noCommande, noArticle (LigneCommande) noArticle ( prixUnitaire = 10.99 (Article))

78 21/05/2014© Robert Godin. Tous droits réservés.78 3.4.12Ensemble minimal d'opérations de l'algèbre relationnelle n Sélection ( ) n Projection ( ) n Produit cartésien ( ) n Union ( ) n Différence (-) n Renommage ( )

79 21/05/2014© Robert Godin. Tous droits réservés.79 3.4.13Extensions de l'algèbre relationnelle pour les bases de données n Fonctions sur colonnes – opérations arithmétiques (+, -, *, /,…) – manipulation de chaînes (concaténation, …) –... n Fonctions de groupe (ou d'agrégat) – e.g. total, moyenne, écart-type, min, max,… n Récursivité – e.g. fermeture transitive


Télécharger ppt "21/05/2014© Robert Godin. Tous droits réservés.1 3Introduction au modèle relationnel 3.1Concepts de base n Domaine : ensemble de valeurs n Relation : ensemble."

Présentations similaires


Annonces Google