アジャイルサムライを読んでみた

プロジェクトがダメになる理由 インセプションデッキ インセプションデッキ概要 我々はなぜここにいるのか? エレベーターピッチ パッケージデザイン やらないことリスト 「ご近所さん」を探せ 解決案を描く 夜も眠れない問題 期間を見極める 何を諦めるのか…

Webを支える技術:URI設計のポイント

URIを変わりにくくする プログラミング言語に依存した拡張子やパスを含めない メソッド名やセッションIDを含めない URIリソースは表現を名詞にする リダイレクトとは URI設計のテクニック 拡張子で表現を指定する マトリクスURI 参考 URIを変わりにくくする …

Webを支える技術:URI概要

URIとは URIの構文 URIで使える文字 URI実装での注意点 参考 URIとは URI(Uniform Resource Identifier)は、英語の意味の通り『リソースを統一的に識別するID』のこと。URIを使うことで、Web上に存在するすべてのリソースを一意に示せる。 URIは、URL(Uni…

Webを支える技術:REST概要

HTTP、URI、HTMLの関係 アーキテクチャスタイルとデザインパターン リソースとは RESTの構成 参考 HTTP、URI、HTMLの関係 Webを支える基本的な技術のHTTP、URI、HTMLの関係は下図のようになる。今までそこまで意識していなかったので、この関係図は『確かに…

RESTとは

RESTとは RESTの特徴 REST API設計の勘どころ HTTP API Design 参考 RESTとは 最近Web系を学んでいると、目にすることが多くなった『REST』ですが、これまでは『休憩?残り?』とかイメージしていましたが、ようやく出会えました と、そんなことは置いておい…

データベース設計:グレーノウハウ

違法すれすれの『ライン上』に位置する設計 代理キー:主キーが役に立たない時 ケース1:入力データに主キーになるような一意キーが存在しない ケース2:一意キーはあるが、サイクリックに使いまわされる ケース3:一意キーはあるが、途中で指す対象が変…

データベース設計:設計のバッドノウハウ

論理設計の『やってはいけない』 非スカラ値(第一正規形未満) ダブルミーニング 単一参照テーブル テーブル分割 水平分割 垂直分割 テーブル分割の代替手段 不適切なキー ダブルマスター 参考 論理設計の『やってはいけない』 戦略の失敗を戦術で取り返す…

データベース設計:正規化の背反

RDBMSの論理設計の基本の概念は正規化であり、それは『データ整合性を保持する』ために行っている。一方で正規化による背反として、『SQLのパフォーマンス劣化』を引き起こす。 正規化を行うと基本的にテーブルが増えていく。よって、SQL文を実行する際には…

データベース設計:ER図の基本

テーブルの関連のパターン ER図の描き方 参考 テーブルの関連のパターン 同じ意味の列を持つテーブル同士の間には、通常次の3パーンの関連がある。 1対1(1:1) 『1対1』というのはほぼ見ないらしい。理由は2つのテーブルのレコードが1対1に対応するという…

データベース設計:正規化の種類

表とテーブルの違い キーの種類 制約の種類 正規化とは 概要 正規化のポイント 正規化のメリット、デメリット どの程度すべきか 正規形のレベル 第1正規形の定義:スカラ値の原則 第2正規形の定義:部分関数従属 第3正規形:推移的関数従属 ボイス-コッド…

楽々ERDレッスン:テーブル設計実践6

テーブル設計の流れ ガスの請求書 メインとなるテーブル名を出す(イベント系エンティティを洗い出す) 「誰が・何が」、「誰を・何を」を考えてテーブル名を出す(リソース系エンティティを洗い出す) 各テーブルのカラムを出す 表現できていない情報を、テ…

楽々ERDレッスン:テーブル設計実践5

テーブル設計の流れ 病院の領収書 メインとなるテーブル名を出す(イベント系エンティティを洗い出す) 「誰が・何が」、「誰を・何を」を考えてテーブル名を出す(リソース系エンティティを洗い出す) 各テーブルのカラムを出す 表現できていない情報を、テ…

楽々ERDレッスン:テーブル設計実践4

テーブル設計の流れ 病院の受付伝票 メインとなるテーブル名を出す(イベント系エンティティを洗い出す) 「誰が・何が」、「誰を・何を」を考えてテーブル名を出す(リソース系エンティティを洗い出す) 各テーブルのカラムを出す 表現できていない情報を、…

スクラム開発

スクラムとは スクラムの『5・3・3』 5つのイベント(会議等) 3つのロール(人の役割) 3つの作成物 全体の流れ 雰囲気はつかめた、で、どうする? プロダクトバックログの決定 ゴールとミッションを明確にする プロダクトバックログのサンプル 作業の…

楽々ERDレッスン:テーブル設計実践3

テーブル設計の流れ ハンバーガーショップのレシート メインとなるテーブル名を出す(イベント系エンティティを洗い出す) 「誰が・何が」、「誰を・何を」を考えてテーブル名を出す(リソース系エンティティを洗い出す) 各テーブルのカラムを出す 表現でき…

楽々ERDレッスン:テーブル設計実践2

テーブル設計の流れ 図書館の予約申込書 メインとなるテーブル名を出す(イベント系エンティティを洗い出す) 「誰が・何が」、「誰を・何を」を考えてテーブル名を出す(リソース系エンティティを洗い出す) 各テーブルのカラムを出す 表現できていない情報…

楽々ERDレッスン:テーブル設計実践1

テーブル設計の流れ お持ち帰りご注文用紙 メインとなるテーブル名を出す(イベント系エンティティを洗い出す) 「誰が・何が」、「誰を・何を」を考えてテーブル名を出す(リソース系エンティティを洗い出す) 各テーブルのカラムを出す 表現できていない情…

楽々ERDレッスン:DB設計の基本手順

IDの導入 業務視点からの正規化 データベース設計における3つのポイント 箱(エンティティ)の見い出し方 主キーの設定 重複の削除 データベースの設計手順 参考 データベース設計の要点は、『One Fact in One Place:1つの事実は1つの場所にのみ存在する…

RDBMS:ウィンドウ関数とGROUPING演算子

ウィンドウ関数 ウィンドウ関数は、ランキング、連番生成等の集約関数で通常できないような操作をする際に用いる。別名としてOLAP関数(OnLine Analytical Processing)とも呼ばれ、データベースをリアルタイムに処理して、オンラインでデータ分析などを行う際…

RDBMS:集合演算と結合

テーブルの足し算と引き算 UNION:テーブルの足し算 INETRSECT:テーブルのAND EXCEPT:レコードの引き算 テーブルを列方向に連結する 内部結合 外部結合 クロス結合 参考 テーブルの足し算と引き算 2つ以上のテーブルを使う場合のSQL文を学ぶ。テーブルのレ…

セキュリティとアルゴリズム

データ通信時の4つの問題 暗号化 ハイブリット暗号方式 メッセージ認証コード デジタル署名 デジタル証明書 参考 データ通信時の4つの問題 インターネット上でのデータ通信時に起こりうる代表的な問題として下記の4種類がある。 項目 説明 対策 盗聴 伝送路…

RDBMS:関数、述語、CASE式

関数 算術関数 文字列関数 日付関数 変換関数 述語 LIKE述語:文字列の部分一致検索 BETWEEN述語:範囲検索 IS NULL, IS NOT NULL:NULLか非NULLかの判定 IN述語:ORの便利な省略形 EXISTS 述語 CASE式 参考 関数 関数には大きく下記の関数がある。 関数名 …

RDBMS:ビューとサブクエリ

ビューとテーブル ビューの旨味 ビューを使う ビューを作る ビューを実行する ビューを削除する サブクエリ スカラ・サブクエリ 相関サブクエリ 参考 ビューとテーブル テーブルを作る(CREATE TABLE)、検索する(SELECT)、更新する(INSERT,DELETE,UPDATE)を学…

C++:コンストラクタのパターン

要約 解説 参考 要約 オブジェクトのコンストラクタの書き方には2パターンある。 メンバ初期化子で書く コンストラクタ本体の中に書く 両者の違いは、 メンバ初期化子で行うオブジェクト生成が初期化であり、コンストラクタ本体の中に書くものは代入と言う点…

RDBMS:データの更新

INSERT:データの登録 データを登録する 他のテーブルからデータをコピー DELETE:データの削除 テーブルデータを全部削除 テーブルデータを指定して削除 UPDATE:データの更新 全行の値を更新する 条件を指定して更新する トランザクション トランザクション…

RDBMS:検索結果の集約と並び替え

集約関数 COUNT:テーブルのレコード数(行数)を数える SUM:合計値を求める AVG:平均値を求める MAX,MIN:最大値・最小値を求める 重複値を除外して集約関数を用いる GROUP BY:グループに分ける HAVING:集約結果に条件を指定する ORDER BY:並び替え 参考 下記…

RDBMS:SELECT文を理解する

SELECT文の基本 全ての列を出力 特定の列を出力 列に別名をつける 重複行を省く コメント 行を選択する 算術演算 比較演算 NULLで分ける 論理演算子 参考 SELECT文の基本 下記のようなテーブルからデータを選択したい時に使用するのが、SELECT文。 全ての列…

データベースとSQL

データベースの構成 テーブルの構成 SQLの概要 参考 データベースの構成 RDBMS(Relational DataBase Management System)のシステム構成は、一般的にクライアント/サーバ型になっている。データベースに読み書きにするために、クライアントはサーバに対してSQ…

PostgreSQLをコンテナで立てる

PostgreSQLの環境構築 Docker Engine インストール(Debian 向け) Docker Composeを入れる コンテナを立てる PostgreSQLの環境構築 ゼロからはじめるデータベース操作を進めるためにPostgreSQLの環境構築を進めた。本の中ではWindowsの説明があったけど、せ…

nginxで複数サーバを稼働する

nginxの設定ファイルにserverディレクティブを複数立ててあげる。それぞれに設定を書いてあげればよい。 server { listen 443 ssl; server_name goruchan.net; ssl_certificate ***/fullchain.pem; # managed by Certbot ssl_certificate_key ***/privkey.pe…