From 4f88659288a471e26051fe8dbbb0a9e8d3706694 Mon Sep 17 00:00:00 2001 From: Wataru Otsubo Date: Sat, 14 Sep 2024 18:28:30 +0900 Subject: [PATCH] update: doc(add about why choose sqlite & alt for db structure) --- docs/src/index.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/docs/src/index.md b/docs/src/index.md index 99b98d4..c386faf 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -12,14 +12,16 @@ Depth = 4 現時点(2024-09-13)でQAQC試験は[Google Sheetsで作成したデータベース](https://docs.google.com/spreadsheets/d/128qOseOy4QDotehYe4Wf2jj88tnwiXGVdR3NHrjcDYU/edit)でデータが管理されているが、主にデータを統合して参照するときに手作業が多く必要となり、エラーが発生する問題があった。 そこで[リレーショナルデータベース](https://ja.wikipedia.org/wiki/関係データベース)の形式にすることでより体系的にデータを扱えるようにしたのがこのリポジトリである。 -データベースは[SQLite](https://www.sqlite.org/index.html)で実装されており、軽量かつ様々な手段によるアクセスが可能となっている。 +データベースは[SQLite](https://www.sqlite.org/index.html)で実装されており[^1]、軽量かつ様々な手段によるアクセスが可能となっている。 + +[^1]: Why SQLite?: (クライアント・サーバーの形式ではなく)Cライブラリであるという点でシンプルでありながら、れっきとしたRDBMSであり、[非常に多くの場所で使われている](https://www.sqlite.org/mostdeployed.html)(例えばブラウザの履歴やブックマーク管理)。依存も少なく([SQLite is a Self Contained System](https://www.sqlite.org/selfcontained.html)にあるが、C stdlibのうち10個ほどしか使用しない)、気軽に使うことができる。 ## アクセス方法 -データベースはファイルとして存在するので、そのファイルにアクセスできればよい。[^1][^2] +データベースはファイルとして存在するので、そのファイルにアクセスできればよい。[^2][^3] ファイルは _TODO_ で手に入る。 データベースを読み書きするためにはライブラリが必要で、問い合わせは[SQL](https://ja.wikipedia.org/wiki/SQL)によって行うが、ラッパーを使うこともできる。 -以下に使いやすいであろうライブラリ/パッケージを列挙する。[^3] +以下に使いやすいであろうライブラリ/パッケージを列挙する。[^4] - [sqlite3(コマンドラインプログラム)](https://www.sqlite.org/cli.html): 公式の提供するCLI。どこでも動く。CSVでのエクスポートもできる。 - [DB Browser for SQLite](https://sqlitebrowser.org): クロスプラットフォームなデスクトップアプリケーション。最も簡単。 @@ -31,12 +33,12 @@ Depth = 4 他にも[diesel](https://diesel.rs)や[SQLAlchemy](https://www.sqlalchemy.org)のようなORM、C/C++, tcl(いずれも[公式のチュートリアル](https://sqlite.org/quickstart.html)に載っている)、[LuaSQLite3](http://lua.sqlite.org/index.cgi/index)、[ODBCドライバ](http://www.ch-werner.de/sqliteodbc/)とODBCでアクセスできるソフト([LibreOffice Base](https://www.libreoffice.org/DISCOVER/BASE/)や[Microsoft Access](https://support.microsoft.com/ja-jp/topic/odbc-データ-ソースを管理する-b19f856b-5b9b-48c9-8b93-07484bfab5a7))でもアクセスできる。 -[^1]: 大抵の関係データベース(たとえばPostgres)はサーバーでホストし、TCPでアクセスする -[^2]: [sqlsync](https://github.com/orbitinghail/sqlsync)によるオンラインアクセスやRESTサーバーなどによるアクセスの案もある -[^3]: このようなプログラムはいくらでもある +[^2]: 大抵の関係データベース(たとえばPostgres)はサーバーでホストし、TCPでアクセスする +[^3]: [sqlsync](https://github.com/orbitinghail/sqlsync)によるオンラインアクセスやRESTサーバーなどによるアクセスの案もある +[^4]: このようなプログラムはいくらでもある ## データベースの構造 -![](./assets/sqlite-db.svg) +![db structure](./assets/sqlite-db.svg) 四角がテーブル、その中にコラム、線でつながっているのが*FOREIGN KEY*制約を表している。