2016-12-05 6 views
0

タプル関係の計算に変換する必要がある2つのSQLクエリがあります。SQLからタプル関係の計算と結合する

{w|w ϵ MAKLER ∧ w.Preis < `100000‘} 

しかし第二1:最初のクエリ

SELECT immobilie.* 
FROM immobilie 
WHERE 'Preis'<'100000' 

は(私は右のそれを理解している場合)かなり明白であるように思わ

SELECT makler.* 
FROM makler 
JOIN immobilie 
    ON makler.MaklerID = immobilie.angebotenVon 
WHERE immobilie.Typ = 'Wohnung' 

参加していると私はできませんでしたどのように私はそれを変換する必要がある良い例を見つける。誰も私の説明を助けてくれますか?

+0

私は、最初のクエリの何も ''εMAKLER'を正当化しないので、最初の解決策には同意しません。私はあなたが 'IM IMMOBILIE'を意味するかもしれないと思います。 – SQB

+1

@SQBまた、 '' Preis '<' 100000''は、最初の 'SELECT'では常に* false *です。 –

答えて

1

TRCの資料のほとんどはpdf形式のようです。それは頻繁に使用されるシンボルと関係があります。このプレゼンテーションによればBerkeley CS 106にこれが動作するはず:

{m|m ϵ MAKLER ∧ ∃i(i ϵ IMMOBILIE ∧ i.Typ = `Wohnung‘ ∧ i.angebotenVon = m.MaklerID)} 

基本的に、条件は、要素が別のクエリに存在しなければならないということである。MAKLERから採取した各タプルため'Wohnung'に等しいTypを持つIMMOBILIEに存在∃xistsタプルを確保しますタプルのMaklerIDに等しいangebotenVonが考慮されます。

残念ながら、私は現時点でそれをテストする方法がありません。

+1

あなたは '∃i(iεIMMOBILIE∧i.Typ = 'Wohnung'∧i.angebotenVon = m.MaklerID)'を意味します。 '{x | ...} 'は、wff/formula /述語' ... 'の非x自由(論理)変数の(変数から値へのタプルマッピング) '∃x(...)'は '{x | ...} <> {}'かどうかを示します。 PS TRCのほとんどのバージョンで不幸なことに、クエリは他のクエリから構成されていません。しかし、クエリ式がwffであり、その値がwffを真にする代入セットを保持する関係である場合、クエリは他のクエリで構成されます。 – philipxy

+0

@philipxyありがとう、あなたは絶対に正しいです。サブセットを作成する必要はありません。条件を確認するだけです。 '...∃i(i | iεIMMOBILIE ...')は、サブクエリを独自に実行できるSQLの考え方です。 –

+0

"TRCの資料のほとんどはpdf形式です。" >実際に数学の資料のほとんどはpdf形式です;-) –

1

JOINをCROSS JOINに変換し、WHERE句で条件を移動するだけで済みます。

{ w | ∃i (w ϵ MAKLER ∧ i ϵ IMMOBILIE ∧ w.MaklerID = i.angebotenVon ∧ i.Typ = 'Wohnung') } 
+0

あなたは正しいですが、私はどこにでもmを置く方が理にかなっていますが、OPの表記を保ちましょう –

+0

この記法を調べるためのオンライン資料を提案できますか? ∃i、w∈MAKLER ... '、特に - ∃i、カンマビット? –

+1

コンマは一次論理の一部ではありません。カッコを好都合に置き換えると思うので、わかりやすくするためにコンマを追加しました。データベースコースからTRCを学びました。私のデータベース理論の主な情報源は、http://webdam.inria.fr/Alice/(これは英語の本ですが、フランスのホスティングウェブサイトについて心配しないでください)で自由に入手できるSerge Abiteboulの本です。残念ながら、彼はDRCを使用していますが、これは本当にTRCに近いですが、同じではありません。表記は引き続き使用できます(第5章)。 –

関連する問題