自分の知識を full に使って一番簡単な DataBase って何かなを考える。

そう言えば、MySQLPostgreSQLSQLiteSybase などを使うだけで、全く実装の中身を考えた事が無かった。
それでは、駄目だと思えて来たので、なので考える事にする。
もしかしたら、そんな事から(人の目に触れ大化け事に期待しています。)新しい DataBase の考え方が生まれるかもしれない。
SQL の時代が長いのでは無いかな〜。


う〜んっと、一番簡単な DataBase を考えに至ったと言うと、実際は実用に耐えうる早い DataBase を考えたかったけど、
多分、実装の中身を想像もした事が無いあまちゃんの私には無理だと思ったから、一番簡単つまり simple is best. にした。
その方が、考えやすそうに思えたから。
それで、簡単だと早く動作すると思ったから。


でも最小限の DataBase と言うものの定義(まぁ結局 table なんだけど。)

  • I:data が入れられる。1つ(SQL の INSERT)
  • U:入っている data が変更出来る。(SQL の UPDATE)
  • D:入ってる data を消す。(SQL の DELETE) TRUNCATE は違うな。
  • S:data を取ってくる。(SQL の SELECT)

こんなもんかな〜〜。
実に、あやふやだけど、
どんな data かは、定義していないのが、特徴。


mimic28号 の考え
data は CPU の bit 列分(つまり register[レジスタ]って事か)。(これでも、あやふやだな。)


I:register[レジスタ] に入れたい data を入れる。
Static Random Access Memory に その register[レジスタ] の内容を store[ストア] する。


U:register[レジスタ] に変更する内容 data を入れる。
Static Random Access Memory に その register[レジスタ] の内容を store[ストア] する。 


D:register[レジスタ] に NULL(register[レジスタ] に NULL と言う概念があったかどうか忘れたけど多分無いな。)を入れる。
Static Random Access Memory に その register[レジスタ] の内容を store[ストア] する。 


S:Static Random Access Memory の内容を load する。


bit が一つ の data と考えると、bit mask する事で消したり書き込んだり早いか何て考えたけど、書いている内に、意味が無い書き込み内容 ww だと思えてきた。
後 file に accsess[アクセス]するわけではないのでとても早いはず。
Static Random Access Memory(SRAM)を使っているので早い。


低水準の所すぎたかな。
自分の知識の無さを露呈した感じだ。(結構忘れているし。CPU や Memory の操作をする 振る舞いを知って無いとやっぱ無理か)
もう少し、上の所の事を考えたかった。
完全に間違えた。
多重に書き込み事が出来ない DataBase だなこれ ww 今頃気が付いた。
lock の考え方が必要だ。


bit の data しか扱えない DataBase って意味ね〜のは分かってたけど、書いてみて気が付く事もあると思うので書いて良かった。
書きたかった内容がちゃんと書く事が出来なかった。
DataBase って本当にどうやって data 管理しているんだ?
う〜〜ん。
実装を考えるのに architecture しか考えていない様な。
server[サーバ] ですよね。
待ち構えていて、それに対して、処理を行って行くんだろうけど。
それ以外(server[サーバ] では無いちゅう事)の DataBase もありえるのか?
分からん、分から無い事ばっかりだ!!!!!!!!!!!!!!!!


本当に専門家の方が面白がって、真剣に考えて下さると面白いですけど、
所謂 alpha blogger[アルファブロガー] では無いから多分中々難しいな。


mimic28号でした。