1

1: L'explication donnée pour cette requête est « l'ensemble des tuples t tel qu'il existe un tuple s dans la relation emprunter pour lesquels la valeurs de t et s pour la CNAME attribut sont égales, et la valeur de s pour le montant attribut est supérieure à 1200" . Mais nous n'avons jamais mentionné à quelle relation appartient t. Quelle est la relation et pourquoi?S'il vous plaît effacer cette confusion au sujet de l'algèbre relationnelle/tuple calcul relationnel

enter image description here

2: Dans l'image sous-jacente, ne "ET" ing ces deux projections (relation contenant attribut "CustomerID" de la relation "client" & attribut "orderID" de l ' "ordre") donner la Produit cartésien de ces deux relations à une colonne? enter image description here

+0

@philipxy vérifier ceci concernant l'explication: http://www.cs.sfu.ca/CourseCentral/354/zaiane/material/notes/Chapter3/node12.html#SECTION00131000000000000000 –

+0

@philipxy Désolé, je n'ai pas vu ça , mais même alors, pourquoi t n'a pas été liée par des quantificateurs avec une relation? Je veux dire de quel tuple t parle-t-on dans "l'ensemble de tous les tuples?" –

Répondre

0

1:

Tuple t, apparaissant sur le côté gauche, est un tuple de la réponse. {t | ... t ...} signifie "l'ensemble de toutes les valeurs, t disons, tel que ... t ... est vrai". Pour chaque valeur de tuple nous l'appelons t et si elle satisfait à la condition, alors elle va dans la réponse.

2:

Dans la partie 1 « ∧ » est utilisé pour le conjonctif et dans une expression logique sous-jacente à une requête de calcul de tuple relationnelle. Ici, en 2, vous l'utilisez entre deux expressions de relation comme un opérateur d'algèbre relationnelle. Habituellement "⋈" est utilisé pour NATURAL JOIN et "⨯" est utilisé pour CARTESIAN PRODUCT (aka CROSS JOIN). Parfois, il n'y a qu'un opérateur NATURAL JOIN et s'il est utilisé sans attributs communs, son utilisation/valeur s'appelle simplement un produit cartésien.

Il s'agit de deux types d'expression différents. Cependant "∧" pourrait être utilisé dans les deux, bien que pour des choses différentes. Ce n'est pas un problème car entre deux expressions logiques de prédicats, il est évident que ET et entre deux expressions d'algèbre relationnelle c'est évidemment un opérateur d'algèbre relationnelle. Je m'attendrais à ce que ce soit NATUREL JOIN. Je ne l'ai pas vu utilisé pour CARTESIAN PRODUCT, mais rappelez-vous qu'une JOINTE NATURELLE sans attributs communs est/retourne un "produit cartésien". Donc votre exemple "donne le produit cartésien de ces deux".

Certaines variantes d'algèbre relationnelle ont des tuples qui ne sont pas ordonnés avec des noms d'attributs uniques. Alors typiquement CARTESIAN PRODUCT prend deux relations qui n'ont aucun attribut en commun et retourne leur NATURAL JOIN. Puisque les noms d'attribut du tuple t dans votre exemple de calcul ne reçoivent aucun ordre, c'est peut-être ce genre de relation.

Certaines variantes d'algèbre relationnelle ont des tuples ordonnées où les noms d'attribut peuvent apparaître plusieurs fois. Alors typiquement CARTESIAN PRODUCT retourne des tuples avec des noms d'attributs communs apparaissant plusieurs fois. Cela semble être le cas dans the slides for the textbook by Silberschatz, Korth & Sudarshan. (Qui n'utilise "∧" que comme AND.) Alors une NATURAL JOIN n'a qu'une seule copie des attributs communs mais CARTESIAN JOIN en a deux, donc ils peuvent différer.Mais dans votre exemple, les deux résultats de PROJECTION ont des ensembles d'attributs disjoints. Ainsi, NATURAL JOIN et CARTESIAN PRODUCT retourneront la même relation. [La raison pour laquelle le même symbole est parfois utilisé pour AND et NATURAL JOIN (et pourrait être utilisé pour CARTESIAN PRODUCT) est que si l'expression de l'algèbre relationnelle R contient les tuples où r (...) et l'expression de l'algèbre relationnelle S contient les tuples où s (...) alors R NATURAL JOIN S contient les tuples où r (...) AND s (...). En fait, toute expression d'algèbre relationnelle est la valeur d'une expression de calcul relationnel correspondant où les noms des relations correspondent aux prédicats donnés (significations) et les opérateurs logiques aux opérateurs relationnels.]

Utilisez les relations, les opérateurs et les symboles qui vous ont été communiqués à utiliser par votre instructeur/manuel. En cas de doute définir vos symboles ou utiliser des mots.

+0

Dans le 2ème point, j'ai posé cette question comme "ET" a également été utilisé pour obtenir un produit cartésien de deux relations utilisant le calcul de tuple (je sais que ET peut être utilisé n'importe où juste pour mettre une condition). –

+0

Non je veux dire le calcul de Tuple (de korth) –

+0

Je n'ai pas mentionné ∧ pour la jointure naturelle, j'ai trouvé une question pour exprimer le produit cartésien de deux relations r et s dans le calcul de tuple, j'ai échoué à faire la question réponse ∧ a été utilisée - d'où je me suis demandé si ∧ peut être utilisé pour faire des produits cartésiens ou non. –