勉強日記

チラ裏

2019-06-01から1ヶ月間の記事一覧

LINEBotプロジェクト振り返り

プロジェクト概要 LINEBot よかった LINEBotの開発経験を積めた 静的なドキュメントをある程度書いた ERD PlantUMLを使用した メリット 差分管理できる デメリット 編集が面倒くさい 今度はMySQL Workbenchを使って比較検討してみよう ドメインモデル PlantU…

理論から学ぶデータベース実践入門 ch7 NULLとの戦い

gihyo.jp まとめ NULL NULLとは 3値論理(3VL) NULLは演算を台無しにする 検索結果が意図しないものになる可能性 NULLによる第3の論理値 3値論理の限界 Unknownと曖昧さ コラム: 量子コンピュータとNULL NULLは閉世界仮説に反する オプティマイザへの弊害 NUL…

理論から学ぶデータベース実践入門 ch6 ドメインの設計戦略 1/2

gihyo.jp まとめ ドメイン ドメインとは 集合の要素 ドメインの設計戦略の概要 すべては恣意的な選択 アプリケーションの要求から生まれる データの本質を見極める 属性(カラム)の名前 まとめ ドメインの設計は、現実世界とリレーショナルモデルの世界とをつ…

理論から学ぶデータベース実践入門 ch5 リレーションの直交性

gihyo.jp まとめ リレーションの直交性(Orthogonality) レプリカ 同じ型のリレーション 見出しの一部だけが同じリレーション リレーション直交化のための戦略 正規化 属性(カラム)の名前を統一する アプリケーションの整合性 すべてを直交化する必要はない …

理論から学ぶデータベース実践入門 ch4 正規化理論(その2)

gihyo.jp まとめ 結合従属性(JD) 結合従属性は無損失分解が可能 関数従属性は結合従属性の一種である 暗黙的な結合従属性 非キー属性と結合従属性 結合従属性による正規化(4NF〜6NF) 第4正規形(4NF) 第5正規形(5NF) 接続の罠(Connection Trap) 結合従属性を…

理論から学ぶデータベース実践入門 ch3 正規化理論(その1)

gihyo.jp まとめ なぜDB設計は重要なのか 正規化 リレーショナルモデルを補完する理論 異常を防ぐことができる 正規形 正規形の種類 第1正規形(1NF) コラム: 列の値はスカラであるべき? 繰り返しグループ 候補キーとスーパーキー 関数従属性(FD) コラム: 候…

理論から学ぶデータベース実践入門 ch2 述語論理とリレーショナルモデル 3/3

gihyo.jp リレーションの演算と述語論理 制限(Restrict) 直積(Product) 結合(Join) 積(Intersect) コラム: 結合と制限 和(Union) 差(Difference) 射影(Projection) 属性名変更(Rename) 拡張(Extend) コラム: 外部結合について リレーションの演算と述語論理 …

理論から学ぶデータベース実践入門 ch2 述語論理とリレーショナルモデル 2/3

gihyo.jp 述語論理とリレーショナルモデル(続き) 命題論理の限界と量化 量子化と述語論理 述語論理 量化子とともに用いる束縛変数 量化子を伴わない自由変数 述語論理と集合論 述語と集合とは等価に置き換えが可能 集合の包含関係 述語論理の公理系 述語論理…

理論から学ぶデータベース実践入門 ch2 述語論理とリレーショナルモデル 1/3

gihyo.jp まとめ 述語論理とリレーショナルモデル 命題 命題論理 トートロジーと定理 同一律 P⊃P 排中律 P∨¬P 二重否定律 ¬¬P≡P 矛盾律 ¬(P∧¬P) Principle of explosion (P∧¬P)⊃Q 対偶律 (P⊃Q)⊃(¬Q⊃¬P) 推移律 ((P⊃Q)∧(Q⊃R))⊃(P⊃R) 分配律1 P∧(Q∨R) ≡ (P∧Q)∨…

理論から学ぶデータベース実践入門 ch1 SQLとリレーショナルモデル

gihyo.jp まとめ そもそもSQLって? リレーショナルモデルを知らなくてもSQLは書ける? RDBはリレーショナルモデルを正しく実践してこそ真価を発揮する! リレーショナルモデル リレーションの定義 集合とリレーショナルモデル リレーションの演算 コラム: …

Laravel shibuya #2 IRTメモ

PHP テストコードについて学んだほうが良いのか Laravelはできるけど、PHPのOOPがわからない Laravel コード保守に秩序をもたらすには フルスクラッチノーF/Wべた書きPHPをLaravelに移行したい LaravelのAPI開発何を気をつける フロント PHP テストコードに…

【解決済】MySQL WorkbenchでSSHポートフォワードできなくて困った話

RDB

環境 Windows 10 ssh on GitBash MySQL Workbench 8.0.16 Workbench上でSSHポートフォワードすると接続できない 接続可否 o o x SSHポートフォワード ssh on GitBash Workbench Workbench 認証方式 公開鍵 パスワード 公開鍵 Could not connect the SSH Tunn…

達人に学ぶDB設計 徹底指南書 ch8 論理設計のグレーノウハウ

www.shoeisha.co.jp 違法すれすれの「ライン上」に位置する設計 代理キー~主キーが役に立たないとき 主キーが決められない、または主キーとして不十分なケース 代理キーによる解決 自然キーによる解決 タイムスタンプ インターバル オートナンバリングの是…

達人に学ぶDB設計 徹底指南書 ch7 論理設計のバッドノウハウ

www.shoeisha.co.jp 論理設計の「やってはいけない」 非スカラ値(第1正規形未満) 配列型による非スカラ値 スカラ値の基準は何か? ダブルミーニング この列の意味はなんでしょう? テーブルの列は「変数」ではない 単一参照テーブル 多すぎるテーブルをまと…

達人に学ぶDB設計 徹底指南書 ch6 データベースとパフォーマンス

www.shoeisha.co.jp データベースのパフォーマンスを決める要因 インデックス 統計情報 インデックス設計 まずはB-treeインデックスから B-treeインデックスの長所 B-treeインデックスの構造 B-treeインデックスの設計方針 B-treeインデックスはどの列に作れ…

達人に学ぶDB設計 徹底指南書 ch9 一歩進んだ論理設計〜SQLで木構造を扱う

www.shoeisha.co.jp リレーショナルデータベースのアキレス腱 木構造とは? 伝統的な解法〜隣接リストモデル 新しい解法〜入れ子集合モデル 入れ子集合モデルを使った検索 入れ子集合モデルを使った更新 もしも無限の資源があったなら〜入れ子区間モデル 使…

達人に学ぶDB設計 徹底指南書 ch5 論理設計とパフォーマンス〜正規化の欠点と非正規化

www.shoeisha.co.jp 正規化の功罪 正規化とSQL(検索) 非正規化による解決 正規化とSQL(更新) 正規化と非正規化、どちらが正解なのか? 非正規化とパフォーマンス サマリデータの冗長性とパフォーマンス 結合しないSQLを作るためのテーブル設計 選択条件の冗…

【Emacs】lsp-modeでVue.jsの定義ジャンプ・補完 続編 (不具合回避等)

いらない設定消した ワークスペースにディレクトリ追加 computedをderivative: () => {...}スタイルで書く Windowsで定義ジャンプするとエラー 回避 課題 Appendix: LSPに関する設定全部 以前の記事は不完全 import/export以外の定義ジャンプができなかった …

DB ch4 WIP

www.shoeisha.co.jp テーブルが多すぎる! テーブル同士の関連を見抜く 1対1、1対多、多対多 ER図の書き方 IE表記法でER図を描く IDEF1XでER図を描く エンティティ カーディナリティ リレーションシップ 「多対多」と関連実体 テーブルが多すぎる! 実務: 何…

達人に学ぶDB設計 徹底指南書 ch3 論理設計と正規化〜なぜテーブルは分割する必要があるのか? 3/3

www.shoeisha.co.jp ボイス-コッド正規形 3次と4次の狭間 ボイス-コッド正規形でないときに起きる問題 ボイス-コッド正規化を行う 失敗例 正しいBCNF 第4正規形 多値従属性~キーと集合の対応 第4正規化を行う 第4正規形の意義 第5正規形 第5正規化を行う 正…

DNSがよくわかる教科書 ch1

www.sbcr.jp IPアドレスと名前の関係 IPアドレスと名前の対応管理 集中管理から分散管理へ ドメイン名の構成 ドメイン名とは何か ドメイン名の構成 サブドメイン ドメイン名のメリット コラム: ドメイン名における注意点 ドメイン名を使えるようにするために…

SQL Antipatterns ch2 Jaywalking (信号無視)

pragprog.com Jaywalking Objective: Store Multivalue Attributes Antipattern: Format Comma-Separated Lists How to Recognize the Antipattern Legitimate Uses of the Antipattern Solution: Create an Intersection Table Other Advantages of the Int…

ch3~ch5 演習

ch3演習問題 支社支店商品 支社コード(PK) 支社名 支店コード(PK) 支店名 商品コード(PK) 商品名 商品分類コード 分類名 001 東京 01 渋谷 001 石鹸 C1 水洗用品 001 東京 01 渋谷 002 タオル C1 水洗用品 001 東京 01 渋谷 003 ハブラシ C1 水洗用品 001 東…

SQL Antipattens ch1 Introduction

pragprog.com Introduction Who This Book Is For What's in This Book Parts of This Book Anatomy of an Antipattern What's Not in This Book 英語 Introduction 著者Bill Karwinは人生最初のSQLの仕事を拒否した SQLのサブセットを作る話 「SELECT文だけ…

達人に学ぶDB設計 徹底指南書 ch3 論理設計と正規化〜なぜテーブルは分割する必要があるのか? 2/3

www.shoeisha.co.jp 正規化とはなにか? 正規形の定義 第1正規形 第1正規形の定義~スカラ値の原則 第1正規化を作ろう なぜ1つのセルに複数の値を入れては駄目なのか?~関数従属性 第2正規形 第2正規化を行う 第2正規形でないと何が悪いのか? 無損失分解と情…

達人に学ぶDB設計 徹底指南書 ch3 論理設計と正規化〜なぜテーブルは分割する必要があるのか? 1/3

www.shoeisha.co.jp テーブルとは何か? 二次元表≠テーブル テーブルの構成要素 行と列 キー 主キー (primary key) 外部キー (foreign key) どのような値をキーにするか 制約 NOT NULL制約 一意制約 CHECK制約 テーブルと列の名前 コラム: 関係(リレーショナ…

達人に学ぶDB設計 徹底指南書 ch2 論理設計と物理設計

www.shoeisha.co.jp 概念スキーマと論理設計 論理設計のステップ エンティティの抽出 エンティティの定義 正規化(normalization) ER図の作成 内部スキーマと物理設計 物理設計のステップ テーブル定義 インデックス定義 ハードウェアのサイジング キャパシテ…

達人に学ぶDB設計 徹底指南書 ch1 データベースを制する者はシステムを制す

www.shoeisha.co.jp システムとデータベース データ処理としてのシステム データと情報 データベースあれこれ データベースの代表的なモデル RDB: Relational Database OODB: Object Oriented Database XMLDB: XML Database KVS: Key-Value Store Hierarchic…

AWS Solution Architect Associate 試験対策 ch6

book.impress.co.jp AWSにおける運用の考え方 AWSにおける運用の考え方 作業の自動化 コードによるインフラストラクチャ構成管理 CloudFormationのコード管理 CloudFormationの設定 自動化できるサービスとその機能 運用に関するその他のサービス モニタリン…

AWS Solution Architect Associate 試験対策 ch5

book.impress.co.jp AWSにおけるコスト最適化の考え方 クラウドにおけるコスト最適化の重要性 AWSにおけるコスト最適化の指針 コスト最適化の4つのベストプラクティス コスト効果が高いリソースの選定 AWSサービスの購入オプション リソースの適切なサイジン…