データベースとは
データベースはDB(Databaseの略称)と表記され、構造化した情報またはデータの組織的な集合であり、通常はコンピューター・システムに電子的に格納されている。
通常、データベース管理システム(DBMS)で制御する。 データとDBMS、およびそれらに関連するアプリケーションをまとめてデータベース・システムと呼ぶ。
データベースの定義
ただ単に、紙ベースの情報をデジタル形式の表にしただけでデータベースという訳ではなく、あくまで 「特定の文字・数値や条件式によって、対象となるデータを取り出せる表」 のことであり、文字や数値を単に羅列し、どこに何のデータがあるか検索できない表はデータベースと呼ばない。
例えばExcelで管理しているな住所や電話番号が集まった「住所録」は、立派なデータベースだと言える。
以下はデータベースの一例。
- 市役所の住民基本台帳
- 銀行の口座情報
- 通販サイトの商品一覧
他にも、さまざまな形を持ったデータベースが存在する。
データベースの必要性
Webアプリ開発においてデータベースは必須。
以下はAmazonなどのショッピングサイトでのデータベースがない場合に起こり得る事象。
Webアプリの機能 | データベースを使わない場合 |
---|---|
ログイン機能 | Webアプリにログインしても、データベースがないと会員情報を照会できないため、Webアプリにログイン機能を作れない。 |
商品一覧を表示する機能 | データベースがないと商品データを保管できないため、商品一覧を表示する機能が作れない。 |
商品を購入する機能 | 購入した商品データがデータベースに保管されないと、会員情報が取得できずに商品が手元に届かない。 |
データベースがあるからこそ、Webアプリでログイン処理や商品の購入など便利な機能を使うことができる。
データベースの種類
データベースには以下の3種類が存在する。
- リレーショナル型データベース(表形式)
- 階層型データベース(ツリー状)
- ネットワーク型データベース(網目状)
データベースの作り方には、さまざまな特徴があり、どのデータベースも一長一短あるが、今回は最も一般的によく使われるリレーショナル型データベースについて解説していく。
リレーショナル型データベースとは
リレーショナル型データベースとは、Excelの表のように列と行から成るテーブルが関連づいて構成されているデータベースのこと。複数のテーブルが関連づいて(relational)いるため、リレーショナル型データベースと呼ばれていいる。
また、この関連性をリレーション(relation)という。
イメージとしては、「テーブルA」「テーブルB」「テーブルC」など複数のテーブル(表)があり、それらが関連づけられて構成されている。
例えば、Xの1人のユーザーが複数のつぶやきを投稿した場合、リレーショナルデータベースは以下のようになる。
つぶやき投稿テーブルには1人のつぶやいたデータが複数あり、ユーザー情報テーブルのユーザーIDによって2つのテーブルはリレーション(関連性)を持っていることがわかる。
リレーショナル型データベースの種類と特徴
最後に、リレーショナル型データベースの種類について。
リレーショナル型データベースはさまざまな分野で使用されており、現場によって採用されるデータベースは異なる。
データベース名 | 特徴 | 料金 |
---|---|---|
MySQL | Oracle社が開発したデータベース。処理速度が速く、世界でも最も多く利用されている。Web開発に向いている。 | 無料 |
PostgreSQL | さまざまなデータ形式をサポートしていて多機能。 | 無料 |
SQLite | 動作が軽快で、サーバーにインストールせずに、アプリケーションに組み込んで使用可能。 | 無料 |
Oracle | Oracle社が開発・販売する商用データベース。ライセンス費用は高く、高機能高性能。銀行や官公庁など大規模かつ堅牢なシステムに利用されることが多い。 | 有料 |
Microsoft SQL server | Microsoft社が開発・販売する商用データベース。Oracleと同じく、大規模システム向け。 | 有料 |
データベースを扱う仕事
データベースをよく取り扱うエンジニアの一例は以下。
- Webエンジニア
- 機械学習エンジニア
- データサイエンティスト
- 組み込み系エンジニア
Webエンジニア
プログラミング言語やデータベース言語を用いて、Webアプリや大規模なシステム開発を行う。
例えばECサイトの開発であれば、会員情報や商品一覧の取得、コメントの投稿などをデータベースに保管する。
ECサイトのように複雑な処理の場合は、PHPなどのプログラミング言語に、SQLなどのデータベース言語を埋め込んで使用する。
機械学習エンジニア
多量のデータを用いて学習を行い、予測モデルを作成してAI・人工知能の開発を行う。
予測モデルを搭載したWeb・スマホアプリ、大規模システム開発において、データベースから多量のデータを取得する。
作成した予測モデルは、以下のような用途で使われる。
- 画像や音声認識
- 株価の予測
- 顔で認証するセキュリティ
- 車の安全機能
データサイエンティスト
機械学習エンジニアと同様にビッグデータを収集・分析して、ビジネスや社会問題の解決を図る。
統計解析を行うデータは数千から数十万程度必要となるため、データベースから取得して使用する。
組み込み系エンジニア
日々の生活で使用する家電製品から、工業機械などが動作するシステムおよびソフトウェアを開発する。
開発したシステム・ソフトウェアにデータベースを入れ、日々の稼働状況や誤動作を起こしたときのエラーを記録するのに使用する。
近年ではIoT技術が盛んになってきたため、組み込み系エンジニアの現場でデータベースを活用する頻度は増えていきる。
まとめ
- データベースとは「特定の文字・数値や条件式によって、対象となるデータを取り出せる表」のこと
- Webアプリ開発では、リレーショナル型データベースであるMySQLを使用することが多い
- データベースを使用する仕事としては、Webエンジニアや機械学習エンジニアなどがある