この本をざっくりメモ
オブジェクトざっくり
テーブル
命名例
- T_テーブル名
- MT_マスタテーブル名
クエリ
命名例
- Q_クエリ名
レポート
命名例
- R_レポート名
テーブル
- フィールド追加時に「集計フィールド」から計算式を作るダイアログが開く。パワクと似たような画面
- 命名
- T_テーブル名
- 随時更新・追加されるもの
- MT_テーブル名
- マスターテーブル。商品情報など更新があまりないもの
- T_テーブル名
リレーションシップ
3つのポイント
- 参照整合性:対応していないデータの入力を防ぐ仕組み
- 参照される側にある値しか入力できない
- チェックを入れると連鎖更新がアクティブになる
- フィールドの連鎖更新
- レコードの連鎖更新
- レコードの連鎖削除
- 参照されている側データを削除すると参照している側のレコードも削除される
- リレーションシップの種類
- 1対1
- 1対多
- 結合フィールドは主キーが定石
- 多対多
- テーブルA-Bが1対多、テーブルC-Bが1対多なら間接的にA-Cが多対多になる
- 結合の種類
- 内部結合
- 両方のテーブルの結合フィールドがないと取り出せない
- 左外部結合
- よくわからん
- 右外部結合
- よくわからん
- 内部結合
- テーブルデザインビュー
- フィールドのデータ型
- ルックアップウイザード
- フィールドのデータ型
からリレーションシップを組むと参照している側のレコード入力セルにプルダウンメニューが追加される。
クエリ
クエリデザイン
- 抽出条件に>=[プロンプト文字列]と書くとInputBoxからの検索条件入力可能になる。
- 演算フィールドは[新しいフィールド名]:[既存のフィールド名]*1.08とか
クエリ種類
- 選択
- ざっくり言うとフィルタ機能
- 抽出条件と表示フィールド、演算フィールドを列挙するだけ
- 更新
- 元には戻せない。
- 事前に抽出結果を確認するのはリボン>クエリデザイン>表示
- 削除
- 元には戻せない。
- 事前に抽出結果を確認するのはリボン>クエリデザイン>表示
- 削除したものはIDごと全レコードが#Deleted#となり、そのID連番は欠番になる。
他にも
- テーブルの作成
- 追加
- クロス集計
なんてのもあるみたい
テーブルを結合した選択クエリ上での演算クエリの式
[テーブル名].[フィールド名]と入力しようとするとインテリセンスが使えるのと完成後に参照テーブル名まで見ることができて好き。
インテリセンスは途中まで入力してからでもいいし、最初からCtrl
+Space
でも出せる。
レポート
ざっくり2種類ある
- テーブルそのままレポート
- 選択クエリの結果をレポート
ロゴ
伝票ウイザード
はがきウイザード
正規化
これ地味に知らなかったので
第1正規化: 繰り返される列がない
第1の中にも2段階あるっぽい
第2正規化: 主キーの値が決まると他の列の値が必ず決まる
まとめるとこうなる
とにかく列も行も重複のないテーブルに因数分解していく作業という印象
第3正規化: 主キー以外の列の値によって、他の列の値が決まることがない
また多段バージョン?
正規化すればいいというものでもないらしい
- 正規化すると途中で値引きで単価が変わるなどに対して臨機応変さがなくなるというデメリットがある
- 単価×個数で小計は計算すれば良いので列は不要、とすると毎回計算しなきゃなので面倒→計算列は増やしておこうか
など、単に冗長さを取り除くだけでなく、追加や変などに対応できる柔軟さやパフォーマンスなどを鑑みて、システムに求められるよう県から両社のバランスが取れるよう、着地点を見出すことが重要とのこと。