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

5 Introduction au modèle relationnel 5.1 Concepts de base

Présentations similaires


Présentation au sujet: "5 Introduction au modèle relationnel 5.1 Concepts de base"— Transcription de la présentation:

1 5 Introduction au modèle relationnel 5.1 Concepts de base
Domaine : ensemble de valeurs Relation : ensemble de tuples SQL : multi-ensemble 27/11/2018 © Robert Godin. Tous droits réservés.

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

3 Instance de BD VentesPleinDeFoin

4 © Robert Godin. Tous droits réservés.
5.2 Contraintes d'intégrité du modèle relationnel Contrainte de domaine et de valeur non nulle T(A1 : D1, A2 : D2, …, An : Dn) Di : domaine de Ai Valeur nulle Comportement particulier Valeur inconnue Valeur non applicable ... 27/11/2018 © Robert Godin. Tous droits réservés.

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

6 5.2.3 Contrainte d'intégrité référentielle
Clé étrangère non nulle  clé primaire 27/11/2018 © Robert Godin. Tous droits réservés.

7 © Robert Godin. Tous droits réservés.
Représentation UML 27/11/2018 © Robert Godin. Tous droits réservés.

8 Nom clé étrangère  nom clé primaire
Etiquette de la relation de dépendance 27/11/2018 © Robert Godin. Tous droits réservés.

9 5.3 Algèbre relationnelle
Opérations de manipulation de données Entrée une table : opération unaire deux tables : opération binaire Sortie une table permet la composition Origine de SQL (« SQUARE de IBM, San Jose ») 27/11/2018 © Robert Godin. Tous droits réservés.

10 © Robert Godin. Tous droits réservés.
5.3.1 Sélection ()  prixUnitaire < ET noArticle > 30 (Article) 27/11/2018 © Robert Godin. Tous droits réservés.

11 © Robert Godin. Tous droits réservés.
5.3.2 Projection ()  noClient, dateCommande (Commande) 27/11/2018 © Robert Godin. Tous droits réservés.

12 5.3.3 Expressions complexes
 dateCommande > 05/07/2000 Commande  noClient, dateCommande ( dateCommande > 05/07/2000 Commande) 27/11/2018 © Robert Godin. Tous droits réservés.

13 © Robert Godin. Tous droits réservés.
5.3.4 Produit cartésien () ... Client  Commande 27/11/2018 © Robert Godin. Tous droits réservés.

14 © Robert Godin. Tous droits réservés.
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) 27/11/2018 © Robert Godin. Tous droits réservés.

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

16 5.3.5 Jointure naturelle ()
Colonnes communes : colonnes de jointure ou clé de jointure Schéma : union des colonnes Client  Commande 27/11/2018 © Robert Godin. Tous droits réservés.

17 © Robert Godin. Tous droits réservés.
Sélectionner les nomClient qui ont commandé au moins un plant d'herbe à puce 27/11/2018 © Robert Godin. Tous droits réservés.

18 © Robert Godin. Tous droits réservés.
Sélectionner les nomClient qui ont commandé au moins un plant d'herbe à puce  nomClient ( description = “Herbe à puce ” (Client  Commande  LigneCommande  Article)) 27/11/2018 © Robert Godin. Tous droits réservés.

19 Formulations équivalentes
 nomClient ( description = “Herbe à puce ” (Client  Commande  LigneCommande  Article))  nomClient ( description = “Herbe à puce ” (((Client  Commande)  LigneCommande)  Article))  nomClient ( description = “Herbe à puce ” (((Client  LigneCommande)  Commande)  Article)) 27/11/2018 © Robert Godin. Tous droits réservés.

20 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) T1  T2 = T1  T2 Associativité de la jointure (JA) T1  (T2  T3) = (T1  T2)  T3 Voir évaluation des requêtes 27/11/2018 © Robert Godin. Tous droits réservés.

21 Représentation sous forme d ’arbre de l ’expression algébrique
 nomClient ( description = “Herbe à puce ” (((Client  Commande)  LigneCommande)  Article)) 27/11/2018 © Robert Godin. Tous droits réservés.

22 Cas d ’une clé de jointure composée
LigneCommande  DétailLivraison 27/11/2018 © Robert Godin. Tous droits réservés.

23 5.3.6 Opération renommer ()
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))) 27/11/2018 © Robert Godin. Tous droits réservés.

24 © Robert Godin. Tous droits réservés.
Renommer les colonnes 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)) 27/11/2018 © Robert Godin. Tous droits réservés.

25 © Robert Godin. Tous droits réservés.
5.3.7 Jointure- Client  noClient = numéroClient Commande altérée =  noClient = numéroClient (Client  Commande altérée) 27/11/2018 © Robert Godin. Tous droits réservés.

26 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) 27/11/2018 © Robert Godin. Tous droits réservés.

27 © Robert Godin. Tous droits réservés.
5.3.8 Jointure externe Inclure les « célibataires » La jointure externe à gauche T1 = T2 (célibataires de T1 ) La jointure externe à droite T1 = T2 La jointure externe pleine T1 == T2 27/11/2018 © Robert Godin. Tous droits réservés.

28 © Robert Godin. Tous droits réservés.
Produire les informations au sujet des Clients et de leurs Commandes incluant les informations sur les Clients qui n’ont pas placé de Commande Client = Commande 27/11/2018 © Robert Godin. Tous droits réservés.

29 © Robert Godin. Tous droits réservés.
5.3.9 Semi-jointure () Client Commande 27/11/2018 © Robert Godin. Tous droits réservés.

30 5.3.10 Opérations ensemblistes (,, -)
Schémas compatibles 27/11/2018 © Robert Godin. Tous droits réservés.

31 © Robert Godin. Tous droits réservés.
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 27/11/2018 © Robert Godin. Tous droits réservés.

32 © Robert Godin. Tous droits réservés.
Division () A  B plus grande table C qui est telle que B  C  A ~ inverse du produit cartésien T1 (X)  T2 (Y) =  X-Y (T1) - (( X-Y (T1)  T2 ) - T1) 27/11/2018 © Robert Godin. Tous droits réservés.

33 © Robert Godin. Tous droits réservés.
Quelles sont les noCommande des Commandes qui incluent tous les Articles dont le prixUnitaire est $10.99  noCommande, noArticle (LigneCommande)  noArticle ( prixUnitaire = (Article))  noCommande, noArticle (LigneCommande)   noArticle ( prixUnitaire = (Article)) 27/11/2018 © Robert Godin. Tous droits réservés.

34 5.3.12 Ensemble minimal d'opérations de l'algèbre relationnelle
Sélection () Projection () Produit cartésien () Union () Différence (-) Renommage () 27/11/2018 © Robert Godin. Tous droits réservés.

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


Télécharger ppt "5 Introduction au modèle relationnel 5.1 Concepts de base"

Présentations similaires


Annonces Google