Prérequis: Modèle relationnel dans le SGBD
L'algèbre relationnelle est un langage de requête procédural. L'algèbre relationnelle fournit principalement une base théorique pour les bases de données relationnelles et SQL . L'objectif principal de l'utilisation de l'algèbre relationnelle est de définir des opérateurs qui transforment une ou plusieurs relations d'entrée en relation de sortie. Étant donné que ces opérateurs acceptent des relations en entrée et produisent des relations en sortie, ils peuvent être combinés et utilisés pour exprimer des requêtes potentiellement complexes qui transforment potentiellement de nombreuses relations d'entrée (dont les données sont stockées dans la base de données) en une seule relation de sortie (les résultats de la requête). . Comme il s’agit de mathématiques pures, les mots-clés anglais ne sont pas utilisés en algèbre relationnelle et les opérateurs sont représentés à l’aide de symboles.
Opérateurs fondamentaux
Ce sont les opérateurs de base/fondamentaux utilisés en algèbre relationnelle.
- Sélection(σ)
- Projection(π)
- Union(U)
- Définir la différence (-)
- Définir l'intersection (∩)
- Renommer(ρ)
- Produit cartésien (X)
1. Sélection(σ) : Il est utilisé pour sélectionner les tuples requis des relations.
Exemple:
UN | B | C |
---|---|---|
1 | 2 | 4 |
2 | 2 | 3 |
3 | 2 | 3 |
4 | 3 | 4 |
Pour la relation ci-dessus, σ(c>3)R sélectionnera les tuples qui ont c supérieur à 3.
UN | B | C |
---|---|---|
1 | 2 | 4 |
4 | 3 | 4 |
Note: L'opérateur de sélection sélectionne uniquement les tuples requis mais ne les affiche pas. Pour l'affichage, l'opérateur de projection de données est utilisé.
2. Projection(π) : Il est utilisé pour projeter les données de colonne requises à partir d’une relation.
statut git -s
Exemple: Considérons le tableau 1. Supposons que nous voulions les colonnes B et C de la relation R.
π(B,C)R will show following columns.>
B | C |
---|---|
2 | 4 |
2 | 3 |
3 | 4 |
Note: Par défaut, la projection supprime les données en double.
3. Syndicat(U) : L'opération d'union en algèbre relationnelle est la même que l'opération d'union en théorie des ensembles.
Exemple:
FRANÇAIS
Nom d'étudiant | Numéro de rôle |
---|---|
RAM | 01 |
Mohan | 02 |
Vivek | 13 |
Géta | 17 |
ALLEMAND
Nom d'étudiant | Numéro de rôle |
---|---|
Vivek | 13 |
Géta | 17 |
Shyam | vingt-et-un |
Rohan | 25 |
Considérez le tableau suivant des étudiants ayant différentes matières optionnelles dans leur cours.
π(Student_Name)FRENCH U π(Student_Name)GERMAN>
Nom d'étudiant |
---|
RAM |
Mohan |
Vivek |
Géta |
Shyam |
Rohan |
Note: La seule contrainte dans l’union de deux relations est que les deux relations doivent avoir le même ensemble d’Attributs.
4. Définir la différence (-): La différence d'ensembles en algèbre relationnelle est la même opération de différence d'ensembles que dans la théorie des ensembles.
Exemple: À partir du tableau ci-dessus du FRANÇAIS et de l’ALLEMAND, Set Difference est utilisé comme suit
π(Student_Name)FRENCH - π(Student_Name)GERMAN>
Nom d'étudiant |
---|
RAM |
Mohan |
Note: La seule contrainte dans la différence d'ensemble entre deux relations est que les deux relations doivent avoir le même ensemble d'attributs.
5. Définissez l'intersection (∩) : L'intersection d'ensembles en algèbre relationnelle est la même opération d'intersection d'ensembles dans la théorie des ensembles.
Exemple: À partir du tableau ci-dessus en FRANÇAIS et ALLEMAND, l'intersection définie est utilisée comme suit
π(Student_Name)FRENCH ∩ π(Student_Name)GERMAN>
Nom d'étudiant |
---|
Vivek |
Géta |
Note: La seule contrainte dans la différence d'ensemble entre deux relations est que les deux relations doivent avoir le même ensemble d'attributs.
6. Renommer(ρ): Renommer est une opération unaire utilisée pour renommer les attributs d'une relation.
ρ(a/b)R will rename the attribute 'b' of the relation by 'a'.>
7. Produit croisé (X) : Produit croisé entre deux relations. Disons A et B, donc le produit vectoriel entre A X B donnera tous les attributs de A suivis de chaque attribut de B. Chaque enregistrement de A sera associé à chaque enregistrement de B.
Exemple:
Internet utilisant
UN
Nom | Âge | Sexe |
---|---|---|
RAM | 14 | M. |
fin | quinze | F |
Kim | vingt | M. |
B
IDENTIFIANT | Cours |
---|---|
1 | DS |
2 | SGBD |
A X B
Nom | Âge | Sexe | IDENTIFIANT | Cours |
---|---|---|---|---|
RAM | 14 | M. | 1 | DS |
RAM | 14 | M. | 2 | SGBD |
fin | quinze | F | 1 | DS |
fin | quinze | F | 2 | SGBD |
Kim | vingt | M. | 1 | DS |
Kim | vingt | M. | 2 | SGBD |
Note: Si A a 'n' tuples et B a 'm' tuples alors A X B aura 'n*m' tuples.
Opérateurs dérivés
Voici quelques-uns des opérateurs dérivés, qui sont dérivés des opérateurs fondamentaux.
- Jointure naturelle(⋈)
- Jointure conditionnelle
1. Jointure naturelle (⋈) : La jointure naturelle est un opérateur binaire. La jointure naturelle entre deux ou plusieurs relations donnera lieu à un ensemble de toutes les combinaisons de tuples où ils ont un attribut commun égal.
Exemple:
lettre d'îlot java
EMP
Nom | IDENTIFIANT | Nom_du service |
---|---|---|
UN | 120 | IL |
B | 125 | HEURE |
C | 110 | Ventes |
D | 111 | IL |
DÉPARTEMENT
Nom_du service | Directeur |
---|---|
Ventes | ET |
Production | AVEC |
IL | UN |
Rapprochement naturel entre EMP et DEPT avec condition :
EMP.Dept_Name = DEPT.Dept_Name
EMP ⋈ DÉPT
Nom | IDENTIFIANT | Nom_du service | Directeur |
---|---|---|---|
UN | 120 | IL | UN |
C | 110 | Ventes | ET |
D | 111 | IL | UN |
2. Jointure conditionnelle : La jointure conditionnelle fonctionne de la même manière que la jointure naturelle. Dans la jointure naturelle, par défaut, la condition est égale entre les attributs communs, tandis que dans la jointure conditionnelle, nous pouvons spécifier n'importe quelle condition telle que supérieure, inférieure ou différente.
Exemple:
R.
IDENTIFIANT | Sexe | Des marques |
---|---|---|
1 | F | Quatre cinq |
2 | F | 55 |
3 | F | 60 |
S
IDENTIFIANT | Sexe | Des marques |
---|---|---|
dix | M. | vingt |
onze | M. | 22 |
12 | M. | 59 |
Joindre entre R et S avec condition Marques R>= Marques S
DÉBARRASSER | R.Sexe | R.Marques | S.ID | S.Sexe | S.Marques |
---|---|---|---|---|---|
1 | F | Quatre cinq | dix | M. | vingt |
1 | F | Quatre cinq | onze | M. | 22 |
2 | F | 55 | dix | M. | vingt |
2 | F | 55 | onze | M. | 22 |
3 | F | 60 | dix | M. | vingt |
3 | F | 60 | onze | M. | 22 |
3 | F | 60 | 12 | M. | 59 |
Calcul relationnel
Comme l'algèbre relationnelle est un langage de requête procédural, le calcul relationnel est un langage de requête non procédural. Il s’agit essentiellement des résultats finaux. Il me dit toujours quoi faire mais ne me dit jamais comment le faire.
Il existe deux types de calcul relationnel
- Calcul relationnel des tuples (TRC)
- Calcul relationnel de domaine (RDC)
Articles de fond :
Opérateurs-de-base-en-algèbre-relationnelle
Opérateurs d'algèbre relationnelle étendue