(同テーマ&時系列の次記事)Dropbox連携テクノロジー

データベース・テクノロジー

2016-09-20
トピック: 起業2016



■マツエソフト・データベース・クラウドとは

狭義ではデータベースのO/Rマッピングに類したものです。
広義ではデータベースの設計/管理および実行環境です。

昔ながらの開発手法ではデータベースにアクセスする命令文(SQL等)を設計し、手で入力し、その結果をプログラムでひとつひとつ取り込みます。
当方クラウドを使用しますと、設計は旧来と同様に行う必要がございますが、データベースとのやりとりのうち95%以上(当社比)はクラウド上から設定するだけで実行できるようになります。
これにより、従来の開発手法では必須であった開発や運用にまつわる細かな雑処理のかなりの部分をクラウドに任せることができ、高速開発・低作業負荷運用が可能になります。

ウェブ・アプリケーションを使用する際は、Web上で動作するウェブ・アプリケーションがデータベースにアクセスする際の処理を管理・実行します。
ウィンドウズ・アプリケーションあるいはAndroidアプリケーションを使用する際はアプリケーションがWebサーバ経由でデータベースにアクセスする際の処理を管理・実行します。

■従来の開発との対比

データベースを使用した基本的な開発手順は以下になります。

データベースを作成し、構造(テーブル)を定義する
アクセス(読み書き)を定義し、SQL文を作成する   → 弊社クラウドで省力化
プログラムから3番で作成したSQL文を使ってデータを読み書きする。   → 弊社クラウドで省力化
必要に応じてデータをプログラムで処理
画面に表示する

弊社のクラウドを使うことにより2番と3番の手順を省力化します。
1番のステップは業務分析に基づいてエンジニアが行います。 その後、マツエソフト・データベース・クラウド上に要求に応じた定義をすることでデータベースへのアクセス(読み書き)ができるようになります。
従来は手で作成していた部分をクラウドに置き換えることにより、時間短縮および品質の向上が同時に実現できます。

■事例

弊社サービスのほぼ全てで使用しております。



Tips
■データベース・トランザクション分離レベル
データベースのトランザクションの分離レベルにはいくつかありますが、データベースの教科書に乗っている理論は理想的なトランザクションを前提にしています。実際のところ世の中に出回っているデータベースの多くはその理想的なトランザクションを実装していなかったりパフォーマンスが低かったりしますのでアプリケーションの要件に応じて理想ではない分離レベルが選択されることがほとんどです。

理想的なトランザクションとはいわゆるSERIALIZABLE ( 直列化可能 )というもので、複数トランザクションが実行されている時にお互いに完全に独立な動作をします。

一般的に多く利用されているトランザクションはREAD COMMITTED ( 確定した最新データを常に読み取る )です。

データベースの経験が浅い技術者はこの差を意識せずにデータベースを設計しますが、実際のところ、どちらのトランザクション分離レベルを選ぶかによってデータベースのテーブル設計が異なる時があります。 よくある失敗としては、教科書通りにSERIALIZABLE ( 直列化可能 )の理屈でデータベース設計をして、実際のデータベースはREAD COMMITTED ( 確定した最新データを常に読み取る )で動いていた、あるいは、READ COMMITTED ( 確定した最新データを常に読み取る )しかサポートしていないデータベースを使っていた、という失敗が挙げられます。

実際のところ、プログラムの処理もどちらを選ぶかによって異なってきます。

SERIALIZABLE ( 直列化可能 )を選んだ場合、トランザクション間で同一データに対して更新を行うと失敗するように設定することが多く、その処理を実装する必要があります。READ COMMITTED ( 確定した最新データを常に読み取る )の場合は更新自体は一見成功したかのように見えることがありますのでアプリケーションの作りあるいはアプリケーションの仕様でそういう挙動である旨を明示しておかなければユーザに誤解を与えます。又、READ COMMITTED ( 確定した最新データを常に読み取る )の場合は設計によってはデータが一貫して取得できない可能性がありますので、必ず一貫したデータを表示すべき場合には考慮してデータベース設計をする必要があります。

このように、旧来のデータベースには考慮すべき点があるのですが、最近はNoSQLが流行っていることもあり、こういった違いが意識されることが少なくなったように思えます。それ故に、アプリケーションで不思議な動作が生じたりもするのですが、最近は、基本的なことがわかっていなくてなんとなくアプリケーションを作れてしまう場合もありますので、やはり基本を押さえた設計及び実装が大切だと思われる次第です。


Matsuesoft Homepage
Dego DB



(同テーマ&時系列の次記事)Dropbox連携テクノロジー
トピック: 起業2016