【A試験_データベース】02. データベースの正規化(1)| 基本情報技術者試験

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ต.ค. 2024

ความคิดเห็น • 22

  • @kihonzyouhou
    @kihonzyouhou  2 ปีที่แล้ว +1

    ▼▼再生リスト▼▼
    データベースコース
    th-cam.com/play/PLEuyFWEF8u0MWx90JSNNg-TuDYQcY7YCP.html
    基本情報技術者試験の概要(※最初にご覧頂くことをオススメしています。)
    th-cam.com/play/PLEuyFWEF8u0OhszLVxc38rmwgjfWX6wzG.html

  • @dayaftertmrw
    @dayaftertmrw 3 หลายเดือนก่อน

    あまりにも感謝すぎる

  • @yuyu3604
    @yuyu3604 2 ปีที่แล้ว +14

    【キーワードメモ】
    ・主キー→一意制約→一つの列て行を特定
    ・複合キー→複数の列で行を特定
    ・外部キー→ほかの表をくっつけるための列
    ・正規化→データを整理すること→移動・削除、キーで分割、さらに分割

  • @みどりくん-e5f
    @みどりくん-e5f ปีที่แล้ว +2

    鬼わかりやすい
    この動画こそが正規化だ

    • @kihonzyouhou
      @kihonzyouhou  ปีที่แล้ว

      お褒め頂きありがとうございます🙌

  • @ちゅーりっぷ-y8x
    @ちゅーりっぷ-y8x 8 หลายเดือนก่อน

    2回に分けてデータベースコースの中のデータベースの正規化という分野を学習していきます
    一見難しそうですが中身を理解すると全然難しくないので、頑張ってついてきてください
    0:182:54
    主キーと外部キー
    正規化を学ぶ際に知っておく必要がある知識として、主キーと外部キーを紹介します。
    主キーとは表の中の行を一つに特定するための列のことで、
    値が重複しない一意制約と、値が空値(からち)でない非NULL制約という2つの制約が必要です
    いきなりこんなこと言われても何だそれは!って感じだと思いますので、
    実際に画面に見せた日本人のデータ一覧表を見ながら一緒に理解していきましょう。(0:47
    考え方としては、この表の中には名前・年齢・性別・職業・ペット・居住地・マイナンバーといった列の項目がありますが、その項目の中でこれがわかればその人を特定できる。というのがどんな列なのか考えるイメージです。
    例えば名前がわかったら、その人を特定することができるでしょうか。
    これは当然ノーです。なぜなら同姓同名の方がいるので、名前だけで人物を特定することはできません。
    このように一つの列で山田太郎さんのように値が2つ以上あったら、一つの行を特定することができないので、
    主キーとなりません。
    逆に言うと主キーは値が重複していないという条件が必要で、
    その条件が先ほど伝えた一意制約というものです。
    ちなみに仕事をする上では、そのような値が重複していないデータをユニークデータと言ったりするのでテストには出ませんがついでに知っておきましょう。
    一意制約のついでに非NULL制約についても説明しちゃいます。
    非常に単純な話で値が入っていない列は主キーになりませんよ!ということです。
    例えばペットという項目を見るとペットを飼っていない佐藤次朗さんや山本春子さんは値が何も入っていません。
    このようにデータが入っていないことを空地もしくはNULLと呼びます
    空値があると行を一つに特定できないので主キーはこのような空値を持ってはいけない。
    つまり非NULL制約があるということです。
    さてそれではどの項目を主キーにすればよいかというと、おそらく予想ができていると思いますが、
    マイナンバーが主キーになります。
    ちなみにこれはただの例なので12桁じゃないし、アルファベットが入ってる人がいたり、めちゃくちゃ適当なマイナンバーを作っていますが特に気にしないでください。
    マイナンバーとはご存知の通り国民一人一人に割り振られたたった一つの番号なので、マイナンバーさえ分かってしまえばその人物を特定できますし、その人の住所や性別年齢などもすべてわかってしまうんですね。
    ということでマイナンバーはめちゃめちゃ大切な個人情報、ということなんですが、日本人データベースの観点で
    考えるとその人を特定するための主キーとして非常に便利の項目として使うことができます。
    2:553:46
    複合キー
    また1つの列だけでは行を特定できないけど、複数の列を組み合わせることで行を特定できるといったケースがあります。
    そのように複数組み合わせて主キーの役割とした項目を複合キーと呼びます。
    例えば中学生の体力測定の結果をまとめたデータを考えてみましょう。
    この時学年だけが分かっても当然生徒を特定することはできないし、
    逆に例えば出席番号だけ分かっても、いったい何年何組の出席番号の生徒なのかわからないので、
    こちらも生徒を特定することはできません。
    ですが、学年とクラス出席番号のすべてがわかったら生徒を特定することができますよね。
    つまり学年クラス出席番号という3つの列を組み合わせて複合キーとすることで
    生徒の特定に使うことができます。
    この複合キーという考え方も必ず理解しておきましょう
    3:474:51
    外部キー
    続いて外部キーの説明です
    表と表をくっつけるために他の表の主キーを参照
    する列を外部キーと呼びます
    例えばこのように社員一覧表と部署一覧表という2つの表があったとしましょう。
    社員一覧表は社員 IDが主キーに。部署一覧は部署コードが主キーになっているとします。
    さて社員一覧表の中には部署コードがありますが、
    これだけ見ても一体この社員はどこの部署なのかさっぱりわからないので
    この部署コードを使って部署一覧表の部署名称の部署コードを紐付けたいです。
    そのように他の表をくっつける時にそのくっつける際の紐付けとして使う項目、今回の場合は社員一覧表の中の部署コードがそれに該当しますが、そのような項目を外部キーと呼びますので、
    こちらも理解しておきましょう。
    ちなみにこの説明を聞くとそもそも部署コードと部署名を一緒に一つの表にまとめておけばいいんじゃないかなと思うかもしれませんが、このように表分けているのにはちゃんとした理由があります。
    4:52
    (参考)表を分けている理由
    このように表分けることでデータの独立性というものが高まってデータの管理がしやすくなるというメリットがあります。この考え方はこのコースのメインテーマ、正規化で使われている考え方です。
    例えば部署コードと部署名を分けずに一つの表で管理しているケースを考えてみましょう。(5:09の図)
    この時に例えば営業部の部署コードは変わらないのですが、名称が営業本部に変わったとします。
    この時この表の中の営業部というデータを全て営業本部に変更していく必要があり、
    もしでデータの件数が多かった場合、非常に手間になってしまいます。
    一方で先ほどのようにこうやって社員一覧表と部署一覧表を分けて管理しておき、社員一覧表から部署名を参照するような仕組みにしておきます。
    こうすると営業部の名称が営業本部に変わった際は部署一覧表の営業部を営業本部に変更するだけで済みます。
    社員一覧表は部署一覧表のデータを参照しているので、部署一覧表をしっかり更新しておけば、社員一覧表には何かしらの変更を加えなくてもよいということなんですね。
    このように表を分けておくことでデータがそれぞれ独立されるので、管理が簡単になります。
    この考えまたは理解しておきましょう。
    6:06
    データベースの正規化
    最後にメインであるデータベースの正規化という考え方について学習していきます
    正規化とはデータベースの中のデータを整理したり、不要な項目を削除することで、データの矛盾や重複をなくし優れたデータベースを作るための方法です。
    先ほど部署一覧表を分けてデータの独立性を高める説明をしましたが、あれもまさしくデータベース正規化の考え方の一つです。
    何も考えずにただデータを突っ込むのではなく、しっかりルールに従ってデータを作成していくことで管理のしやすい
    データベースを作っていこうということです。
    この正規化というのは具体的に3つの手順で行います。
    最初は第一正規化です

  • @通りすがり-y3k
    @通りすがり-y3k ปีที่แล้ว +1

    わ、わかりやすい!この動画に出会えてよかった

    • @kihonzyouhou
      @kihonzyouhou  ปีที่แล้ว

      嬉しいコメントありがとうございます!お役に立てたようで幸いです^^

  • @ばびび-l4r
    @ばびび-l4r ปีที่แล้ว

    わかりやすいです!ありがとうございました!

  • @あり-d8s
    @あり-d8s ปีที่แล้ว +2

    とてもわかりやすいです!
    ありがとうございます!!
    合格目指してがんばります✨

    • @kihonzyouhou
      @kihonzyouhou  ปีที่แล้ว

      嬉しいコメントありがとうございます!合格応援しております🙌

  • @hashimotoganna
    @hashimotoganna 2 ปีที่แล้ว +3

    主キーの話、すごく分かりやすいです。ありがとうございます

    • @kihonzyouhou
      @kihonzyouhou  2 ปีที่แล้ว

      こちらこそありがとうございます!
      お役に立てて幸いです🙇‍♂️

  • @mmmmmsakura
    @mmmmmsakura 11 หลายเดือนก่อน

    主キー!複合キー!外部キー!
    正規化!

  • @mkim7373
    @mkim7373 ปีที่แล้ว

    今回もわかりやすく解説ありがとうございます。
    参考書で第3正規化が難しく書かれていたので、とても為になりました。

    • @kihonzyouhou
      @kihonzyouhou  ปีที่แล้ว

      こちらこそありがとうございます!お役に立てたのなら幸いです^^

  • @ryoakutsu6080
    @ryoakutsu6080 ปีที่แล้ว

    自分用
    7:20 →DBの正規化

  • @darkabsolute935
    @darkabsolute935 6 หลายเดือนก่อน

    ナルなのに日本だとヌルなんですね

  • @sugurudeji1717
    @sugurudeji1717 2 ปีที่แล้ว +3

    制約の字が、誓約になってます!

    • @kihonzyouhou
      @kihonzyouhou  2 ปีที่แล้ว

      失礼しました、ご指摘ありがとうございます!

  • @smilelife529
    @smilelife529 ปีที่แล้ว

    マイナンバー。。。アナログ庁がやばすぎる。。。