public:std-3:cm2:interrogation_des_bases_de_donnees:3.2.1_operateurs_mono-table

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
public:std-3:cm2:interrogation_des_bases_de_donnees:3.2.1_operateurs_mono-table [2017/09/20 23:21] – [Sélection : σ] edaucepublic:std-3:cm2:interrogation_des_bases_de_donnees:3.2.1_operateurs_mono-table [2017/09/20 23:23] (Version actuelle) – [Structure d'une requête SQL] edauce
Ligne 1: Ligne 1:
 +===== 3.2.1 Opérateurs mono-table =====
  
 +Extraction d'information à partir d'une table unique :
 +  * projection $\pi$ = extraction de colonnes
 +  * sélection $\sigma$ = extraction de lignes
 +
 +==== Projection : π ===
 + <note important> **Projection**
 +  * Soit $r$ une relation de schéma $R$. 
 +  * Soit $S$ un ensemble d'attributs, avec $S$ ⊆ $R$
 +La **projection**  $\pi_S(r)$ est une nouvelle relation de schéma $S$ obtenue à partir des éléments de $r$ restreints au schéma $S$
 +$$\pi_S(r) = \{t(S)|t \in R\}$$
 +
 +(avec $t(S)$ la restriction de $t$ au schéma $S$)
 +</note>
 +
 +<note tip> **Exemple**
 +**Catalogue** :
 +^nom_fournisseur^adresse_fournisseur^composant^ prix^
 +|Sage|33, College street, London|transistor|4,4|
 +|MoxCom|77 Ashley square,Mumbay|micro controller|3,7|
 +|MoxCom|77 Ashley square,Mumbay|radio tuner|7,0|
 +
 +Requete : //Donner la liste des fournisseurs (avec leur adresse)//:
 +$$u = \pi_\text{nom_fournisseur, adresse_fournisseur} (\text{Catalogue})$$
 +
 +$\rightarrow$ **u** :
 +^nom_fournisseur^adresse_fournisseur^
 +|Sage|33, College street, London|
 +|MoxCom|77 Ashley square,Mumbay|
 +
 +</note>
 +
 +==== Sélection : σ ====
 +
 +<note important>
 +**Condition sur R**
 +  * On considère le schéma $R (A_1, …, A_n)$
 +  * Une condition $F$ sur $R$ :
 +    * est un ensemble de contraintes sur les valeurs des attributs $A_1$, …, $A_n$
 +    * construites à l'aide d'opérateurs booléens classiques : 
 +      * ∧(et), 
 +      * ∨(ou),
 +      * ¬(non), 
 +      * =, ≠, >,<, ≥ ,≤, ... 
 +      * et de valeurs numériques ou de texte.
 +</note>
 +
 +<note tip>
 +**Exemples** :
 +$$ F      (A_1 = 3) ∧ (A_1 > A_2) ∧ (A_3 ≠ 4)$$
 +$$ F      (A_1 = 2) ∨ (A_2 = "Dupont")$$
 +</note>
 +
 +<note important>
 +**Sélection**
 +  * Soit $r$ une relation de schéma $R$
 +  * Soit $F$ une condition sur $R$
 +
 +La **sélection** $σ_F(r)$ est une nouvelle relation de schéma $R$ , constituée de l'ensemble des enregistrements de $r$ qui satisfont la condition $F$. 
 +
 +$$σ_F(r) = \{ t ∈ r | F( t ) \text{est vrai} \}$$
 +</note>
 +
 +<note tip>
 +**Exemple** :
 +
 +Requête : //Donner la liste des fournisseurs qui vendent des micro-controleurs//
 +
 +$$u =  Π_\text{nom_fournisseur}( σ_\text{Composant = micro controller} ( \text{Fournisseur} ))$$
 +**u** :
 +^nom_f^
 +|Moxcom|
 +</note>
 +
 +<note tip>
 +**Exemple** 
 +
 +**Pays** :
 +^nom_pays^superficie^population ^PIB/hab^
 +|Algérie|2.300.000|31.300.000|1630$|
 +|Niger|1.200.000|11.400.000|890$|
 +|Arabie Saoudite|2.150.000|24.300.000|8110$|
 +
 +Requête : //Donner la liste des pays dont le PIB/hab est > 1000$//
 + $$u = Π_\text{nom_pays}( σ_\text{PIB/hab > 1000 }  ( \text{Pays} ))$$
 +
 +**u** :
 +^nom_pays^
 +|Algérie|
 +|Arabie Saoudite|
 +
 +
 +</note>
 +
 +==== Structure d'une requête SQL====
 +
 +<code sql> 
 +SELECT    A1,A2, …, An    // liste d’attributs
 +FROM      R               // nom de la table
 +WHERE                   // condition sur les attributs
 +</code>
 +
 +cette requête est semblable à :
 +  * une sélection algébrique $σ_F$
 +  * suivie par une projection algébrique $Π_{A1, …, An}$
 +soit :  
 +$$Π_{A1, …, An}( σ_F ( R ))$$
 +
 +**Exemples :**
 +  * //Qui fournit des transistors ?//
 +<code sql>
 +    SELECT nom_fournisseur
 +    FROM Fournisseur
 +    WHERE composant = ’transistor’;
 +</code>
 +  * //Liste de toutes les commandes de transistors ://
 +<code sql>
 +    SELECT *
 +    FROM Commandes
 +    WHERE composant = ’transistor’
 +</code>
 +  * //Qui fournit des micro-controleurs à moins de 5$?//
 +<code sql>
 +    SELECT nom_fournisseur
 +    FROM Catalogue
 +    WHERE composant = ’micro controller’ AND prix < 5
 +</code>
 +
 +
 +__Up__ : [[public:STD-3:CM2:Interrogation des bases de données]]
 +__Next__ : [[public:STD-3:CM2:Interrogation des bases de données:3.2.2 Opérateurs multi-tables]]