見出し画像

データベースとしてのkintoneを考える

アールスリーインスティテュートさんの発信する情報はどれも質が高く示唆に富んでて勉強になるのですが、Excelやデータベースとkintoneを比較するテーマについてオススメの動画を紹介します。R3さんありがとうございます。

私が本動画をはじめて拝見したのは2020年。ちょうど本テーマで悩んでてググった結果たどり着いた動画で、当時の私の中で最高レベルにヒットした動画です。あれから約2年たちましたが内容は今でも全く色あせないですね。

Excelとkintone

kintoneの比較対象としてよく取り上げられるのはExcelです。実際サイボウズさんのCMでも、表計算ソフトの比較っぽくkintoneを宣伝されています。

もちろんExcelとkintoneは利用用途が違うわけで、逆にまったく一緒であればユーザーはExcelから乗り換える必要はなく、そもそもkintoneはExcelの互換ソフトやExcelの高機能版を目指したサービスでもないわけですが、わずか数十秒のTVCMでそれを伝えるのは難しく、そうなるとやはりこういう路線になるのかなと思います。

普及率や認知度からいえば、圧倒的にExcelでしょう。私ももちろんExcelは使いますし大好きです。個人で使うことを前提として個人のパソコンにローカルインストールしているソフトウェアの使いやすさや自由度は操作感としては抜群です。そして情報量も豊富。まあ正直なんでもできちゃうといえます。

ただそれゆえに本来Excelには向いてはいない作業もExcelでやっちゃってるケースは多く、それは本来kintoneやOracleなどRDBMSにするべきという事なのだと。

具体的にExcelでするよりkintoneやRDBMSでする方が良い理由は私が説明するより動画にわかりやすく説明してありますので譲りますが、結局

Excelは表計算ソフトであってデータベースではない

に集約されるかと思います。

良い例えが浮かびませんが、例えばカレー屋さんにラーメン作ってといっても技術的には作れますし、それなりに美味しかったりすると思いますが、やっぱりラーメン専門店にはラーメン専門店のよさがあるのだと。

CMの切り口についてはExcelのコアユーザーやファンからしたらExcelがマイナスの印象になってる点はちょっと引っ掛かるかもしれませんが、そこは圧倒的な普及率や認知度を誇る横綱ソフトという事でご理解いただければと。というか私がお願いすることでもないですが。

ただ私を含めユーザーの立場としては、どちらか一方に決める必要もなく、Excelもkintoneもそれ以外も便利なものはなんでも使っていいんです。言い方はちょっとアレですが、まあ客の立場なんで気分や好みによってカレーもラーメンも食べていいしそれ以外のものも食べていい。自由です。

データベースとしてのkintone

さてこちら。特にシステム経験者やデータベース経験者が陥りやすいパターンとしてあるあるです。実際私がそうでした。

kintoneのアプリをRDBMSでいうところのテーブル(kintoneアプリのテーブルフィールドではありません)として考えてしまう事。具体的には「正規化」という手法にこだわりすぎてしまいます。関連するアプリのフィールド(商品名や会社名など)など同じ値がいろんなアプリにあったりするとデータベースとしてとらえると不整合の元となるので避けたくなるのですね。

これについてもkintoneとRDBMSの違いについて私が説明するより動画にわかりやすく説明してありますので詳細は譲ります。^^;

トランザクションとマイクロサービス

RDBMSとの比較であと2点、動画内にあるトランザクションとマイクロサービスについて書きます。

kintoneにはトランザクションの概念がない

kintoneにも1アプリ内1レコードでの排他制御はあります。kintoneではAさんとBさんが同じレコードを同時に編集画面にしてた場合、Aさんが更新したあとBさんが更新しようとするとBさんの更新のタイミングでエラー(GAIA_UN03)になります。これは、「まあ言うても同じレコードを2人で同時に更新することはめったにないよね」という考えに基づいた仕様で「楽観的排他制御」といいます。ココRDBMSでは、そもそも同時に編集できなかったりすることが可能で「悲観的排他制御」と言ったりもします。

これが複数アプリの連携になると「楽観的排他制御」もkintoneの仕様にはありません。標準機能以外なのでまあそりゃそうなんですけど。もちろん複数アプリ更新の処理をひとつにまとめて考える、いわゆるトランザクションの概念はありません。

krewDataというプラグインがありまして私も利用していますが、これスゴクてkintoneの標準機能を超えて複数アプリを連携した更新処理を可能にしています。

ただkintoneの仕様の壁は原則超えることができないので、大規模な更新時には他kintone利用者からレコード更新が行われない時間帯に実行するとか、トランザクション処理がないという事は、ロールバックもなかなか難しいので、更新に失敗しても何度でも再処理可能なしくみにするなどの運用を意識する、動画でいう「慎重に考える」ことが必要になってきます。

そもそもkintoneのアプリはアプリであって、RDBMSのいうところのテーブルではありません。これを本動画では、

kintoneのひとつひとつのアプリがマイクロサービスと考える

と説明しています。腑に落ちました。

0-00 kintoneはkintone

「kintone SIGNPOST(キントーンサインポスト)」というのをご紹介します。

「kintone SIGNPOST(キントーンサインポスト)」は「kintoneで継続的な業務改善をするための道しるべ」として、kintone経験者の考え方やコツを体系的・網羅的にまとめたコンテンツです。

今回は以下に該当するのかなと思っています。

kintone SIGNPOSTは、kintoneで継続的な業務改善をするための道しるべとして先人の方々がkintone運用のエッセンスをまとめてくれていますので、参考にしてください。

さいごに

私はkintoneは大好きですが、kintoneのイケてない所の話を聞くのも勉強になるので大好きです。そしてkintone大好き同士が、結構kintoneのイケてない所を発信している文化が大好きです。

kintoneに限らず、サービスの比較をする際にはネットに色々な情報があふれており大変参考になるのですが、中にはサービスの理解が浅かったり(それが悪いわけではありません)、特定の推しツールがある前提の比較で偏ってたり、そもそも純粋な機能の話ではない場合(例えば提供する企業さんの評判やブランドイメージなど)であったりもします。それらの情報をどう解釈してどう利用するかは個人の自由ですが情報の精査は自己判断する必要がありますね。

また今回は、「データベースとしてのkintone」としてのnote記事ですが、本来kintoneは、グループウェア的なコミュニケーションツールの要素もあり、「プロセス管理」というワークフロー的な要素もあり、それぞれの機能を単体で切り出して、サービス自体の良し悪しは語れないと思っています。

「データベース」「コミュニケーション」「ワークフロー」3つ揃ってkintoneなので。

この記事が気に入ったらサポートをしてみませんか?