猫でもわかるWeb開発・プログラミング

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

データベースのテーブルの正規化について、とにかくわかりやすく説明する

達人に学ぶDB設計 徹底指南書 はじめに: DB設計の重要性 テーブルの正規化 第一正規形 正規形と「更新時異常」 更新時異常とは 挿入時異常 削除時異常 修正時異常 関数従属性 第二正規形 挿入時異常について 削除時異常について 修正時異常 情報無損失分解 …

IPA データベーススペシャリスト試験 平成31年度 午後I 問1 解説

設問1、設問2は、問題文を読みながら埋めていくのが良い 2.顧客 (2) 設置事業所 顧客コードと設置事業所コードで識別するので、e は 顧客コード(実線) 識別するので主キー 設置事業所は、顧客コードだけでは識別できないので、一つの顧客コードに対して複…

過去問解説 データベーススペシャリスト 平成31年度春期 午後I問1

過去問のダウンロード場所 DBスペシャリストの過去問を解いたので解説を書きます。 過去問はIPA公式サイトからダウンロードできます。 www.jitec.ipa.go.jp 以下、解答と解説なので、先に問題を解いてから読んでください。 問1 解説 まず、問題をざっと見る…

データベースの「シャーディング」とは

シャーディングの概要 具体例 メリットとデメリット シャーディングの概要 シャーディングとは、データベースの負荷分散の仕組みの一つです。 データベースのデータを、ある法則により完全に2つに分けます。 具体例 ツイートのデータベースを考えます。デー…

AWS RDS で Slow Query を見る

設定 保存先がTABLEの場合 保存先がFILEの場合 設定 RDSトップにいく 左のタブから「データベース」を選択 Slow Query を出したいデータベースの DB識別子 をクリック 「設定」を選んで パラメータグループの名前をクリック 該当DBの「設定」をクリック 「パ…

Heroku PostgreSQL にて Scaka Play Framework 2.6 で Slick と play-slick を利用して HikariCP でコネクションプール(スレッドプール)を使う!

Scala Play Framework 2.6 と Slick でコネクションプール(スレッドプール)の設定がしたい! 環境 前置き コネクションプール/スレッドプールを使うモチベーション コネクションプールとスレッドプールの違いは? なぜ play-slick を使うようにしたのか pl…

Dockerで立てたPostgreSQLにcreate tableを自動で流す

前回、以下の記事でPostgreSQLをDokcerで立てて開発する方法を紹介した。 www.utakata.work 今回は、dockerを立ち上げた際に自動的にcreate tableを流す方法について説明する。 まず前回同様 docker-compose.yml を用意する。 postgresql: image: postgres:1…

Scala Play Framework と Slick で Connection Pool を利用する

経緯 環境 コネクションプールとは コネクションプールを張ってなかったときの接続方法 conf/application.conf の設定 DB接続部分 コネクションプールの利用 configの書き換え Hikari CPライブラリの導入 経緯 私は、LGTM画像を簡単に作成できるサービス「LG…

Heroku向けのアプリケーションのローカル開発環境向けにDockerでPostgreSQLサーバーをたてる

はじめに(読み飛ばしていいです) docker-compose.yml(ここから読んだらいいです) LGTMoonの場合 はじめに(読み飛ばしていいです) Herokuを使っているとPostgreSQLをよく使います。HerokuではPostgreSQLのデータベースが無料で使えるからです。MySQLを…

MySQL 5.7のマルチソースレプリケーションを活用する - 無停止でシャーディングを解消

はじめに この記事は ドワンゴ Advent Calendar 2017 - Qiita の15日目の記事です。 昨日の記事は ytanaka さんの Goadを使った負荷試験とパフォーマンス分析手法について - Qiita でした。 自己紹介 ドワンゴでニコニコ動画の開発をしています。 *1 去年も…