はじめに 本エントリーは某社内で実施するSQL勉強会向けの資料となります。 本エントリーで書籍「SQL アンチパターン」をベースに学習を進めます。書籍上でのサンプルコードはMySQLですが、本エントリーでのサンプルコードはSQL Serverに置き換えて解説します。 また本章以外のエントリーおよび利用するSQLリソースなどは、以下のGitHubを参照ください。 EAV(エンティティ・アトリビュート・バリュー)とは 「リレーショナルデータベースはメタデータの柔軟性が低い」という拡張性の問題についての議論は、リレーショナルモデルが提唱されて以来、途切れることなく議論されてきました。 EAVは「可変属性をサポートする」など、柔軟な設計を目指したことに起因するDB設計のアンチパターンです。 EAV(Entity-Atribute-Value)では、次のような項目を持たせたテーブルが設計されます。