2010-06-20 4 views
2

Comment écrire l'algèbre relationnelle pour cette requête SQL?SQL à l'algèbre relationnelle

Select patient.name, 
     patient.ward, 
     medicine.name, 
     prescription.quantity, 
     prescription.frequency 
From patient, medicine, prescription 
Where prescription.frequency = "3perday" 
    AND prescription.end-date="08-06-2010" 
    AND canceled = "Y" 

Relations ...

prescription

  • -ref prescription
  • patient ref
  • médecine ref
  • quantité
  • fr equency
  • date de fin
  • annulé (Y/N))

médecine

  • médecine-ref
  • nom

patients

  • patient-ref
  • Nom
  • salle
+0

@tike Pouvez-vous modifier la question de fournir les colonnes pour le patient, la médecine et la prescription? –

+0

martin question est éditée, c'est ce que tu veux dire? – tike

+1

Si c'est devoirs, vous devriez au moins poster votre meilleure tentative, plutôt que de simplement demander la réponse. –

Répondre

3

Je vais vous indiquer les opérateurs, vous devez utiliser

Projection (π)

π (a1, ..., an): Le résultat est défini comme l'ensemble obtenu lorsque tous les tuples de R sont limités à mettre {a1, ..., an}.

Par exemple π (nom) sur votre table patient serait le même que SELECT Nom patient comme

Sélection (σ)

σ (état): Sélectionne tous les tuples dans R pour lequel condition tient.

Par exemple σ (fréquence = "1perweek") sur votre table de prescription serait le même que SELECT * FROM prescription où la fréquence = "1perweek"

produit Cross (X)

RXS: Le résultat est le produit croisé entre R et S.

Par exemple le patient prescription X serait SELECT * FROM patients , prescription

Vous pouvez combiner ces opérandes pour résoudre votre exercice. Essayez de poster votre tentative si vous avez des problèmes.

Remarque: Je n'ai pas inclus la jointure naturelle car il n'y a pas de jointures. Le produit croisé devrait être suffisant pour cet exercice.

3

Un exemple serait quelque chose comme ce qui suit. C'est seulement si vous avez accidentellement omis les jointures entre patient, médicament et prescription. Sinon, vous serez à la recherche de produit croisé (ce qui semble être une mauvaise idée dans ce cas ...) comme mentionné par Lombo. J'ai donné des exemples de jointures qui peuvent correspondre à vos tables marquées "???". Si vous pouviez inclure la disposition de vos tables, cela serait utile.

Je suppose également que l'annulation vient de la prescription car elle n'est pas préfixée. Editer: Si vous en avez besoin sous forme standard RA, il est assez facile d'obtenir à partir d'un diagramme.

alt text http://img532.imageshack.us/img532/8589/diagram1b.jpg

+0

merci mon pote je vais avoir un regard profond merci de votre aide – tike

Questions connexes