takahiro_itazuriの公倍数的ブログ

本やWebを通して学習したことをまとめるブログです。最大公約数(つまり、共通部分)的なという表現と対比して、「なるべく包括的にカバーしつつ、更に+αの要素も加えられたらいいな」という意味で公倍数的ブログと名付けました。

【エンジニアへの道】データベースとは

はじめに

データベースの第一回です。エンジニア職が存在するような企業は、必ず自社のサービスを利用するユーザのデータを持っています。このようなデータを利用して新しいビジネスやサービスの改善を行っています。そのため、データを取り扱うための知識が必要になるわけです。それがデータベースに関する知識になります。

データベースとは

「データベース」とは「データの集まり」であることは皆さんわかると思いますが、ただデータを集めただけでは意味がありません。そのデータに対して行う操作をする機能までを含めて「データベース」と呼ぶべきです。そのような操作の例としては、「追加」「検索」「抽出」などが挙げられます。

リレーショナルデータベース

データベースの中でも広く使われているのが「リレーショナルデータベース」です。リレーショナルデータベースでは、1つのデータをいくつかの項目のまとまりで表します。プログラミングでいうところの構造体みたいな感じです。

この1件のデータを「レコード」、そして項目を「カラム」と呼びます。「カラム」は「列」という意味で、Excelでレコードをスタックしていくように表を作った時に縦の列が項目にあたるためです。このレコード全体を「テーブル」と呼びます。まさにExcelですね。

このようなリレーショナルデータベースを管理するシステムをRDBMS (Relational DataBase Management System)と呼びます。データベースでは、項目に型が指定されていたり、操作を取り消すために「トランザクション」と呼ばれる機能を利用しなければならなく、それらを実現するためにマネージメントシステムが必要です。このような操作をきちんと定義しなければ、外部からデータを吸い取られてしまったり、変な値が入って後から利用しにくくなってしまいます。

MySQL

データベースにもさまざまな種類がありますが、その中でもMySQLオープンソース(商用版もあります)であるため、勉強しやすく、様々な人に利用されています。今回以降の記事では、MySQLを利用してデータベースを勉強していきます。

環境構築

本記事を進めていくにあたって使用する環境について説明しておきます。本記事ではXAMPPと呼ばれる「MySQL+Apache+PHP」の動作環境を設定できるものを使用します。「MySQL」はRDBMSで、「Apache」はWebサーバ、「PHP」は言語になります。最悪この環境が存在しなくても、記事を読み進められるようにしたいとは思います。