Webサービスを提供するにあたってデータベースの勉強も必要なので「MySQL」を使ってデータベースの勉強をしていきたいと思います。
データベースとは?
まずはデータベースとはなんなのか?
情報を一か所に集約し管理し利用していくものがデータベースです。
例えば、
インターネットのショッピングサイトなどで、メンズの洋服を買いたいという場合は、ジャンル「洋服」のジャンル「メンズ」をキーワードを選択するとそのリクエストに答えるように画面に商品が表示されます。
どのような仕組みになっているかと言うと、
Webサーバにあるデータベースに商品情報があり、キーワード別に商品情報が格納されているのでリクエストに応えるように情報を紐づけて引っ張りだすことができます。
また商品情報だけでなく利用者情報(氏名や電話番号、Eメールアドレス、カード情報など)もデータベースで管理されているようです。
実際にはどんな感じの構造?
データベースは「表(テーブル)」…以下テーブルという形でデータを管理しています。
テーブルは「列」と「行」から成り立っています。
種類別にテーブルを作成し、同データ項目をテーブルに入れ込むことでリレー形式でデータの関連づけがされ複数のテーブルを一つのデータとして扱えるようになります。
このような構造のことを「RDB:リレーショナルデータベース」と呼びます。
もう少し詳しく
各テーブルには”キー”と呼ばれる列が与えられます。
そのキーと言われる列は、その名の通り「任意でデータを取り出すための鍵」となります。
キーには種類があり、役割があります。
特に大事な2つがこちら
・主キー(PRIMARY KEY:プライマリーキー)
・外部キー(FOREIGN KEY:フォーリンキー)
下図のように、外部キーとして関連する項目を見つけそれがそのテーブルの主キーとなります。
ソフトウェアで管理
RDBについて先ほど書きましたが、RDBを管理するためのソフトウェアの事を「RDBMS:リレーショナルデータベースマネジメントシステム」といいます。
目的
データの整合性(一貫性)を保ち、必要なデータをユーザに提供する事
機能
・データベース管理
データの作成や削除などの管理
・同時実行制御
要求に対して矛盾が発生しないように防止
・トランザション管理
DBMSを個別管理
・セキュリティ管理
不正アクセスから守る
・障害回復
ロールバックやロールフォワードなど障害時に特定の時点に戻る機能
まだ私もすべての機能についてよくわからないので、ここは深掘りせず先に進みます。
MySQLとは?
簡単にいうと先ほどのRDBMSのソフトの種類です。
フリーで提供されているソフトウェアで世界で最も使用されているデータベースのソフトのようです。
意味を調べてみました。
MyはMySQL共同設立者のMichael Wideniusの娘の名前である「My」から(Wikipedia参照)
Structured Query Languageとは、データデースを管理する言語で、日本語訳すると「構造化された条件をみたす問い合わせの言葉」みたいな感じ?の意味がありそうです。
Webサイトから無償サービスがダウンロードできます。
SQLの基本文法
・キーワードの大文字と小文字の区別はありませんが、大文字で書くのが風習となっているようです。
※値はどちらでも可
※キーワードとはあらかじめ用意されている語
・文字列定数は「’」または「”」で囲む
・コメント文は、/* コメント分 */という感じに「/* */」で囲む
まとめ
勉強し始めたばかりなので、とりあえずこんな感じでまとめてみました。
また今後も更新をしていく予定なのでよろしくお願いいたします。
駆け出しエンジニア けいこ♂
コメント