概要 †
データベースの分類 †
有名な問題 †
排他処理 †悲観排他 ・ロックして他Txを待機させることで、複数同時更新による処理の不整合を防ぐ。 ・設計次第では、デッドロックの恐れがある。 楽観排他 ・Tx開始からコミットまでの間に、他のTxによって更新されたリソースがないかを確認することで、処理の不整合を防ぐ。 ・競合検出された時に、リトライ処理が必要。 MySQLではトランザクション時にreadもできないが、datastoreの場合はreadもwi4rteもできるが検知はできるという感じ。なので、競合検知したらリトライ処理をしないといけない データベース各論 †SQL †
JanusGraph? グラフ式のデータベース。これを使うと数億レベルのグラフに対してクエリが投げられる。 データベース抽象化 †DAO †Javaなので本番のDBとテスト環境のDBを分ける方法 ODBC (Open DataBase? Connectivity) †利用するデータベースの以外を吸収する手法 マイクロソフトが作ったデータベースとや霊取りするための通や腕、データベースとプログラムの間に入って媒する部品 DBC接続を行う際には 1.どの種類の 2.どのデータベースに 接続するかの情報が必要です。 例えば SQLServerの「test_db」という名前のデータベースに接続する のような情報ですね。 それに対応するODBCドライバがあれば、他の一般的なデータベースへのアクセスするのと同様な方法で利用することが可能になる!だから新たなデータベースが現れたらその都度Driverを売る会社が現れるということ。例: BQ 建前上は、ODBCを利用することにより、データベースの各ベンダ固有のインターフェースを抽象化し統一的にアクセスできるようになるはずだが、単純なケースはともかく、実際にはSQLの文法が各ベンダによって方言があるように、接続以外の問題でデータベースごとの仕様(例えばロック)や特性を理解する必要がなくなるわけではない。 |