勉強日記

チラ裏

RDB

MySQL 5.6 Developer試験対策 5 基本的な最適化 -- 最適でないSQLコマンドを認識する。最適でないSQLコマンドを修正する -- SELECTステートメントの最適化 (途中まで3)

MySQL 5.6 Developer試験 公式「試験内容 チェックリスト」 https://education.oracle.com/ja/mysql-56-developer/pexam_1Z0-882education.oracle.com MySQL 5.6 リファレンスマニュアル dev.mysql.com 最適でないSQLコマンドを認識する。最適でないSQLコマ…

MySQL 5.6 Developer試験対策 5 基本的な最適化 -- 最適でないSQLコマンドを認識する。最適でないSQLコマンドを修正する -- SELECTステートメントの最適化 (途中まで2)

MySQL 5.6 Developer試験 公式「試験内容 チェックリスト」 https://education.oracle.com/ja/mysql-56-developer/pexam_1Z0-882education.oracle.com MySQL 5.6 リファレンスマニュアル dev.mysql.com 問い合わせの最適化に適した索引を認識する。問い合わ…

MySQL 5.6 Developer試験対策 5 基本的な最適化 -- 最適でないSQLコマンドを認識する。最適でないSQLコマンドを修正する -- SELECTステートメントの最適化 (途中まで)

MySQL 5.6 Developer試験 公式「試験内容 チェックリスト」 https://education.oracle.com/ja/mysql-56-developer/pexam_1Z0-882education.oracle.com MySQL 5.6 リファレンスマニュアル dev.mysql.com 問い合わせの最適化に適した索引を認識する。問い合わ…

MySQL 5.6 Developer試験対策 5 基本的な最適化 -- 最適でないSQLコマンドを認識する。最適でないSQLコマンドを修正する -- DMLステートメントの最適化

MySQL 5.6 Developer試験 公式「試験内容 チェックリスト」 https://education.oracle.com/ja/mysql-56-developer/pexam_1Z0-882education.oracle.com MySQL 5.6 リファレンスマニュアル dev.mysql.com 最適でないSQLコマンドを認識する。最適でないSQLコマ…

MySQL 5.6 Developer試験対策 5 基本的な最適化 -- 最適化が必要な文を識別する

MySQL 5.6 Developer試験 公式「試験内容 チェックリスト」 https://education.oracle.com/ja/mysql-56-developer/pexam_1Z0-882education.oracle.com MySQL 5.6 リファレンスマニュアル dev.mysql.com 最適化が必要な文を識別する 式と関数の速度の測定 MyS…

MySQL 5.6 Developer試験対策 2 MySQLのスキーマ・オブジェクトの設計と作成

MySQL 5.6 Developer試験 公式「試験内容 チェックリスト」 https://education.oracle.com/ja/mysql-56-developer/pexam_1Z0-882education.oracle.com MySQL 5.6 リファレンスマニュアル dev.mysql.com 正規化されたデータベースを設計する。正規化されたデ…

MySQL 5.6 Developer試験対策 1 MySQL アーキテクチャ

MySQL 5.6 Developer試験 公式「試験内容 チェックリスト」 https://education.oracle.com/ja/mysql-56-developer/pexam_1Z0-882education.oracle.com MySQL 5.6 リファレンスマニュアル dev.mysql.com MySQL ServerとのインターフェースであるMySQL クライ…

現場で役立つシステム設計の原則 ch6 データベースの設計とドメインオブジェクト

gihyo.jp テーブル設計が悪いとプログラムの変更が大変になる データの整理に失敗しているデータベース データベース設計をすっきりさせる 基本的な工夫を丁寧に実践する NOT NULL制約が導くテーブル設計 一意性制約でデータの重複を防ぐ 外部キー制約でテー…

【Laravel】DBエラー時のシナリオのテスト

モック以外の方法では意図的に起こすことが難しいタイプの代替コース(雨の日シナリオ)のテスト PDOをモックする方法を試した 懸念 PDOをモックする方法を試した github.com ConnectionからPDOを引っこ抜き、MockeryでProxy Partial Mockにくるんで再set \PDO…

SQL Antipatterns ch10 Rounding Errors

pragprog.com Rounding Errors Objective: Use Fractional Numbers Instead of Integers Antipattern: Use FLOAT Data Type Rouding by Necessity コラム: Meet the IEEE 754 Format Using FLOAT in SQL How to Recognize the Antipattern Legitimate Uses o…

SQL Antipatterns ch6 Entity-Attribute-Value

pragprog.com Entity-Attribute-Value Objective: Support Vairable Attribute Antipattern: Use a Generic Attribute Table Querying an Attribute Supporting Data Integrity Reconstructing a Row How to Recognize the Antipattern Legitimate Use of th…

SQL Antipatterns ch3 Naive Trees

pragprog.com Naive Trees Objective: Store and Query Hierarchies Antipattern: Always Depend on One's Parent Query a Tree with Adjacency List Mantaining a Tree with Adjacency List How to Recognize the Antipatterns Legitimate Uses of the Anti…

理論から学ぶデータベース実践入門 ch14 トランザクションの本質

gihyo.jp まとめ トランザクション トランザクションの機能 トランザクションの鍵、スケジュール 「データの正しさ」の定義 スケジューラの性能 トランザクションの特徴 ACIDとは 原子性(Atomicity) 一貫性(Consistensy) 分離性(Isolation) 永続性(Durabilit…

理論から学ぶデータベース実践入門 ch13 リファクタリングの最適解

gihyo.jp まとめ リファクタリング DBのリファクタリングは大変 マルチアプリケーションにおけるDB環境 なぜリファクタリングが必要なのか リファクタリングの手順 スキーマの移行期間 反復的なリファクタリング 回帰テスト ベンチマークテスト マイグレーシ…

理論から学ぶデータベース実践入門 ch12 Webアプリケーションのためのデータ構造 (2/2)

gihyo.jp タグ コラム: 転置インデックスを使用して検索を高速化する スケールアウト レプリケーション スレーブへの問い合わせ方式 データの論理的整合性と非同期レプリケーション シャーディング 問題点 NoSQLのシャーディング タグ RDBにとって頭の痛いデ…

理論から学ぶデータベース実践入門 ch12 Webアプリケーションのためのデータ構造 (1/2)

gihyo.jp まとめ キャッシュという考え方 メリット/デメリット DBアプリケーションにおけるキャッシュ キャッシュはあくまでもキャッシュ キャッシュとして使うための要件 キャッシュすべきデータの種別 キャッシュすべきでない キャッシュ可能 キャッシュの…

理論から学ぶデータベース実践入門 ch11 インデックスの設計戦略 (2/2)

gihyo.jp リレーショナルモデルとインデックス インデックスはリレーショナルモデルの一部ではない 正規化とインデックス カラム数が絞られる 問題児NULL 指令: 最適なインデックスを探せ! 必要なインデックス インデックスのアクセス特性 インデックスが使…

理論から学ぶデータベース実践入門 ch11 インデックスの設計戦略 (1/2)

gihyo.jp まとめ インデックスの働き RDBのインデックス インデックスの左端と範囲検索 セカンダリインデックスの更新 インデックスの種類 ハッシュインデックス 全文検索インデックス 形態素解析 Nグラム Rツリーインデックス 関数インデックス ビットマッ…

理論から学ぶデータベース実践入門 ch10 グラフに立ち向かう

gihyo.jp まとめ グラフの構造 ノード、エッジ 隣接 次数 歩道、小道、道 多重辺 ループ 閉路 連結 部分グラフ カットセット、ブリッジ エッジの向きと重み グラフの応用例 グラフの種類 一般グラフ 単純グラフ 連結グラフ/非連結グラフ 完全グラフ 正則グラ…

理論から学ぶデータベース実践入門 ch9 履歴データとうまく付き合う

gihyo.jp まとめ 履歴データの問題点 世界は履歴データで溢れている 履歴とリレーショナルモデルの相性問題 履歴データの具体例 履歴データの何が問題になるのか リレーションと時間軸との直交性 NULLの可能性 特定の行だけ意味が違う 履歴データに対する解…

理論から学ぶデータベース実践入門 ch8 SELECTを攻略する (2/2)

gihyo.jp リレーショナルではない操作 リレーショナルな操作のおさらい ソート 明示的に定義されていないカラム ストアドファンクション(ユーザ定義関数) コラム: 集約とGROUP BY リレーショナルではない操作の扱い方 インデントでSQLを読みやすくする リレ…

理論から学ぶデータベース実践入門 ch8 SELECTを攻略する (1/2)

gihyo.jp まとめ SELECTはSQLの心臓部 SELECTの本質 SELECTの強大さ データを取得する唯一の手段 SELECTの基本構造 SELECT七変化 集約関数 関数の有無だけで意味が変わる COUNTの特殊性 GROUP BYによる集約の書式 サブクエリ テーブルサブクエリ スカラサブ…

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

gihyo.jp IDを設計するという考え方 現実世界の物体や概念を表す手段 ナチュラルキーとサロゲートキー ナチュナルキーの使いどころと問題点 サロゲートキーの使いどころと問題点 リレーショナルモデルにおけるキー 意味を含んだID 紙の呪縛 IDの欠陥は波及す…

理論から学ぶデータベース実践入門 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 述語論理とリレーショナルモデル(続き) 命題論理の限界と量化 量子化と述語論理 述語論理 量化子とともに用いる束縛変数 量化子を伴わない自由変数 述語論理と集合論 述語と集合とは等価に置き換えが可能 集合の包含関係 述語論理の公理系 述語論理…