トップページ情報工学を学ぶリレーショナルデータベースの基本(全15回)

リレーショナルデータベースの基本(全15回)

大学で使用した自作の教材を,手直しの上公開している. クリエイティブ・コモンズ BY NC SA.

【目次】

  1. ds-1. データベースとは,データベースシステムとは,情報とデータ [PDF], [パワーポイント]
  2. ds-2. SQL,SQL のデータ型,テーブル定義,問い合わせ(クエリ) [PDF], [パワーポイント]
  3. ds-3. ER 図,関連,異状, テーブル分解 [PDF], [パワーポイント]
  4. ds-4. 問い合わせ(クエリ) [PDF], [パワーポイント]
  5. ds-5. 集計・集約 [PDF], [パワーポイント]
  6. ds-6. 並べ替え(ソート) [PDF], [パワーポイント]
  7. ds-7. 結合 [PDF], [パワーポイント]
  8. ds-8. データベースの異状,分解と結合 [PDF], [パワーポイント]
  9. ds-9. 主キー,参照整合性制約,従属 [PDF], [パワーポイント]
  10. ds-10. データベースのNULL, AND, OR [PDF], [パワーポイント]
  11. ds-11. SQL のIN,副問い合わせ [PDF], [パワーポイント]
  12. ds-12. 正規形,正規化 [PDF], [パワーポイント]
  13. ds-13. データベース操作,バックアップ,トランザクション [PDF], [パワーポイント]
  14. ds-14. リレーショナルデータベースの特徴,データウエアハウス [PDF], [パワーポイント]
  15. ds-15. データベースの応用,データベースの種類 [PDF], [パワーポイント]

【サイト内のリレーショナルデータベース関連の資料】

資料

  1. ds-1. データベースとは,データベースシステムとは,情報とデータ [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/KGG3QK-2022-01-12-110749

  2. ds-2. SQL,SQL のデータ型,テーブル定義,問い合わせ(クエリ) [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/Z9WXMZ-2022-01-12-110917

  3. ds-3. ER 図,関連,異状, テーブル分解 [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/5LJM3Z-2022-01-12-111001

  4. ds-4. 問い合わせ(クエリ) [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/KP46LZ-2022-01-12-111032

  5. ds-5. 集計・集約 [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/KXW8GZ-2022-01-12-111109

  6. ds-6. 並べ替え(ソート) [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/ZDGR6Z-2022-01-12-111147

  7. ds-7. 結合 [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/5WV28K-2022-01-12-111219

  8. ds-8. データベースの異状,分解と結合 [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/KRG1J5-2022-01-12-111306

  9. ds-9. 主キー,参照整合性制約,従属 [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/Z28DGZ-2022-01-12-111413

  10. ds-10. データベースのNULL, AND, OR [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/K81XEZ-2022-01-12-111450

  11. ds-11. SQL のIN,副問い合わせ [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/Z33XVZ-2022-01-12-111542

  12. ds-12. 正規形,正規化 [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/KQMVWZ-2022-01-12-111615

  13. ds-13. データベース操作,バックアップ,トランザクション [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/Z7EX25-2022-01-12-111655

  14. ds-14. リレーショナルデータベースの特徴,データウエアハウス [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/5JXJJK-2022-01-12-111718

  15. ds-15. データベースの応用,データベースの種類 [PDF], [パワーポイント]

    ドクセル のURL: https://www.docswell.com/s/6674398749/54EX8K-2022-01-12-111758

動画(上の資料と同じ内容)

YouTube の再生リスト「データベースシステム」
https://www.youtube.com/playlist?list=PLwoDcGBEg9WGKPP6dExr8DcUf9nV2kYGD

ds-1. データベースとは,データベースシステムとは,情報とデータ

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

ds-2. SQL,SQL のデータ型,テーブル定義,問い合わせ(クエリ)

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

ds-3. ER 図,関連,異状, テーブル分解

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

ds-4. 問い合わせ(クエリ)

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

実習・実演のための Access データベースファイル:

ds-5. 集計・集約

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

ds-6. 並べ替え(ソート)

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

ds-7. 結合

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

ds-8. データベースの異状,分解と結合

  1. 8-1. リレーショナルデータベースの異状

  2. 8-2. テーブルの分解による異状の防止

  3. 8-3. DISTINCT による重複行除去,Access を用いた実演・実習

  4. 8-4. 分解と結合

  5. 8-5. Access を用いた分解と結合の実演・実習

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

ds-9. 主キー,参照整合性制約,従属

  1. 9-1. 従属

  2. 9-2. Access を用いた従属に関する実演・実習

  3. 9-3. 主キー,参照整合性制約

  4. 9-4. SQL での主キー,参照整合性制約

  5. 9-5. Access を用いた参照整合性制約に関する実演・実習

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

実習・実演のための Access データベースファイル:d9.accdb

SQL プログラム

9-2

SELECT DISTINCT 商品名, 単価 FROM 商品;
SELECT 商品名, count(*)
FROM (SELECT DISTINCT 商品名, 単価 FROM 商品)
GROUP BY 商品名;
SELECT DISTINCT 単価, 購入者 FROM 商品;
SELECT 単価, count(*)
FROM (SELECT DISTINCT 単価, 購入者 FROM 商品)
GROUP BY 単価;

ds-10. データベースのNULL, AND, OR

  1. 10-1. データベースの NULL

  2. 10-2. Access,MySQL を用いた NULL の実演実習

  3. 10-3. AND と OR

  4. 10-4. Access,MySQL を用いた AND と OR の実演・実習

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

実習・実演のための Access データベースファイル:d10.accdb

SQL プログラム

10-2

Paiza.IO の URL: https://paiza.io/ja

select *
from T
where 価格 IS NULL;
select *
from T
where 価格 IS NOT NULL;
create table T(商品 text, 価格 integer);
insert into T values('かき氷', 400);
insert into T values('カレーライス', NULL);
insert into T values('サイダー', 200);
select *
from T
where 価格 IS NULL;
select *
from T
where 価格 IS NOT NULL;

10-4

Access

select *
from 授業;

select *
from 授業
where 科目 = '国語';

select *
from 授業
where 教室名 = '一階';

select *
from 授業
where 科目 = '国語' AND 教室名 = '一階';

select *
from 授業
where 科目 = '国語' OR 教室名 = '一階';

select 科目, 学生番号, 得点
from 授業, 成績;

select 科目, 学生番号, 得点
from 授業, 成績
where 授業.ID = 成績.科目番号;

select 科目, 学生番号, 得点
from 授業, 成績
where 授業.ID = 成績.科目番号 AND 学生番号 = 101;

MySQL

create table 授業 (
  ID integer primary key,
  担当者 text,
  科目 text,
  教室名 text,
  曜日 text
);

create table 成績 (
  学生番号 integer,
  科目番号 integer,
  得点 integer,
  foreign key(科目番号) references 授業(ID)
);

insert into 授業 values(1, 'AA', '国語', '一階', '月');
insert into 授業 values(2, 'BB', '国語', '二階', '月');
insert into 授業 values(3, 'CC', '国語', '三階', '月');
insert into 授業 values(4, 'AA', '算数', '一階', '火');
insert into 授業 values(5, 'XX', '算数', '二階', '火');

insert into 成績 values(101, 1, 90);
insert into 成績 values(101, 4, 95);
insert into 成績 values(102, 2, 100);
insert into 成績 values(102, 5, 80);
insert into 成績 values(103, 3, 85);
insert into 成績 values(103, 4, 100);

select *
from 授業;

select *
from 授業
where 科目 = '国語';

select *
from 授業
where 教室名 = '一階';

select *
from 授業
where 科目 = '国語' AND 教室名 = '一階';

select *
from 授業
where 科目 = '国語' OR 教室名 = '一階';

select 科目, 学生番号, 得点
from 授業, 成績;

select 科目, 学生番号, 得点
from 授業, 成績
where 授業.ID = 成績.科目番号;

select 科目, 学生番号, 得点
from 授業, 成績
where 授業.ID = 成績.科目番号 AND 学生番号 = 101;

ds-11. SQL のIN,副問い合わせ

  1. 11-1. SQL の IN

  2. 11-2. Access,MySQL を用いた IN の実演・実習

  3. 11-3. SQL の副問い合わせ

  4. 11-4. Access,MySQL を用いた副問い合わせの実演・実習

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

SQL プログラム

11-1

SELECT *
FROM 米国成人調査データ
WHERE 教育 IN ('10th', '11th');

SELECT *
FROM 米国成人調査データ
WHERE 母国 IN ('インド', 'メキシコ');

Paiza.IO の URL: https://paiza.io/ja

create table T(商品 text, 価格 integer);
insert into T values('かき氷', 400);
insert into T values('カレーライス', 500);
insert into T values('サイダー', 200);

select *
from T
where 価格 IN (200, 500);

11-3

create table 成績 (
  学生番号 integer,
  科目名 text,
  得点 integer
);
insert into 成績 values(101, 'データベース', 90);
insert into 成績 values(101, '数学', 80);
insert into 成績 values(102, 'データベース', 85);
insert into 成績 values(102, 'プログラミング', 100);
insert into 成績 values(103, 'データベース', 95);
insert into 成績 values(201, '歴史', 90);
insert into 成績 values(202, '地理', 90);
SELECT 科目名
FROM 成績
WHERE 学生番号 = 101;
SELECT DISTINCT 学生番号
FROM 成績
WHERE 科目名 IN (SELECT 科目名
    FROM 成績
    WHERE 学生番号 = 101);
SELECT MAX(得点)
FROM 成績;
SELECT 学生番号
FROM 成績
WHERE 得点 IN (SELECT MAX(得点)
    FROM 成績);

ds-12. 正規形,正規化

  1. 12-1. 正規形

  2. 12-2. 種々の正規形

  3. 12-3. 第三正規形

  4. 12-4. 正規化

  5. 12-5. MySQL を用いた分解と正規化の実演・実習

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

SQL プログラム

Paiza.IO の URL: https://paiza.io/ja

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);
create table A as select distinct 名前, 昼食 from T;
create table B as select distinct 昼食, 料金 from T;
select * from A;
select * from B;
select A.名前, A.昼食, B.料金 from A, B where A.昼食 = B.昼食;
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);
create table A as select distinct 昼食, 料金 from T;
create table B as select distinct 名前, 料金 from T;
select * from A;
select * from B;
select A.昼食, A.料金, B.料金 from A, B where A.料金 = B.料金;

ds-13. データベース操作,バックアップ,トランザクション

  1. 13-1. SQL を用いたデータベース操作(挿入,削除,更新),MySQL を用いた実演・実習

  2. 13-2. データベースのバックアップ

  3. 13-3. ロールバック,MySQL を用いた実演・実習

  4. 13-4. システムのダウンでのロールバック

  5. 13-5. ロックと同時実行制御

  6. 13-6. トランザクション

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

SQL プログラム

Paiza.IO の URL: https://paiza.io/ja

13-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);
update T set 料金 = 300 where 昼食 = 'うどん';
delete from T where 名前 = 'A';
select * from T;

13-2

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);
update T set 料金 = 300 where 昼食 = 'うどん';
delete from T where 名前 = 'A';
select * from T;

ds-14. リレーショナルデータベースの特徴,データウエアハウス

  1. 14-1. リレーショナルデータベースの特徴

  2. 14-2. 情報検索とデータベース,Access,MySQL を用いた実演・実習

  3. 14-3. 索引

  4. 14-4. オープンデータ

  5. 14-5. 日時情報

  6. 14-6. データウエアハウス

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]

SQL プログラム

Paiza.IO の URL: https://paiza.io/ja

CREATE TABLE employee (
    id integer,
    name text,
    job text,
    manager_id integer,
    hire_date datetime,
    salary integer,
    commission integer,
    dep_id integer
);

insert into employee values(68319,'KAYLING','PRESIDENT',NULL,'1991/11/18',6000,NULL,1001);
insert into employee values(66928,'BLAZE','MANAGER',68319,'1991/5/1',2750,NULL,3001);
insert into employee values(67832,'CLARE','MANAGER',68319,'1991/6/9',2550,NULL,1001);
insert into employee values(65646,'JONAS','MANAGER',68319,'1991/4/2',2957,NULL,2001);
insert into employee values(67858,'SCARLET','ANALYST',65646,'1997/4/19',3100,NULL,2001);
insert into employee values(69062,'FRANK','ANALYST',65646,'1991/12/3',3100,NULL,2001);
insert into employee values(63679,'SANDRINE','CLERK',69062,'1990/12/18',900,NULL,2001);
insert into employee values(64989,'ADELYN','SALESMAN',66928,'1991/2/20',1700,400,3001);
insert into employee values(65271,'WADE','SALESMAN',66928,'1991/2/22',1350,600,3001);
insert into employee values(66564,'MADDEN','SALESMAN',66928,'1991/9/28',1350,1500,3001);
insert into employee values(68454,'TUCKER','SALESMAN',66928,'1991/9/8',1600,0,3001);
insert into employee values(68736,'ADNRES','CLERK',67858,'1997/5/23',1200,NULL,2001);
insert into employee values(69000,'JULIUS','CLERK',66928,'1991/12/3',1050,NULL,3001);
insert into employee values(69324,'MARKER','CLERK',67832,'1992/1/23',1400,NULL,1001);
SELECT * FROM employee WHERE name like '%AD%';

ds-15. データベースの応用,データベースの種類

  1. 15-1. データベースシステムとその周辺分野

  2. 15-2. リレーショナルデータベースの歴史

  3. 15-3. データベースシステムの種類

  4. 15-4. リレーショナルデータベースとオブジェクトの統合

  5. 15-5. ドキュメント指向のデータベース

  6. 15-6. キー・バリュー形式のデータベース

以上をまとめた資料:[PDF ファイル],[パワーポイントファイル]