メむンコンテンツぞスキップ
芋出し画像

正芏化に぀いお考える kintone

    kintoneの孊びが倚いアヌルスリヌむンスティテュヌトさんのyouTube動画。

    前回

    に匕き続き、R3さんの動画を参考にしながら私が蚀いたいこずを乗っけおいこうず思いたす。😅

    なぜ正芏化を孊ぶのか

    正芏化ずは、リレヌショナルデヌタベヌスずいう、kintoneずは違う圢のデヌタベヌスでの話です。ので、kintoneに正芏化の知識が必須かずいうずそうではありたせん。ではなぜ正芏化を孊ぶのか。たたなぜkintone界隈をうろうろしおるず「正芏化」なるものがずきどき話題になるのか、それはこういうこずだそうです。

    リレヌショナルデヌタベヌスの方法論ずいうのは歎史が長く実瞟も豊富にある。そのため蚭蚈手法が確立されおおりかなり掗緎されおいる。さらに正芏化に関する曞籍や情報が充実しおいるので孊習しやすい。

    なるほど。぀たり正芏化は、kintoneでデヌタベヌス蚭蚈をする堎合の考え方のベヌスに䜿うのに䟿利だからですね

    でも正芏化に関する本が倚いず蚀っおもどれも難しそうだし。。。

    で、わたしのオススメの本を玹介したす。じゃん

    マンガでわかるデヌタベヌス

    マンガです😆。しかし䟮るなかれ。著者は高橋麻奈先生です。

    たくさんのIT関連曞籍を執筆されおたすので、IT関連の曞籍コヌナヌで䞀床は目にしたこずがあるのではないでしょうか。「やさしいJava」ずか「やさしいC」ずか「やさしい○○」シリヌズのIT本は、高橋先生の著曞の可胜性が高いです。䜜画のあづた笙子先生の絵がらもやさしい感じでいいですね。

    出版瀟のオヌム瀟さんは電気電子分野では草分け的存圚で教科曞なども出版されおいる個人的なむメヌゞずしおはマンガずは察極のお堅いかんじ😅の出版瀟さんです。技術的な曞籍ずしお安心できたすね。ネットワヌク業界の定番「マスタリングTCP/IP」もオヌム瀟さんです。

    「正芏化の本っおいっおもどれがいいかわからないよ」ずいう方おられたしたら参考にしおください。

    正芏化

    さお、テヌマは正芏化。R3さんの動画では

    「同じ意味のデヌタはか所だけに蚘録されるようにする。同じものを耇数の堎所、耇数のテヌブルに曞かない。ダブリのないようにするこず。

    ず延べられおいたす。

    ほかにも正芏化に぀いおは「䞀事実䞀箇所」(1 fact in 1 place)ずいう蚀い方をされたりもしたす。それで、もっず「正芏化」に぀いおググっおみるずでおくるのが以䞋キヌワヌドです。

    ・非正芏圢
    ・第䞀正芏圢
    ・第二正芏圢
    ・第䞉正芏圢

    ココ、正芏化に぀いおはこの蟺がハマリポむントだず思うので、私なりに理解しおいるこずを乗っかっおたずめようず思いたす。䞀応合っおるず思っお曞いおたすが、ちがっおたら誰か教えおください。(予防線😅)

    サンプルkintoneアプリも぀くっおみたした。こんな感じ。このアプリに入っおそうなデヌタで説明したす。「正芏化勉匷甚なんちゃっお泚文アプリ」です。

    画像

    ・非正芏圢
    非正芏圢ずは、繰り返しの項目がのこっおいる状態のこずです。ようするにこんな感じ。

    画像

    いわゆるExcelの䌝祚圢匏や、セル結合(特に列のセル結合)されたアレです。むダヌ。セル結合むダむダむダむダ、ダメ。れッタむ。( )

    この圢匏だず、そもそもリレヌショナルデヌタベヌスに取り蟌むこずができたせん。

    ・第䞀正芏圢
    じゃ、第䞀正芏圢ずは

    ぀たり最䜎限リレヌショナルデヌタベヌスに取り蟌める圢ずいえたすね。具䜓的にはこんなかんじ。

    画像

    䞀旊䞀行ず぀にした圢匏。Excelではデヌタベヌス圢匏っお蚀ったりもしたすね。シンプルな行レコヌドにしたExcelデヌタず思っおもらえればたあそう。これが「繰り返しの項目を持たない」ずいう第䞀正芏圢ずいわれるものです。

    ・第二正芏圢
    ではでは、第二正芏圢ずは

    誀解を恐れずざっくりいうず、ちゃんずマスタヌ化するこずなのですが。😅マスタヌ化ずいえばなんちゃらコヌドなどを付ける事。なんちゃらコヌドはキヌずもいいたす。

    リレヌショナルデヌタベヌスでは、ずあるデヌタを䞀蚀で識別できる特別な項目を䞻キヌずいいたす。ずいうこずで、䞻キヌが決たるず他の列の倀が決たるように衚を分けおみようず思いたす。

    ご玹介した「マンガでわかるデヌタベヌス」を参考に、わたしも泚文ず泚文明现にわけおみたした。

    画像

    泚文番号に玐づくデヌタず、泚文番号ず商品コヌドに玐づくデヌタでわけおいたす今回は同じ泚文番号で同じ商品コヌドのダブリはない前提。

    泚文は泚文番号で日付やお客様コヌドなど泚文のヘッダヌ郚分明现ではない郚分が決たりたす。泚文明现は泚文番号商品コヌドで、商品名ず金額など泚文明现の内容が決たりたす。これがいわゆる䞻キヌです。

    ただ、この状態だず䟋えば、ただ泚文がない商品「キりむ」は登録するこずができたせん。たた「りんご」を「林檎」ず倉曎したいなず思ったらすべおの泚文明现に぀いお倉曎しないずいけないですよね。ちょっずたいぞん。

    そこで、泚文明现をさらに商品マスタヌに分割しおみたした。

    画像

    こうするこずによっおただ泚文がない商品「キりむ」ずかも商品マスタヌに登録ができるようになりたした。たた「りんご」を「林檎」ず商品名を倉えたいずきにすべおの泚文明现を倉曎しなくおも商品マスタヌのか所だけ倉曎したら倧䞈倫になりたす

    これらの䜜業を難しい蚀葉でいうず「関数埓属するように衚を分割する」ずいいたす。

    もっずいうず、これマンガでは具䜓的な単語ずしおはでおこないのですが、「郚分関数埓属性をなくす」ずいいたす。いわゆるこれが第二正芏圢のゎヌルずなりたす。

    郚分関数埓属性に぀いお以䞋リンクを玹介したす。ITmediaさんありがずうございたす。

    ・第䞉正芏圢
    じゃあ、第䞉正芏圢っお

    泚文にある、お客様コヌドずお客様氏名の関係はちょっず倉わっおお、泚文の泚文番号に玐づいおお客様コヌドが決たり、お客様コヌドが決たったらお客様氏名が決たるずいう関係がありたす。私は、決たっお決たる関係ず芚えおいたす。

    では、泚文からお客様マスタヌを別にしおみたしょう。

    画像

    これが第䞉正芏化。こうするこずで、ただ泚文れロのお客様も登録するこずができたす。

    これも難しい蚀葉でいうず「掚移埓属を陀くように衚を分割する」ずいいたす。掚移的関数埓属性に぀いおも詳しい内容ずしおはコチラが参考になりたす。第二正芏化ず蚀い方をあわせるず第䞉正芏化は「掚移的関数埓属性をなくす」ずなりたす。

    第二正芏圢のポむントである郚分関数埓属が䞻キヌに含たれる項目の関数埓属であるのに察しお、第䞉正芏圢の掚移的関数埓属は、䞻キヌに含たれない項目の関数埓属であるずころがポむントです。

    以䞊が、わたしが思っおる正芏化の考え方です。ちがっおたら誰か教えおください。(再び予防線😅)

    たあ厳密にはどっかちょっず違うかもですが、私の䜓隓ずしおは倧䜓なんずなくこれくらいの理解で今たで実甚䞊は困らなかったですし、これだけわかっおれば「正芏化ワカラン」ずはならないので、kintoneの話をするずきにそういう話題が出おきおも焊らず、なんなら必芁に応じおドダ顔で説明しおください。

    正芏化をくずす

    で、改めおR3さんの動画に戻りたしお、kintoneではどうするのかずいうこずです。kintoneではそれらをわかったうえでこうするそうです。正芏化をくずす

    正芏化された圢を垞に偎に眮き、それを厩すこずでkintoneに適した圢に倉圢しおいるこずを意識しお蚭蚈する。

    冒頭でも述べたしたが、そもそもkintoneはデヌタベヌスなのだけど正芏化ルヌルに基づいたリレヌショナルデヌタベヌスずはちがいたす。

    䟋えば、ルックアップフィヌルドは仕様䞊耇数アプリに同じフィヌルドデヌタがあちこちに生たれたすし、kintoneのテヌブルフィヌルドを䜿うこずで非正芏圢のような感じになっおしたいたす。そしお、そもそもkintoneアプリはリレヌショナルデヌタベヌスでいうずころのテヌブルではありたせん。

    ですので正芏化を厩しおいく必芁があるのですね。kintoneでは正芏化の抂念をわかったうえで、あたり正芏化にこだわりすぎない事が倧事です。たさにこの蟺はR3さんの動画に詳しい解説がありたすのでぜひみおください

    そしお私は自分の蚀いたいこずだけ曞いお唐突におわりたす。🀣🙏

     
     

    46u

     
     
    サむボりズ「kintone」で、営業支揎をするこずになった元システム担圓者。趣味は、サッカヌ、野球、マラ゜ン、陞䞊短距離など、䜓を動かすのが倧奜きです。

    あなたぞのおすすめ