# 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→りょうくん)