データベース入門の入門

Published: 2016年2月20日 by tomsato

概要

このブログでは何回かOracleやMySQLなどデータベースの記事を書いてきましたが今更ながらデータベースとはなんぞやというものをまとめます

入門の入門ということでブログ方針であるシンプルさ重視で説明するためインストールや実際の使い方などは書きません

※ 前提としてここで説明する内容はRDBMS(後述)にフォーカスした説明になります (MySQLやOracleなどはこれ)

データベースとは

SNSなどのユーザ情報とかってエクセルとかでまとめるとこんな風にまとまるかと思います

・ユーザー管理
test

またつぶやき内容をまとめる時にはこんな感じでまとまるかと思います

・投稿一覧
test1

こういった「何か用途があって整理整頓されたデータの集まり」のことをデータベースと言います

なんでこんな概念があるかって、図書館みたいに本が1カ所に集まっていると嬉しいですよね(ちょっと違うけど)

テーブルという概念

DBMSにはテーブル(表)という概念があります
「ユーザー管理」や「投稿一覧」のイメージはテーブルという概念にそのまま当てはまります

従って行と列で構成されているデータの構造のことをテーブルと言います

データベース管理システムとは

俗にいうDBMS (Database Management System)といってデータベースを管理するシステムのことです

MySQLやOracle DatabaseはDBMSの種類のひとつで正式にはRDBMS(関係データベース管理システム)のひとつです

RDBMSとはテーブルとテーブルを紐づけてデータを抽出できるDBMSのことです

例えば投稿一覧ページをWebやアプリで表示させる時は名前で表示させたいので
test4
のように「投稿一覧」テーブルを元に「ユーザ管理」テーブルからIDに紐づく名前(taroだったら日本太郎など)をつけることができるのです

(最初から投稿一覧に名前もつけておけばいいじゃんとツッコミが入りそうですが例なので気にしないでください)

データベース管理システムの使用イメージ

少しだけ実践ということでMySQLやOracleでどんなことができるのかイメージだけ説明します

例えば

  • 表の作成(CREATE)、削除(DROP)
  • 表のデータに追加(INSERT)、削除(DELETE)
  • 表の中から条件にあったデータの抽出(SELECT)

表の作成(CREATE)、削除(DROP)

表の作成、削除は例えば先ほどの「ユーザ管理」「投稿一覧」の2つ以外でももちろん新規にテーブルの作成、削除が行える

表のデータに追加(INSERT)、削除(DELETE)

花子さんが定期的に眠いとつぶやくことで「投稿一覧」に追加されるかもしれません
test5
(青く塗られたところが新規投稿されたデータ)

また投稿の削除で「投稿一覧」から1行データが消えることもあります

表の中から条件にあったデータの抽出(SELECT)

花子さんがどんな投稿をしているのか気になる人もいますよね
test6

もしかしたら研究者が投稿日から人の生活リズムについて研究をするかもしれません
test7

もちろんテーブルの情報を全て取得することもできますが上記のように表示する列や行を絞って抽出を行うことができるのがDBMSの良いところになります

例えば「ユーザ管理」に住所について追加したい場合に表の構成を変更したり

データベースで勝手に表削除行わないようにこのアカウントはSELECTしかできないようにするなど権限をしぼることもあります

コメントを書く

※ 個別に返信が必要な時のみご記入ください

※ Emailは公開されません

※ 承認されると名前・コメントが下記に表示されます

コメント一覧

最近の投稿

ビジュアルリグレッションテストについてまとめ、ネットで調べると数多くのライブラリがありどれがどんな立ち位置なのか全体像がわかりずらかったのでどんな種類があるのか入門の入門としてまとめます、またPlaywrightを使って実際に触ってみました

社内ツールなどの超小規模なAPIをGolangで実装する際にフレームワークを使うべきかを、実際にnet/httpを使った実装とフレームワークを使った実装を比較することでどれだけ優位性があるかを見ていきたいと思います。今回はフレームワークにはシンプルで使いやすそうなEchoを使うことにします。

vue-pdfを使ってNuxt.jsで作成しているアプリケーションに pdfスライドを表示させるサンプルを作成しました README.md通りに実装してもうまくいかないところがあったのでそのあたり含めてまとめます

Vue.js / Nuxt.jsにおけるログインの実装方法をまとめる Auth0やNuxt.jsのAuth Moduleとmiddlewareについて調べつつサンプルを作成することで理解を深める

コンポーネント設計について考える Atomic DesignやPresentational Component, Container Componentについてまとめつつ 自分だったらVue.js / Nuxt.jsでどういうコンポーネント設計にするかについてまとめます

カテゴリ一覧

タグ一覧