OSS-DBプログラム

OSS-DB Silver 暗記 A-2

一般知識(16%):::RDBに関する一般知識【重要度:4】

 

DBMS

Wikipedia:データベース管理システム

DBMS(Data Base Management System)の主な機能

  • データベース言語  : SQL(RDBMS)でDBを定義・操作・制御する
  • データ整合性    : 不正データの登録・更新を防ぐ
  • トランザクション処理: 一貫性のあるDB操作
  • セキュリティ    : 不正アクセス対策
  • 障害復旧      : バックアップとログ

 

  暗記  

  • 専用言語(SQL)でシステムを操作
  • データを守る
    • 不正データ、不正アクセス、システムダウン
    • 複数同時処理(トランザクション)

 

DB設計

  • 概念設計: 現実世界分析、ER図、クラス図
  • 論理設計: テーブル定義、正規化
  • 物理設計: マシン構成・設定

 

関係・属性・組

table column row
Fig.1 table column row
  • 関係・属性・組の別称
    • 関係:テーブル、表
    • 属性:列(column:カラム)
    • 組 :行(row)、タプル

 

  暗記  

  • 「関係」とは「テーブル」のこと
  • 「属性」とは「列:column」のこと

 

 

  暗記  

  • DB設計、最初は、次にテーブル
    1. 要件を満たすか図を作って考える(ER図)
    2. テーブルにする(正規化)

 

 

SQL

  • DDL(Definition:定義)  テーブルを定義
  • DML(Manipulation:操作)テーブルの行操作
  • DCL(Control:制御)   トランザクション制御

 

DMC を覚えれば何とかなりそうですが、CMD が覚えられない(すぐ忘れる)ので、語呂にしました。

  • MCD:マクドナルドのティッカーシンボル・・・???
  • CMD:コマンド・・・・・・・・・・・・・・・SQL-CMD(SQLコマンド)!

※ティッカーシンボル:株式売買で銘柄を識別するための略称。アップル(AAPL)・・・

 

  暗記  

  • SQLコマンド(CMD)・マクド(MCD)もあるよ!

 

 

SQLの分類(SQL-CMD:マクド)

  • DDL(Data Definition Language)
    • テーブル定義:create, alter, drop
    • データベースオブジェクト定義
  • DML(Data Manipulation Language)
    • テーブルの行操作:select, insert, update, delete
  • DCL(Data Control Language)
    • テーブルの権限(grant, revoke)
    • トランザクション(commit, rollback)

  暗記  

  • 英語のニュアンスとして
    • 上位 ↑:Control は管理する(全体を)
    • 下位 ↓:Manipulation は操作する(個々を)
  • 強さで例えると
    • 最強:Definition:テーブル自体を作成削除(改変)
    • 上位:Control:テーブルを管理(権限を操作)
    • 下位:Manipulation:テーブルの(個々の)行操作

※例えは、適宜読み替えてください

 

 

 

正規化

Wikipedia:関係の正規化

 

候補キー、主キー、非キー属性

Wikipedia:候補キー

  • 候補キー :行を一意に識別できる属性
  • 主キー  :候補キーの中の一つ
  • 非キー属性:候補キー以外の属性

 

:市町村テーブル

municipalities-table
Fig.2 municipalities-table
  • 市町村テーブルにおいて
    • 候補キー :市町村コード と { 市町村名, 都道県名 }
    • 主キー  :候補キーの内のどちらか
    • 非キー属性:男、女、計、世帯数

※属性の集合は {  } で括る

 

  暗記  

  • 非キー属性(列)は、候補キー以外の属性(列)

 

関数従属性

Wikipedia:関数従属性

  • 定義
    • R を関係(テーブル)として、XY をそれぞれ R の属性(列)とすると、
    • X の値を決めれば、Y の値がただ1つ決まるとき、
    • 属性 Y は属性 X に関数従属するという
  • 表記
    • XY と表記し、X を決定項、Y を従属項とよぶ
  • 例 
    •  市町村テーブル
      • 市町村コード → 世帯数
      • 市町村コード → 女
      • { 市町村名, 都道県名 } → 計
      • { 市町村名, 都道県名 } → 男
      • ・・・, etc.

 

完全関数従属

  • 定義
    • XY で、かつ X の任意の真部分集合 P について
    • PY が成立しない場合、
    • 属性 Y は 属性 X に完全関数従属するという
  • X真部分集合 P
    • 例えば、属性 X が { A, B } であるとすると、
    • 真部分集合 P は以下となる
      • { A }, { B }, { Φ }

Φ は空集合のこと。

:従業員台帳

employee-table
Fig.3 employee-table
  • 従業員台帳
    • 候補キーが、{ 会社コード, 従業員番号 } だとすると、
    • { 会社コード, 従業員番号 } → 従業員名 で、かつ
    • { 会社コード } → 従業員名は成立しない、{ 従業員番号 } → 従業員名は成立しないので
      • 従業員名は { 会社コード, 従業員番号 } に完全関数従属している

 

部分関数従属

  • 定義:
    • XY で、かつ X のある真部分集合 P について
    • PY が成立する場合、
    • 属性 Y は 属性 X に部分関数従属するという
  • X の真部分集合 P
    • 例えば、属性 X が { A, B } であるとすると、
    • 真部分集合 P は以下となる
      • { A }, { B }, { Φ }
  • 従業員台帳
    • 候補キーが、{ 会社コード, 従業員番号 } だとすると、
    • { 会社コード, 従業員番号 } → 代表者名 で、かつ
    • { 会社コード } → 代表者名が成立するので
      • 代表者名は { 会社コード, 従業員番号 } に部分関数従属している

 

推移関数従属

  • 定義:
    • XY かつ Y → Z で、Y → X が成立しないとき、
    • 属性 Z は 属性 X に推移関数従属するという

 

:車台番号テーブル

  • 自動車には一意の車台番号が付いている(マイナンバーのようなもの)
chassis number table
Fig.4 chassis number table 
  • 車台番号テーブル
    • 候補キーは、車台番号である
    • 車台番号 → 車両モデル で、かつ 車両モデル → 排気量 が成立していて、
    • 車両モデル → 車台番号 が成立していないので
      • 排気量は車台番号に推移関数従属している

 

 

正規形

  • 非正規形  : 関係(表)がベクトル値を持つ
  • 第1正規形: 関係がスカラ値のみを持つ
  • 第2正規形: すべての非キー属性が、すべての候補キーに対して完全関数従属する
    • 部分関数従属する部分を別の関係(表)に分割
  • 第3正規形: すべての非キー属性が、すべての候補キーにたいして非推移的に関数従属する
    • 推移関数従属する部分を別の関係(表)に分割
  • ボイスコッド正規形:

 

 

 

参考

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です