イチから全部作ってみよう(35)テーブル結合はリレーショナルデータベースの肝:山浦恒央の“くみこみ”な話(204)(3/3 ページ)
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第35回は、リレーショナルデータベースの肝となるテーブル結合について解説する。
6.おわりに
今回は、テーブル結合を使って、設計書からテーブル構造を作成しました。細かいツッコミどころはありますが、データを役割ごとにテーブルに分けることで、同じ情報を何度も保存する必要がなくなり、データ更新時の修正漏れを防げます。また、バラバラでも、必要なときにはテーブルを結合して、まとめて利用すればOKです。
結果として、今回顧客が求めているワインのECサイトは、以下の4つのテーブルが必要だと分かります。
- 商品テーブル:商品の情報をまとめたテーブル
- 顧客テーブル:顧客の情報をまとめたテーブル
- 注文テーブル:注文の情報をまとめたテーブル
- 注文詳細テーブル:詳細な注文の情報をまとめたテーブル
今回までで、業務フロー、画面設計書、テーブル構造を作ることができました。すなわち、「何をするソフトウェアなのか」という業務フロー、「どのように操作するのか」という画面設計、そして「どのようなデータを扱うのか」というテーブル構造がそろいました。これで、ソフトウェアの「処理」と「データ」に関する基本設計の骨組みがそろい、「アルゴリズム+データ構造=プログラム」の準備が整ったというわけです。
山浦先生執筆の書籍が販売中です!
本連載で取り上げた「ソフトウェア技術者のためのバグ百科事典」を大幅に加筆、修正した山浦恒央先生の書籍「ソフトウェア技術者のためのバグ検出テキスト」が日科技連出版から好評発売中です。連載でも取り上げた、「要求仕様書のバグ」「実装抜けのバグ」「テスト業務のバグ」など、バグを36種類に分類して解説しています。囲碁や将棋であれば、「相掛かり」「矢倉」「四間飛車」「藤井システム」のような戦法を網羅した内容になっています。
前著「ソフトウェア技術者のためのバグ検出ドリル」(2019年11月刊行)も好評発売中です。実際にバグを含む要求仕様書、設計書、コーディング、デバッグ、保守を具体的に取り上げ、練習問題として31問を出題しました。同書は、囲碁や将棋における「次の一手」的な問題であり、ピンポイントの場面を取り上げ、実践力を鍛えることを目的としています。
両書とも興味のある方は、Amazon.comや書店でチェックしてください!
人間環境大学 環境情報学科 教授(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ≫連載「山浦恒央の“くみこみ”な話」バックナンバー
イチから全部作ってみよう(34)マルチプログラミングとトランザクション
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第34回は、週末の家事のたとえ話でマルチプログラミングについて理解した上で、データベースにおけるトランザクションについて解説する。
イチから全部作ってみよう(33)「排他制御」をトイレのアナロジーで理解する
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第33回は、複数人が同時にアクセスするシステムを開発するためのプログラミングで重要になる「排他制御」をトイレに例えて説明する。
イチから全部作ってみよう(32)PythonでSQLを実行してデータベースを操作する
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第32回は、さらに一歩踏み込み、PythonプログラムからSQLを実行してデータベースを操作する方法を解説する。
イチから全部作ってみよう(31)SQLを操作して実際にデータベースを作ってみる
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第31回は、SQLの操作方法の解説をもう一歩進めた上で、実際にワインの商品データベースを作ってみる。
イチから全部作ってみよう(30)データベース操作の共通言語「SQL」を使ってみる
ソフトウェア開発の全工程を学ぶ新シリーズ「イチから全部作ってみよう」。第30回は、これまで紹介してきたデータベースに関する概念的な話から離れ、SQLを使って実際にデータベースを操作してみる。

