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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

 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!