タグ付けされた質問 「relational-algebra」

3
サブクエリは、SQLクエリに表現力を追加しますか?
SQLにはサブクエリが必要ですか? 関係データベース用の構造化照会言語の十分に一般化された実装を想像してください。正規のSQL SELECTステートメントの構造は、これが意味をなすために実際に非常に重要なので、リレーショナル代数に直接アピールしませんが、式の形式に適切な制限を加えることで、これらの用語でこれを組み立てることができます。 SQLのSELECTクエリは、一般的に投影(から成るSELECT部分)のいくつかの数JOINの操作(JOINパート)、いくつかの数SELECTION の操作(SQLにおいて、WHERE句)、セット単位(操作UNION、EXCEPT、INTERSECT、など)、他の続きますSQL SELECTクエリ。 結合されるテーブルは、式の計算結果にすることができます。言い換えると、次のようなステートメントを作成できます。 SELECT t1.name, t2.address FROM table1 AS t1 JOIN (SELECT id, address FROM table2 AS t3 WHERE t3.id = t1.id) AS t2 WHERE t1.salary > 50,000; SQLクエリの一部として計算テーブルをサブクエリとして使用することに言及します。上記の例では、2番目の(インデントされた)SELECTサブクエリです。 すべてのSQLクエリは、サブクエリを使用しないように記述できますか?上記の例は次のことができます。 SELECT t1.name, t2.address FROM table1 AS t1 JOIN table2 AS t2 ON t1.id = t2.id WHERE …

2
Cのvoid型がempty / bottom型と類似していないのはなぜですか?
ウィキペディアと私が見つけた他のソースはvoid、空のタイプではなくユニットタイプとしてリストCのタイプを見つけました。void空の/下の型の定義によりよく適合するように思えるので、この混乱を見つけます。 void私が知る限り、値は存在しません。 戻り値の型がvoidの関数は、関数が何も返さないため、何らかの副作用しか実行できないことを指定します。 タイプのポインターvoid*は、他のすべてのポインタータイプのサブタイプです。また、void*C との間の変換は暗黙的です。 最後の点voidに、空の型であることの引数としてのメリットがあるかどうかはわかりvoid*ませんvoid。 一方、voidそれ自体は他のすべてのタイプのサブタイプではありません。これは、タイプがボトムタイプであるための要件であると言えます。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

6
要素の繰り返しなしでペアのセットから組み合わせを生成する
ペアのセットがあります。各ペアの形式は(x、y)で、x、yは範囲の整数に属します[0,n)。 したがって、nが4の場合、次のペアがあります。 (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) 私はすでにペアを持っています。次に、n/2整数が繰り返されないようにペアを使用して組み合わせを作成する必要があります(つまり、各整数は最終的な組み合わせで少なくとも1回出現します)。理解を深めるための正しい組み合わせと間違った組み合わせの例を次に示します 1. (0,1)(1,2) [Invalid as 3 does not occur anywhere] 2. (0,2)(1,3) [Correct] 3. (1,3)(0,2) [Same as 2] ペアができたら、可能性のあるすべての組み合わせを生成する方法を誰かが提案できますか?

2
「差分」操作は、「結合」をすでに含むクエリ言語に表現力を追加しますか?
集合差演算子(たとえば、EXCEPT一部のSQLバリアント)は、関係代数の多くの基本的な演算子の1つです。ただし、差集合演算子を直接サポートしていないデータベースもありますがLEFT JOIN(外部結合の一種)、実際には同じ効果を得るために差集合操作の代わりにこれを使用できます。 これは、LEFT JOIN演算子が維持されている限り、クエリ言語の表現力が集合差演算子がなくても同じであることを意味しますか?この事実をどのように証明しますか?

1
カテゴリー理論(のサブセット)と関係代数の間に同型はありますか?
ビッグデータの観点から来ています。基本的に、多くのフレームワーク(Apache Sparkなど)は、Functor / Monadのようなインターフェイスを提供することにより、リレーショナル操作の欠如を「補償」し、cats-to-SQL変換(ScalaのSlick)への同様の動きがあります。たとえば、SQLパースペクティブからの要素ごとのベクトルの乗算には、自然な結合(インデックスの繰り返しがないと仮定)が必要です。これは、カテゴリ理論のアプリケーションでzip + map(multiply) (SparkのMLibが既に持っているElementwiseProduct)と見なすことができます。 簡単に言うと(以下の例はScalaにあります): 参加の参照サブケースは、その順番で私たちを与えるのApplicativeファンクタ(オーバー分別収集)、と考えることができますzip:List(1,2,3).ap(List(2,4,8).map(a => (b: Int) => a * b))- > (List(1,2,3) zip List(2,4,8)).map(x => x._1 * x._2)。さらに、いくつかの前処理(groupBy演算子または単なる射影、または一般に-エピモーフィズム)を想定して、他の結合に誘導することができます。 他の結合と選択はモナドと考えることができます。たとえば、WHERE次のとおりです。- List(1,2,2,4).flatMap(x => if (x < 3) List(x) else List.empty)>List(1,2,2,4).filter(_ < 3) データ自体は単なるADT(GADTでもあります)であり、単純なSet-category(またはより一般的に言えば-デカルト閉)のように見えるため、Setベースの操作(カリーによるHoward-Lambek自体)およびRENAME(少なくとも実際には)同様の操作。 集約はfold/reduce(カタモフィズム)に対応 だから、私が求めているのは、カテゴリ理論(のおそらくサブセット)と(全体の)関係代数の間の同型を構築できるか、または何かが明らかにされているということですか?それが機能する場合、カテゴリの正確な「サブセット」は正代数と同型ですか? logic-cats-lambdaのCurry-Howard-Lambek対応のような正式なソリューションはより正確ですが、実際には、完成した研究への参照を求めています(直接的な関係を示しています) )Scala / Haskellでさらに例を示します。 編集:受け入れられた答えは、私がモナドとして結合と条件を表現しすぎていると考えさせました(特に事実上FALSEをインスタンス化する空の値を使用して)、少なくともSQLのrelalgebraサブセットについてはプルバックで十分だと思います。モナドは、GROUP BYのような高次(ネスト)のものに適しています。これは、代数の一部ではありません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.