PSBoardDataBase/docs/src/index.md

4.6 KiB

データベースについて

このリポジトリは、PS BoardのQAQC結果を主に管理するデータベースを扱ってる。

Pages = ["index.md"]
Depth = 4

!!! info - 簡易結果閲覧アプリの使い方はSimple result viewerにあります。 - データベース本体の使い方に関するチュートリアルはTutorialにあります。

データベースの特徴

現時点(2024-09-13)でQAQC試験はGoogle Sheetsで作成したデータベースでデータが管理されているが、主にデータを統合して参照するときに手作業が多く必要となり、エラーが発生する問題があった。 そこでリレーショナルデータベースの形式にすることでより体系的にデータを扱えるようにしたのがこのリポジトリである。

データベースはSQLiteで実装されており1、軽量かつ様々な手段によるアクセスが可能となっている。

アクセス方法

データベースはファイルとして存在するので、そのファイルにアクセスできればよい。23 ファイルは TODO で手に入る。

データベースを読み書きするためにはライブラリが必要で、問い合わせはSQLによって行うが、ラッパーを使うこともできる。 以下に使いやすいであろうライブラリ/パッケージを列挙する。4

他にもdieselSQLAlchemyのようなORM、C/C++, tcl(いずれも公式のチュートリアルに載っている)、LuaSQLite3ODBCドライバとODBCでアクセスできるソフト(LibreOffice BaseMicrosoft Access)でもアクセスできる。

データベースの構造

db structure

四角がテーブル、その中にコラム、線でつながっているのがFOREIGN KEY制約を表している。

データベース作成SQLはsrc/sql/create_table.sqlにある。


  1. Why SQLite?: (クライアント・サーバーの形式ではなく)Cライブラリであるという点でシンプルでありながら、れっきとしたRDBMSであり、非常に多くの場所で使われている(例えばブラウザの履歴やブックマーク管理)。依存も少なく(SQLite is a Self Contained Systemにあるが、C stdlibのうち10個ほどしか使用しない)、気軽に使うことができる。 ↩︎

  2. 大抵の関係データベース(たとえばPostgres)はサーバーでホストし、TCPでアクセスする ↩︎

  3. sqlsyncによるオンラインアクセスやRESTサーバーなどによるアクセスの案もある ↩︎

  4. このようなプログラムはいくらでもある ↩︎