実践 Pythonによるデータベース入門 - MySQL,MongoDB,CouchDBの基本操作からアプリプログラミングまで -
関係データベースとNoSQLデータベース,どちらのスキルも身につけたい方へ!
- 発行年月日
- 2020/08/28
- 判型
- A5
- ページ数
- 254ページ
- ISBN
- 978-4-339-02912-3
- 内容紹介
- まえがき
- 目次
- レビュー
- 広告掲載情報
【書籍の特徴】
本書は,いまのビッグデータ時代に生きるデータエンジニア,データベース技術者に必要となる関係データベースとNoSQLデータベースの両方を勉強できるように執筆したものである。書名に示してあるように,本書では,関係データベースについてはMySQLを,NoSQLデータベースについては,近年特に広く使われているMongoDBとCouchDBを取り上げている。
本書は,読者の皆様が勉強しやすいように,3種類のデータベースともに,基本理論を説明し,基本命令による各種操作を行った後に,Pythonによるアプリケーションの実現に帰着するように構成されている。基本理論は必要最小限にとどめ,実際のデータベースの操作命令およびPythonプログラムのソースコードについて多くの紙面を割いて詳しくわかりやすく解説している。また,本書の1冊だけで,初歩的なレベルから始まって,実務に役立つレベルに到達できるように,必要なソフトウェアの環境構築から,請求書データベースの設計,フライトデータ解析,Twitter ストリミングデータの収集と解析まで,幅の広い応用事例を示している。
【各章について】
本書は,前半(第1~7章)の関係データベース部分と後半(第8~11章)のNoSQLデータベース部分の二つの部分から構成されている。
第1章:関係データベースの基本理論,基本事項を説明する。
第2,3,4章:SQLの各種操作と基本演算について解説する。
第5章:PythonからSQLデータベースの利用法と利用例を示す。
第6,7章:関係データベースの設計理論を説明する。その上で,設計例およびPythonによる設計例の実現を示す。
第8,9章:ドキュメントデータベースのMongoDBの基本操作を説明する。また,PythonからMongoDBの利用法と利用例を示す。
第10,11章:ドキュメントデータベースCouchDBの基本操作を説明する。また,PythonからCouchDBの利用法と利用例を示す。
【著者からのメッセージ】
書名の最初にあるように,「実践」こそ技術習得の近道である。本書を読むにあたり,実際のデータベースシステム上で繰り返し実践するように心掛けてください。本書にある例題,演習問題のみならず,実務の一場面を想定した問題を作成し,それを解決するよう取り組むことができれば,より効果的である。本書を読んでいただき,読者の皆様はデータベースの開発,利用スキルが向上でき,実務の場において活躍できれば幸いである。
一昔前はデータベースと言えば,関係データベースおよびその操作言語 SQLのことであった。関係データベースが作られたのは,メモリやハードディスクなどハードウェアリソースが貧困な時代であった。そのため,いかにして利用者の大きなデータ表を小さな基本表に分解して,それを原材料として保存するかが,技術者の腕の見せどころだった。しかし,近年,ハードウェアリソースおよびインターネットの発展によって,Web を経由してサービスを提供する時代となり,いかにして大量の利用者にすばやく情報を提供するかということが至上命題となった。その結果として,NoSQL と呼ばれる SQL 以外のデータベース技術の大きな進展が成し遂げられたのである。
SQL と NoSQL の関係を理解するために,レストランを例にして考えてみよう。従来のレストランは,注文料理方式だった。つまり,厨房に食材と調味料と調理器具が用意してあり,お客さんの注文を受けてから,シェフが自ら料理を作って提供する方式である。料理が期待できる半面,ときにはお客さんを待たせることもある。しかし,いまはファミレス方式である。大量のお客さんにすばやく料理を提供するために,あらかじめ用意した半既製品を簡単な調理器具で短時間に調理して提供するのである。古い方式は新しい方式に取って代えられると思うかもしれないが,現実には,そうならなかったのである。注文料理の好きなお客さんもいれば,ファミレスの好きなお客さんもいる。また,日によっては注文料理を選んだり,ファミレスを選んだりするお客さんもいる。
データベースの世界に戻って言うと,古いものは関係データベースであり,新しいものは NoSQL データベースである。現実的には,いまは関係データベースと NoSQL データベースと併存の時代である。処理対象となるデータの特徴と利用者側の需要に応じて,関係データベースで対処することもあれば,NoSQL データベースで対処することもある。そのため,現場で活躍する技術者には,従来の関係データベースと新しい NoSQL データベースの両方のスキルが要求される。
本書は,このような背景を踏まえて,いまの時代に必要とされる関係データベースと NoSQL データベースの両方を勉強できるように執筆したものである。書名に示してあるように,本書では,関係データベースについては MySQL を, NoSQL データベースについては,近年特に広く使われている MongoDB とCouchDB を取り上げている。
本書は,読者の皆様が勉強しやすいように,全体の構成,解説の順序および例題に用いる材料について細心の注意を払いながら書き上げたものである。3種類のデータベースともに,基本理論を説明し,基本命令による各種操作を行った後に,Python によるアプリケーションの実現に帰着するように構成されている。基本理論は必要最小限にとどめ,実際のデータベースの操作命令およびPython によるデータベースプログラミングについて多くの紙面を割いて詳しくわかりやすく解説している。また,本書の 1 冊だけで,初歩的なレベルから始まって,実務に役立つレベルに到達できるように,必要なソフトウェアの環境構築から,請求書データベースの設計,フライトデータ解析,Twitter ストリーミングデータの収集と解析まで,幅の広い応用事例を示している。
本書は,前半(1~7 章)の関係データベース部分と後半(8~11 章)のNoSQL データベース部分の二つの部分から構成されている。各章の内容を,以下に簡単に紹介する。
1 章:関係データベースの基本理論,基本事項を説明する。
2,3,4 章:SQL の各種操作と基本演算について解説する。
5 章:Python から SQL データベースの利用法と利用例を示す。
6,7 章:関係データベースの設計理論を説明する。その上で,設計例および Python による設計例の実現を示す。
8,9 章:ドキュメントデータベースの MongoDB の基本操作を説明する。また,Python から MongoDB の利用法と利用例を示す。
10,11 章:ドキュメントデータベースの CouchDB の基本操作を説明する。
また,Python から CouchDB の利用法と利用例を示す。
また,付録部分では,本書で使われるデータベースソフトウェア MySQL MongoDB と CouchDB,および必要な Python ライブラリの導入を説明する。
ただし,本書で使われる Python 自体の開発環境の構築については,拙著『Python によるデータマイニングと機械学習』(オーム社発行)の第 1 章を参照されたい。
読者の皆様におかれましては,本書を読むことで,データベースの開発,利用スキルが向上し,実務の場で役立てて頂ければ幸いである。最後に,本書を出版する機会を与えてくださった,コロナ社の皆さんに衷心より感謝申し上げる。
2020 年 6 月 藤野 巖
1.データベース
1.1 データと情報とデータベース
1.2 データモデルと関係データモデル
1.3 関係データベース
1.4 データベース管理システム
1.5 SQL
1.6 NoSQL
演習問題
2.SQL―手始め―
2.1 SQL命令文の基本的な決まり
2.2 データベースの表示,作成と削除
2.3 テーブルの表示,作成,削除と変更
2.4 データの挿入,表示と削除
2.5 簡単な問い合わせ
演習問題
3.SQL―基本的な問い合わせ―
3.1 基本理論―選択演算と射影演算―
3.2 データの整列
3.3 集約関数
3.4 算術演算
3.5 ビューの作成と削除
演習問題
4.SQL―結合演算を用いた問い合わせ―
4.1 基本理論―結合演算―
4.1.1 交差結合
4.1.2 等結合と自然結合
4.2 複数テーブルからなるデータベース
4.3 SELECT文―交差結合―
4.4 SELECT文―等結合と自然結合―
演習問題
5.PythonによるMySQLプログラム
5.1 プログラム例―PythonからMySQLデータベースに接続する―
5.2 プログラム例―データベースを作成する―
5.3 プログラム例―テーブルの作成とデータ入力―
5.4 プログラム例―簡単な問い合わせ―
5.5 プログラム例―結合演算を用いた問い合わせ―
演習問題
6.データベース設計の基本
6.1 データベースの設計プロセス
6.2 実体関連(ER)モデル
6.3 ERモデルを用いた論理設計
6.4 ERモデルを用いた設計例
6.5 正規形および正規化
演習問題
7.データベース設計の応用例
7.1 設計問題
7.2 概念設計と論理設計
7.3 設計文書
7.4 SQLによるデータベースの実現
7.5 Pythonによるデータベースを作成する
演習問題
8.MongoDBの基本
8.1 MongoDBの概要
8.2 MongoDBの基本操作―データベース,コレクションの作成,確認と削除―
8.3 MongoDBの基本操作―ドキュメントの表示,更新と削除―
8.4 MongoDBの基本操作―検索―
演習問題
9.PythonからMongoDBを利用する
9.1 PythonからMongoDBにアクセスするために
9.2 郵便番号データベースの作成
9.3 郵便番号データベースを利用したPythonプログラム例
9.4 フライトデータベースの作成
9.5 フライトデータベースを利用したPythonプログラム例
演習問題
10.CouchDBの基本
10.1 CouchDBの概要
10.2 CouchDBの基本操作―curl―
10.3 CouchDBの基本操作―Futon―
10.4 カスタムビュー
演習問題
11.PythonからCouchDBを利用する
11.1 PythonからCouchDBにアクセスするために
11.2 Twitter Streaming DataをCouchDBに保存するプログラム
11.3 CouchDBからツイートを取り出して処理するプログラム
演習問題
付録
A.1 MySQL関連ソフトウェアの導入
A.2 MongoDB関連ソフトウェアの導入
A.3 CouchDB関連ソフトウェアの導入
参考文献
索引
amazonレビュー
-
掲載日:2021/01/06
-
掲載日:2020/11/16
-
掲載日:2020/09/01
【本書ご利用にあたって】
本書で解説している内容を実行・利用したことによる直接あるいは間接的な損害に対して,著作者およびコロナ社は一切の責任を負いかねます。利用はすべて利用者個人の責任において行ってください。
本書に掲載されているソフトウェアおよびWebページURLに関する情報は,本書執筆時点のものです。将来にわたって保証されるものではありません。特に,各社が提供しているデータベースソフトウェアは仕様やサービス提供に係る変更が頻繁にあり,Pythonのライブラリ群等も頻繁にバージョンアップがなされています。これらによっては本書で解説しているアプリケーション等が正常に動作しなくなることもあるので,あらかじめご了承ください。
本書の発行にあたって,読者の皆様に問題なく実践していただけるよう,できる限りの検証をしていますが,以下の環境以外では構築・動作を確認していないので,あらかじめご了承ください。
- PC本体:Windows10 Home 64bit(CPU:Intel Core i7―7500U,メモリ:8GB)
- 開発環境: MySQL 8.0.20,MongoDB 4.2.3,CouchDB 2.3.1,Anacondaバージョン2019.03(Python 3.7バージョン)
また,上記環境を整えたいかなる状況においても動作が保証されるものではありません。ネットワークやメモリの使用状況および同一PC上にあるほかのソフトウェアの動作状況によって,本書のプログラムが動作できなくなることがあります。併せてご了承ください。
なお,本書に記載している会社名,製品名は,それぞれ各社の商標または登録商標です。
本書の購入者に対する限定サービスとして,本書に掲載しているSQL命令文,Pythonのソースコードと必要なデータファイルは,本Webページからダウンロードできます。ぜひご利用ください。
なお,本書に掲載しているソースコードについては,オープンソースソフトウェアのBSDライセンス下で再利用も再配布も自由です。
【MongoDBのダウンロードついて(初版第1,2刷をお持ちの方,p.227)】
2024年4月現在,最新のバージョンは7.0.8になっています。
本書の初版第1刷時の環境に合わせるため,以下のURLを指定して,MongoDBのCommunity Editionのダウンロードサイトにアクセスし,バージョン4.2.25を選択してから,ダウンロードしてください。
URL:https://www.mongodb.com/try/download/community
関連資料(一般)
- ソースコードほか(1,2刷お持ちの方)
- ソースコードほか(3刷お持ちの方)