Algèbre relationnelle

Lorsque vous travaillez avec le modèle relationnel, nous avons 2 groupes d'opérations que nous pouvons utiliser. L'un d'eux est l'algèbre relationnelle.

Lorsque vous travaillez avec lemodèle relationnel, nous avons 2 groupes d'opérations que nous pouvons utiliser.

Le premier s'appellealgèbre relationnelle, et c'est unlangage procédural.

C'est ce sur quoi SQL est basé, et en tant que tel, il est très important d'apprendre - car SQL est la norme de facto pour travailler avec des bases de données relationnelles.

Le second s'appellecalcul relationnelet au lieu d'être procédural, c'est unlangage déclaratif. C'est une différence fondamentale dans la façon dont nous interagissons avec les bases de données, car vous ne dites pas au logiciel de base de donnéesQue faire, tu le dis justece que tu veux, et laissez-le trier les détails sur la façon de le faire.

Il s'agit d'une distinction courante parmi les langages de programmation. Dans l'interface moderne, nous disons que l'interaction avec le DOM dans React est déclarative. L'utilisation de JavaScript vanilla pour modifier le DOM est procédurale.

Langues commeJournal de données,QBEetQUELont le calcul relationnel comme base. Je ne vais pas en parler car je pense que c'est une façon beaucoup plus niche de faire les choses par rapport à l'approche plus pratique suivie par SQL, mais vous pouvez l'examiner si vous le souhaitez.

Compte tenu de cette introduction, continuons avecalgèbre relationnelle.

Nous avons 2 types d'opérations:

  • opérations primaires
  • opérations de jointure

Opérations primaires en algèbre relationnelle

Les opérations principales sont:

  • syndicatpour obtenir des données de deux tables, en générant une somme des tuples, tant que les deux tables ont les mêmes colonnes et types d'attributs (domaine).
  • différencepour obtenir les données contenues dans la première table mais pas dans la seconde table, générant une différence des tuples, tant que les deux tables ont les mêmes colonnes et types d'attributs (domaine).
  • produit cartésienpour obtenir les données de deux tables et générer une seule table qui combine leurs données, en fonction d'une valeur d'attribut.
  • sélectionnerpour extraire uniquement certains des tuples (lignes) contenus dans une table en fonction de certains critères.
  • projetpour générer une nouvelle table ne contenant qu'un ou plusieurs attributs (colonnes) d'une table existante
  • Renommerutilisé pour renommer un attribut, utilisé pour éviter les conflits lorsque plusieurs tables ont le même nom pour différentes données

Joindre des opérations en algèbre relationnelle

Les jointures sont probablement les opérations les plus puissantes que vous pouvez effectuer avec l'algèbre relationnelle. Ils s'appuient sur les opérations principales et vous permettent de corréler les données contenues dans différentes relations (tables).

Remarque: je vais bientôt parler des jointures en pratique dans un SGBD, c'est surtout de la théorie.

Nous avons 2 versions principales de jointure:jointure naturelleetjointure thêta. All the other versions are extracted from those 2.

Jointure naturelle

Jointure naturellemet en corrélation deux relations (tables) et crée une nouvelle table basée sur les mêmes valeurs d'un attribut.

Nous avons besoin de deux relations avec le même nom d'attribut (colonne), d'abord. Ensuite, si les valeurs des attributs de la relation A ne correspondent pas aux attributs de la relation B, la ligne ne fait pas partie du résultat, elle est ignorée.

Exemple:

Relation A

ID de l'employé Nom
1 marque
2 Tony
3 Meule

Relation B

Nom du responsable ID de l'employé
Todd 1
Albert 2

Nous pouvons effectuer une jointure naturelle pour obtenir le nom du patron de chaque employé:

ID de l'employé Nom Nom du responsable
1 marque Todd
2 Tony Albert

Étant donné que les relations ont en commun le nom d'attribut de l'ID d'employé, il n'est présent qu'une seule fois dans le résultat, et non 2 fois.

L'employé n ° 3 présent dans la relation A, Rick, n'est pas inclus dans ce tableau, car il n'y a pas d'entrée correspondante dans la relation B.

Jointure thêta

Une jointure thêta permet d'effectuer une jointure basée sur n'importe quel critère pour comparer deux colonnes dans deux relations différentes, pas seulement l'égalité comme le fait la jointure naturelle.

Il effectue un produit cartésien de deux tables et filtre les résultats en fonction de la sélection que nous voulons faire.

Equi-jointure

L'équi-jointure est une jointure thêta, où la sélection est basée sur l'égalité entre les valeurs d'attribut dans les deux tables différentes.

La différence avec la jointure naturelle est que nous pouvons choisir les noms d'attributs (colonnes) que nous voulons comparer.

Nous parlerons beaucoup plus des jointures plus tard lors de l'introduction de SQL, afin que nous puissions les utiliser dans la pratique.


Plus de didacticiels sur les bases de données: