データベースに関するお話し

こんにちは、cosmobloom の小野です。

本日は,アプリケーション開発では欠くことのできないデータベース(DB)についてお話していこうと思います.

DBは,様々なアプリケーションで利用されており,一般的なwebアプリケーションでは何かしらのDBが使われています.DBはアプリケーションが利用するデータを保管するためのシステムであり,このDBの設計がアプリケーションの品質やパフォーマンスに大きな影響を与えるためその立ち位置は非常に重要なものとなっています.

DBとひとことで言っても様々な種類が存在します.構造や目的によって多様なDBが開発されており,リレーショナルデータベース(RDBMS),NoSQL,NewSQL,時系列DBなどがあります.開発者はアプリケーションの要件に基づいて、最も適切なデータベースを選択することが求められます。例えば、高いトランザクション性を求める銀行システムにはRDBMSが、大量のログデータを効率的に取り扱いたい場合には時系列データベースやNoSQLが適しています。

このように要件ごとに適切なDBの選定するのは勿論ですが,そのDBの設計も非常に重要になります.DBはアプリケーションの根幹に当たるため,設計に問題があると,データ量が少ないうちは良くても,データ量が増えるほどパフォーマンスに影響を及ぼすことになります.ページの表示に30秒要してしまったり,スケールアウトが非常に難しくなったり,保守が困難になったりと,様々な問題が発生してしまいます.最悪の場合はデータの整合性が崩れてしまい,アプリケーションとして成り立たなくなることもあります.

このような状況に陥らないためには,要件を明確にし,保持すべきデータの正規化.インデックスの作成,整合性を担保する制約やトリガーの作成行う必要があります.特に,将来的に拡張が必要となるシステムの場合は,拡張性が高くなるように前述の作業を行う必要があります.

NEDAの場合は解析サービスなので強力なデータ整合が必要な部分は限られますが,RDBMSやNoSQLの使い分けには十分注意して設計する必要があります.どのようなDBを使うにしろ,どんなデータを保持するのか,どのような形で保持させるのかを検討・設計することで,ユーザが快適に利用できるサービスを構築できるのです.

現在cosmobloomでは,NEDAのSaaS化に取り組みつつ,柔軟構造物に関する様々なご相談を受け付けております.ご相談したい内容がございましたら,お問合せ先よりお気軽にご相談ください.

それでは来週の日曜日にまたお会いしましょう。

小野 弘幸

CEO

前の記事

風向きが悪めな8月
CTO

次の記事

解析力学の社会実装?