データモデリング:モデル作成とは
データモデリングのセミナーに参加したので、書き留めたいと思う。
モデル作成とは
そもそも、データモデルとは…
データベースの構築において,対象となる現実世界をデータとして抽象化し,その関係や構造を特定の表現形式で記述したもの.人間にわかりやすくかつコンピュータ処理に適したモデルが望ましい.通常,データモデルの構成要素として,データ構造,データ操作,一貫性制約が検討される.代表的なデータモデルとして,階層型モデル,ネットワーク型モデル,関係モデル,オブジェクト指向データモデルなどがある.
出典 図書館情報学用語辞典
つまり、現実世界を抽象化しその関係や構造を特定の表現形式で記述したもの。
モデルの構成要件は、「事実」を正確に記述しなければならない。
そのためには、
①「ユーザ言語」を勝手に変形しない
②できる限り機械的に構成する
モデルが実際の業務や事業を鏡のように写し出さなければならない。
①事業を集めた情報が、モデルとして論理的に正しいことを Logic-真(L-真)
②そのモデルが、実際の事業と完全に一致することを Fact-真(F-真)
『「事実」を正確に記述』しているのは、L-真かつF-真のときである。
アドオンを公開してみよう
作成したアドオン、せっかくなら公開してみんなに使ってもらいたいと思うもの。
公開するには大きく3つの手順を踏む。
AMOのアカウント作成する
すでに Firefox アカウントを持っている方はログインしてください。
そうでなければ、登録して Firefox アカウントを作成してください。
拡張機能を圧縮し、アップロード
拡張機能はひとつのファイルにまとめて、zip化します。
基本的なチェック
アップロード後、AMO サーバは基本的なチェックを行います。
問題は2種類のカテゴリ"errors"と"warnings"で判定されます。
error の場合、修正しなけらばなりませんが、 warning を修正しなくても大丈夫です。
基本チェックが完了すれば、無事拡張機能は公開されます。
クリックすると表示/非表示
クリックすると表示/非表示する項目
アコーディオンメニューや何か表示を隠したいときに、クリックすると表示/非表示する項目が活躍します。
いくつか調べてきたので、まとめてみました。
CSSを利用する方法
CSSのセレクタ「~」を活用
CSSのセレクタ「~」を使うと「ある要素の後に続く要素」に対して、スタイルを指定することができます(同じ階層にある要素に限ります)。
サンプル
以下がサンプルです。
問1:キャッシュフロー計算書において,営業活動によるキャッシュフローに該当するものはどれか。
- ア.株式の発行による収入
- イ.商品の仕入れによる支出
- ウ.短期借入金の返済による支出
- エ.有形固定資産の売却による収入
解答:イ
キャッシュフロー計算書は、日本の会計基準における財務諸表であり、会計期間における資金(現金及び現金同等物)の増減、つまり収入と支出(現金の流れ=キャッシュフロー)を営業活動・投資活動・財務活動ごとに区分して表示する書類です。
営業活動によるキャッシュ・フロー
商品販売による収入や仕入や管理による支出など企業の営業活動についての項目を記載する区分
投資活動によるキャッシュ・フロー
固定資産の取得・売却,有価証券の取得売却など企業が行った投資活動についての項目を記載する区分
財務活動によるキャッシュ・フロー
株式や社債の発行、または自己株式の取得,社債の償還および借入金の返済,支払利息など資金調達や返済に係る項目を記載する区分
はじめての拡張機能
はじめに
FireFoxのアドオンを自分で作ってみることにした。
業務中に「こんな機能があればなぁ…」と思うようになったからである。
アドオンを作ってみる
さて、まず何をすればいいのか。
FireFoxのアドオンの作成は思っていたより簡単である。
まずはサンプルとして、下記の拡張機能を作成する。
"mozilla.org" とそのサブドメインから読み込まれたページに赤い枠を付ける
参考にさせていただくサイトはこちら。
フォルダ構成
下記のフォルダ構成で作成する。
構成 | 備考 | ||
📂[borderify] | |||
└ | 📂[icons] | アイコン保存ディレクトリ | |
└ | border-48.png | アイコン(48×48px) | |
└ | manifest.json | 拡張機能に関する基本的なメタデータ | |
└ | borderify.js | 実行スクリプト |
icons/border-48.png
拡張機能のアイコンを用意します。サイズ別に画像ファイルを用意します。
borderify/manifest.json
最初の 3 つのキー manifest_version、name、version は必須であり、拡張機能の基本的なメタデータを指定します。
- {
- "manifest_version": 2,
- "name": "Borderify",
- "version": "1.0",
- "description": "Adds a solid red border to all webpages matching mozilla.org.",
- "icons": {
- "48": "icons/border-48.png"
- },
- "content_scripts": [
- {
- "matches": ["*://*.mozilla.org/*"],
- "js": ["borderify.js"]
- }
- ]
- }
テスト
作成したアドオンは、『一時的なアドオンを読み込み』ことでローカルのアドオンをテストすることができる。
14日 手戻り
昨日からの続き、設計して実装し、ぎりぎりになってテスト実施。
しかし、おかしい。登録項目が不自然なのである。
NotNull項目が入っている場合は、平気だが空欄の場合登録ができない。
たしかに、NotNull項目が入っていることが前提なので、設計から間違いだった。
さて、なぜこのようなことが起きたのか。
①設計レビューを省略した。
②更新項目表に追記したが、実際登録される動きは確認していない。
②は確かに、登録処理まわりの設計が手薄であった。
前回に課題管理からの要求仕様のズレもあったが、その確認もしていない。
設計から実装に移る段階で個人レビューが必要そうである。
確認項目として、
①要求仕様が設計に反映されているか。
②登録されるデータに不整合はないか?
(例:NotNull項目がNullで登録されるパターンがある)
個人レビューの必要性、効果などについては以後まとめるとする。
以上。