#author("2024-03-28T19:07:53+09:00","default:irrp","irrp")
#author("2024-04-16T15:17:21+09:00","default:irrp","irrp")
→データベース関連

#contents


*一般 [#l7946196]
-[[超入門!テーブル設計をデータモデリングから考えよう - Speaker Deck>https://speakerdeck.com/k_takasaki/chao-ru-men-teburushe-ji-wodetamoderingukarakao-eyou]] 2024.1

-[[【入門】データベース設計まとめ #Rails - Qiita>https://qiita.com/KNR109/items/5d4a1954f3e8fd8eaae7#3%E5%B1%A4%E3%81%AB%E5%88%86%E3%81%91%E3%82%8B%E7%90%86%E7%94%B1]] 2023.11

-[[【随時更新】テーブル設計でミスらないために確認したいアンチパターン - Qiita>https://qiita.com/WebEngrChild/items/4fd38ade334a46629233]] 2023.9

-[[DB設計の共有で疲弊してない?dbdocsのすゝめ>https://zenn.dev/ukkyon/articles/1c6090488049be]] 2023.5

-[[論理削除が云々について - mike-neckのブログ>https://mike-neck.hatenadiary.com/entry/2015/03/24/231422]] 2015
--テーブルに状態を持たせない
--究極には機械が認識するキーと、人間にとって意味のあるデータだけのエンティティだけですべての業務のデータを構成できる
--日付を持つデータはイベント(これもひとつのエンティティ)
--NULLのデータは絶対に持ってはならない
--テーブルはでかく作るな、小さく作れ
--テーブル同士の関連は直接持つな、関連を表すテーブルを作れ
--1:1の関連になったとしても、イベントとそれに付随するデータは分離しろ
--データが増える?金と物理で殴れ(ディスク増強しろ)

-[[データベースの概念スキーマ、外部スキーマ、内部スキーマ - Qiita>https://qiita.com/lymansouka2017/items/615dac8890e39a4da86e]] 2020
--外部スキーマ…ユーザから見たときの見た目。ビューに相当
--概念スキーマ…CRETE TABLEなどのDDLに該当。データモデル
--内部スキーマ…DBの実装。ファイルやインデックスなど

-[[M1Mac × Docker × SchemaSpy × MySQL8.0でテーブル定義書とER図を自動生成してみる>https://gmor-sys.com/2022/10/19/db-document-autocreation-tool/]] 2022.10

-[[【入門】データベース設計まとめ - Qiita>https://qiita.com/KNR109/items/5d4a1954f3e8fd8eaae7]] 2022.8

-シャーディングは、特定のタイプのパーティション分割であり、いわゆる水平パーティション分割の一部です。
-[[シャーディング - Qiita>https://qiita.com/hharu/items/15627d2058bffe1fadf0]] 2019
-[[シャーディングとは、テーブルシャーディングという可能性【水平分割】 | SEO対策なら株式会社ペコプラ>https://pecopla.net/web-column/db-shard]] 2020

-[[DB設計について考えてみた。ナチュラルキーとサロゲートキーはどちらが良いのか? | 株式会社AMG Solution>https://amg-solution.jp/blog/8980]] 2022.4

-[[交差テーブルには関連の意味を表す名前をつけよう>https://qiita.com/tkawa/items/dc3e313021f32fd91ca6]] 2019.6

-[[DB設計時のサイズ見積もり>http://d.hatena.ne.jp/yone098/20090512/1242088638]]

-[[リレーションの正規化>http://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E6%AD%A3%E8%A6%8F%E5%8C%96]]
--第1〜第5正規形の説明、ボイス・コッド正規形の説明など

-[[フリーで使えるDBモデリングツールまとめ>http://blog.asial.co.jp/367]]
--Clay,DBDesigner4,
MySQL Workbench,WWW SQL Designer,A5:SQL Mk-2,
Execute Query
-[[DBDesigner4>http://fabforce.net/dbdesigner4/]] MySQL用のDB設計ツール


*ER図 [#tffd41b8]
→ドキュメント作成

-[[SchemaSpyを使用してRDBからER図を自動生成する>https://zenn.dev/pharmax/articles/62751d51c1c9d4]] 2024.4

-[[【DB設計】テーブル定義(クエリ)からER図の自動生成 | ジコログ>https://self-development.info/%e3%80%90db%e8%a8%ad%e8%a8%88%e3%80%91%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e5%ae%9a%e7%be%a9%ef%bc%88%e3%82%af%e3%82%a8%e3%83%aa%ef%bc%89%e3%81%8b%e3%82%89er%e5%9b%b3%e3%81%ae%e8%87%aa%e5%8b%95/]] 2024.3

-[[MermaidでER図を書く - エキサイト TechBlog.>https://tech.excite.co.jp/entry/2023/11/07/111422]] 2023.11

-[[ChatGPTを使ってDDLからER図をすばやく作成する - Taste of Tech Topics>https://acro-engineer.hatenablog.com/entry/2023/08/29/120000]] 2023.8

-[[【DB設計】既存データベースからER図のリバース生成(自動生成) | ジコログ>https://self-development.info/%e3%80%90db%e8%a8%ad%e8%a8%88%e3%80%91%e6%97%a2%e5%ad%98%e3%83%87%e3%83%bc%e3%82%bf%e3%83%99%e3%83%bc%e3%82%b9%e3%81%8b%e3%82%89er%e5%9b%b3%e3%81%ae%e3%83%aa%e3%83%90%e3%83%bc%e3%82%b9%e7%94%9f/]] 2023.8
--A5M2で生成

-[[ChatGPTにER図を作成してもらってみた | DevelopersIO>https://dev.classmethod.jp/articles/create-er-diagram-by-chatgpt/]] 2023.3

-[[tblsでデータベースドキュメントを生成する(1.ドキュメント生成編) - Qiita>https://qiita.com/k1LoW/items/2010413a8547b1e6645e]] 2018

-[[PlantUMLでER図を書く - Qiita>https://qiita.com/kuro221/items/f2bc325319d4e1827989]] 2022.10

-[[ER図をマウスを使わないで書きたいし、その内容をGitLabで管理もしたい - Qiita>https://qiita.com/arisa5/items/653a95ab3464adac9875]] 2022.9

-[[ER図の自動生成について、dbdiagram.io, DBeaver, A5M2 を比較してみる。 - Qiita>https://qiita.com/ryamate/items/12bd8cd819079c28644c]] 2022.8

-[[ER図の作図について、 Draw.io, PlantUML, Mermaid を比較してみる。(VSCode拡張機能など) - Qiita>https://qiita.com/ryamate/items/3779418172c4f5a83212]] 2022.7

-[[ブラウザでER図が描けるWWW SQL Designer紹介>http://labs.unoh.net/2007/10/erwww_sql_designer.html]]
--http://ondras.zarovi.cz/sql/
-[[ER図:http://www.netlaputa.ne.jp/~hijk/study/ae/er.html]]
-[[誰でもかけるER図:http://www.gfocus.co.jp/information/column/column02.html]]


*インデックス [#s4d91a2c]
-[[インデックスを理解したい #SQL - Qiita>https://qiita.com/kntr0116/items/649ea41afa09743d74c4]] 2024.3
-[[RDBMSのインデックスの概略的なまとめ – サイゼントの技術ブログ>https://cyzennt.co.jp/blog/2024/03/02/rdbms%e3%81%ae%e3%82%a4%e3%83%b3%e3%83%87%e3%83%83%e3%82%af%e3%82%b9%e3%81%ae%e6%a6%82%e7%95%a5%e7%9a%84%e3%81%aa%e3%81%be%e3%81%a8%e3%82%81/]] 2024.3
-[[図解 DB インデックス>https://zenn.dev/suzuki_hoge/books/2022-12-database-index-9520da88d02c4f]] 2023.5



*mixiはいかにして増え続けるトラフィックに対処してきたか [#j17cf77f]
-http://itpro.nikkeibp.co.jp/article/NEWS/20060330/233820/
-Webサーバーは単純に増やせばいいのであまり問題にならない。
-MySQLのスケーラビリティをどう確保するか
--mixiは更新処理が多いためレプリケーションはあまり有効ではない
--そこでまずデータベースの分割で対応
---テーブルの種類によるDBの分割
 ・テーブル位置の管理情報をもつパーティションマップを作成
    ・利点:DB移行が楽(管理情報を書き換えるだけで良い)
    ・欠点:テーブルの結合ができなくなる(開発当時は)
--この対応でもおっつかなくなった
--次にユーザ単位でのDB分割
---パーティション・マップ用DBの追加
---アプリケーションの中だけでパーティション・マップを処理
--(これらはパーティション・マップが増えることへの対応か?)
--DB分割によるコネクションの増加→メモリ・キャッシュで対応
--将来は更新日時によるデータ分割も検討する

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS