Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LT資料「リレーションって何ですか?RDBの基礎の基礎」

 LT資料「リレーションって何ですか?RDBの基礎の基礎」

Avatar for Makoto Kaneda

Makoto Kaneda

March 23, 2024
Tweet

Other Decks in Programming

Transcript

  1. リ レ ー シ ョ ン っ て 何 で

    す か ? 2 0 2 4 年 3 月 2 3 日 R D B の 基 礎 の 基 礎
  2. こ れ は 何 ? 問 題 (問1) (答) リ

    レ ー シ ョ ン シ ッ プ ( 重 要 ) リ レ ー シ ョ ン で は あ り ま せ ん 。
  3. リ レ ー シ ョ ナ ル モ デ ル

    の リ レ ー シ ョ ン っ て 何 ? 問 題 (問2)
  4. リ レ ー シ ョ ナ ル モ デ ル

    の リ レ ー シ ョ ン っ て 何 ? 問 題 (問2) (答) 集 合 。 R D B で は テ ー ブ ル が 該 当 す る 。 ( 重 要 ) E R モ デ ル の リ レ ー シ ョ ン シ ッ プ   と は 別 物 で す 。
  5. S Q L は (          

    ) 型 言 語 で す 。 問 題 (問3)
  6. S Q L は (          

    ) 型 言 語 で す 。 問 題 (問3) (答) ( 宣 言 ) 型 言 語 メ ジ ャ ー な オ ブ ジ ェ ク ト 指 向 言 語 よ り も 抽 象 度 が 高 い 高 水 準 言 語 で す 。
  7. リ レ ー シ ョ ン と リ レ ー

    シ ョ ン シ ッ プ の 違 い
  8. リレーション リレーションシップ モデル リレーショナルモデル ER モデル 日本語訳 関係(=数学用語) 関連、関係性 意味

    集合 (同上) RDB では テーブル(表) 外部キー制約(等) リ レ ー シ ョ ン と リ レ ー シ ョ ン シ ッ プ
  9. リレーション リレーションシップ モデル リレーショナルモデル ER モデル リ レ ー シ

    ョ ン と リ レ ー シ ョ ン シ ッ プ 両 モ デ ル は 相 性 が 良 い が 、 別 の モ デ ル 。 ・ E R モ デ ル の 考 案 者 : ピ ー タ ー ・ チ ェ ン 教 授 。 ・ リ レ ー シ ョ ナ ル モ デ ル の 考 案 者 : I B M の コ ッ ド 博 士 。   リ レ ー シ ョ ナ ル モ デ ル は 数 学 モ デ ル で す 。
  10. リレーション リレーションシップ 日本語訳 関係(=数学用語) 関連、関係性 意味 集合 (同上) リ レ

    ー シ ョ ン と リ レ ー シ ョ ン シ ッ プ ・ 「 リ レ ー シ ョ ン 」 と 日 本 語 訳 の 「 関 係 」 は 数 学 用 語 な の で 、   一 般 用 語 の 意 味 で 捉 え な い 方 が 良 い 。 ・ 「 関 係 」 と 「 関 連 」 が 紛 ら わ し い の で 、 私 は リ レ ー シ ョ ン を   「 関 係 」 と 呼 ば ず に 「 集 合 」 と 呼 ん で い ま す 。
  11. リレーション リレーションシップ RDB では テーブル(表) 外部キー制約(等) リ レ ー シ

    ョ ン と リ レ ー シ ョ ン シ ッ プ リ レ ー シ ョ ン = ( 行 の ) 集 合             = テ ー ブ ル
  12. • 8つのリレーシ ョナル演 算が 全て備わっ ていることを  「リレーショナル 完備」とい い ます。

      SQLはリレーショ ナ ル完備 な言 語です。 • データ操作が8 つのリレ ーシ ョナル演算 に 抽象化 されて  います。 •「商」以外は私の 実務でも利 用 しています。  (商以外の)リレ ーショナル 演 算をS QLでどう書く か、  学ぶと良いです。 S Q L 本質をざっくり言うと、 SQLはリレーショナル演算 (集合演算)を行うデータ問い合わせ言語。 ・ 和 ・ 差 ・ 共 通 ・ 直 積 ・ 射 影 ・ 選 択 ・ 結 合 ・ 商
  13. S Q L リレーショナル演算のイメージ:数値演算との対比 1 + 2 + 3 =

    6 U N I O N U N I O N = 数値演算 リレーショナル演算 ↑結果テーブル、結果表
  14. S Q L SQLを考える時の手順 U N I O N U

    N I O N = ↑結果テーブル、結果表 (1) どんな結果テーブルが欲しいか(右辺)を決める (2) その結果テーブルを得るための式 (左辺)を、8つのリレーショナル演算を   使用して組み立てる (3) 左辺をSQLで書く。文ではなく式 を書く。
  15. S Q L SQLはどんな 結果テーブルが欲しいかを記述する宣言型言語。 ・whatを記述する。細かいhowは書かない。   → 抽象度が高い 高水準言語

    ・関数型言語と感覚が近い。 こ う い う h o w は 書 か な い 。   → フ ァ イ ル を オ ー プ ン & r e a d し て 、 〇 〇 ア ル ゴ リ ズ ム を 使 っ て 、     ル ー プ を 回 し て 結 果 テ ー ブ ル を 組 み 立 て る 等 々
  16. S Q L モダンなプログラミングでは宣 言的にコ ードを 書くの が良 い とされている

    のに、 なぜか嫌われがちなS QL。 その理由は? S QLが 宣言型言語 ということが認識され てい ないから! リレーションシップをリレーションと勘違い →「 リレーション=集合」に理解が及ばない → リレーショナル演算にも理解が及ばない → SQLをアセンブリ言語みたいな低水準言語だと勘違い リレーションとリレーションシップを混同していることの弊害
  17. ど う 学 ぶ か × • 現 役 エ

    ン ジ ニ ア が 書 い た W e b 記 事 に 要 注 意   基礎の部分なので間違えてはいけないが、ほとんどみんな間違えている • 一 部 の 書 籍   記述が誤っている書籍が結構ある • な ん な ら 、 O R M も 間 違 え て い た り す る     R e l a t i o n s h i p と 命 名 す べ き メ ソ ッ ド を R e l a t i o n と 命 名 し て い る リ レ ー シ ョ ン と リ レ ー シ ョ ン シ ッ プ を 混 同 し て い る 資 料
  18. ど う 学 ぶ か △ • コンピューターサイエンスの先生が書いたWeb記事   リレーショナルモデルを数学から説明している(数式が出てくる)   →

    エンジニアの実務にはオーバースペック気味 • 情報処理技術者試験「データベーススペシャリスト」の教科書   これも数学から説明しているものが多い印象 正 し い け ど 記 述 が 難 し い 資 料
  19. ど う 学 ぶ か 〇 • ミ ッ ク

    さ ん の 本     有 名 な 方 な の で 、 「 ミ ッ ク D B 」 で 検 索 す る と す ぐ に 出 て く る • ミ ッ ク さ ん が 執 筆 協 力 し て い る 入 門 書     例 : 「 基 本 が わ か る S Q L 入 門 」 西 村 め ぐ み 著 • 古 い 本 で す が . .   「 デ ー タ ベ ー ス お も し ろ 講 座 」 飯 沢 篤 志 ( 著 ) 、 白 田 由 香 利 ( 著 )     → 名 著 。 正 し い し わ か り や す い 。 た だ し S Q L 等 、 古 く な っ て い る リ レ ー シ ョ ン と リ レ ー シ ョ ン シ ッ プ を 正 し く 説 明 し て い る 資 料
  20. O R M に つ い て 一 言 私がORMについてどう考えているかは、Qiitaの記事に書きました。

       https://qiita.com/kanedaq/items/28ab2df 0f b3b71ea9f ba 基 礎 ( 本 資 料 の 内 容 ) を 理 解 し な い ま ま 、 O R M v s . S Q L の 議 論 を し て も 意 味 が な い 。
  21. 今 回 の チ ー ム 開 発 を 通

    し て 、 新 型 O R M の 存 在 を 知 る こ と が で き て 、 と て も 有 意 義 で し た 。 Thank you!