問題タブ [relational-algebra]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
171 参照

scala - List[Map[String,A]] を scalaquery のデータベース テーブルに

昨日スカラクエリについて学んだばかりで、役に立ちそうです。List[Map[String,A]] (A はプリミティブ型 - Int、Float、String などで、各マップのキーのセットは同じ) をデータベース テーブルに変換したいと思います。scalaquery で動的テーブル作成の例を見つけることができませんでした (列の数、つまりキーの数が動的です)。

基本的に、私はこの (および関連する) コレクションでリレーショナル代数を行うことに興味があります。計算されたスカラクエリが最適です。そうでない場合は、代替案を提案してください。

0 投票する
1 に答える
7234 参照

relational-database - 与えられた FD:s から候補キーを見つける方法は?

一連の機能依存関係と出力候補キーを入力として取る練習をしています。アルゴリズムはありますか?そのような場合、FD:s を入力し、出力としてスーパーキー/候補キーのリストを取得できる Web ベースの実装はありませんか?

ここSOで見つけたものを練習します。適切な質問は 、言及された機能的依存関係がある特定の関係の最高の正規形を見つける方法です

B->G

BI->CD

EH-> AG

G-> DE

候補キーが BFHI であることを確認しようとしたときに、これを正しく行っているかどうかを確認してください。

FD B->G は ABCDEFHI->ABCDEFGHI と書き換えられるため、ABCDEFHI はスーパーキーです。FD BI->CD は ABEFGHI->ABCDEFGHI と書き換えられるため、ABEFGHI はスーパーキーです。FD EH->AG は BCDEEFHI->ABCDEFGHI と書き換えることができるため、BCDEEFHI はスーパーキーです。FD G->DE は ABCFGHI->ABCDEFGHI と書き換えられるため、ABCFGHI はスーパーキーです。

私たちのスーパーキーでは、BFHI はすべてのキーにあります。したがって、BFHI は候補キーであり、検査からわかるようにこれ以上減らすことはできません (?)

私はこれを正しい方法で推論していますか?

拡張アルゴリズムが処理できる別の問題があります。それが機能する場合、 データベースの無関係な属性と分解

ここで、FD:s は

A->BCD

BC->DE

B->D

D->A

ここで、FB A->BCD は AEF->ABCDEF として記述できるため、AEF はスーパーキーです。FD BC->DE は ABCF->ABCDEF として書き換えられるため、ABCF はスーパーキーです。FD B->D は ABCEF->ABCDEF と書き換えられるため、ABCEF はスーパーキーです。FD D->A は BCDEF->ABCDEF として書き換えることができるため、BCDEF はスーパーキーです。すべてのスーパーキーについて、F はすべてのスーパーキーに含まれる唯一のメンバーであるため、F が唯一の候補キーです。

これは機能しますか?

回答/コメントをありがとう

0 投票する
3 に答える
224 参照

mysql - 動的な失敗しない where 句の構築

ユーザーがデータベースからレコードを取得するインターフェイスを構築しました。ユーザーには、0 個以上のフィルターを指定するオプションがあります。A、B、C、D の 4 つのフィルターがあります (これらが特定のテーブルのフィールドであるとしましょう)

私のクエリは次のようになります。

クエリを作成する方法を考えていますが、特定のフィルターが指定されている場合は適用され、指定されていない場合は無視されます。しかし、これは 16 のケースすべてに当てはまるはずです。

これまでに思いついたのは、次の方法です。

v1またはその他の値が指定されていない場合は、-1 に設定されます。したがって、それらが指定されていない場合は、他のフィルター (A、B、C の中から) が使用されるため、単純に無視されます。ただし、A、B、および C のいずれも指定されていない場合、これは失敗します。その場合、false は D と Anded であり、D は適用されません。

この場合、where 句を使用する方法はありますか? 私は、コードを介して句を追加するか追加しないかで、これに対するプログラムによる解決策にもオープンですが、私はこの方法を好みます。そして、多くの if-else ステートメントを持ちたくありません。

ありがとうございました!

0 投票する
3 に答える
3838 参照

sql - 関係代数の自然結合

こんにちは、試験が迫っていますが、模擬試験の 2 つの問題について講師からあまり助けを得られません。彼女は答えを提供しましたが、答えについての私の質問には答えていません。ここにいる誰かが答えがそのようになっている理由を説明できることを願っています.

次の 2 つのテーブル R および S とそのインスタンスを考えてみましょう。


答えは(a,b,c)、なぜそうではないの(a,a,b,c)ですか?投影はそれを区別しますか?


答えは(a,b,c,f)、なぜa答えなのですか?b=d 値が x と z の両方の場合、なぜこれが出力されるのでしょうか?

0 投票する
2 に答える
3142 参照

sql - サブクエリなしで SQL クエリを書き直す (having 句のサブクエリ)

最終試験では、かなり厄介な SQL、リレーショナル代数、リレーショナル微積分クエリを取得しました。私はこのクエリを得ました:

カテゴリ「コンピュータ」のすべての製品を注文したクライアントの名前を見つけます。(パソコンカテゴリー全商品ご注文のお客様)

スキーマは次のとおりです。

顧客 ( Customer_Id、Cust_First_Name、Cust_Last_Name)

注文 ( Order_Id , *Customer_Id*)

Order_items ( Order_Item_id , *Order_Id*, *Product_Id*)

Product_info ( Product_Id、 Product_Name 、 Category)

ボールド (主キー)、イタリック (外部キー)

このクエリをリレーショナル代数に変換するには、サブクエリではなく結合を使用する必要があります。少し自分を助けるために、まず SQL を書き、次に SQL クエリをリレーショナル代数に変換します。

ここに私の試みがあります:

1を試してください(サブクエリを使用):

2 を試してください (having 句で 1 つのサブクエリを使用):

3 を試してください (from 句のサブクエリ):

現在、このクエリは関係代数で表すことができますが、値が重複するため非効率的です。

私の最後の試み(これはコンパイルせず、どこでサブクエリを使用します):

この場合、LATERALを使用できるとどこかで読みましたが、LATERALに関する情報がほとんどないため、正しく理解できませんでした。

試験は終わりましたが、解決策についてはまだ興味があります。この 6 つのクエリ、ER ダイアグラム、ER-To-Relational、BCNF への正規化、3NF を含む 2 時間の試験だったので、このクエリを解決するのがいかに難しいかが頭に浮かびます。ここで重要な何かが欠けていますか?

これは私を少し助ける小さなサンプルデータです:

http://pastebin.com/DkCe0AGm

前もって感謝します。

0 投票する
2 に答える
830 参照

relational-algebra - 自然結合は設定差を超えて分散しますか?

r1 ⋈ (r2 - r3) = r1 ⋈ r2 - r1 ⋈ r3

ここで、r1 r2 と r3 はリレーションです

そうでない場合、例は何ですか?

0 投票する
2 に答える
373 参照

sql - SQLから関係代数へ

テーブル:

上記は3つのテーブルのDBです。いくつかの単純なSQLステートメントをRAに変換する必要があります。

RAの場合:

上記は完全ではありません、私はちょうど私が正しい軌道に乗っているかどうかを知る必要があります。RAに関する情報は限られています。

0 投票する
2 に答える
66 参照

database-design - 関係でアイデンティティを示す列のセットを検索します

このリレーションの行のアイデンティティを表す、リレーション内の属性のサブセットをアイデンティティセットと呼びましょう。同時に、このアイデンティティセットから属性のいずれかを除外すると、結果の属性セットはアイデンティティセットになりません。サブジェクトエリアに、特定のIDセットに属するすべての属性の値が一致する2つの行を同時に存在させることはできませんが、少なくとも1つの属性の値が異なる場合は存在する可能性があります。

たとえば、属性A、B、C、DおよびIDセット{A、B}との関係を想定します。

この関係では、2行目と4行目はIDセット{A、B}で同じ値(1,3)を持っているため、相互に排他的であり、この関係はサブジェクト領域では許可されていません。

任意の関係にあるすべての「アイデンティティセット」を見つけるための形式化された手法はありますか?

0 投票する
2 に答える
311 参照

rdbms - RA演算子の違い - 関係代数

PROJECT A(r − s) と PROJECT A(r) − PROJECT A(s) は RDBMS で表現がどう違うのか混乱しています。上記を証明する例を誰かが示すことができますか?

0 投票する
2 に答える
1678 参照

relational-database - RMDB のテーブルの「列」には順序がありますか?

テーブル内のタプル(行など)に関する順序の概念はないことを学びましたが、ウィキペディアによると、「タプルは要素の順序付きリストです」。属性には順番があるということですか?はいの場合、なぜそれらが異なる方法で扱われるのでしょうか? テーブルに別の列を追加することはできませんでしたか? (これがタプルに順序がない理由です)

「この表記法では、属性と値のペアは任意の順序で表示されます。」これは、属性に順序がないことを意味しますか?