はじめに
新人エンジニアのしゅんやです!
今回は私が勉強しているDB・SQLについて記事を書いていきます。
この記事の対象者
- SQLを学びたい方
- 初級エンジニア
- IT企業に就職する学生
筆者のレベル
- 新人エンジニア
- SQLの開発経験なし
- Oracle master silver SQLの資格取得に向けて学習中
DB(データベース)とは
データベースとは、決まった形式で整理されたデータの集まりのことをいい、大量にあるデータベースを検索しやすくしたもので、一般的にコンピュータ上で整理されたデータ群を指します。
特定のルールによって規則正しく整理されたデータの集まりを意味しており、膨大な量のデータを業務で有効活用出来るように複数人で共有し、検索する機能がついています。
データベースが利用されているわかりやすい例として、電話帳や辞書などの大量の情報を扱いやすく整理されているものをいいます。
データベースの種類
データベースの種類は代表的なもので4種類あります。
階層型データベース
階層型データベースとは、ツリーのようにデータを関連付けて保存するタイプです。上層から下層に分岐していく1対多の形でデータが整理されています。
メリットは、上層から特定のデータに至るまでのルートは一つのみのため、データの検索が早いという特徴が有りますが、逆にデメリットは、状況次第では一つのデータを複数個所に登録する必要が生じてしまいデータが冗長となってしまったり、データの追加や削除を行うと各子ノードへのアクセスルートが都度変わってしまい、柔軟なデータ管理がしにくいのがデメリットです。
ネットワーク型データベース
ネットワーク型データベースとは、関連性のあるデータを互いに紐づけて保存するタイプのデータベースです。
メリットは、多対多の関係性が成り立つと同時に、階層型データベースでは発生する可能性があった情報の重複登録を防ぐことができます。デメリットは、データ構造に依存してしまうという点があげられます。
リレーショナル型データベース
リレーショナルデータベースは、階層型データベースとネットワーク型データベースのデメリットを解消するために開発されました。
行と列によって構成された「表形式のテーブル」と呼ばれるデータの集合を、互いに関連付けて関係モデルを使用したデータベースのことです。そのことから日本語では「関係データベース」とも言います。Excelを創造してもらえるとよいかもしれません。
NoSQL型データベース
NoSQL系データベースとは、おおまかに「リレーショナル型データベース以外」のデータベースを指します。
NoSQL系データベースは関係データベースほど排他制御が厳格ででないがゆえに、関係データベースのようにはデータの独立性・一貫性が保証されないことがデメリットです。
その代わりに並列処理がしやすく、スケールアウトが容易というメリットがあります。そのため独立性・一貫性よりも大量のデータを高速で処理することを優先したいシステムに向いています。
データベースとスプレッドシートの違い
リレーショナルデータベースはスプレッドシートやExcelに似た形をしています。
似てはいますが、どこが違うのか説明していきたいと思います。
- 想定されるアクセス数
- 想定されるデータ量
- 整合性を保つための機能
データベースと異なり、スプレットシートは操作する人数が増えてきたり、過剰に複雑なデータ操作を大量に実行してしまうと正常に動く事が難しくなります。
しかし、データベースは整理された大規模なデータの集合を保持するように設計されているので、スプレッドシートよりもより大人数が同時に複雑で過剰な操作を迅速かつ安全に利用することが可能になっています。ここがデータベースとスプレッドシートの違いになります。
最後に
今回は、データベースとはどんなものなのか紹介してきましたが、今後はSQLの書き方など色々紹介していきます。
記事を読んでDB・SQLについて興味を持っていただけたら幸いです。