2018-10-26

増田プログラマー養成講座 その12 データベース参考書

前回は、MySQLphpMyAdminを使って、リレーショナル・データベースRDB)を少し触ってみた。

今回は、RDBの使い方や仕組みについて理解を深めるための資料を探してみよう。

 

本は、買う価値のある本と、買わなくてもいい本の2種類があるね。

  • 買う価値のある本:何度も読み返す本。
  • 買う価値のない本:1度読んだら終わりの本。(図書館で借りる。図書館にない場合は買う。読み終えたら古本屋などに売却)

どちらの本かは自分判断で決めよう。(1度で理解できない本は、何度も読み返すことになるだろう。)

 

初めてRDBを使う人のためのガイダンス

本書は,新人エンジニアデータベース全般について勉強したいとき最初に読む本です。

データベースに関する知識を広く浅く網羅的に紹介してた。

最初に読めば、DB全体を俯瞰する地図を手に入れたようなもの。その後の見通しが良くなる。

 

入門書(初級レベル

本書はMySQLをはじめて触る方を対象として,開発環境の準備からSQL基本的な書き方,PHPによるWebシステム開発まで,図解でわかりやす解説します。

MySQL入門書カラフルな図解が分かりやすい。

まずは、データ操作の基本「CRUD」(Create=追加、Read=取得、Update=更新Delete=削除)を理解しよう。

CRUDが分かれば、DBを使ったWebアプリを作れる。→ここがIT土方の最低レベルだぜ!

 

豊富な図解とていねいな解説により、やさしく・楽しくデータベースSQL学習できる入門書です。

本書は、データベース操作する問合型言語SQL」の文法練習できる。

SQLが読める&書けるようになれば、RDBを使ったプログラミングで苦労しなくなる。

 

 

 

上記2冊の入門書程度の知識を身に付ければ、RDBに関しては初心者から脱却できるはずだ。

RDBを使うプログラムを作るなら、まずはこの程度の知識クリアしておけば、十分だろう。


次の段階では、既存DBを使うだけでなく、「ゼロからDB設計、構築してくれ」と頼まれるようになるはずだ。

時間があったら、DB設計スキルを身に付けておこう。

(以下の話は、今の段階では無視してもOKRDBにある程度慣れたら読んでみて!)

 

 

 

ミックさんのDB

データベースの本はいろいろあるけど、「ミック」という人が書いた本はRDBの要点がまとまってるので、なるべく早い段階で一通り目を通しておくことをお勧めする。(ミックさんの本は買って何度も読み返してる。)

 

DOAデータ中心アプローチ

RDB設計方法はいろいろあるが、古典的手法として「DOA」(データ中心アプローチ)がある。

なぜこの古臭いDOAが、今でも重要なのだろうか?

DOAと、他の「OOAObject Oriented Approach:オブジェクト指向アプローチ)」「POA(Process Oriented Approach:プロセス中心アプローチ)」を比較した図を見てみよう。

OOAは、言い方を変えれば、

[ユーザー] ←→ [プログラム] ←→ [DB]

という流れになっている。

まりユーザーから見ると、間にある[プログラム]は、[DB]を包んでいる「ラッパー」でしかない。

=[DB]のデータ構造スキーマ)さえシッカリしていれば、間にある[プログラム]は取り替えてもあまり困らない。

 

RDBを使うシステムなら、DB設計プログラム設計よりも重要になる。

(後で[プログラム]を変更するよりも[DB]を変更する方が影響は大きい)

から今日でもDOAは十分に役立つ手法だと思って理解して欲しい。

 

DOAは、ざっくりと3ステップでやる。

  1. 分析会社業務などを分析して、データCRUDが発生してる所を列挙する。
  2. 論理設計データ間の関係分析して、「ER図」を作る。
  3. 物理設計ER図を基にして、DB設計する。

慣れたらER図を書かなくても、頭の中で思い浮かべるだけでもテーブルを作れるようになる。

 

最初DOAを知っておけば、今後他の設計方法を使うときでも、比較検討基準として使えるので、損はないはずだ。

それでは、DB設計の本を見てみよう。

 

DB設計(中級レベル

初級者が押さえておくべきDB設計の基礎知識ポイント正規化非正規化のケーススタディテーブル設計のやってはいけないバッドノウハウ、注意すべきグレーノウハウなどを丁寧に解説します。

DB設計入門書。著者はミックさん。

DOA正規化階層構造木構造)のデータの扱い方など、DB設計の基本を網羅的に説明している。

 

現場で使えるアイデアが満載 デキるDBエンジニアになろう!

私が設計スキルを付けるために実際に行ってきた「身の回りのものを題材にERDを書く」という方法サンプルを今回は8種類書き下ろさせていただきました。

手前味噌ではありますが、本書をお読みいただき実践していただくことで「実務で具体的に手が動く」というレベルに達していただけると考えています

DB設計入門書

DOAの考え方、ER図の書き方などが説明されている。

 

RDB理論上級レベル

RDBSQLは「関係代数」という数学が、その基礎を支える理論になっている。

関係代数」などを解説

RDBを改造したり、自作したくなったら、RDB原理を知っておきたい。

この手のコンピューターサイエンスの本って、難しくてつまらない本が多いけど、この本は図解が多くて、珍しく分かりやすい本だったw

 

ネット

本の情報は、出版された瞬間から陳腐化が進む。

最新の情報は、ネット確認することができる。

 

公式サイトオンラインマニュアル

自分が使うデータベースマニュアルは最も基本的な1次情報になるので、不明点があったらまず確認するようにしたい。

など、公式サイトオンラインマニュアルをチェックしておこう。

 

ミックさんの解説記事

ミックさんは、ネットでもDB技術論の記事を公開されており、参考になるかも?

(↑無料Webサーバー「Yahooジオシティーズ」は2019年3月閉鎖予定なので、読むなら今のうち?)

 

階層構造になっているデータカテゴリー情報など)をRDBに保存するとき、主なやり方が3通り紹介されてた。(上記の本でも紹介されてる)

  1. SQLで木と階層構造データを扱う(1)――入れ子集合モデル
  2. SQLで木と階層構造データを扱う(2)――経路列挙モデル
  3. SQLで木と階層構造データを扱う(3)――入れ子区間モデル

自分は(2)の「経路列挙モデル」が分かりやすくて、いつも使ってる。

 

…という具合に、ネット上の公開記事にも参考になる情報がたくさんあるよ。

(ここまでの説明URLを9個張ってしまったので、もうこれ以上URLを張れない。><

他にもGoogle検索などで役立つ記事を探してみよう!(唐突な締めw)

 

NoSQL

データストア(データを保存する道具)は、RDB以外にもいろいろある。→「NoSQL」とか呼ばれている。(自分検索してみてw)

RedisHadoop、ElasticSearch、OpenStack…いろいろな道具が発明されてるね。

RDB以外のデータストアを使うときでも、RDBと相違点を比較しながら学べば、取っ掛かりが持てて、理解スムーズになるだろう。

RDBは、知っておいて損はない。使いまくって、体得しよう!

 

まとめ

RDBSQLパズルみたいなものから、楽しんで学んで欲しい。

 


anond:20181015215004 未経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

anond:20181023184616 増田プログラマー養成講座 その10 OOP参考書

anond:20181024214133 増田プログラマー養成講座 その11 データベースを使ってみよう

anond:20181026145516 増田プログラマー養成講座 その12 データベース参考書 ←★今ここ★

anond:20181028152656 増田プログラマー養成講座 その13 SQL文法

anond:20181024214737 増田プログラマー養成講座 コンテンツ一覧

記事への反応 -
  • 増田式プログラマー養成講座 その11 データベースを使ってみよう

    前回まで手続型言語の基本(構造化プログラミング、オブジェクト指向プログラミング)を見てきた。 今回から問合型言語のSQLを学び、データベース(DB)を使ってみよう。   データベ...

    • 増田式プログラマー養成講座 その10 OOPの参考書

      前回はオブジェクト指向プログラミング(OOP)の使いどころを学ぶために、MVCフレームワークを使ってみました。(ほんの触りだけ) 今回はOOPの理解を助けるための参考書を探してみま...

      • 増田式プログラマー養成講座 その9 MVCフレームワーク

        前回はオブジェクト指向プログラミング(OOP)で使う様々な仕組みについて学びました。 今回はOOPでWebアプリを作ってみよう!   今日学ぶこと MVCフレームワークとは? PHPのMVCフレ...

        • anond:20181022232327

          PHPのスクリプトを増田に投稿するとき、「<」や「>」をエスケープしないで記事を書いてたら、IPアドレスでアクセス制限がかけられてしまった。 =はてなの他のサービスのWebペー...

          • anond:20181022233535

            今見たら、増田にアクセスできるようになってた。 アクセス制限されても、数時間経ったら自動的に制限が解除されるのかも? Thank you! → はてなの中の人

          • anond:20181024214737

            ブクマありがとうございます。ちょっとバズってたみたいでビックリしました! 増田式プログラマー養成講座 コンテンツ一覧 http://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20181024214737   アク...

        • anond:20181022232327

          悪いことは言わない Laravel使っとけ

      • 増田式プログラマー養成講座 その8 OOPの仕組み(後半)

        前回に続いて、今回もオブジェクト指向プログラミング(OOP)の基本的な仕組みを見ていこう。   教材は、ドットインストールのPHP入門です。 PHP入門 (全30回) - プログラミングならド...

        • anond:20181020230044

          誰も読んでねえしつまんねえしセンス無いから止めた方がいいぞ

          • anond:20181020230633

            あー、別に全然構わないけど? これはある意味、かつての自分に向けて書いている手紙なんだ。 自分が初心者だったときに、聞きたかった説明を勝手に増田に書いている。 自己満足で...

            • anond:20181020231617

              受け取り手のことを考えずに 誰にも求められてないことをベラベラ話すのがまさにキモオタの特徴 こういう奴がいるからエンジニアの印象が悪くなる

              • anond:20181020232302

                テレパシーがないのに、見えない相手のプロファイリングができるわけないじゃんね?w 対面で話すなら、相手に合わせられるけどねw

                • anond:20181020233005

                  物書きは見えない読者を想定して文章を作る 技術者のドキュメントも同じ これができない奴はどんな仕事やらせても駄目だろうな 言われたものを作るだけで責任の無い末端技術者で終...

                  • anond:20181020233446

                    ペルソナは想定してるに決まってるじゃんw →初心者

                  • anond:20181020233446

                    まあ、おまえには説明できないことは、自明ですが? いるよねー、口先だけ達者な奴。 他人に騙されないためには「言ってることじゃなく、実際にやってること」を見る必要がある。(...

          • anond:20181020232302

            ならおまえが説明してみろや? 添削してやってもいいぜ? おまえは口先だけの能無しだから、書けるわけねえけどなw(確信)     …と煽れば、もしかしたら顔を真っ赤にしたスー...

          • anond:20181020230633

            新人の部下に教育ができない無能な上司? 上司がアホだと部下は苦労するよね?

      • 増田式プログラマー養成講座 その7 OOPの仕組み(前半)

        前回は「オブジェクトとは何か?」を説明した。 今回はオブジェクトの使い方=オブジェクト指向プログラミング(OOP)で用意されている仕組みを見てみよう。 とりあえずPHPで仕組みを...

        • 不等号の増田記法 < >

          文字実体参照一覧 http://rinrin.saiin.net/~aor/hms/cer 数値文字参照を使えば、増田で半角文字の不等号が書ける。 不等号 小なり < (<) < (<) < (&60;) 不等号 ...

        • anond:20181019181549

          しっかり書き続けてくれていて嬉しい

      • 増田式プログラマー養成講座 その6 OOPの種類、PHPの準備

        前回は、オブジェクトの説明をした。 今回は、オブジェクトの使い方=オブジェクト指向プログラミング(OOP)を学ぼう。   OOPの種類 オブジェクト指向プログラミングには、 クラス...

        • 増田の致命的な欠陥!?

          増田でプログラミングの記事を書こうと思ったら、コードが貼り付けられなかった。 スクリプトの記述はエスケープされてしまい、はてな記法も使えなかった。 仕方ないので、コード無...

          • anond:20181017192611

            Qiitaでやれよ

            • anond:20181017192644

              Qiitaって評判悪いね?   Qiitaは潰れて欲しいのに・・・ https://anond.hatelabo.jp/20181017203823 Qiitaで何があったのか https://anond.hatelabo.jp/20150127003906

              • anond:20181018075427

                殺人犯出してる増田の評判にはかなわない

                • anond:20181018142423

                  増田の殺人犯T氏はQiita評判低下の原因のK氏を熱心に擁護してたから、Qiitaは実質増田

          • anond:20181017192611

            ブログでやれ

          • anond:20181017192611

            スーパーpre記法(シンタックス・ハイライト)だめなん?

        • プログラムの実行環境の用意

          PHPの実行環境として、XAMPPを用意してもらったけど、これは後でデータベースの練習をすることも考えてチョイスしました。 =MySQLを使って「SQL」(問合型言語)の練習をするため。 だ...

      • 増田式プログラマー養成講座 その5 オブジェクトとは何か?

        今回は、手続型プログラミングの後半となる「オブジェクト指向プログラミング」(OOP)について学ぼう。 OOPは内容が多いので数回に分けて説明してみます。(説明が下手だったらフォ...

      • 増田式プログラマー養成講座 その4 子ども向け教材「Scratch」

        今回は、子ども向けプログラミング学習教材「Scratch」(スクラッチ)を使って、一番簡単な構造化プログラミングの手法を学んでみよう。   Scratchとは何か? Scratch (プログラミング言...

        • anond:20181016193144

          おお、4歳児にプログラム教えたいんで ちょうどスクラッチのこと知りたかった ありがとう

      • 増田式プログラマー養成講座 その3 構造化=順次、反復、分岐

        それではさっそく、一番簡単な手続型プログラミング言語の使い方を学んでみよう。   今回学ぶこと 手続型のキーワードは、「順次」「反復」「分岐」の3つ。(この3つの動作は人...

      • 増田式プログラマー養成講座 その2 プログラム=データ+処理

        プログラムとは何か? プログラムは、コンピューター(電子計算機)に与える指示書のこと。 人間がプログラム(コード)を書いてコンピューターに与えると、コンピューターはプロ...

      • 増田式プログラマー養成講座 その1 パソコンの用意

        自宅と会社のプログラミングの環境(機材、ソフトなど)を教えて?   (例) 自宅:パソコンを持ってない。スマホ(iPhone7)のみ。 会社:パソコンのスペック(OS、CPU、メモリ、HDDの...

      • anond:20181023184616

        データベース、SQLの使い方をどうやって説明するか?検討してみた。 RDBはMySQLを使用=XAMPPのMySQL+phpMyAdminですぐに練習できるから。   RDBの仕組み RDBの歴史 RDBの概要 SQL誕生の背景...

        • anond:20181024000744

          IT企業のプログラミング研修資料 はてなの研修資料が公開されている。 はてな研修用教科書 https://github.com/hatena/Hatena-Textbook LLはPerl、関数型はScalaで勉強してるんですね?(他には、Jav...

          • anond:20181024003352

            「IT 企業 研修 資料 まとめ」でググったら、一覧を作ってくれてる人がいた。 IT 企業 研修 資料 まとめ - Google 検索 https://www.google.co.jp/search?q=IT+%E4%BC%81%E6%A5%AD+%E7%A0%94%E4%BF%AE+%E8%B3%87%E6%96%99...

            • anond:20181024124651

              各社のIT研修資料をざっと見てみた。 IPA はてな ドワンゴ の資料が、体系的にまとめられているような気がした。   しかし、これは講師が授業で使うかんじのまとめ方をされている...

        • anond:20181024000744

          そもそもだけど、勉強は、 興味 教材 時間 という3つの条件さえ整えれば、誰でもできるようになる。 それはちょうど植物を育てるようなもので、種・土壌・水や空気、日光や温度...

        • anond:20181024000744

          昔の自分を振り返ると、とてもせっかちで「先に結論を言って!」というかんじだった。 (インスタントに慣れ過ぎていて、時間のかかるものはじれったくて待てない。)   昔の自分...

  • 増田式プログラマー養成講座 コンテンツ一覧

    コンテンツが増えてきたので、一覧ページを用意します。 anond:20181016015826 増田式プログラマー養成講座 その1 パソコンの用意 anond:20181016164341 増田式プログラマー養成講座 ...

    • anond:20181024214737

      臨時のJava入門講座 この講座を書くきっかけとなった増田(未経験からのプログラマーなんだが全然分からない 2018-10-15)を改めて読んでみると、 10月からプログラミングを始めた。 ...

    • 関数型プログラミングの教材は何を使ってますか?

      プログラマーの増田は、新人(初心者)に関数型プログラミングを教えるとき、教材(言語、書籍、ツールなど)には何を使ってますか? まずは「Lisp」か「Scheme」を使ってみる。Scheme...

      • anond:20181101234844

        C#、Javaなど、実際に業務に使う言語でラムダ式使わせとけば十分だろ

        • anond:20181101235458

          そうだな。 新人にはラムダ式の書式でも教えておけば十分だな? (関数型と論理型の説明は有料コンテンツでやろうw)

          • anond:20181102002040

            ワイ関数オタク、Calculus of Inductive Constructionsの勉強をしようとするも英語が苦手で挫折 日本語の資料ないんか・・・?有料でいいから・・・

    • anond:20181024214737

      始点が初心者なのはツリーの応答とかで分かったけれど、終点はどこなんだろう?

  • 増田式プログラマー養成講座 その13 SQLの文法

    前回は、データベースの参考書を見た。 今回は、DBで使うプログラム言語「SQL」の文法を見てみよう。   リレーショナル・データベース(Relational Database、RDB)とは? WikipediaでRDBの説明...

  • 増田式プログラマー養成講座 その14 Webアプリの試作品を作成

    前回は、SQLの文法を学びました。 今回は、データベースを使ったWebアプリの制作を通じて、SQLの使い方を確認してみましょう。   Webアプリとは? Webブラウザー(Google Chromeなど)で動...

  • 増田式プログラマー養成講座 その15 Webアプリの完成見本

    前回は、Webアプリのモックアップ(ハリボテ)を作るところまでやりました。 今回は、Webアプリの機能を実装してみましょう!   学習の狙い データベースを使ったWebアプリを作って、...

  • 増田式プログラマー養成講座 その16 Webアプリの完成見本(続き)

    「anond:20181101225335 増田式プログラマー養成講座 その15 Webアプリの完成見本」の続きです。   index.phpの編集 Webサーバーの時間設定がズレていると、メッセージを作成したときに、作...

  • 増田式プログラマー養成講座 その17 Webアプリの骨組み

    前回は、Webアプリの完成見本を先に見てみました。 今回は、Webアプリを作る途中の過程を見て、作る雰囲気を一緒に味わってみましょう。   フレームワークの使用ルール=「設定より...

  • 増田式プログラマー養成講座 その18 SQLでデータの追加と取得

    前回は、Webアプリの骨組み(スケルトン)までを作って、製作の過程を見てみました。 今回は、データベースのCRUD操作を行なって、チャットのメッセージを追加/取得/変更/削除する...

    • anond:20181104233013

      #GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOST#GOODPOS...

  • 増田式プログラマー養成講座 その19 SQLでデータの更新

    前回は、Webアプリの骨組み(スケルトン)に、SQLでデータの追加と取得をやりました。 今回は、SQLでデータの更新をやりましょう。   メッセージの更新 SQLの「UPDATE」を使えば、デー...

    • anond:20181110120715

      あのさ、こういうプログラムって3分ぐらい頑張ればなんでもできるようにならないの?

      • anond:20181110121013

        ならないね。でも外野から見て何でそんなめんどくさいこと悩まないといけないのかわかりにくいのも事実。

        • anond:20181110121318

          プログラミングは、数学と同じで扱うアルゴリズム(解法)次第で難易度が変わる。 それ以外は「難しいんじゃなくて面倒なだけ」 イメージとしては、単純な足し算や掛け算を100回...

      • anond:20181110121013

        ドットインストールの説明動画は3分程度で区切られてるね。 余計なことを省いて、本質だけ=1回に1項目だけに絞れば、3分を1単位にして説明できると思う。 ありがとう。参考に...

  • 増田式プログラマー養成講座 その20 SQLでデータの削除

    前回は、SQLでデータの更新をやりましょう。 今回は、SQLでデータの削除をやりましょう。   メッセージの削除 データの更新はSQLの「UPDATE」を使いました。 データの削除はSQLの「DELET...

    • anond:20181110182445

      正直、SQLの説明は失敗だった。ごめんねw SQLの説明じゃなくて、MVCフレームワークの使い方の説明の方が長くなって、自分でも見にくいと思った。   やり直すなら、まずはフレームワ...

      • 分かりやすい教材で選ぶならJavaScriptもあり?

        増田のアドバイスで、初心者には「JavaScript」が推奨されてた。 https://jgthms.com/javascript-in-14-minutes/ JavaScriptはプロトタイプの説明を後回しにすれば分かりやすいかも?

        • anond:20181110192400

          プロトタイプが肝だろ、と思うが、下手に難しく書くよりは、初心者は素直にダラダラ書いた方がまだ読める というか、自分でも頭が未だに混乱することがある Schemeからやってきたくせ...

  • 増田式プログラマー養成講座 その21 データベース設計 (1)要件定義

    前回まで、データベースを使ったWebアプリを作成して、SQLの使い方を学びました。 今回から、データベースの設計について学んでみよう。   参考書 anond:20181026145516 増田式プログラ...

  • 増田式プログラマー養成講座 その22 データベース設計 概念→物理

    前回は、DB設計の(1)要件定義を学びました。 今回は、DB設計の(2)概念設計、(3)論理設計、(4)物理設計を見てみましょう。   DB設計の流れ 要件定義 概念設計 論理設計 物理設計   ...

    • 1ヶ月でJavaをマスターする学習カリキュラム

      どうやったらプログラミング未経験者を1ヶ月で一人前のJavaプログラマーにできるだろうか?   基礎 JavaでOOP デザインパターン テスト IDE(IntelliJ IDEA等) ツール(Maven、Gradle等) ...

      • 学習用のプログラミング言語の選定基準

        型について考えてみる 個人的には、 最初に、動的型付けの言語を使ってみる。 次に、静的型付けの言語を使ってみる。 最後に、型推論が強力な言語を使ってみる。 という順番がい...

  • 増田式プログラマー養成講座 その23 SQLを巡る物語

    前回は、データベース設計について学びました。 今回は、その他のデータベースの話題について見てみましょう。     リレーショナル・データベースの理論 問合型言語のSQLは、「関...

記事への反応(ブックマークコメント)

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん