データベース設計入門#1 リレーションとER図【11分でマスター!DB設計】
Summary
TLDRこのビデオスクリプトでは、データベース設計に関するシリーズの第1回として、リレーションとER図について解説しています。リレーションは1対n、n対n、1対1の3種類があり、ER図はこれらの関係を図式で表現する方法を示します。また、データベース設計におけるアンチパターンを避けるための中間テーブルの重要性や、ツールの使い方についても触れています。シリーズの次回ではデータベースの正規化について解説される予定です。
Takeaways
- 📚 このシリーズはデータベース設計に関する4回に分けた講座で、第1回はリレーションとER図についての解説です。
- 🔗 リレーションはテーブル同士の関係を表し、主なものは1対n、n対n、1対1の3種類があります。
- 🏢 1対nの例として、一つの会社に複数の社員が存在するという関係が挙げられます。
- 🤝 n対nの例は、社員が複数のサークルに所属できるという双方向の関係です。
- 🔑 1対1の関係は、社員とその個人情報テーブルの関係のように、一対一の対応があることを表します。
- 💡 n対nの関係では、中間テーブルを用いてリレーションを表現することが推奨されます。
- 📈 ER図はリレーションを図式化したもので、丸、縦棒、鳥の足の3つの記号が使われます。
- 🚫 ゼロの存在有無はER図設計では重要ではありませんが、設計の柔軟性には影響があります。
- 🛠️ データベース設計の現場では、専門用語は使われず、テーブルや属性などの一般的な言葉が用いられます。
- 🛑 SQLアンチパターンは初学者がよく犯すテーブル設計の誤りを指し、改善策が提供されています。
- 🔧 中間テーブルはn対nのリレーションを表現する際に重要で、余計なカラムを持たせるべきではありません。
- 🔗 ER図作成ツールとしては、新しく設計する場合は特定のツール、既存データベースからER図を作成する場合はMySQL Workbenchが推奨されます。
Q & A
データベース設計のシリーズは何回に分かれていますか?
-データベース設計のシリーズは全部で4回に分かれています。
relationとは何を表すものですか?
-relationとはテーブル同士の関係を表すものです。
relationにはどのような種類がありますか?
-relationには1対n、n対n、1対1の3種類があります。
1対nの関係はどのような状況で用いられますか?
-1対nの関係は、例えば1つの会社に複数人の社員が存在する場合に用いられます。
n対nの関係が成立するためにはどのような条件が必要ですか?
-n対nの関係が成立するためには、片方のテーブルの1レコードが他方のテーブルの複数のレコードに関連する必要があります。
ER図とは何ですか?
-ER図は、エンティティ間の関係を図式化したものです。
ER図でリレーションを表すためにはどのような記号が使われますか?
-ER図でリレーションを表すためには、丸記号(0)、縦棒(1)、鳥の足(n)の3つの記号が使われます。
n対nのリレーションを表す際に中間テーブルを使う理由は何ですか?
-n対nのリレーションを表す際に中間テーブルを使うことで、複数の関係を柔軟に表現できます。
データベース設計において、アンチパターンとは何を指しますか?
-アンチパターンとは、データベース設計においてよくある悪い設計のパターンを指します。
n対nのテーブル設計でよくあるアンチパターンとは何ですか?
-n対nのテーブル設計でよくあるアンチパターンは、直接外部キーを互いに持たせてしまうことで、拡張性が失われる設計です。
データベース設計において、中間テーブルを使わないでn対nの関係を表現しようとするとどのような問題が発生しますか?
-中間テーブルを使わないでn対nの関係を表現すると、拡張性が低下し、無駄な絡みや制約が発生する可能性があります。
データベース設計の際に、どのようなツールが推奨されますか?
-データベース設計の際には、新しくER図を書く場合は特定のツールがおすすめで、既存のデータベースに対してER図を作りたい場合はMySQL Workbenchなどのツールが推奨されます。
SQLアンチパターンの本では何を学ぶことができますか?
-SQLアンチパターンの本では、データベース設計における悪い設計パターン25種類を学ぶことができます。
Outlines
📚 データベース設計の基礎知識
この段落では、データベース設計に関するシリーズの紹介とrelation(リレーション)とER図(エンティティ・リレーションシップ図)の解説がされています。シリーズは4回に分かれており、特に第1回ではリレーションシップの3種類(1対N、N対N、1対1)について説明されています。また、ER図の記法やリレーションシップを表す際の注意点、例えば0以上を示す際のゼロの記法などについても触れられています。
🔍 ER図の種類とデータベース設計のポイント
第2段落ではER図の種類、特にIDEF1X(アイデフワンエックス)とIDEF1(アイデフワン)の違いについて説明しています。実際のデータベース設計におけるマスターとトランザクションの概念、そしてER図を作成するツールについても触れられています。また、データベース設計におけるアンチパターン(悪い設計例)を避けるための中間テーブルの重要性についても解説されています。
🛠️ SQLアンチパターンとデータベース設計のベストプラクティス
最後の段落では、SQLアンチパターンという書籍を紹介し、データベース設計における悪い例とそれに対する解決策について解説しています。また、データベース設計のベストプラクティスとして、中間テーブルのシンプルさを強調しています。最後に、データベース設計に関するシリーズの次回予告と、チャンネル登録や評価、コメント、シェアの呼びかけがされています。
Mindmap
Keywords
💡データベース設計
💡リレーションシップ
💡ER図
💡1対多リレーションシップ
💡多対多リレーションシップ
💡1対1リレーションシップ
💡中間テーブル
💡SQLアンチパターン
💡正規化
💡MySQL Workbench
Highlights
シリーズの第1回でrelationとER図について解説します。
relationはテーブル同士の関係を表し、1対n、n対n、1対1の3種類があります。
1対nの例として、一つの会社に複数の社員が存在する場合を説明。
n対nの関係は、社員とサークルが互いに複数所属できる場合に適用。
1対1の関係は、社員とその個人情報を持つテーブルの例として紹介。
n対nの関係では中間テーブルを使用することが重要。
ER図はリレーションを図で表したもので、0、1、nを表す記号があります。
ER図の書き方とその種類について解説、IDEやIE図の表現方法を紹介。
データベース設計において、マスター系とトランザクション系という言葉がよく出てくる。
ER図を作成するツールとしてMySQL Workbenchの紹介。
データベースのリレーション関係を把握することがプロジェクトについていくための前提。
n対nのテーブル設計で中間テーブルを挟むことが推奨される理由を説明。
アンチパターンと呼ばれる悪いテーブル設計の例とその解決策について解説。
SQLアンチパターンという本で25の悪いテーブル設計パターンを学べる。
データベース設計における正しい方法とアンチパターンの理解が重要であることを強調。
次回の動画ではデータベースの正規化について解説する旨を告知。
チャンネル登録や高評価、コメント、シェアを呼びかけ、視聴者の参加を促す。
Transcripts
瀬尾丸です今回からはデータベースの設計
シリーズをお届けします全部で4回くらい
に分けてお届けしますが第1回目の今回は
relation と er 図について
解説しますよろしく頼むなおこの動画は未
経験から年収1000万円目指す
プログラマー養成講座シリーズとしてお
届けしていますのでぜひ他の動画も覗いて
みてください友達や同僚 sns への
共有もお願いしますえっ
relation とはテーブル同士の
関係を表すもので全部で3種類あります
1対 n n 対 n 1対1この3種類
です
読み方としてはこの n の部分は感じで
多いと海底一対多
方いたという読み方をする場合もあります
それではこれらの意味を一つずつ見ていき
ましょう
まずは1対 n について解説します
ここに会社テーブルと社員テーブルがあり
ますひとつの会社に複数人の社員が存在し
ますのでこのテーブル同士の関係は1対 n
と言います
実際に社員の数が0でも1でも2でもいい
のでとにかく複数があり得る場合は n と
なります次に n 対 n について解説
します
今度は社員テーブルとサークルテーブルが
あって
社員1人につき複数のサークルに所属
できるとします
この場合社員は複数のサークルに所属
できる
サークルは社員を複数抱えることができる
のでテーブル同士の関係としては n 対
n になります
最後に1対1です
社員テーブルと社員の個人情報テーブルが
あります
一つの社員につき1つの個人情報を持って
いますのでこのテーブル同士の関係は1対
1となりますはいということでベイビーの
リレーションとはテーブル同士の関係を
表すものでこの三種類があることが分かり
ました
津波にこれから重要なことを言いますが n
対 n の場合は中間テーブルという特殊
なテーブルを使うことになりますこの中間
テーブルについては動画の最後の方で解説
します
[音楽]
er 図とあこんな感じの書き方で
リレーションを図で表したものです
ちょうどわかりやすく解説しているサイト
があったのでこちらを使いながら解説して
いきますこのわかりやすいサイトの url
は概要欄に貼っておきますそれでは er
図の読み方について解説していきます er
図ではこの3つの記号を使って
リレーションを表します
このマル記号は0
縦棒は1
鳥の足はたつまり n を表しています
例えば1対1の関係の時はこのように表し
ます二つのテーブルをまずは線で結びます
そして一致対1ですので位置を表すこの
縦棒で1対1とこのように表しています
次に1対 n の場合を見てみましょう
n は鳥の足で表現しますので
1対 n を er 図で表現するとこの
ようになります
ちなみに n 対 n の場合はこんな
感じでどちらも鳥の足になります
最後にゼロという考え方も説明します
例えばこのように社員テーブルとサークル
テーブルがあったとします
そしてサークルは作ったけども誰も参加し
てくれない場合は0がありえるので0以上
という意味で縦棒ではなくこのようにゼロ
の記号をつけます
しかしみなさんに覚えておいてもらいたい
のはゼロがあり得るかどうかというのは
設計する上ではあまり重要ではありません
大抵の場合はこの3つのうちのどれなのか
さえわかれば ok です
ですので er 図を書くときにもこの
ように曖昧な書き方をする場合が多いです
0があり得るかどうかは考えずに
とりあえず1対 n とこのように表し
ます
さてデータベースの勉強していると実際の
現場では使わない言葉がたくさん出てき
ます
ですので皆さんの頭を整理するためにこれ
は覚えてくださいこれは覚えなくても良い
ですという言葉を紹介していきます
引き続きこのサイトを使ってみていき
ましょう一つは er 図という言葉は
絶対に覚えてください次にリレーションと
いう言葉も覚えてくださいあとは全部覚え
なくていいです
例えばテーブルのことを別名で
エンティティーと言ったりするのですが
実際の現場ではエンティティー何て呼ぶ人
はいませんみんなテーブルと言いますです
のでこのエンティティという言葉は覚え
なくていいです次に絡むのことを
アトリビュートと言いますがこれも
アトリビュート何て呼ぶ人はいないので
これも覚えなくていいですみんな絡むと
いいます次にこの位置なのかゼロなのか n
なのかといった部分をカーディナリティと
呼びます
これも実際にはあんまり使わないので覚え
なくていいです
覚えなくても良いとは言えそんなものが
あるのかふーんぐらいな感じで一度この
サイトを上から下まで読んでみることをお
勧めしますでは続いて見ていくとer 図
の種類について解説しています ie 貴方
という先ほど見た書き方と ide なん
ちゃら貴方と言って鳥の足ではなくこの
ようなまるで表現する貴方もあるようです
実際の現場ではこちらの書き方をよく目に
します
ですのでしたのこちらの書き方はふーん
そんなものがあるのかぐらいな感じで覚え
ておくと良いでしょう
もちろんこの愛生き方とか id なん
ちゃら貴方というのは覚えなくていいです
後はデータベース設計をしていると
マスターという言葉とトランザクションと
いう言葉がよく出てきますたとえば
アマゾンのような ec サイトの場合
商品テーブルのような主要なテーブルの
ことをマスター系と言いますそして購入
履歴テーブルのような流れる系の情報を
トランザクション系と言います実際に
デイビー設計をしたりする上ではこれは
マスター系だよなぁとかこれは
トランザクション系だよなぁということは
実際にはあまり考えないのでこれも
あんまり意識しなくてはいうのではないか
なと思います
次に er 図を書くツールについて解説
します新しく er 図を書くという場合
はこの書くというツールがおすすめです
またはすでに存在しているデータベースに
対して er 図を作りたいという場合は
この mysql
workbench というツールがお
薦めですこれは既存のテーブルからer 図
を自動で作成してくれる機能がついてい
ます
どういう時にこれを使うのかというと
例えば仕事の現場で途中からその
プロジェクトに参加してもうデータベース
は出来上がっているんだけれども er 図
が存在しないという場合はこのツールを
使って er 図を自動作成します
システムにおいてデータベースというのは
とても重要でまずはそのシステムのデータ
ベースのリレーション関係を把握しないと
そのプロジェクトにはついていけませんの
でまずはプロジェクトにジョインしたら
データベースの構造を理解するという
ところから始めましょう
そのベイビー構造を理解するためのツール
がこの er 図なのです
さてここに社員テーブルとサークル
テーブルがあります
この2つは n 対 n の関係です
さてそれでは実際にテーブル設計をしてみ
ましょう一人の社員は複数のサークルに
所属できますそしてサークルは複数の社員
を抱えることができますさてそのためには
どんなカラムを追加すればよいでしょうか
初心者がやりがちなミスとしてはこのよう
な設計をしてしまうことです社員テーブル
の方にサークル id 1サークル id
ニートこのようにサークルテーブルの id
すなわち外部キーをを出せます
そしてサークルテーブルの方にも社員 id
1社員 id にとこのように外部キーを
持たせます
これは sql アンチパターンと言って
やってはいけないテーブル設計の悪いお
手本です
ではこのテーブル設計のどこが良くないの
かというとこの設計だと2つまでしか
サークルに所属できません
そしてサークルがーも2人までしか社員を
抱えることができませんですので拡張性が
悪いという面でよくないテーブル設計に
なりますまたサークル活動をしていない
社員にとってはサークルからも使いません
ので無駄な絡むということになります
そういった面でもこの設計はよろしくあり
ません
ではどうするのが正解なのかというとこの
ように中間にテーブルを挟みます
社員 id とサークル id だけを
持ったシンプルなテーブルです
この設計であれば誰かがサークルに入る
ときにこの社員サークルテーブルに1件の
データを追加するだけで良いので社員は
サークルにいくつでも所属できますし
サークル側も何人でも社員を抱えることが
できますまた無駄な絡むも発生しないので
綺麗な体得る設計となりました
このように n 対 n のテーブル設計
をするときには中韓にテーブルを挟むのが
セオリーです
そしてこの中間のテーブルのことを中間艇
ブルー
または黄砂テーブルと呼びます重要なこと
なのでもう一度言いますが n 対 n の
テーブル設計をするときは間に中間
テーブルを挟みましょうそして中間
テーブルには余計なカラムを持たせない
ようにしましょう
中間テーブルに何かカラムを持たせるとし
ても優先度や作成日更新日
くらいになるかと思います
この中間テーブルの役割としては n 対
n のリレーションの橋渡しをすること
ですので例えば
サークルの活動記録とか余計な情報を中丸
テーブルに持たせるのは設計的におかしい
ことになってきます
えっ
こんな感じでデービー設計にはアンチ
パターンと呼ばれる初心者が行ってしまい
月な悪いお手本とそれに対する解決策の
パターンが存在しますそのパターンを
学べるのがこの sql アンチパターン
という本です
この本ではこのようなパターンを25
パターン学ぶことができます
人類がこれまでを科してきた悪いテーブル
設計の悪行の数々が25パターンもこの本
にはぎっしりと詰まっていてそれをバッサ
バッサと斬り咲いて政界へと導いてくれる
読みやすい内容となるています私はこれ
まで読んできたシステム関係の本で一番
勉強になった本なので必ず読むことをお
勧めしますこの本のリンクは動画の概要欄
に貼っておくのでそちらから是非読んでみ
てくださいはいということで今回は
relation と er 図について
解説しました次回はデイビーの正規化に
ついて解説しますのでチャンネル登録をお
願いしますまたこの動画が役に立ったと
いう方は高評価のグッドボタンやコメント
を頂けたら嬉しくて泣きますまた sns
や友達へのシェアもぜひ宜しくお願いし
ますそれではまた
5.0 / 5 (0 votes)