問題タブ [functional-dependencies]

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 投票する
1 に答える
986 参照

database - Minimum cover of set of functional dependency

I was going through the conditions of minimum cover of a set of function dependencies.

Here, it is mentioned that the right hand side can have only single attribute. So {A1A2 → B1B2} is not possible. It should be split as {A1A2 → B1, A1A2 → B2}.

But in DBMS by Korth, the following condition is there

So, according to this {A1A2 → B1, A1A2 → B2} is not possible. The dependencies should be combined as {A1A2 → B1B2} to avoid repetition.

Please clarify which is correct.

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

haskell - Haskellは重複するインスタンスをどのように解決しますか?

間違った用語を使用している場合はご容赦ください。私は haskell 型操作の初心者です... HList を使用して型レベルのプログラミングを行うために、関数の依存関係を持つ重複するインスタンスを使用しようとしています。

ここでの私の目的は、 typeclass を試して書くことですHNoNils l l'。これは、リスト型 (例: ) である場合、特定の空の型を持たない対応するリスト型( example: の結果) であるHNoNils l l'ことを意味します。lInt : String : EmptyNil : Int : HNill'EmptyNilInt:String:Int:HNil

ただし、このコードをそのまま実行すると、すべてのhNoNils呼び出しが、最も具体的でない 2 番目のインスタンス宣言によって解決されるように見えlますHNoNils l l

私が読んだことに基づいて、OverlappingInstances拡張機能を使用すると、システムは常に最も具体的なインスタンスに解決されるはずです。

ここ

  • 最初のインスタンスには制約があります(HNoNils l l',TtEq e EmptyNil True )

  • 2 番目のインスタンスには制約がありますHNoNils l l'

私が間違っていたらすみませんが、最初のインスタンスは 2 番目のインスタンスよりも具体的なようです。

オーバーラップを取り除くために制約を追加しようとしました。つまり、2 番目のインスタンスに別の反対の等式制約を追加してみました。

ここで重複するインスタンス拡張機能を削除しようとしましたが、重複エラーが発生しています。

2戦目はわかりません。結局のところ、この解像度では、e は EmptyNil に等しいので、TtEq e EmptyNil True... ですよね? さらに言えば、型システムがこの質問をしている状況にどのように到達するのでしょうか。結局のところ、制約があるため、そのような状況になることは決してありHNoNils (Hcons EmptyNil l) (HCons EmptyNil l'))ません。

OverlappingInstances を追加し直すと、理解できないさらに奇妙なエラーが発生します。

2 番目のステートメント はTtEq EmptyNil EmptyNil False、関数呼び出しによってインスタンスが生成されたと言っているようです...? どこから来たのか少し混乱しています。

だから、これを理解しようとして、私は疑問に思っていました:

  • Haskell がインスタンスでどのように機能するかについて、より詳細な情報を得ることができますか? これらの組み合わせのいくつかは不可能に思えます。メカニズムを説明するドキュメントへのリンクだけでもいただければ幸いです

  • どのように機能するかについて、より具体的な定義はありOverlappingInstancesますか? 私は何かが欠けているように感じます(おそらく「特異性」引数は、制約の数ではなく、型変数でのみ機能します...)

編集:したがって、CA McCannの提案の1つ(制約の一部を削除)を次のように試しました:

これを行うと、いくつかの厄介な重複インスタンスエラーが発生します:

解決方法がボトムアップではなくトップダウンであるかのように感じます (システムがこのようなインスタンスを見つけようとしない場合)。

編集 2 : 2 番目の条件に小さな制約を追加することで、期待どおりの動作が得られました (McCann の回答に関するコメントを参照してください)。

ここで追加さr~HCons e l'れたのは、2 番目のインスタンスに対する制約です。

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

database - BCNFに分解

R = {A,B,C,D} および FD = C→D,C→A,B→C とします。

1. キー 2. 含まれている NF 3. BCNF (可能であれば、まだ含まれていない場合)

だからここに私がこれまでに持っているものがあります:

  1. キーは B です。これは、D と A を決定する C を推移的に決定するためです。
  2. 依存関係はキー全体にあるため、2NF にあります。
  3. R1 = {B,C} R2 = {C, A, D}
    • ここで問題があります。マークスキームは、RをAC、BC、およびCDに分解することを示しています。しかし、なぜ私の答えは正しくないのでしょうか? 私は FD が C -> {A,D} であると言っていますか? もしそうなら、この違いは C -> A と C -> D ですか?
0 投票する
4 に答える
51082 参照

database - 機能依存関係を判別する方法

私は現在、大学のプロジェクトに取り組んでおり、機能依存関係の部分について少し混乱しています。このプロジェクトでは、独自のプロジェクト仕様に基づいて論理データ モデルを作成し、機能の依存関係も決定する必要がありました。

たとえば、「User」テーブルに次の属性を指定しました。
R(user_id、ユーザー名、regDate、タイプ、サブスクリプション)

主キー: user_id
一意のキー:ユーザー名
外部キー:サブスクリプション

データセットの例は次のようになります。

1, JohnS, 01-01-2012, 管理者, NULL
2, PeterB, 02-01-2012, モデレーター, 映画
3, PeterA, 02-01-2012, ユーザー, 映画
4, Gary, 03-01-2012, ユーザー, ブックス
5, アイリーン, 2012 年 3 月 1 日, ユーザー, 映画
6, スタン, 2012 年 3 月 1 日, ユーザー, 映画
7, アイザック, 2012 年 4 月 1 日, ユーザー, ブックス

私が理解していない部分は、機能の依存関係をどのように判断するかです。私の最初の感覚は、2 つの機能的な依存関係があり、これらは次のとおりであるということでした:
user_id -> username、regDate、type、subscription
username -> user_id、regDate、type、subscription

しかし、講義スライドの他の例を見ると、これが正しいかどうか疑問に思っています。

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

functional-dependencies - 機能依存性から候補キーを見つける

次の機能依存関係を持つリレーション{A、B、C、D}の場合-

サイトの1つで見つけた特定の方法を使用して、候補キーをABCDとして取得しています。そうですか?正しい候補キーは何ですか?

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

haskell - MultiParamTypeClasses、FunctionalDependencies、およびあいまいな関数の呼び出し

関数従属性を使用して、Fooクラスを宣言できます。

私が電話するとfoo2、すべてが正常に機能します。コンパイラは、依存関係があるため、使用するインスタンスを認識しています。

しかし、依存関係を削除して作成するとFoo'

すべてが正常にコンパイルされますが、GHCを呼び出そうとすると、あいまいなfoo2'ために使用するインスタンスを解決できないというエラーがスローされます。b

foo2'エラーなしで電話をかけることは可能ですか?もしそうなら、どのように?そうでない場合、なぜコンパイルエラーが発生しないのですか?

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

database - ボイスコッドの正規形の識別

私は3NFとBCNFの違いに頭を悩ませようとしています。私はそこに到達していると思いますが、誰かが助けてくれるといいですね。

以下は、第3正規形の一連の関係です(関数従属性の識別から盗まれ、Connolly&Beggのデータベースシステムからそれらを取得しました)。

各物件の所有者は1名のみで、クライアントはそれらの物件を借りることができます。家賃は物件ごとに固定されていると仮定します。

だから私の質問は:これらはBCNFにもありますか?

私の勘は、ClientRentalの関係はPropertyNo->ownerNoだからではありません。したがって、PropertyNoは機能依存性の決定要因ですが、スーパーキーではありません。

正しい球場の近くにありますか?

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

database - ボイス・コッドと候補キーの検索

ボイス・コッドを理解し、候補キーを見つけるために必死の助けが必要です。ここでリンクを見つけましたhttp://djitz.com/neu-mscs/how-to-find-candidate-keys/ほとんどの部分は理解できましたが、行き詰まりました

例えば

(ABCDEF)

AB → CDE

BCD→A

紀元前 → 西暦

BD→え

私がリンクから理解している限り、私はあなたがBのみである左からの共通セットと、どれでもない右からの共通セットを見つけることを知っています

ここからどこへ行けばいいですか?すべての候補セットに B が含まれることはわかっていますが、その後、候補セットを見つけるためのガイダンスが必要です。誰か簡単な言葉で説明して

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

sql - 関数従属性を推測するための反射性公理

ご存知のように、リレーショナルデータベースのすべての関数従属性を推測するための3つのアームストロングの公理があります。(X、Y、Zは属性のセットです)

  1. 再帰性: X⊆Yの場合、Y→X
  2. 拡張X→Yの場合、任意のZに対してXZ→YZ
  3. 推移性X→YおよびY→Zの場合、X→Z

たとえば、そのようなスキーマがある場合、拡張と推移性を理解します。

SOME_SCHEMA(a、b、c、d)

そのような機能依存性を持つ:

  1. a→b
  2. b→c

拡張を使用することでac→bcを取得するか、推移性を使用することで→cなどを取得できますが、再帰性の公理を使用してより多くの関数従属性を推測する方法がわかりません。一部の属性が他の属性のサブセットであることは、実際にはどういう意味ですか?

私のスキーマを使用した例、または独自のスキーマを作成した例を教えてください。

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

haskell - Haskellで関数従属性を持つ型クラス関係を表現する

私は3つの関連する型クラスを持っていることを表現したいと思います。

2つのファイルがあります。初め:

2番:

私が得るエラー:

私は何が欠けていますか?