Ich bin ein wenig verwirrt auf, wenn Sie beide dieser Operatoren verwenden. Ich habe das Gefühl, dass ich sie verstehe, aber es fällt mir schwer herauszufinden, wann ich sie in einer relationalen algebraischen Aussage brauche. Kann mir jemand dazu einen Einblick/Rat geben?Relationale Algebra Kreuz Produkt und natürliche Verbindung
Antwort
Einige Versionen der relationalen Algebra haben Beziehungsüberschriften, die Sätze von (ungeordneten, eindeutig benannten) Attributen sind. Dann (relationales (kartesisches)) PRODUKT, alias CROSS JOIN, aka CROSS PRODUCT, wird nur dann definiert, wenn die Eingabe-Relationen keine Attributnamen teilen, aber ansonsten wie NATURAL JOIN funktionieren. Seine Aufgabe besteht also darin, zu bestätigen, dass Sie keine gemeinsamen Attributnamen erwarten.
(Einige Versionen der relationalen Algebra haben Beziehungsüberschriften, die keine Mengen sind; Attribute können bestellt werden und/oder mehrere Attribute können denselben Namen haben. Normalerweise gibt PRODUCT für jedes Eingabeattribut ein Attribut aus. Wenn es einen NATURAL JOIN gibt Das Ergebnis ist, als würde man zuerst PRODUCT, dann RESTRICTING auf die Gleichheit der Paare der gleichnamigen Attribute, dann PROJECTout ein Attribut jedes Paares.So arbeitet PRODUCT für zwei beliebige Eingaben, und NATURAL JOIN könnte undefiniert sein, wenn eine Eingabe ein doppeltes Attribut hat Namen, aber sie werden das gleiche Ergebnis, wenn es keine Attributnamen gemeinsam genutzt werden)
Was why you would compose any particular relational algebra query.
Jede Tabelle/Relation hat eine Anweisung, die durch Spalten/Attribute parametrisiert wird. (Sein "charakteristisches Prädikat".) Die Zeilen/Tupel , die die Aussage wahr machen, gehen in die Tabelle/Relation. Zuerst finden die Aussagen zu den angegebenen Tabellen/Beziehungen:
// customer [Cust-Name] has £[Balance] in account [Acc-No] at branch [Branch] Deposit (Branch, Acc-No, Cust-Name, Balance) // customer [Cust-Name] loan [Loan-No] balance is £[Balance] at branch [Branch] Loan(Branch, Loan-No, Cust-Name, Balance)
Sie jetzt gegebenen Aussagen zusammen, um eine Aussage zu erhalten, die nur die Reihen wir erfüllen wollen. Verwenden Sie UND, ODER, UND NICHT UND Bedingung. Keep oder Drop-Namen. Verwenden Sie einen neuen Namen, wenn Sie einen benötigen.
customer [Cust-Name] loan [Loan-No] balance is £[Loan-Balance] at branch [Branch] AND customer [Cust-Name] has £[Balance] in account [Acc-No] at branch [Branch]
Nun ist die Algebra ersetzen zu bekommen:
- jede Aussage durch seine Tabelle/Beziehung
- jeder UND die Tabelle/Beziehung Aussagen von ⋈ (natürlichem beitreten)
- jedes OR der Tabelle/Beziehung Anweisungen (die die gleichen Spalten haben müssen/Attribut) von ∪ (Vereinigung)
- von Aussagen jedem AND NOT (die die gleichen Spalten/Attribute) von \ (Differenz)
- jeder UND Zustand durch σ Zustand
- jeden Keeping haben muss Name von π Namen zu halten (Projektion) zu halten (und Fallenlassen von π Namen zu halten)
- jede Spalte/Attribut in einer gegebenen Anweisung durch ρ umbenennen (umbenennen).
∩ (Schnittpunkt) und x (Produkt) sind Spezialfälle von ⋈ (∩ für beiden Seiten der gleichen Spalten/Attribute und x für nicht gemeinsam genutzten Spalten/Attribute).
(ρ Loan-Balance/Balance Loan) ⋈ Deposit
- 1. Relationale Algebra statt SQL
- 2. DBMS: Relationale Algebra Ausführungsplan Kostenberechnung
- 3. SQL/relationale Algebra und Datum! = Zeichenfolgenfehler
- 4. Datenbank relationale Algebra, SQL-Abfrage
- 5. SQL in relationale Algebra übersetzen
- 6. Relationale Algebra auf Fehler überprüfen
- 7. SQL Query SCHNEIDET - Relationale Algebra
- 8. Konvertieren von SQL in relationale Algebra Beispiel
- 9. Wie Mysql-Abfrage in relationale Algebra konvertieren?
- 10. SQL-Abfrage in Relationale Algebra übersetzen
- 11. Relationale Datenbanken und Mathematik?
- 12. Was macht diese Relationale Algebra-Anweisung? (Umwandlung in SQL-Abfrage)
- 13. Relationale Algebra Wie kann ich zwei Bedingungen auswählen?
- 14. Tuple Relational Calculus oder relationale Algebra Syntax Verifier?
- 15. Wie übersetzt man diese englische Aussage in relationale Algebra?
- 16. Wie schreibe ich meine Abfrage in Relationale Algebra?
- 17. Scala: Kreuz (kartesischen) Produkt mit mehreren Quellen und heterogenen Typen
- 18. Algebra und Komplexitätsklassen
- 19. Was wird zurückgegeben? R innere Verbindung S mit (ATTRS) wo R und S haben keine gemeinsame ATTRS
- 20. Wie den Nullwert durch eine äußere in Relationale Algebra Join gegeben wählt
- 21. Konvertieren von SQL in Relationale Algebra - was als nächstes zu tun?
- 22. LINQ und eine natürliche Sortierreihenfolge
- 23. Natürliche Schlüssel und RESTful URLs
- 24. Database- Relationale Algebra natürlich verbindet zwei Tabellen bestehen zwei gleichen Spaltennamen
- 25. Django Relationale Datenbank-Lookups
- 26. Relationale Datenbank Redundanz und Normalisierung
- 27. Yii2 - relationale Daten mit Junction-Tabelle einfügen, viele-viele Verbindung
- 28. Eclipse Plug-in Produkt DB Verbindung
- 29. Typ Algebra und Knuth's Pfeil nach oben
- 30. Relationale Datenbank
Bitte einen Verweis auf die Version der realtional Algebra geben Sie verwenden. Oder beschreiben Sie, was die Teile einer Beziehung sind und wie Sie die Operatoren aufrufen. – philipxy
Haben Sie Ihren (vermutlich passenden) Titel gegoogelt, zB 'Relational Algebra Cross Product und Natural Join site: stackoverflow.com'? – philipxy