「データベースについてを学びたいけど、本を読んでもわからない」…そんなあなたは必読です。本書は、「データベースが動作する仕組み」を、実際に自宅PCで確認しながら学習を進めていきます。「データベースのアーキテクチャ」「トランザクションの仕組み」などを体感しながら学べるので、初心者でも無理なく学習できます。またデータベースのバックアップとリカバリ、パフォーマンスの向上など、現場で役立つ技術についても解説しました。データベースについてゼロから学びたい人だけでなく、現役のエンジニアやプログラマーにも幅広く読んでもらいたい1冊です。
第1章 データベースって何だろう-その用途と役割-
第2章 リレーショナルデータベースって何だろう-最も代表的なデータベース-
第3章 データベースにまつわるお金の話-イニシャルコストとランニングコスト-
第4章 データベースとアーキテクチャ構成-堅牢かつ高速なシステムを構築するために-
第5章 DBMSを操作する際の基本知識-操作する前に知っておくこと
第6章 SQL文の基本を学ぼう-SELECT文を理解する-
第7章 トランザクションと同時実行制御-複数のクエリをまとめる-
第8章 テーブル設計の基礎-テーブルの概念と正規形-
第9章 バックアップとリカバリ-障害に備える仕組み-
Appendix パフォーマンスを考えよう-性能を向上させるために-
書籍に関する問い合わせ
正誤表、追加情報をご確認の上、こちらよりお問い合わせください
利用許諾に関する問い合わせ
本書の書影(表紙画像)の利用許諾申請はこちらになります
書影(表紙画像)以外の利用許諾については、「書籍に関する問い合わせ」をご利用ください
ご購入いただいた書籍の種類を選択してください。
刷数は奥付(書籍の最終ページ)に記載されています。
現在表示されている正誤表の対象書籍
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
最終更新日:2020年11月10日
発生刷 |
ページ数 |
書籍改訂刷 |
電子書籍訂正 |
内容 |
登録日 |
1刷 |
026
上から6行目 |
2刷 |
済 |
誤 |
①の「データの冗長化」とは、は、データを1か所だけでなく~ |
正 |
①の「データの冗長化」とは、データを1か所だけでなく~ |
備
考 |
※リフローEPUBの場合、Chapter 01の「(1-1-2)データベースの基本機能」の「データベースの基本機能③ 耐障害性」の2つ目の小見出し「データ消失問題への対策」の4つ目の段落が該当箇所になります。 |
|
2015.05.13 |
1刷 |
036
Step1内のURL |
6刷 |
済 |
誤 |
Oracle
http://www.oracle.com/jp/products/database/overview/index.html
SQL Server
http://www.microsoft.com/ja-jp/sqlserver/ |
正 |
Oracle
https://www.oracle.com/jp/database/
SQL Server
https://www.microsoft.com/ja-jp/sql-server/ |
備
考 |
2020年10月現在の情報です。
※リフローEPUBの場合、Chapter 02の「(2-1)代表的なDBMSを調べてみよう」の「Step1」の「Oracle」「SQL Server」の画面下にあるURLが該当箇所になります。 |
|
2020.11.10 |
1刷 |
037
Step1内のURL |
6刷 |
済 |
誤 |
DB2
http://www-01.ibm.com/software/jp/info/db2/
MySQL
http://www-jp.mysql.com/ |
正 |
DB2
https://www.ibm.com/jp-ja/analytics/db2
MySQL
https://www.mysql.com/jp/ |
備
考 |
※リフローEPUBの場合、Chapter 02の「(2-1)代表的なDBMSを調べてみよう」の「Step1」の「DB2」「MySQL」の画面下にあるURLが該当箇所になります。 |
|
2020.11.10 |
1刷 |
060
7~9行目【注を追加】 |
4刷 |
済 |
誤 |
この理由は簡単で、SQL ServerにはWindows以外のOSに対応した実装が存在しないからです( 図A )。もっと言えば、SQL Serverの開発元であるMicrosoft社が提供していないのです。 |
正 |
この理由は簡単で、SQL ServerにはWindows以外のOSに対応した実装が存在しないからです( 図A )。もっと言えば、SQL Serverの開発元であるMicrosoft社が提供していないのです*9。
<注として以下の情報を追加します>
本書刊行後の2016年、マイクロソフト社は従来の方針を転換し、SQL ServerのLinux対応を発表をしました。SQL Server 2017から対応が開始され、SQL Serverを稼働させられるOSの選択肢が広がりました。 |
備
考 |
※リフローEPUBの場合、Chapter 02の「(2-1-3)リレーショナルデータベースを扱うための予備知識」の3つめのCoffee Break「ビジネス的な背景も考慮すべき?」の3つ目の段落が該当箇所になります。 |
|
2017.11.06 |
1刷 |
112
下から6行目 |
3刷 |
済 |
誤 |
「①物理的に離れた場所からのアクセスができない」「②複数ユーザによる同時作業ができない」という、クラサバ構成の2つの欠点を |
正 |
「①データベースへ直接アクセスすることによるセキュリティリスク」「②クライアント上でアプリケーションを管理するコストの増大」という、クラサバ構成の2つの欠点を |
備
考 |
※リフローEPUBの場合、Chapter 04の「(4-1-2)データベースのアーキテクチャを考えよう①~歴史と概要~」の「Web サーバ層とアプリケーション層」の6つ目の段落が該当箇所になります。 |
|
2016.01.07 |
1刷 |
162
練習問題Q1の解答 |
2刷 |
済 |
誤 |
Q1. C |
正 |
Q1. B |
備
考 |
※リフローEPUBの場合、Chapter 05の末尾にある練習問題のQ1の解答が該当箇所になります。 |
|
2015.05.13 |
1刷 |
169
「テーブルを操作するSQL」6行目、9行目 |
6刷 |
済 |
誤 |
6行目
同様にデータベース全ても複数作成でき、
9行目
「show databeses;」 |
正 |
6行目
同様にデータベースも複数作成でき、
9行目
「show databases;」 |
備
考 |
※リフローEPUBの場合、Chapter 06の「(6-1-1)SELECT文の基本を学ぼう」の「テーブルを操作するSQL」の1つ目と2つ目の段落が該当箇所になります。 |
|
2020.11.10 |
1刷 |
182
文字列を集約する「GROUP_CONCAT」1行目、脚注*7最終行 |
6刷 |
済 |
誤 |
1行目
SQL標準にはありませんが、
脚注*7最終行
Oracle 11g:LISTAGG関数)。 |
正 |
1行目
SQL標準にはありませんでしたが、
脚注*7最終行
Oracle 11gR2,DB2 9.7FP4:LISTAGG関数)。SQL:2016でSQL標準としてLISTAGG関数が追加されました。 |
備
考 |
※リフローEPUBの場合、Chapter 06の「(6-2-1)SELECT 文の応用操作を学ぼう」の「文字列を集約する「GROUP_CONCAT」」の最初の段落が該当箇所になります。 |
|
2020.11.10 |
1刷 |
199
最下行 |
2刷 |
済 |
誤 |
SQLの20年 http://kikaku.itscj.ipsj.or.jp/topics/sql.html |
正 |
SQLの20年と現状および今後の展開
http://id.nii.ac.jp/1001/00065049/
http://id.nii.ac.jp/1001/00065072/ |
備
考 |
※リフローEPUBの場合、Chapter 06の「(6-3-1)データの更新と挿入」のCoffee Break「SQL標準語と方言の違い」の末尾にあるURLが該当箇所になります。 |
|
2015.10.06 |
1刷 |
204
エスペラント語の追加部分。 |
未 |
未 |
誤 |
mysql> insert into countrylanguage(language) values('Esperanto');
Query OK, 1 rows affected (0.00 sec) |
正 |
mysql> insert into countrylanguage(language) values('Esperanto');
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`world`.`countrylanguage`, CONSTRAINT `countryLanguage_ibfk_1` FOREIGN KEY
(`CountryCode`) REFERENCES `country` (`Code`))
mysql> set foreign_key_checks = 0;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into countrylanguage(language) values('Esperanto');
Query OK, 1 row affected (0.01 sec) |
備
考 |
アップデートによる仕様変更。本の執筆時はMySQL 5.6でサンプルデータベースがMyISAMだったものが、5.7ではInnoDBになっており、外部参照制約が追加されているため当該操作がエラーになる。エラーを出さないためには、上記のように、 set foreign_key_checks = 0を設定して、当該セッションのみ外部参照制約を無効にする必要がある。
※リフローEPUBの場合、Chapter 06の「(6-4)ビューの作成と複数のテーブルからのSELECT」の「Step3▷結合(内部結合・外部結合)を実行してみよう」の4つ目のグレー地のコード囲みが該当箇所になります。 |
|
2015.12.28 |
1刷 |
211
Coffee Breakの下から4行目以降 |
3刷 |
済 |
誤 |
またSQL標準では、NULL込みの比較が行える「IS DISTINCT FROM」が定められています。これが実装されているDBMSでは「A IS DISTINCT FROM B」で、同様の結果を得ることができます。 |
正 |
またSQL標準では、NULL込みの比較が行える「IS NOT DISTINCT FROM」が定められています。これが実装されているDBMSでは「A IS NOT DISTINCT FROM B」で、同様の結果を得ることができます。 |
備
考 |
※リフローEPUBの場合、Chapter 06の「(6-4-1)ビューの作成と副問い合わせ、結合」のCoffeeBreak「DBMSの闇?「NULL」」の2つ目の段落が該当箇所になります。 |
|
2015.10.16 |
1刷 |
219
図2 一番下のコメント |
4刷 |
済 |
誤 |
2人が部屋を予約しため、部屋数 は1つしか減らない |
正 |
2人が部屋を予約したのに、部屋数 は1つしか減らない |
備
考 |
※リフローEPUBの場合、Chapter 07の「(7-1-1)「トランザクション」って何?」の図2の中の一番下にあるフキダシが該当箇所になります。 |
|
2017.10.11 |
1刷 |
228
ソースコード①の2行目(TransactionBの行) |
3刷 |
済 |
誤 |
Transaction B>set transaction isolation level read committed; |
正 |
Transaction B>set transaction isolation level read committed; start transaction; |
備
考 |
※リフローEPUBの場合、Chapter 07の「(7-2)複数のコネクションから読込と書込を行おう」の「Step3▷トランザクション分離レベルを変えてみよう」の①のコード囲みが該当箇所になります。 |
|
2016.02.29 |
1刷 |
234
上から2行目、3行目 |
2刷 |
済 |
誤 |
④の項目に出てきた「ロックタイムアウト(Lock Timeout)」と、Sそれがたすきがけになって起こる~ |
正 |
④の項目に出てきた「ロックタイムアウト(Lock Timeout)」と、それがたすきがけになって起こる~ |
備
考 |
※リフローEPUBの場合、Chapter 07の「(7-3-1)ロックタイムアウトとデッドロックが起こる理由」の「ロックタイムアウトとデッドロック」の本文が該当箇所になります。 |
|
2015.05.13 |
1刷 |
292
上から7行目 |
2刷 |
済 |
誤 |
MySQLの場合、ホットパックアップの取得には~ |
正 |
MySQLの場合、ホットバックアップの取得には~ |
備
考 |
※リフローEPUBの場合、Chapter 09の「(9-1-2)バックアップとリカバリ」の「ホットバックアップとコールドバックアップ」の1つ目の小見出し「ホットバックアップの概要」の2つ目の段落が該当箇所になります。 |
|
2015.05.13 |
1刷 |
341
索引「DISTINCT」に、参照ページ追加 |
3刷 |
済 |
誤 |
DISTINCT 173,183 |
正 |
DISTINCT 173,183, 211 |
|
2015.10.16 |