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
- sqlite3(コマンドラインプログラム): 公式の提供するCLI。どこでも動く。CSVでのエクスポートもできる。
- DB Browser for SQLite: クロスプラットフォームなデスクトップアプリケーション。最も簡単。
- Python sqlite3: Pythonの標準ライブラリ。すなわち(C)Pythonが入ってるならたいてい入っている。
- SQLite Viewer Web App, beta版: ブラウザで動く。最も手軽。
- SQLite.jl: Juliaのパッケージ。Tables.jl準拠なため、DataFrameやCSVに/から変換できる。 この実装で用いられている。
- SQLite Studio: デスクトップアプリケーション。
- ROOT TSQLFile Class: ROOTのTFile派生クラス。チュートリアル
他にもdieselやSQLAlchemyのようなORM、C/C++, tcl(いずれも公式のチュートリアルに載っている)、LuaSQLite3、ODBCドライバとODBCでアクセスできるソフト(LibreOffice BaseやMicrosoft Access)でもアクセスできる。
データベースの構造
四角がテーブル、その中にコラム、線でつながっているのがFOREIGN KEY制約を表している。
データベース作成SQLはsrc/sql/create_table.sql
にある。
-
Why SQLite?: (クライアント・サーバーの形式ではなく)Cライブラリであるという点でシンプルでありながら、れっきとしたRDBMSであり、非常に多くの場所で使われている(例えばブラウザの履歴やブックマーク管理)。依存も少なく(SQLite is a Self Contained Systemにあるが、C stdlibのうち10個ほどしか使用しない)、気軽に使うことができる。 ↩︎
-
大抵の関係データベース(たとえばPostgres)はサーバーでホストし、TCPでアクセスする ↩︎
-
このようなプログラムはいくらでもある ↩︎