2011-05-26 6 views
0

enter image description heresql -> l'algèbre relationnelle

Comment puis-je convertir ce en arbre de l'algèbre relationnelle?

Quelles sont les étapes logiques? Dois-je d'abord convertir en algèbre relationnelle? Ou puis-je aller directement de SQL à l'arbre?

+0

Comment avez-vous appris dans vos cours? :-) – diagonalbatman

+0

ha thats la blague que nous ne l'avons pas – user559142

+0

Je pense que la plaisanterie est que vous ne prêtiez pas attention. Même à l'école d'études supérieures, le professeur explique comment faire les choses. – Woot4Moo

Répondre

3

Je voudrais tout d'abord convertir à l'algèbre relationnelle, puis convertir à l'arbre. Regardez, la clause SELECT ne requiert que trois champs. C'est un projection. La clause FROM a trois relations. C'est un Cartesian product. La clause WHERE donne une série de selection s. C'est la partie où il aide à convertir en algèbre relationnelle avant de se convertir à un arbre.

Je ne sais pas ce que vous utilisez la notation en classe, mais vous voulez probablement quelque chose qui a une forme générale de

projection((things-you-want), selection((criteria), selection((criteria), 
    selection((criteria), aXbXc)))) 

ou projection de la sélection de la sélection des ... choses résultant de produits croisés. Notez que, selon le degré de difficulté de votre instructeur, vous devrez peut-être renommer les champs. Étant donné que Show et Seat n'ont pas d'attribut showNo, il se peut que vous ne soyez pas autorisé à prendre le produit croisé avant de leur donner des noms uniques (règles alternatives, les attributs sont uniquement identifiés par un préfixe de nom de relation implicite).

De plus, en fonction du but de la leçon, vous pouvez commuer certaines de ces opérations. Vous pouvez faire une sélection sur Réservation avant de prendre le produit croisé afin de restreindre la plage de dates. Les résultats finaux seront équivalents.

De toute façon, est-ce vraiment beaucoup de travail supplémentaire pour passer de SQL à l'algèbre relationnelle à l'arbre? Je ne doute pas qu'avec la pratique, vous pouvez passer l'étape intermédiaire. Cependant, puisque vous avez posé la question en premier lieu, je suggérerais de passer en revue les motions. Rappelez-vous l'exigence de «montrer votre travail» des enseignants de mathématiques du premier cycle pour la combinaison de termes simples qui sont partis à l'école secondaire? La même règle s'applique ici. Je dis cela comme un ancien classificateur de missions CS.

2

Le résultat de cette requête SQL n'est pas une relation, donc il n'a pas d'équivalent exact dans la RA. Vous pouvez essayer de créer une version RA de la même requête SQL avec DISTINCT ajouté.