katsuyukikun’s diary

とある天パーエンジニアのblog

データーベース入門①

さて、宣言通り技術についてアウトプットしていこうかなと思います。

 

題材は「DBについて」です!

Webアプリケーションをずっと作ってきたのでアプリケーション周りは結構強いのですが、DB周りについてはまだまだ穴があるので今回はそこについて「理論から学ぶデーターベース実践入門」を読んで抑えていきたい思います。

 

 

まずは第一回ということでそもそものところから書いていこうと思います。

 

  • データベースとは

ここからやらなくてもいいんじゃない?と思いますが、一応やっておきます笑。

wikipediaさんに聞いてみると

データベース(英: database, DB)とは、検索や蓄積が容易にできるよう整理された情報の集まり。 通常はコンピュータによって実現されたものを指すが、紙の住所録などをデータベースと呼ぶ場合もある。 狭義には、データベース管理システム (Database Management System, DBMS) またはそれが扱う対象のことをいう。

 

つまり特定のテーマに沿ったデータを集めて効率的に管理し、使いやすくしたものと考えてもらって良いと思います。ちなみにもう少し調べてみたら実は・・・・

データベースという名称は米軍からきているらしいです。第二次大戦後の米軍が、そこにアクセスすればすべての情報が得られるように、点在していた膨大な量の資料をひとつの基地に集約して効率化を図ったらしいです。この際にデータベースという言葉が誕生したと言われているらしい・・

 

そしてそんなデータベースですが種類があります!大きく分けると以下4つに分けることができます。

 

「階層型」「ネットワーク型」「関係型」「NoSQL」

 

一つずつ説明していってもよいのですが、ちょっとそれをしちゃうと肝心の話まで届かないで終わってしまう気がするので割愛します笑

参考リンクを貼っておきますので興味のある方はこちらをどうぞ!!

 

ざっくり説明が書いてあります↓

programming-study.com

 

図がわかりやすいかもです↓

www.techscore.com

 

NoSQLについての説明あります↓

www.sejuku.net

 

 

 

業務ではSQLを使用しているのでRDBについて書いていきますー 

( ´ ▽ ` )ノ あっ「関係型」のことです。

 

 

 

SQLとは、リレーショナルデータベース(以下RDB)に対して問い合わせを行うための言語のことです。そしてSQL はリレーショナルモデルをベース設計されておりリレーショナルモデルに沿った演算が得意です。なのでSQLを理解するにはRDBについて理解しなければならないということになります。逆にいうとRDBを理解しないとSQLについて理解できたとは言えずそれは単になんとなく書けるというレベルでしかありません。

 

  • リレーショナルモデル

現実世界のデータを「リレーション」と呼ばれる概念を用いて表現するデータモデルのこと。ここで注意したいのがあくまでも、リレーショナルモデルが表すデータモデルは 設計という意味ではなく、データをどのように表現するか、という概念の話だということ。「○○という概念を使ってデータを表現してください」という決まりごとがデータモデルであり、リレーショナルモデルはその中の一つにすぎないということになります!

 

  • リレーションとは

最もよくある間違いとしてあげられていたのが、「テ ーブル同士の関係」というものです。概念にすぎないという説明をしたと思うので理解されていると思いますが、テーブル同士の関係を(ER 図などを使って)デザインするのはリレーショナルモデルではありません。SQLにおいてリレーションに相当するものは、テーブルです!

言葉だとだとわけわからないと思うのでずを載せておきます。

                        f:id:katsuyukikun:20170325022254p:plain

説明書きとしては以下でした。

リレーショナルモデルにおけるリレーションの定義のようなもので すリレーションは見出(Heading)本体(Body)のペアで構成されます。 見出しは、0でないn  属性(Attribute)集合ですこの属性、名前とデー タのペアになっています。本体、属性値集合である組、あるいは英 語うとタプル(tuple)集合です

 

タプルに含まれる属性値は、名称とデータ型が見出しで指定されたものと、それぞれ一致していなければなりません。

見出しで定義されていない属性が存在したり、逆に見出しに含まれる属性がタプルに存在していない場合は、ルール違反です。

つまりリレーションとはタプ ルの集合であり、タプルはすべて同じ n 個の属性値の集合という同じデー タ構造を持っています。図 1.1 は、リレーションをイメージ化したもの。

 

 

 

 

今回はここまでにしておこうかな・・・ここまで理解するとわかりますが、結局集合体でしかありません。だからもっと理解を深めるにはその集合体の話を知っておく必要があります。なので次はそこから始めれればなと思います。

 

終わり。