データベース入門

データベースとは

データベースとは、データ管理・保管するソフトウェアです。(データの永続性を担保するもの)。単純に管理・保管だけならaccessでも可能ですが、あくまでも個人利用や小規模チーム利用を想定しているため、企業用途の使用には耐えられません。そこで、大規模なデータの保管やデータベースから情報をたくさんのユーザーがアクセスがしても、耐えられるようなソフトウェアとハードウェアが登場しました。企業のようなディープな使用に耐えらえるようなデータベースソフトが、代表的なデータベース製品がOracleデータベース、SQLServerデータベース、MySQL、PostgraSQL、DB2など。

データベース構造の種類

データベースの構造には大きく分けて、階層型、ネットワーク型、リレーショナル型、オブジェクト型データベース、カード型データベース、分散型データベースの6つの型があります。

型名管理方法
階層型データ階層構造で管理。IBM社の「IMS」が有名
ネットワーク型データを網目のように相互に関連付けて管理
リレーショナル型データを行と列で構成される2次元の表として管理

階層型データベース

階層型データベース図

ネットワーク型データベース

ネットワーク型データベース図

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

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

リレーショナルデータベースとはリレーショナル型でデータを管理している(Excelのシートを相互に関連付けしたようなイメージ)データベースを表し、「Relational DataBase」の頭文字をとってRDBと呼ばれています。リレーショナルデータベースは検索及び更新を容易に行うことができるため、現在ではほとんどのデータベースはRDBとなっています。

リレーショナルデータベースを扱うソフトウェアはリレーショナル・データベース管理システム(RDBMS:Relationl DataBase Management System)と呼ばれています。

RDBMSの代表的な製品としては、Oracle社のOracleDatabaseやMySQL、IBM社のDB2 UDB、Microsoft社のSQLServer、富士通社のSymfoware、オープンソースのPostgreSQL、MariaDBなどあります。
いずれもSQL言語を使用してデータベースを操作(データ検索、登録、更新、削除、)します。

システム開発においては、上記の製品のいずれかを必ず使用してるため、プログラマやシステムエンジニア、インフラエンジニアなどは技術を習得する必要があります。

SQLServer

SQL Serverは、Sybase社のSybaseSQL Server4.2を元にMicrosoft社とSybase社が共同開発した、SQL Server4.2 for OS/2が始まりです。そのためSQLServerにはMicrosoft社のSQLServerとSybase社のSQLServerが存在します。

Sybase社との提携はSQLServer6.5まで、SQLServer7.0ではデータベースの第一人者であるJimGray(ジム・グレイ)氏をMicrosoft社に招き入れ、6.5のソースコードの大半を書き換えてデータベースのアーキテクチャを一新させました。

SQLServerの技術情報(公式)

SQL Serverのバージョン歴史

発売年バージョン内部バージョンコードネーム技術情報
1993SQL Server 4.214.21SQLNT
1995SQL Server 6.06SQL95
1996SQL Server 6.56.5Hydra
1998SQL Server 7.07Sphinx
2000SQL Server 20008Shiloh
2005SQL Server 20059Liberty
2008SQL Server 200810Katmai
2010Azure SQL Database10.25Matrix (aka CloudDB)
2010SQL Server 2008 R210.5Kilimanjaro (aka KJ)
2012SQL Server 201211Denali
2014SQL Server 201412Hekaton
2016SQL Server 201613
2017SQL Server 201714
2019SQL Server 201915公式
2022SQL Server 202216公式

SQL Server世代

世代バージョン
第1世代SQL Server 4.2/6.0/6.5
第2世代SQL Server 7.0 / 2000
第3世代SQL Server 2005 / 2008 / 2008 R2
第4世代SQL Server 2012 / 2014 /2016 /2017

デフォルトのポート番号

SQLServerサーバーポート番号:1433

SQLServerインストール方法

データ型

SQLServerのデータ型はこちらのページで解説

一時テーブル

SQLServerで一時テーブルの作成方法はこちらのページで解説

チューニング関係

クエリパフォーマンスが低下した場合の事例と対処方法

SQL Server内部構造について

その他

SQL Browserサービスの解説

トランザクションログ

SQLServerは、データの更新があるとトランザクションログに更新したデータの履歴を記録します。

トランザクションログファイルが肥大化し、PCのHDDの容量を圧迫したときの対象方法

MySQL

MySQLとは

現在、MySQLのダウンロードは数は1000万人を超えている、商法RDBである「Oracle Database」に続き、世界で2番目に利用されているデータベースです。ただし、日本では「PostgreSQL」が5割から8割を占めている。

Mysqlの特徴は、オープンソースライセンスと商用ライセンスの両方を持っています。MySQLのソースコードはオープンソースの1つであるGPL(GNU Public License)に基づいて公開されています。

MySQLの歴史

MySQLは、スウェ-デンの「TcX DataKonsult AB(AB:株式会社)」のMichaelWidenius(通称Monty)によって開発が開始され、1995年にMySQL1.0がリリースされましたが主な目的はTcx社での内部使用であり使用許諾ライセンスもTcX社独自のものでした。1996年にが社内で開発していたデータベースソフトのソースコードをインターネットに公開しました。これがMySQL3.11.0です。2000年になるとMontyは「David Axmark」、「Allan Larsson」らとともに、MySQL開発の専門会社であるMySQL ABを設立しました。翌2001年には、「Marten Mickos」をCEOとして招き本格的な企業系をスタートさせます。

同年、フィンランドでInnobase Oyを経営していた「Heikki Tuuri」は、MySQLのストレージエンジンの可換の仕組みに目を付けて、開発していたInnoDBをMySQLに対応させます。InnoDBを搭載したMySQLの最初のバージョンは、「MySQL 3.23.34」、2001年3月のことでした。InnoDBは当初からMySQLに搭載されていたシンプルなMyISAMストレージエンジンとは異なり、トランザクションの機能を備えていました。

2008年にサンマイクロシステムズ社に買収され、2009年には、サンマイクロシステムズ社がOracle社に買収され現在は、Oracle社の事業部門として活動しています。

バージョン番号

MySQLのバージョン番号は3つの数字をドットでつないだ形式(5.7.15など)で表されます。最初の2つ部分がシリーズ(メジャーバージョン)です。最後の一桁がマイナーバージョンとなります。

プロダクションレベル

各シリーズは「開発途上版」の数回のリリースを経て、実運用で推奨される「製品版」がリリースされる流れになっています。製品版(安定版)のことをMySQLでは、GA(General Availability)呼び、GA前は-dmr(Development Milestone Release)や-RC(Release Candidateリリース候補版)が付けれます。

MySQL8.0になった理由について

MySQL5.7からMySQL8.0となったのは、MySQL6.0というバージョンは過去にかつて存在しており、GAになることなくMySQL5.4と統合されMySQL5.5というバージョンに統合されリリースされました。MySQL7.0は、他の製品ですでに7が使用されており、他製品を含めて8というバージョンで統一したかったので、MySQL8.0としてリリースされることになりました。

MySQLシリーズのバージョン

GAになった年月GAになった番号EOL
(通所サポート)
EOL
(Extended Support)
1999/013.22.35
2001/013.23.31
2003/034.0.122008/12
2004/104.1.72009/12
2005/105.0.152011/12
2008/125.1.302013/12
2010/125.5.82015/122018/12
2013/025.6.102018/022021/02
2015/105.7.92020/102023/10
2018/048.0.112023/042026/04

MySQLのシリーズ毎の機能追加

バージョン変更点
3.21・Windows版ネイティブバイナリ
・sjis/ujis追加(ビルド時に指定した文字コード専用のバイナリ)
3.23・複数の文字コードを同一バイナリで扱えるようになった。
・MyISAM追加
・InnoDB追加(トランザクション対応)
・レプリケーション
・バイナリログ
・OpenSSLによる暗号化通信
4.0・クエリーキャッシュ
・MyISAMに全文検索機能
・SAVEPOINT
4.1・サブクエリー
・MyISAMにGIS機能
・utf8
・プリペアドステートメント
・クライアント/サーバー間での文字コード自動変換
5.0・ストアドプロシージャ
・ビュー
・トリガ
・cp932/euc jpms(cp932は4.1にもバックポート)
5.1・イベントスケジューラ
・パーティショニング
・プラグインAPI
・行ベースレプリケーション
・INFORMATION_SCHEMA
バージョン変更点
5.5・デフォルトストレージエンジンがInnoDBになった
・utf8mb4
・準同期レプリケーション
・SIGNAL/RESIGNAL
・PERFORMANCE_SCHEMA
5.6・GTID(Global Transaction ID)
・オンラインDDL
・遅延レプリケーション
・マルチスレッドスレーブ
・オプティマイザトレーシング
5.7・JSON
・ドキュメントストア
・MeCabによる日本語全文検索対応
・sysスキーマ
・Generated Column
・マルチソースレプリケーション
・グループレプリケーション
・SQLモード「ONLY_FULL_GROUP_BY」がデフォルト
8.0・CTE
・Window関数
・測地系に考慮したGIS
・クエリーキャッシュ廃止
・データディクショナリ
・DDLの処理がアトミックに
・デフォルト文字コードがlatin1からutf8mb4に
・コレーションutf8mb4_ja_0900_as_cs_ks追加

データベースファイルと設定ファイル(RPM系)

項目ファイルまたはディレクトリ
データベースディレクトリ/var/lib/mysql/
設定ファイル/etc/my.cnf

デフォルトのポート番号

MySQLサーバーポート番号:3307

MySQL8.0インストール手順

対応OS:RockyLinux AlmaLinux

RedHat系のLinuxにMySQL8.0をYumでインストール

MySQL5.7インストール手順

対応OS:CentOSRockyLinuxAlmaLinux

RedHat系のLinuxにMySQL5.7をYumでインストール

MySQLバージョンの確認方法

$ mysqld --version

実行例

[rin@localhost ~]$ mysqld --version
/usr/sbin/mysqld  Ver 8.0.31 for Linux on x86_64 (MySQL Community Server - GPL)
[rin@localhost ~]$ 

MySQL データ型

MySQLデータ型はこちらのページで解説

MySQL Workbench 8.0インストール

MySQL Workbench 8.0のインストール方法はこちらのページで解説

公式マニュアル