---
# System prepended metadata

title: 2021.05.17（月）②
tags: [SD25, 授業ノート]

---

# 2021.05.17（月）②
###### tags: `SD25` `授業ノート`

### データベース設計

データベース設計はテーブル設計
どういうテーブルで構成して、各テーブルの構成をどうするのか？

1. 管理対象の抽出（DBに登録されるデータ（属性）の抽出）
    何をDBに登録するのか？全ての項目を洗い出す
    ただし、この時の状態では、データの重複や繰り返しが存在する
    
2. 第一正規化(→第一正規形)
    最初のテーブルから、繰り返し部分を分離(排除)する
    繰り返されない部分を、繰り返される部分に含ませて(外部キー)、個々のレコードに分割する
    
1. 第二正規化（→第二正規形）
    第一正規化で作成したレコードの主キーに、完全に従属している部分と、部分的に従属している部分に分割

1. 第三正規化（→第三正規形）
    主キー以外の項目で、他の属性に従属している属性を見つけ出して分割する


    <span style="text-decoration: underline">※基本的には「これが分かれば、あれもわかるよね」を見つけ出して分割していくこと</span>

    <span style="color: #ff3333">正規化に関しては、一般的には第三までで十分とされます</span>

1. テーブル構造の見直し
    厄介なのは、第三正規形が最良の状態とは限らないので、場合によっては正規化で分割・省略しない方が良いこともあるので、     よく検討することが必要（→経験による部分も大きい）
    
[2.4] 入出力詳細設計
1. 設計目標
    * 扱いやすいこと（記入のしやすさ、データ入力のしやすさ）

2. 設計
    * 用紙サイズ、複写枚数、色などの枠組みを明確化
    1. 記入のしやすさ
        * 記入量は少なくする
            * 選択式にする
            * 使用頻度、重要度順に並べる
        * 記入項目
            * キー項目から入力する
            * レイアウトは左上から右下へ
        * 文字数、桁数を考慮する必要があるのなら、文字（桁）毎に枠を表示させておく

    2. データ入力のしやすさ
        * 見やすい
        * 単純に判断できる
        * 上から下、左から右のレイアウト

    3. OCR用紙の設計
        * 誤読防止のために汚さない工夫や、用いる字体の説明を加える

3. 入力データのチェック
    1. エラーデータの修正
        * 入力前に発見されたエラー・ミス
            * 入力元へ差し戻す→現場で勝手に修正しない
        * プログラムで検知したミス→エラー
            * どうするかは、システム設計による
    1. エラー検知時の処理
        * エラーを無視して処理事項
        * エラーを修正してから最初からやり直す
        * 正しいものを先に処理、エラー文は修正後実行
    
    3. エラーチェック方式
        * フォーマットチェック
        * ニューメリックチェック
        * リミットチェック
        * レンジチェック
        * オーバーフローチェック
        * チェックディジットチェック
        * カウントチェック
        * 目視検査
    
    
    
    
    
    
    
    
    
    
<span style="color: #ff3333">aaa</span>
<span style="text-decoration: underline">aaa</span>
## 雑談 (0→やまぴ 1→みや 2→やすい 3→りょうくん)
