リレーショナルデータベース演習(全15回)
大学で使用した自作の資料等を,手直しの上公開している. クリエイティブ・コモンズ BY NC SA.
テーブル定義、SQL問い合わせ、データベース設計、さらには集計、結合、正規化など、データベースシステムに関連する実践的なスキルを身に着けます.
【目次】
- de-1. Microsoft Access の起動と終了,画面の説明,基本操作 [PDF], [パワーポイント], [HTML]
- de-2. Microsoft Accessを用いたデータベース操作入門:SQLとビジュアルインターフェースの活用 [PDF], [パワーポイント], [HTML]
- de-3. Microsoft Accessを用いたデータベース操作入門(2):SQLの基礎から実践まで [PDF], [パワーポイント], [HTML]
- de-4. リレーショナルデータベースとMicrosoft Accessの基礎 - データの効率的な管理と検索 [PDF], [パワーポイント], [HTML]
- de-5. SQL 問い合わせの基本: SELECT、FROM、WHERE、DISTINCT、IN、BETWEEN、SQL 問い合わせの基本構造、SQL による集計(AVG, SUM, COUNTなど) [PDF], [パワーポイント], [HTML]
- de-6. テーブル結合とSQLによるデータ統合 [PDF], [パワーポイント], [HTML]
- de-7. SQLによるデータ分析:GROUP BYを用いたグループ化と集約 [PDF], [パワーポイント], [HTML]
- de-8. SQLにおける副問い合わせと論理演算子(AND, OR)の基礎 [PDF], [パワーポイント], [HTML]
- de-9. データベース設計の実践:正規化の目的と手順、種々の正規形、SQLを用いた正規化 [PDF], [パワーポイント], [HTML]
- de-10. データベース設計ベストプラクティス:主キーと外部キー、設計手法 [PDF], [パワーポイント], [HTML]
- de-11. データベース操作:INSERT、UPDATE、DELETE [PDF], [パワーポイント], [HTML]
- de-12. 中間まとめ [PDF], [パワーポイント], [HTML]
- de-14. Access のデータベースツール [PDF], [パワーポイント], [HTML]
- de-15. リレーショナルデータベース活用演習 [PDF], [パワーポイント], [HTML]
- de-16. 並べ替え(ソート) [PDF], [パワーポイント], [HTML]
- 行の挿入,SQL 問い合わせのまとめ [PDF], [パワーポイント], [HTML]
【サイト内の関連ページ】
1. Microsoft Access の起動と終了,画面の説明,基本操作
【資料】
【概要】
データベースは,組織の戦略的情報資産を効率的に管理するためのシステムである.データの整合性とセキュリティを重視し,複数ユーザーによる同時アクセスを実現する.特にリレーショナルデータベースでは,データをテーブル形式で保存し,テーブル間の関連付けにより複雑な情報構造を効率的に管理する.Microsoft Accessは,このリレーショナルデータベースを直感的に操作できるビジュアルインターフェースを提供する.テーブルは「属性」と呼ばれる列で構成され,各属性には「数値」「短いテキスト」などの特定のデータ型が設定される.データベース構築では,まずテーブル定義としてテーブル名,属性名,データ型などを設定し,その後実データを行単位で登録する.Accessの基本操作の習得は,効率的なデータ管理能力の向上につながり,ITエンジニアとしてのキャリア発展に必須である.
演習
- 演習1.Access の利用開始
- 演習2.テーブルの新規作成
- 演習3.データの挿入と保存
キーワードとその説明文
- データベース: 組織の重要な情報資産を体系的に収集・管理するシステムである.複数ユーザーでの共有を前提とし,データの整合性とセキュリティを確保する機能を備える.
- データベースシステム: データの構造化,一貫性,永続性を実現する統合プラットフォームである.データの効率的な整理と関連付け,品質管理,不正データの排除を可能にする.
- データの整合性: データベースにおける重要機能の一つであり,データの矛盾のない一貫した状態を保証する.不正確なデータや矛盾データの混入を防止し,高品質なデータ管理を実現する.
- データの永続性: データベースシステムの基本特性であり,情報を永続的かつ安全に保持する.システム障害時もデータを保護し,長期的な情報管理を可能にする.
- リレーショナルデータベース: 表形式でデータを管理し,テーブル間の関連付けを実現するシステムである.データの整合性維持,高度な検索機能,トランザクション処理,セキュリティ確保などの機能を提供する.
- Microsoft Access: リレーショナルデータベースを効率的に構築・運用するためのソフトウェアである.直感的な操作環境と高度なSQL機能を統合し,包括的なデータ管理を実現する.
- テーブル: データベースの基本構造であり,行と列で構成される表形式のデータ集合である.列は属性として特定のデータを定義し,各行は個別のレコードとしてデータを格納する.
- 属性: テーブルにおけるデータの種類を定義する要素である.テーブル定義時に各属性のデータ型を指定し,データの整合性を確保するための制約を設定する.
- データ型: テーブルの各属性に設定する値の種類である.数値型,文字列型,自動採番型など,データの特性に応じて最適な型を選択する.
- テーブル定義: データベース設計の基盤となる作業であり,テーブル名,属性名,データ型,制約条件などを設定する.効率的なデータ管理の基礎として機能する.
- データの挿入: テーブルに対して実データを追加する基本操作である.定義された属性とデータ型に従って,整合性のあるデータを登録する.
- リボン: Access画面上部の操作メニュー領域であり,機能別に分類された操作コマンドを提供する.効率的な作業遂行をサポートする.
- タブ: リボン内の機能カテゴリーを示す要素であり,作業内容に最適化されたコマンドセットを提供する.
- ナビゲーションペイン: データベースオブジェクトを一元管理する画面要素であり,テーブルやクエリへの効率的なアクセスを実現する.
- テーブルビュー: テーブル一覧を表示・操作する基本的なインターフェースであり,データベース管理の中心的な役割を担う.
- データシートビュー: テーブルのデータを直接操作できる画面であり,データの参照,編集,追加,検索などの基本機能を統合する.
- デザインビュー: データベースオブジェクトの設計を行う専用画面であり,効率的な構造設計をサポートする.
- SQLビュー: SQL文を作成・実行する専用画面であり,高度なデータベース操作を可能にする.
- 空のデスクトップデータベース: 新規データベース作成時の基本テンプレートであり,必要に応じて機能拡張が可能である.
- テーブルの保存: テーブルへの変更を永続化する重要な操作であり,データの安全性を確保する基幹機能である.
2. Microsoft Accessを用いたデータベース操作入門:SQLとビジュアルインターフェースの活用
【資料】
【概要】
Microsoft Accessは,リレーショナルデータベースを効率的に管理するためのシステムである.直感的なビジュアルインターフェースとSQLによる高度な操作機能を統合し,包括的なデータ管理を実現する.データはテーブル形式で構造化され,各テーブルは属性(列)によってデータの特性が定義される.Accessには三つの主要な操作画面が実装されている.SQLビューではcreate tableによるテーブル定義やselect文による問い合わせなど,SQLを活用した高度な操作を実行する.データシートビューでは,テーブル内のデータを視覚的に編集,追加,検索できる.デザインビューでは,テーブルやクエリの効率的な設計が可能である.問い合わせ(クエリ)では,select文にfrom句やwhere句を組み合わせることで,必要なデータの抽出と加工を実行する.データは発行,解析・取得,加工,返却という体系的なプロセスで処理され,計算,集計・集約,並べ替え,結合など,多様な操作を実現する.
演習
- 演習1.Access の SQL ビューを用いたテーブル定義
create table 商品 ( ID autoincrement, 商品名 text, 単価 integer );
- 演習2.Access のデータシートビューを用いたデータの追加
Accessのデータシートビューを使用
- 演習3.Access の SQL ビューを用いた問い合わせ
select * from 商品;
select 商品名, 単価 from 商品;
select 商品名, 単価 from 商品 where 単価 > 80;
- 自習
create table 購入 ( 購入者 text, 商品番号 integer );
select * from 購入 where 商品番号 = 1;
キーワードとその説明文
- Microsoft Access: 高機能なデータベース管理システムであり,直感的な操作環境とSQL機能を統合し,効率的なデータ管理を実現する.
- リレーショナルデータベース: データを表形式で構造化し,テーブル間の関連付けを実現するシステムである.データの整合性確保,高度な検索機能,トランザクション制御,セキュリティ管理を提供する.
- テーブル: データベースの基本構造であり,行と列で構成される表形式のデータ集合である.列は属性として特定のデータを定義し,各行はレコードとしてデータを格納する.
- 属性: テーブルのデータ特性を定義する要素であり,テーブル定義時に各属性のデータ型を指定し,データの整合性を確保する制約を設定する.
- SQLビュー: SQL文を作成・実行する専用画面であり,create tableによるテーブル定義やselect文による問い合わせなど,高度なデータベース操作を実現する.
- データシートビュー: テーブルのデータを直接操作できる画面であり,データの参照,編集,追加,検索などの基本機能を統合する.
- デザインビュー: データベースオブジェクトの設計を行う専用画面であり,効率的な構造設計をサポートする.
- create table: テーブルを定義するSQL命令であり,テーブル名と各属性のデータ型を指定し,効率的なデータ構造を設計する.
- データ型: テーブルの各属性に設定する値の種類であり,integer(整数),text(文字列),autoincrement(自動採番)など,データの特性に応じて選択する.
- autoincrement: 自動採番機能を実現するデータ型であり,データ追加時に一意の識別子を自動生成し,主にID列での使用に適している.
- select文: データベースからの情報取得を実現する基本的なSQL命令であり,必要なデータの抽出と加工を可能にする.
- from句: select文で使用され,データ取得対象のテーブルを指定するSQL句であり,単一または複数テーブルの指定が可能である.
- where句: select文で使用され,特定の条件を満たすデータを選択するSQL句であり,数値比較や文字列一致など,多様な条件指定を実現する.
- クエリ(問い合わせ): データベースに対するデータ取得・加工要求であり,計算,集計,並べ替え,結合など,多様なデータ処理を実行する.
- テーブル定義: データベース設計の基盤となる作業であり,テーブル名,属性名,データ型,制約条件を設定し,効率的なデータ管理を実現する.
- データの追加: テーブルに新規データを登録する基本操作であり,データシートビューで視覚的な入力が可能である.
- データの整合性: データベースの中核機能であり,データの矛盾のない一貫した状態を維持し,高品質なデータ管理を実現する.
- 射影: 問い合わせ操作の一種であり,テーブルから必要な属性のみを選択し,効率的なデータ抽出を実現する.
- 選択: 問い合わせ操作の一種であり,条件に合致する行を抽出し,必要なデータのみを取得する.
- 関連: テーブル間の論理的な接続を表す概念であり,複数のテーブルに分散したデータを効率的に統合する仕組みを提供する.
3. Microsoft Accessを用いたデータベース操作入門(2):SQLの基礎から実践まで
【資料】
【概要】
リレーショナルデータベースは,データをテーブル形式で保持し,テーブル間の関連付けにより効率的な情報管理を実現するシステムである.データの整合性維持,柔軟な検索機能,トランザクション制御,セキュリティ管理などの特徴を備える.Accessでのデータ操作は,主にSQLビューとデータシートビューを活用する.SQLビューではcreate tableによるテーブル定義やselect文による問い合わせなどの高度な操作を実行し,データシートビューではテーブルデータの直接編集を可能にする.SQLの基本命令として,select(データ取得),from(対象テーブル指定),where(条件指定)があり,DISTINCTキーワードによる重複行除去や,INTO句を用いたテーブル分割なども実現できる.これらの機能を活用することで,データの正規化と効率的な管理を実現する.
演習
- 演習1.Access の SQL ビューを用いたテーブル定義
create table 朝食と値段 ( 名前 text, 朝食 text, 値段 integer );
- 演習2.Access のデータシートビューを用いたデータの追加
Accessのデータシートビューを使用
- 演習3.Access の SQL ビューを用いた重複行除去
SELECT DISTINCT 朝食 FROM 朝食と値段;
- 演習4.Access の SQL ビューを用いたテーブル分割
SELECT DISTINCT 名前, 朝食 INTO 各自の朝食 FROM 朝食と値段;
SELECT DISTINCT 朝食, 値段 INTO 朝食メニュー FROM 朝食と値段;
キーワードとその説明文
- リレーショナルデータベース: データを表形式で管理し,テーブル間を関連付けるシステムである.データの整合性確保,検索機能,トランザクション処理,セキュリティ管理などの機能を提供する.
- テーブル: データベースの基本構造であり,行と列で構成される表形式のデータ集合である.列は属性として情報を定義し,各行はレコードとしてデータを格納する.
- SQL(Structured Query Language): データベースを操作する標準言語である.create tableによるテーブル定義,selectによるデータ取得,fromによる対象指定,whereによる条件設定など,多様な操作を実現する.
- データシートビュー: テーブルのデータを直接操作できる画面であり,データの確認,編集,追加,検索などの基本機能を統合する.
- SQLビュー: SQL文を作成・実行する専用画面であり,create tableによるテーブル定義やselect文による問い合わせなど,高度な操作を可能にする.
- create table: テーブルを定義するSQL命令であり,テーブル名と各属性のデータ型を指定し,効率的なデータ構造を設計する.
- select文: データベースから情報を取得する基本的なSQL命令であり,必要なデータの抽出と加工を実現する.
- from句: select文で使用され,データ取得対象のテーブルを指定するSQL句であり,単一または複数テーブルの指定が可能である.
- where句: select文で使用され,特定の条件を満たすデータを選択するSQL句であり,数値比較や文字列一致など,多様な条件指定を実現する.
- DISTINCT: select文で使用され,重複行を除去するキーワードである.同一の値を持つ複数の行から一行のみを残し,データの正規化を支援する.
- INTO: Accessの機能であり,問い合わせ結果を新しいテーブルとして保存するキーワードである.テーブル分割などのデータ構造最適化に活用する.
- テーブル分解: 一つのテーブルを複数の小規模テーブルに分割する操作である.正規化によるデータ冗長性の削減や,検索性能の向上を実現する.
- 重複行除去: テーブルやクエリ結果から重複するデータを排除する操作である.DISTINCTキーワードを使用し,データの正規化と分析の効率化を実現する.
- 正規化: データベース設計における最適化処理であり,データの冗長性を最小化し,一貫性を確保する.テーブル分割を通じて効率的なデータ管理を実現する.
- データの整合性: データベースの重要機能であり,データの矛盾のない一貫した状態を維持する.不正確なデータの混入を防止し,高品質な情報管理を実現する.
- トランザクション: 複数のデータベース操作を単一の処理単位として実行する機能である.データの一貫性と信頼性を確保し,安全な情報処理を実現する.
- クエリ(問い合わせ): データベースに対するデータ取得・加工要求であり,発行から返却までの体系的な処理を通じて,多様なデータ操作を実現する.
- テーブル結合: 複数のテーブル間の関連に基づきデータを統合する操作である.関連するデータの効率的な取得と分析を可能にする.
- テーブル定義: データベース設計の基盤となる作業であり,テーブル名,属性名,データ型,制約条件を設定し,効率的な情報管理を実現する.
- データの追加: テーブルに新規データを登録する基本操作であり,データシートビューでの視覚的な入力を通じて,正確なデータ登録を実現する.
4. リレーショナルデータベースとMicrosoft Accessの基礎 - データの効率的な管理と検索
【資料】
【概要】
リレーショナルデータベースは,データをテーブル形式で管理し,テーブル間の関連付けにより複雑なデータ構造を効率的に扱うシステムである.データの整合性維持,柔軟な検索機能,トランザクション処理,セキュリティ管理などの重要機能を備える.データベース操作にはSQL(Structured Query Language)を使用し,select,from,whereなどの基本キーワードを組み合わせることで,効率的なデータ検索と抽出を実現する.また,LIKEを用いたパターンマッチングにより,特定の文字列を含むデータの高度な検索も可能である.Microsoft Accessでは,SQLビューとデータシートビューを効果的に活用することで,包括的なデータベース運用を実現する.SQLビューではSQL文の作成・実行を行い,データシートビューでは実データの視覚的な操作を可能にする.これにより,データの安全な保管と効率的な活用を実現し,組織の意思決定を強力に支援する.
演習
- 演習1.Access の SQL ビューを用いたテーブル定義
create table メニュー ( 名前 text, 値段 integer );
- 演習2.Access のデータシートビューを用いたデータの追加
Accessのデータシートビューを使用
- 演習3.パターンマッチ
select * from メニュー where 名前 like '*うどん*';
select * from メニュー where 名前 like '*カレー*';
select * from メニュー where 名前 like '*定食*';
- 演習4.実データを用いたデータ検索の演習
Access データベースファイル: db4-4.accdb
SELECT DISTINCT 教育 FROM 米国成人調査データ;
SELECT DISTINCT 職業 FROM 米国成人調査データ WHERE 年収5万ドル以上か = '>50K';
SELECT DISTINCT 教育 FROM 米国成人調査データ WHERE 教育 LIKE '*大学*';
キーワードとその説明文
- リレーショナルデータベース: テーブル形式でデータを管理し,テーブル間の関連付けを実現するシステムである.データの整合性維持,検索機能,トランザクション処理,セキュリティ確保などの機能を提供する.
- テーブル: データベースの基本構造であり,行と列で構成される表形式のデータ集合である.列は属性として情報を定義し,各行はレコードとしてデータを格納する.
- データの整合性: データベースの中核機能であり,データの矛盾のない一貫した状態を維持する.不正確なデータの混入を防止し,高品質な情報管理を実現する.
- SQL(Structured Query Language): データベースを操作する標準言語である.create tableによるテーブル定義,selectによるデータ取得,whereによる条件指定など,多様な操作を実現する.
- トランザクション機能: データベース操作を単一の処理単位として実行する機能である.処理の一貫性と信頼性を確保し,エラー発生時の安全な回復を可能にする.
- セキュリティ: アクセス権限の管理によりデータの保護を実現する機能である.許可された利用者のみがデータにアクセスできる仕組みを提供する.
- select文: データベースから情報を取得する基本的なSQL命令であり,必要なデータの抽出と加工を実現する.
- from句: select文で使用され,データ取得対象のテーブルを指定するSQL句である.単一または複数テーブルの指定が可能である.
- where句: select文で使用され,特定の条件を満たすデータを選択するSQL句である.数値比較や文字列一致など,多様な条件指定を実現する.
- create table: テーブルを定義するSQL命令であり,テーブル名と各属性のデータ型を指定し,効率的なデータ構造を設計する.
- データシートビュー: テーブルのデータを直接操作できる画面であり,データの確認,編集,追加,検索などの基本機能を統合する.
- SQLビュー: SQL文を作成・実行する専用画面であり,create tableによるテーブル定義やselect文による問い合わせなど,高度な操作を可能にする.
- パターンマッチ: 文字列の部分一致検索を実現する機能である.アスタリスク(*)を使用したワイルドカード指定により,柔軟な検索条件を設定できる.
- LIKE演算子: パターンマッチングを実行する演算子である.「LIKE '*パターン*'」の形式で使用し,指定したパターンを含む文字列を検索する.
- DISTINCT: select文で使用され,重複行を除去するキーワードである.同一の値を持つ複数の行から一行のみを残し,データの正規化を支援する.
5. SQL 問い合わせの基本: SELECT、FROM、WHERE、DISTINCT、IN、BETWEEN、SQL 問い合わせの基本構造、SQL による集計(AVG, SUM, COUNTなど)
【資料】
- PDFファイル: sqintroenshu.pdf
- パワーポイントファイル(PDFファイルと同じ内容): sqintroenshu.pptx
【概要】
SQLの基本キーワードであるSELECT,FROM,WHEREの理解は,リレーショナルデータベースでの効率的なデータ管理の基盤となる.これにより,条件に基づく柔軟なデータアクセスが可能となる.SELECT * FROM T;はテーブルTの全データを取得し,SELECT a, b FROM T WHERE b > 80;は特定条件を満たすデータのみを抽出する.また,SELECT DISTINCT a FROM T;やSELECT * FROM T WHERE c LIKE '%階';のように,重複データの排除や特定パターンに一致するデータの取得が可能である.さらに,AVG(平均値),MAX(最大値),MIN(最小値),SUM(合計値),COUNT(行数)などの集計関数を活用することで,多角的なデータ分析が実現できる.これらの基本操作は,より高度なデータベース操作の基礎となり,効果的なデータ活用を可能にする.
演習
Access データベースファイル: Database31.accdb
- 演習1.Access の SQL ビューを用いたテーブル定義
CREATE TABLE 記録 ( 名前 TEXT, 得点 INTEGER, 居室 TEXT);
- 演習2.Access のデータシートビューを用いたデータの追加
Accessのデータシートビューを使用
- 演習3.SQL による問い合わせ(クエリ)
Access の SQL ビューを使用.1つずつ実行.
1
SELECT * FROM 記録;
2
SELECT 名前 FROM 記録;
3
SELECT 得点 FROM 記録;
4
SELECT 居室 FROM 記録;
5
SELECT DISTINCT 居室 FROM 記録;
6
SELECT 名前, 得点 FROM 記録 WHERE 得点 > 80;
7
SELECT 名前, 得点 FROM 記録 WHERE 得点 BETWEEN 80 AND 85;
8
SELECT AVG(得点) FROM 記録;
9
SELECT * FROM 記録 WHERE 居室 LIKE '*階';
10
SELECT * FROM 記録 WHERE 居室 IN ('1階', '2階');
6. テーブル結合とSQLによるデータ統合
【資料】
【概要】結合は,リレーショナルデータベースにおける核心的な機能であり,異なるテーブルを統合して新たなデータ集合を生成する操作である.通常,テーブル間の特定属性の値が一致する条件で結合を行うが,より複雑な条件設定も可能である.SQLを用いた結合操作により,複数のテーブルから必要なデータを効率的に取得でき,データベースの柔軟性と運用効率が向上する.結合の実践的理解は,効果的なデータ分析と問題解決能力の向上につながる.結合操作では,JOINキーワードを使用して二つのテーブルを結び付け,ON句で結合条件を指定する.このSQL文の実行により,指定された条件に基づいて新しい結合テーブルが生成される.
なお,Accessには機能制限があり,標準SQLの全機能は利用できない.以下のような構文となる:
SELECT * FROM 商品 INNER JOIN 購入 ON 商品.ID = 購入.商品番号 WHERE 購入.購入者 = 'X';
標準SQLでの記述:
SELECT * FROM 商品 JOIN 購入 ON 商品.ID = 購入.商品番号 AND 購入.購入者 = 'X';
演習
- 演習1.AccessのSQLビューを用いたテーブル定義,データの追加
Access の SQL ビューを使用.SQL を1つずつ実行.
1
CREATE TABLE 商品 ( ID INTEGER, 商品名 TEXT, 単価 INTEGER);
2
INSERT INTO 商品 VALUES(1, 'みかん', 50);
3
INSERT INTO 商品 VALUES(2, 'りんご', 100);
4
INSERT INTO 商品 VALUES(3, 'メロン', 500);
5
CREATE TABLE 購入 ( 購入者 TEXT, 商品番号 INTEGER);
6
INSERT INTO 購入 VALUES('X', 1);
7
INSERT INTO 購入 VALUES('X', 3);
8
INSERT INTO 購入 VALUES('Y', 2);
演習1が終わったら,Accessを閉じずに,演習2に進んでください.
演習1をうまく行えなかった人は,次のデータベースファイルを参考にしてください.うまく終えた人には必要のないものです.
- 演習2.SQLによる結合
Access の SQL ビューを使用.SQL を1つずつ実行.
1. 単純な表示
select * FROM 商品;
2. 結合
SELECT * FROM 商品 INNER JOIN 購入 ON 商品.ID = 購入.商品番号;
3. 複数の条件の指定
SELECT * FROM 商品 INNER JOIN 購入 ON 商品.ID = 購入.商品番号 WHERE 購入.購入者 = 'X';
4. 表示される属性を絞り込む
SELECT 商品名, 購入者, 単価 FROM 商品 INNER JOIN 購入 ON 商品.ID = 購入.商品番号 WHERE 購入.購入者 = 'X';
5. 今度は,購入者 Y に関するデータ取得
SELECT 商品名, 購入者, 単価 FROM 商品 INNER JOIN 購入 ON 商品.ID = 購入.商品番号 WHERE 購入.購入者 = 'Y';
- 演習3.米国成人調査データ
使用するデータベースファイル
SELECT * FROM 米国成人調査データ INNER JOIN 対象国 ON 米国成人調査データ.母国 = 対象国.名前;
7. SQLによるデータ分析:GROUP BYを用いたグループ化と集約
【資料】
【概要】
SQLのGROUP BY句と集約関数は,大量データの効率的な分析を実現する強力なツールである.例えば,成績テーブルにおいて科目や受講者ごとにデータをグループ化することで,科目別平均点や受講者別得点合計を算出できる.グループ化により,データの見通しが改善され,GROUP BYと集約関数(SUM,AVG,COUNTなど)を組み合わせることで,各グループの行数,平均値,最大値,最小値を計算し,データの傾向やパターンを明確化できる.これらの分析結果は,的確な意思決定を支援する重要な情報となる.GROUP BYの概念は,SQLに限らず他のデータ分析ツールでも活用される普遍的な考え方であり,ビジネスや研究における問題解決に不可欠な手法である.
演習
- 演習1
Accessを使用.SQLビューで1つずつ実行してください.複数の一括実行はできません.
CREATE TABLE 成績 ( 科目 TEXT, 受講者 TEXT, 得点 INTEGER);
INSERT INTO 成績 VALUES('国語', 'A', 85);
INSERT INTO 成績 VALUES('国語', 'B', 90);
INSERT INTO 成績 VALUES('算数', 'A', 90);
INSERT INTO 成績 VALUES('算数', 'B', 96);
INSERT INTO 成績 VALUES('理科', 'A', 95);
- 演習1が終わったら,Accessを閉じずに,演習2に進んでください.
演習1をうまく行えなかった人は,次のデータベースファイルを参考にしてください.うまく終えた人には必要のないものです.
- 【演習2】
Accessを使用.SQLビューで1つずつ実行してください.複数の一括実行はできません.
単純な表示
SELECT * FROM 成績;
得点の平均
SELECT AVG(得点) FROM 成績;
国語の得点の平均
SELECT AVG(得点) FROM 成績 WHERE 科目 = '国語';
それぞれの科目の受講者数
SELECT 科目, COUNT(*) FROM 成績 GROUP BY 科目;
それぞれの科目の平均得点
SELECT 科目, AVG(得点) FROM 成績 GROUP BY 科目;
それぞれの科目について,得点が90点以上である受講者数
SELECT 科目, COUNT(*) FROM 成績 WHERE 得点 >= 90 GROUP BY 科目;
それぞれの受講者が受講している科目数
SELECT 受講者, COUNT(*) FROM 成績 GROUP BY 受講者;
それぞれの受講者の得点合計
SELECT 受講者, SUM(得点) FROM 成績 GROUP BY 受講者;
それぞれの受講者の得点平均
SELECT 受講者, AVG(得点) FROM 成績 GROUP BY 受講者;
- 【実データを用いた演習】
次のAccessデータベースファイルを使用
SELECT 年齢, count(*) FROM 米国成人調査データ GROUP BY 年齢;
SELECT 教育, count(*) FROM 米国成人調査データ GROUP BY 教育;
SELECT 週当たり労働時間, count(*) FROM 米国成人調査データ GROUP BY 週当たり労働時間;
SELECT 年収5万ドル以上か, count(*) FROM 米国成人調査データ GROUP BY 年収5万ドル以上か;
SELECT 教育, 年収5万ドル以上か, count(*) FROM 米国成人調査データ GROUP BY 教育, 年収5万ドル以上か;
8. SQLにおける副問い合わせと論理演算子(AND, OR)の基礎
【資料】
【概要】
SQLのIN,副問い合わせ,論理演算子ANDとORは,データベース操作の柔軟性と効率を高める重要な要素である.INは複数の値の中から一致するものを選択する機能を提供する.副問い合わせは,他の問い合わせ内に埋め込まれた問い合わせであり,複雑なデータ抽出や最新データに基づく条件設定を実現する.例えば,最高得点を取得した受講者の特定や平均点以上の得点を持つ行の選択が可能となる.ANDとORは,複数の条件を組み合わせる際に使用され,ANDは全条件の成立を要求し,ORはいずれかの条件の成立を許容する.これらの機能を効果的に活用することで,データベース操作の精度と効率が向上する.
演習
- 演習1
Accessを使用.SQLビューで1つずつ実行してください.複数の一括実行はできません.
CREATE TABLE 成績 ( 科目 TEXT, 受講者 TEXT, 得点 INTEGER);
INSERT INTO 成績 VALUES('国語', 'A', 85);
INSERT INTO 成績 VALUES('国語', 'B', 90);
INSERT INTO 成績 VALUES('算数', 'A', 90);
INSERT INTO 成績 VALUES('算数', 'B', 96);
INSERT INTO 成績 VALUES('理科', 'A', 95);
演習1が終わったら,Accessを閉じずに,演習2に進んでください.
演習1をうまく行えなかった人は,次のデータベースファイルを参考にしてください.うまく終えた人には必要のないものです.
- 【演習2】
Accessを使用.SQLビューで1つずつ実行してください.複数の一括実行はできません.
1.単純な表示
SELECT * FROM 成績;
2.ANDによる範囲指定
SELECT * FROM 成績 WHERE 得点 >= 85 AND 得点 <= 90;
3.ANDとBETWEENによる範囲指定
SELECT * FROM 成績 WHERE 得点 BETWEEN 85 AND 90;
4.範囲指定と別の条件の組み合わせ
SELECT * FROM 成績 WHERE 科目 = '国語' AND 得点 BETWEEN 90 AND 100;
5.SQL の IN
SELECT * FROM 成績 WHERE 科目 IN ('国語', '算数');
6.最高得点の受講者
SELECT 受講者 FROM 成績 WHERE 得点 = (SELECT MAX(得点) FROM 成績);
7.平均得点よりも高いことを条件とする検索
SELECT * FROM 成績 WHERE 得点 > (SELECT AVG(得点) FROM 成績);
- 【実データを用いた演習】
次のAccessデータベースファイルを使用
SELECT * FROM 米国成人調査データ WHERE 教育 IN ('10th', '11th');
SELECT * FROM 米国成人調査データ WHERE 母国 IN ('インド', 'メキシコ');
SELECT MAX(年齢) FROM 米国成人調査データ;
SELECT * FROM 米国成人調査データ WHERE 年齢 = (SELECT MAX(年齢) FROM 米国成人調査データ);
- 自習
特定の職業に従事しているすべての人のリストを取得する:
SELECT * FROM 米国成人調査データ WHERE 職業 = '専門職';
特定の年齢範囲内の人々の数をカウントする:
SELECT COUNT(*) FROM 米国成人調査データ WHERE 年齢 BETWEEN 20 AND 30;
母国ごとの平均週当たり労働時間を計算する:
SELECT 母国, AVG(週当たり労働時間) FROM 米国成人調査データ GROUP BY 母国;
特定の職業の最大教育年数を持つ人々を選択
SELECT * FROM 米国成人調査データ WHERE 教育年数 = (SELECT MAX(教育年数) FROM 米国成人調査データ);
9. データベース設計の実践:正規化の目的と手順,種々の正規形,SQLを用いた正規化
【資料】
【概要】
データベース設計では,テーブル名,属性,データ型,制約,索引など,データベース全体の構造を体系的に定義する.正規化の主目的は,データベース構造を最適化し,効率的な管理を実現することである.正規化により,データの冗長性削減,異常の防止,効率の向上,信頼性の確保,管理の簡素化など,多くの利点が得られる.既存データベースの正規化は,情報無損失の原則に基づき,データの冗長性を最小化するようにテーブルを分割することで実現する.このプロセスは,「SELECT」や「CREATE TABLE ... AS」などのSQLコマンドを使用して実行できる.これらの概念と技術は,効率的で信頼性の高いデータベースの構築と運用に不可欠である.
演習
- 演習1
Accessを使用.SQLビューで1つずつ実行してください.複数の一括実行はできません.
CREATE TABLE T ( 名前 TEXT, 昼食 TEXT, 料金 INTEGER);
INSERT INTO T VALUES('A', 'そば', 250);
INSERT INTO T VALUES('B', 'カレーライス', 400);
INSERT INTO T VALUES('C', 'カレーライス', 400);
INSERT INTO T VALUES('D', 'うどん', 250);
演習1が終わったら,Accessを閉じずに,演習2に進んでください.
演習1をうまく行えなかった人は,次のデータベースファイルを参考にしてください.うまく終えた人には必要のないものです.
- 演習2
Accessを使用.SQLビューで1つずつ実行してください.複数の一括実行はできません.
単純な表示
SELECT * FROM T;
昼食の列のみ
SELECT 昼食 FROM T;
重複行の除去 DISTINCT
SELECT DISTINCT 昼食 FROM T;
- 演習3
Accessを使用.SQLビューで1つずつ実行してください.複数の一括実行はできません.
テーブル X の生成
SELECT DISTINCT 名前, 昼食 INTO X FROM T;
テーブル Y の生成
SELECT DISTINCT 昼食, 料金 INTO Y FROM T;
テーブル X の確認
SELECT * FROM X;
テーブル Y の確認
SELECT * FROM Y;
テーブルの結合により元に戻ることを確認
SELECT X.名前, X.昼食, Y.料金 FROM X INNER JOIN Y ON X.昼食 = Y.昼食;
- 自習1
Accessを使用.SQLビューで1つずつ実行してください.複数の一括実行はできません.
CREATE TABLE S ( StudentID INTEGER, StudentName TEXT, Course TEXT );
INSERT INTO S VALUES (1, 'Alice', 'Math');
INSERT INTO S VALUES (1, 'Alice', 'Science');
INSERT INTO S VALUES (2, 'Bob', 'History');
INSERT INTO S VALUES (3, 'Charlie', 'Math');
INSERT INTO S VALUES (3, 'Charlie', 'History');
INSERT INTO S VALUES (3, 'Charlie', 'Science');
SELECT DISTINCT StudentID, StudentName INTO U FROM S;
SELECT DISTINCT StudentID, Course INTO V FROM S;
SELECT * FROM S;
SELECT * FROM U;
SELECT * FROM V;
SELECT U.StudentID, U.StudentName, V.Course FROM U INNER JOIN V ON U.StudentID = V.StudentID;
10. データベース設計ベストプラクティス:主キーと外部キー,設計手法
【資料】
【概要】
データベース設計は,テーブルの構造を体系的に定義し,データの整合性と効率的な管理を実現するプロセスである.主キーはテーブル内の各行を一意に識別するために使用され,重複を許可しない.これにより,データの一意性が保証され,特定のデータへの迅速なアクセスが可能となる.外部キーは他のテーブルの主キーを参照し,参照整合性制約を通じてテーブル間のデータの一貫性を維持する.データベース設計のプロセスには,テーブル名の決定,属性の設定,データ型の選択,制約の設定,索引の作成,テーブル間の関係性の定義が含まれる.例えば,大学の学生管理システムでは,学生テーブル,講義テーブル,成績テーブルを設計し,それぞれに適切な主キーと外部キーを設定する.このような設計手法は,システムの連携強化,データの一元管理,効率的なアクセス,拡張性,柔軟性,セキュリティの向上をもたらす.
11. データベース操作:INSERT,UPDATE,DELETE
【資料】
- PDFファイル: e13new.pdf
- パワーポイントファイル(PDFファイルと同じ内容): e13new.pptx
12. 中間まとめ
【資料】
- PDFファイル: e15new.pdf
- パワーポイントファイル(PDFファイルと同じ内容): e15new.pptx
14. Access のデータベースツール
【資料】
15. リレーショナルデータベース活用演習
【資料】
16. 並べ替え(ソート)
【資料】