P. 1
bilan

bilan

|Views: 12|Likes:
Published by Mohcine Jabri

More info:

Published by: Mohcine Jabri on Feb 20, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/14/2014

pdf

text

original

PREREQUIS

La jointure va permettre lorsque cela est nécessaire de travailler sur une table qui regroupe les informations de plusieurs tables. Exemple jointure des 3 tables.

Si des valeurs nulles existent sur des attributs de jointures, une jointure externe (gauche ou droite) va être utilisée pour visualiser toutes les informations disponibles.

Pourquoi représenter l'information à l'aide de plusieurs relations alors qu'elle peut être représentée comme ci-dessus ? -Anomalie de modification -Anomalie de suppression -Anomalie d'insertion

Pascal.Livre.3.Prix.ID.EXERCICE 1 Donner: -le schéma de la base de données schéma(LIBRAIRIE)={ISBN.Prénom.Intitulé.Martin.CP.Dupont.Pierre.Livre)={Rowling.29000.Client.Pascal.Jean.Date} ADOM(Client)={1.Corneille} .2.Loana.Auteur.63000} -le domaine actif de la relation Client -le domaine actif de l'attribut Auteur ADOM(Auteur.Nom.Marie.

Elles permettent de faire la relation entre la date d'achat et les tables Client et Livre.Justifier les deux clés primaires de la relation Achat Achat[Livre] ⊆ Livre[ISBN] Achat[Client] ⊆Client[ID] Quelles sont les clés étrangères de la base de données et quelles sont leur utilité? -Les clés étrangères sont Livre et Client (la partie gauche d'une DI dont la partie droite est une clé primaire est une clé étrangère). .

A ⟶ B signifie: A implique B Valider ou réfuter (donner un contre exemple) les dépendances suivantes: ISBN ⟶ Auteur vrai Intitulé ⟶ Auteur faux t2[intitulé]='Les pensées'=t3[intitulé] or t2[Auteur]='pascal' ≠t3[Auteur]='Loana' Autrement dit. vrai vrai Prix⟶Auteur Prénom⟶ID . la connaissance de l'intitulé ne permet pas de déduire le nom de l'auteur.

Prénom] faux Les valeurs {<Pascal Jean><Dupont Pierre><Martin Marie>} ne sont pas incluses dans {<Jean Pascal><Pierre Dupont><Marie Martin>} .Les dépendances d'inclusions Valider ou réfuter (donner un contre exemple) les dépendances suivantes: Achat[Client]⊆Client[ID] Client[ID]⊆Achat[Client] vrai vrai faux Client[Nom] ⊆ Livre[Auteur] Les valeurs de Nom ne sont pas incluses dans Auteur.Prénom] ⊆ Client[Nom. Client[Nom.

Donner tous les livres de la librairie Projection: Permet de faire une coupe verticale(choix de l'attribut à afficher) AR πnom_attribut(relation) πISBN.Auteur.Prix(Livre) En SQL projection s'effectue à l'aide de la clause SELECT .EXERCICE 2 Exprimer en algèbre relationnelle et en SQL les requêtes suivantes: 1.Intitulé.

.

2.Donner les clients dont le code postal est 63000 Sélection: Permet de faire une coupe horizontale (choix d'un ou plusieurs tuples) AR σformule de sélection (relation) σCP=63000(Client) -La formule de sélection peut être composée à l'aide des opérateurs ⋀ ⋁ ⌐. OR. et NOT . -En SQL la sélection s'effectue à l'aide de la clause WHERE la formule de sélection peut être composée avec AND.

3.Donner les livres dont le prix est supérieur à 10 et inférieur à 15 AR σPrix>10 ⋀ Prix<15 (Livre) 4.Donner les livres dont le prix est inférieur à 10 ou dont l'auteur est 'Pascal' AR σPrix<10 ⋁ Auteur='Pascal' (Livre) .

AR πClient(Achat) -En algèbre relationnelle on travaille avec des ensembles. -En SQL multi-ensembles pour éliminer la redondance on utilise DISTINCT .Donner l'identifiant des clients qui ont acheté un livre -On cherche les identifiants des clients qui sont présents dans la table Achat (projection). 3. La réponse de la requête va être 1.5. 2. l'information n'est pas redondante.

2.5. AR πClient(Achat) -En algèbre relationnelle on travaille avec des ensembles. l'information n'est pas redondante.Donner l'identifiant des clients qui ont acheté un livre -On cherche les identifiants des clients qui sont présents dans la table Achat (projection). La réponse de la requête va être 1. -En SQL multi-ensembles pour éliminer la redondance on utilise DISTINCT . 3.

-Les opérateurs ensemblistes forcent la sémantique ensembliste.Donner les livres qui n'ont jamais été achetés On cherche les livres présents dans la table Livre mais absents dans la table Achat. (DISTINCT) -Pour ACCESS et certains SGBD seul l'opérateur UNION est disponible donc les solutions suivantes vont être préférées: . AR SQL πISBN(Livre)-πLivre(Achat) SELECT ISBN FROM Livre MINUS SELECT Livre FROM Achat. Pour cela on utilise l'opérateur ensembliste Différence.6. Attention lorsqu'on utilise les opérateurs ensemblistes Union Intersection ou Différence les relations doivent avoir le même schéma( même attributs).

. FROM R WHERE X IN (SELECT..) Opérateur EXISTS: Test l'existence ou l'absence de données dans la sous requête SELECT ..ALL. FROM R WHERE EXISTS (SELECT * FROM S WHERE C) La condition C doit comporter un attribut de R Les sous-requêtes de la clause WHERE sont introduites par les mots clés : IN. ANY. ..Opérateur IN : vérifie si la valeur existe dans un sous-ensemble SELECT ..EXIST.

Achat .Date (Livre⧓(ρLivre→ISBN(ρClient→ID(Achat)))) La première étape: -Le produit cartésien Livre*Achat SELECT * FROM Livre.7. -En langage SQL il va falloir préciser dans la clause WHERE quelles sont les valeurs qui doivent être égales entre les 2 relations pour effectuer la jointure. La jointure est un produit cartésien suivi d'une sélection et d'une projection . AR πIntitulé.Donner l'intitulé et la date d'achat de chaque livre. l'attribut qui va permettre de faire la jointure est implicite. En Algèbre relationnelle. -Lorsqu'on désire travailler sur plusieurs tables une jointure va être nécessaire.

.

Projection .Sélection SELECT * FROM Livre.ISBN=Achat.Achat WHERE livre.Livre.

Donner le nom des clients qui ont acheté le livre intitulé 'Le cid' πNom (σID=Client (Livre⧓(ρLivre→ISBN(ρClient→ID(Achat)))⧓Client)) .8.

Livre AND Client. .ISBN=Achat.Client AND Livre.Client.Client.ID=Achat.Achat WHERE Livre.Livre AND Client.ID=Achat.Intitule='Le Cid'.Client SELECT Client.ISBN=Achat.Achat WHERE Livre.SELECT * FROM Livre.nom FROM Livre.

Donner le prénom des clients qui se termine par la lettre 'e' -% Remplace une chaîne de caractère .9.

Donner le prix moyen d'un livre Les fonctions d'agrégation SUM (somme des valeurs d'une colonne). MAX. 2. COUNT(nombre de lignes d'une table) retournent une ligne une colonne.SQL 1.Donner le nombre de client pour chaque ville GROUP BY permet d'utiliser les fonctions d'agrégation sur des sous-ensembles de valeurs. . AVG(moyenne des valeurs d'une colonne.) MIN.

Donner le nom des clients qui ont commandé au moins deux livres On regroupe par Client GROUP BY (ID ou Nom) et on effectue une projection HAVING va permettre de définir des sélections sur les éléments d'une partition.3. Ici le nombre de livre commandé > 2 .

Donner le montant total des ventes par jour .4.Quelle est la somme totale dépensée par client 5.

ALL.EXIST. FROM. WHERE ) .Donner les livres dont le prix est supérieur au prix moyen des livres Prix moyen des livres On va comparer le prix des livres au résultat de cette requête: Sous requête. FROM. WHERE ) WHERE X bop ALL (SELECT . On peut aussi utiliser ANY dans ce cas. Les sous-requêtes de la clause WHERE sont introduites par les mots clés : IN.6. Utilisation WHERE X bop ANY (SELECT . ANY.

Différence entre ANY et ALL ANY Vérifie si le prix est supérieur à une des valeurs de la colonne prix ALL Vérifie si le prix est supérieur à toutes les valeurs de la colonne prix .

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->