concrete5の最新版ver.8にはExpressという便利な機能があるというのは昨年のAdvent Calenderネタにもしましたが、なんかこの前眠れなった時になぜだからふとデータベースとかリレーションとか考え始めちゃいまして。せっかくなんで、その時思った戯言をメモ。

 

 

データベースといえば今はリレーショナル

RDB(リレーショナルデータベース)とは?なんて、わざわざ書かなくても一般的ではありますが、ちょいと昔は当たり前じゃなかったんですよ。

私がまだ20歳前後の頃(30年くらい前)は、データベースといえば、ツリー構造をしている階層型データベースやネットワーク型データベースというものが主流でした。

参考:DBMSの基礎知識(DBMSの種類)

あ、DBMSってデータベース管理システムってことね。基本DBの種類っていうと実はDBMSのことを指すことが多いです。で、当時担当してたメインフレームはIBM系でも富士通系が多かったかな。NECとかもやってる先輩はいたけど。HITACもスキルにあったし、大森によく研修にもいったよね。オレンジ色のマニュアル読むの大好きだったw富士通系だとOS IV/F4 MSP AIMとかだったわー。クリーム色の2穴フォルダーに薄っぺらい紙でね。いつもクチャってしてたマニュアルだったなw

 

SQLなんてなかった時代

当時はどうやってデータ探すの?って思うだろうけど、そこはアルゴリズムを理解してプログラミングですよ。DBじゃないテキストデータなんかは、順番に読みこんでソートしたりとか、用意された関数ないから自分でこさえるわけですよ。

私は「ぎりぎりRDBぽいADABAS」というDBも使えたので、当時会社で重宝がられたんですけど、SQLなんてない時代なんでNaturalという専用言語を使ってDB操作してたんですよね(遠い目

 

データのつながりを表現するか

データベースの醍醐味ってったら、これに尽きると思うんですよ。検索しやすい(あるいはコーディングしやすい)データ量が少なく情報の多いデータをどう作るか運用するかってデータ設計ってワクワクしませんか?←いや普通しない

で、DBのリレーション(つながり)っていうのは

  • 1対1
  • 1対多
  • 多対多

というふうな種類があるわけですが…

参考:「一対一」「一対多」「多対多」のリレーションを分かりやすく説明する

 

concrete5のExpressオブジェクト

面白い新機能なわけですが、いまいちどう使ったらいいか?ってのが悩みどころだと思うんですね。ただデータをそこに蓄積してくるだけってよりも、アソシエーションという機能を使うとグンと面白くなると思うんです。

アソシエーションというのは、Expressオブジェクトをどうやって関連づけるかという設定です。使わなきゃ使わないでもできますが、使うとワクワク度が増す(のは私だけか?)んです。

でも、どう表現したらいいんでしょうね。

なんか分かりやすいサンプルでも作って表現しないと、この面白さってわかってもらえないんだろうなって思ってて、これが理解されたら、抜群にver.8を触ってもらえるんじゃないかなって。

なんかスライドでも作った方がいいんだろなこれ。

 

と、ここまで思いついて「やべ!寝ないと!」とAM3:30に寝ました。

実は時間があいたら作るぞ勉強会するぞってずっと思ってるんですよ。でもなかなか自由が利かず。
煩悩にまみれてるので、お遍路いって頭ん中リセットしてきたいです。