2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

データベースを作ってみたいです

1 :NAME IS NULL:2009/11/05(木) 14:04:37 ID:/IXGaMOJ.net
MySQLやSQLiteのようなRDBMSを作ってみたいです。
参考になる書籍(教科書?)やWebサイトがあれば教えてくれませんか

2 :NAME IS NULL:2009/11/05(木) 19:38:59 ID:???.net
ビチッ…ビチチッ!ジュルジュル…ジュ…ビチチッ!

3 :NAME IS NULL:2009/11/06(金) 11:10:16 ID:1IUAmQkD.net
その程度のことを自分で探せないやつに作れないだろ。


4 :NAME IS NULL:2009/11/06(金) 17:47:18 ID:???.net
ごめんよ…母ちゃん

5 :NAME IS NULL:2009/11/10(火) 18:41:11 ID:???.net
いきなり高度なことをやろうとするとその設計をどうしたらいいか
分からず、途方にくれて終わるものだ。
まずはCSVファイルの操作を行うモジュール群を作ってみてはどうだ?
指定した行でソートするとか、指定した文字を含んだ行だけ取り出すとかが
出来るやつ。
いきなりSQL文の解析機能の実装をやろうなどという考えなどは捨てた方が良い。

CSVファイルに登録するデータも決めた物しかできないところからはじめる。
例) No, 名前, フリガナ, 性別, 郵便番号, 住所

6 :NAME IS NULL:2009/11/12(木) 01:31:07 ID:AL9WaU7d.net
sqlの解析自体は難しくない
字句解析とか構文解析でぐぐろう

実装は部分からでいい


monaのdb版の誕生に期待

7 :NAME IS NULL:2009/11/12(木) 07:15:17 ID:???.net
言語は何を使うつもりやろか

8 :NAME IS NULL:2009/11/12(木) 08:34:12 ID:???.net
>>5

>いきなり高度なことをやろうとするとその設計をどうしたらいいか
>分からず、途方にくれて終わるものだ。
そのとおりだと思います。有難う御座います。
CSVの操作ぐらいならできそうなのでISAMの実装なんかから始めたいなと思ってます。

9 :NAME IS NULL:2009/11/12(木) 08:38:16 ID:???.net
>>6
SQLの部分ではなくデータ構造(?)のほうに興味があります
ISAM形式というのが基本っぽいのですがあってますでしょうか

10 :NAME IS NULL:2009/11/12(木) 08:39:51 ID:???.net
>>7
実用では考えていないので、LL系でいいかなと思っています。

11 :NAME IS NULL:2009/11/13(金) 13:31:41 ID:???.net
SQLiteのソースを読むのもいいかも

12 :NAME IS NULL:2009/11/13(金) 21:50:45 ID:???.net
>>1にとっては、そのソースを読むのは、急に高い崖を登るのに
近い行為となるだろう。(無理だと決め付けているという意味ではなくて)
まずは、データの保存や抽出をする部分をクラスにまとめて
使いやすくしたモジュールを提供するという考えで設計する
ところからやってみてはいかがだろうか。

13 :NAME IS NULL:2009/11/13(金) 21:55:22 ID:???.net
俺は「SQL文を解析して実行」という事にこだわる必要も無いと
思うけどな。そうしたらSQLインジェクションに対抗できる
仕様設計だと考える事も出来るわけで。

14 :NAME IS NULL:2009/11/13(金) 22:21:36 ID:???.net
>>1が何を考えてこのスレを立てたのかにもよると思うな。
RDBMSとか書いているけれど、テーブルを個別に管理できればそれで良いという考えなのか、
それともリレーションのところまでやるのか。
トランザクションやら、ストアド・プロシージャなどのイメージもあるのか。

ま、俺の場合は、個人で作るものであれば、リレーションは切り捨てるだろうな。
普段作るDBを使ったプログラムは、リレーションはクライアントのプログラムの方で
実現する事が多いから。だから、参照整合性とかの機能の実装にはあまり興味が無い。

15 :NAME IS NULL:2009/11/13(金) 22:24:39 ID:???.net
VB.NET とかの世界だと、すでに mdbファイル & ADO.NET があるからなぁ。
PHP の世界だと、DBの構築をせずにデータの管理をしたい場合などで
一部使ってもらえるかもしれない。

16 :NAME IS NULL:2009/11/14(土) 20:31:55 ID:???.net
>>1がイメージしているRDBMSってどんなものなんだろうな。
mdbみたいにファイルとして存在しているものにアクセスするだけで
いいのか。それとも、SQL Server みたいに、アプリとは別にソフトが
立ち上がっていて、それがデータの制御を行う形なのか。
また、ネットワークを通じて複数のアクセスがあるのにも対応できる
かどうかとかあるしね。
ISAMの実装に興味があるような事をいってたけど、そういう部分への
対応はどこまでイメージしているのかな?

17 :NAME IS NULL:2009/11/14(土) 20:36:31 ID:???.net
こんな感じで管理すると複数のDBを持つのにも対応出来そうだね。
DB名:ディレクトリ名
テーブル名:CSVファイル名

例:DBが「test1」で、その中にテーブル「t1」「t2」「t3」がある場合

/monadb/test1/t1.csv
/monadb/test1/t2.csv
/monadb/test1/t3.csv

18 :NAME IS NULL:2009/11/14(土) 20:44:55 ID:???.net
>>1は余り興味ないようだけど、独特な設計をしたSQL文という発想もいいかもしれないね。
MonaOSの設計思想はそういうところがあるからね。
多くのユーザに使ってもらえるかを優先的に考え、過去のしがらみにとらわれた物の
延長として考えるのではなく、本当に使いやすいものを、と考える。

19 :NAME IS NULL:2009/11/14(土) 20:54:33 ID:???.net
処理効率が良いが、別に最適化が必要。
処理効率は悪いが、最適化は不要。

こういうのはどうなんだろ。

20 :NAME IS NULL:2009/11/15(日) 10:47:25 ID:???.net
とにかく処理効率の速さにこだわったものという方向性は
辞めておいた方がいいのかな。その先にGoogleが居るからw
「処理効率は、ある程度良い」くらいw

21 :NAME IS NULL:2009/11/15(日) 22:57:15 ID:???.net
他の人にアドバイスを貰うなら、

>CSVの操作ぐらいならできそうなのでISAMの実装なんかから始めたいなと思ってます。

ではなく、もう少し具体的なイメージを説明できた方がいい。
試しに自分が利用するシーンを想像して、
 「こんな感じで検索を指示して、結果を配列に入れる」
 「こんな感じで更新するデータと条件を準備して指示する」
なんてのが明確に出来た方がいい。

擬似的な利用例のスクリプトがあったりするといいかも。

##script(perl)

 use MYDB;
my $db = MYDB->new('mydb/mydbsample.csv');
my @rows;
@rows = $db->select( 'num, key, val', "key='V1.0' and val<'100'" );
$db->close();

##mydb/mydbsample.csv

num,key,val
1,V1.0,150
2,V1.0,50
3,V1.1,120
4.V1.0,15
5,V1.1,20

なんて感じの。上はselectメソッドで key=V1.0 and val<100 な行を返してもらうことを想定。

>>1の考えていることを明確にしないと、助言・指摘をしたい/出来る人たちは説明に困っちゃうと思う。


22 :NAME IS NULL:2009/11/16(月) 00:05:23 ID:k/MYCyNn.net
>>1
エンジンとしてもっとも優れているのは BerkeleyDB でしょうね。
ただしテーブルもSQLもサポートしていません。
もちろんインデックスもです。
しかしリレーショナルデータベースを作るための要素は盛り込まれており
フリーで全ソース公開されています。

このソースを使ってエンジンの勉強をするか、
パーツを利用して独自のシステムを組み上げるとよいのではないでしょうか。



23 :NAME IS NULL:2009/11/17(火) 08:58:35 ID:???.net
実用は考えていないらしいからなあ
カラクリを確認するのが目的なんだろうなあ
他の人はMonaDBを期待してるのかな?

24 :NAME IS NULL:2009/11/18(水) 08:58:51 ID:???.net
>>22
そういるルールだからです。
「ぬーやる」バーガーはしってますか?

25 :NAME IS NULL:2009/11/18(水) 09:10:00 ID:???.net
カラクリは、内部的にはExcelシートの操作でしょ。
で、そのExcelシートはCSVの拡張版。

もっと深いレベルでのノウハウの確認がしたいのかな?

26 :NAME IS NULL:2009/11/19(木) 05:16:54 ID:???.net
↓こういうことではないかと

ttp://d.hatena.ne.jp/koherent/

27 :NAME IS NULL:2009/11/19(木) 07:52:57 ID:???.net
>>1の文面やこのスレの流れを見る限り、それは高度すぎる事だと思うw

28 :NAME IS NULL:2009/11/19(木) 08:14:24 ID:???.net
そうか?
ググってたら見つけたんだけど、
このブログ、面白そうなので、オレはしばらく追いかけることにするw

29 :NAME IS NULL:2009/11/19(木) 13:25:36 ID:???.net
>>1は、ググっても見つけれない、もしくは、ググれないんだから仕方が無いw

30 :NAME IS NULL:2009/11/19(木) 21:21:56 ID:???.net
monaのDB版は高度じゃないといけないのだろうか?w
ム板でしぃ言語を作ろうなんて企画があがって、しばらくしたら
過疎って無くなってしまったなんて事があったけどなw
ま、俺は>>1じゃないけれど、主催者側のはっきりとした目的と、
それに共同して意見を行ってくれる方が居るかどうかが
重要なのかな、と思ってる。

31 :NAME IS NULL:2009/11/21(土) 16:17:13 ID:???.net
このスレは、現時点ですでに3種類の考え方があるように思える。
1.エンジンの仕組みについて勉強しよう派
2.CSV等を使って大まかな概念をつかみさえすれば良いだろ派
3.方向性はわからないけれど、とにかくMonaが出来るのに期待派

当面は統一が上手くできずにずるずる続くんだろうなw

32 :NAME IS NULL:2009/11/23(月) 07:26:19 ID:???.net
3はキモいし寒い
何かが出来たら出来たで「これ2ch発なんだぜ」と自慢するんだろうよ、自分の手柄でも無いのに

33 :NAME IS NULL:2009/11/23(月) 09:28:26 ID:???.net
そういう自慢をする奴は、普段の言動を見ていると、いたいやつだとすぐに
分かるから別にいいのでは?w
winnyだって、2chで共同開発したわけじゃないし

ま、スレが生産性の無い書き込みばかりで埋まっていくのはうざいけどな。

34 :NAME IS NULL:2009/11/24(火) 22:41:41 ID:???.net
で、結局この後、>>1は生産性のある書き込みをせずにこのスレは終息していくのだろうな。

35 :NAME IS NULL:2009/11/26(木) 07:25:21 ID:???.net
>>1は消えたようだな。1ヶ月ももたなかったかw

36 :NAME IS NULL:2010/02/10(水) 17:17:06 ID:???.net
せっかく新しいデータベースエンジンを作ろうというのに
最初からSQL前提の書き込みしかないね。

やっぱ今からやるなら問い合わせも独自言語でしょう。

37 :NAME IS NULL:2010/03/06(土) 08:18:15 ID:???.net
メソッド?w

38 :NAME IS NULL:2010/06/06(日) 14:06:53 ID:???.net
>>36
はやりのNoSQLですか?w


39 :NAME IS NULL:2010/06/09(水) 18:50:19 ID:???.net
データベースの構造が
CSV のSQL対応高度版なんて
おバカな夢想もいいとろこで
お前ら、アフォかましてないで文献読めよ。

CSVの高度版っぽく見えるのは、ただ単に
理解しやすいようにインターフェースが
そうなってるだけだ。

40 :NAME IS NULL:2010/09/11(土) 12:57:33 ID:???.net
>>39
かなり遅レスだが、そういうアフォかましている課程を
具体的にやってみて、アフォらしさを学ぶという
目的もあるのでは、といってみるテスト

41 :NAME IS NULL:2010/11/27(土) 12:30:58 ID:???.net
>>39
亀レスだけど、文献は何がいいのでしょうか?
書籍?ブログ?

42 :NAME IS NULL:2010/11/29(月) 13:36:24 ID:???.net
トランザクション処理 概念と技法

43 :NAME IS NULL:2010/11/30(火) 11:14:50 ID:???.net
>>42
紹介ありがとう。
トランザクションの解説だけで1400ページを超えるとかすごいなw
上下巻あわせると広辞苑超えるとかどんだけwww

44 :NAME IS NULL:2010/11/30(火) 11:20:49 ID:???.net
トランザクション処理の解説で知った,「知ってるつもりの怖さ」
http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20040630/146609/

書籍のページ
http://ec.nikkeibp.co.jp/item/books/P81020.html
http://ec.nikkeibp.co.jp/item/books/P81030.html

45 :NAME IS NULL:2010/11/30(火) 13:50:49 ID:???.net
ちょっとウェブで調べてみたが、理論と実装は別々に考えて学ぶべきみたいだ。
しかし、理解の方はいまいちだ。うまく概要をつかむ方法は無いものか。。。

Perlでファイルの上書きする時、「元のファイルをコピーして、それを
リネームで上書きする」という処理方法をとる事があるけれど、
そういう原理で実装しているという理解じゃだめなのかな?

トランザクション処理
http://ja.wikipedia.org/wiki/%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E5%87%A6%E7%90%86

46 :NAME IS NULL:2010/12/02(木) 00:31:57 ID:???.net
accessでのフォームやレポートにあたる部分はpostgreSQLやMYSQLでは
どのようにして作成するのですか?

47 :NAME IS NULL:2010/12/02(木) 14:33:34 ID:???.net
>>46
VB.NETとかC++とかjavaとか、Accessを使って作成します。
Accessはデータベースの入門として使ってもいいけれど、
使いやすさを出す為、データベースの概念とは少しずれた
作りになってる。そこを理解した方がいいよ。

48 :NAME IS NULL:2010/12/02(木) 21:51:36 ID:???.net
>>47
ありがとうございます。勉強してみます。

49 :NAME IS NULL:2010/12/03(金) 22:15:52 ID:???.net
>>47
kwsk

50 :NAME IS NULL:2010/12/04(土) 15:36:49 ID:???.net
>>49
1件のレスで説明できる範囲でいうので、かなり大雑把に言うが、
一般的にいうデータベースエンジンは、Accessのmdbファイルにテーブルだけ
しかないような状態をいう。
そのmdbに、VBだとかのプログラムがデータベースエンジンが持っている
テーブルにデータアクセスしていく構造だ。
だから、postgreSQLやMYSQLには、フォームやレポートにあたるものが存在しないのだ。
VBとかで、別で作るのが当たり前だという前提で作られているから。

また、データベースエンジンは、Accessみたいにファイルで一つ存在している
ものではなく、アプリとして立ち上がっているものだ。(常駐プログラムのようなイメージ)
外部から、SQL文によるアクセスを受けて、テーブルのデータを返す
という処理を行うもの。
このテーブルのデータの管理方法やチューニングの仕様が、
データベースエンジンの種類によって異なる。

あと、トリガとかストアドプロシージャとかはとりあえず省略して学んだ方がいいと思う。

51 :NAME IS NULL:2010/12/06(月) 00:11:44 ID:cBEGLzTc.net
このスレに投稿していい質問かどうか迷うが
キー・バリュー型DBってどうなん?これから主流になっていきそうかい?

52 :NAME IS NULL:2010/12/06(月) 14:21:31 ID:???.net
>>51
こんな記事を読んだりしながら、予測的な議論をしたいということなのかな?
http://www.atmarkit.co.jp/fjava/rensai4/bigtable01/01.html

俺はこのスレで話をするのは別にいいと思っている。(別にスレを立てても
いいとも思うが、DB板は基本的に人が少ないぞ)
これから主流になりそうかどうかは、その技術の特徴・特性を押さえ、
システムの目的や規模を限定していった方がいいと思う。
こういう場合に強い、こういう場合には向かないとか。
前提を漠然としたまま話をしていってると、極論のぶつかり合いになってしまうから。

別の話で例えると、「クラウド」では、こういう記事を出すなどして、ここで紹介されている
利点にそぐわない場合のシステム構成はどんな場合かなどを整理いくとかからはじめるわけだ。
http://www.atmarkit.co.jp/fjava/column/andoh/andoh50.html
任天堂は、クラウド利用は「部分的であって、全面的にはならないだろう」と
いってるからな。新しい技術というものは、必ずこんな感じに
住み分けになっていくものだろ。

53 : 【20.9m】 電脳プリオン:2012/05/26(土) 14:45:06.90 ID:???.net ?PLT(12079)
>>1はもう作れたのか?

54 :NAME IS NULL:2014/05/29(木) 23:50:11.21 ID:1PF1YmTF.net
KVS作るわ。

55 :NAME IS NULL:2014/06/01(日) 18:03:04.37 ID:otWRvot4.net
稲城市立向陽台小学校評判
http://tn.en.fishki.net/26/upload/en/201406/01/1273947/je0gn282.jpg
稲城市立向陽台小学校評判

56 :NAME IS NULL:2014/06/02(月) 12:36:18.85 ID:???.net
相模原メディカルサイト歯科日吉サンテラス歯科藤沢なのはな内科スマイル歯科アイ整形外科亀有 リリオ歯科アクロスみなみの歯科足立ハート歯科新宿くろさか歯科熊本ファミリー歯科伊勢原桜台歯科森林公園滑川モール歯科横浜いちょう歯科小田原めぐみ歯科ホワイトスタイル

57 :NAME IS NULL:2014/07/03(木) 18:06:05.90 ID:???.net
データベースシステムの勉強の一環でSQL92のリファレンスを見ながら実装始めたけど
実装依存な部分や説明不足な部分が目立って面倒くさいな
とりあえずEntryレベルの実装を進めてるけど完成するのいつになるやら

58 :NAME IS NULL:2014/07/07(月) 02:55:56.79 ID:NhLboLkY.net
威勢はいいのに実際に開発できた奴は皆無ですな

59 :NAME IS NULL:2014/07/08(火) 11:06:47.00 ID:???.net
今あるオープンソースのいくつかはこうやってできたんでねーの?

60 :NAME IS NULL:2014/07/08(火) 12:54:25.82 ID:???.net
開発は進めてるけどオープンソースにするつもりは無いな
金にならんし

61 :NAME IS NULL:2014/07/12(土) 19:51:54.81 ID:K4Znljv6.net
それ自体はお金ならないかもしれないけど技術力を買ってそれなりの待遇で雇ってくれる企業はあるはず

62 :NAME IS NULL:2014/07/15(火) 08:51:03.80 ID:nO79XJ+t.net
◎2ch勢いランキングサイトリスト◎

★ +ニュース
・ 2NN
・ 2chTimes
★ +ニュース新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★ +ニュース他
・ Desktop2ch
・ 記者別一覧
★ 全板
・ 全板縦断勢いランキング
・ スレッドランキング総合ランキング
・ ログ速
★ 実況込
・ 2勢
・ READ2CH
・ i-ikioi

※ 要タイトル名検索

63 :NAME IS NULL:2015/06/01(月) 23:53:33.44 ID:eL8MXkT9.net
まだ自分でデータベース作ってる奴いんの?
期待して待ってるんだが

64 :NAME IS NULL:2015/06/02(火) 09:57:53.03 ID:???.net
あれからいくつも増えただろう

65 :NAME IS NULL:2015/06/10(水) 23:07:05.31 ID:EdhKnaVz.net
sqliteあたりのソースコード呼んでパクってけ

66 :NAME IS NULL:2015/06/13(土) 17:38:45.65 ID:???.net
SQLiteはSQLデータベースとしては欠陥品だしな

67 :NAME IS NULL:2015/06/17(水) 18:43:58.42 ID:???.net
>>66
どこが?
まさか言いがかり?

68 :NAME IS NULL:2015/06/18(木) 08:12:48.32 ID:???.net
まあSQL標準から見れば世に出てるRDBMSは全部欠陥品だわなw
SQL構文以外の部分を忠実に従ってもメリット無いからどうでもいいんだが

69 :ギンコ ◆BonGinkoCc :2016/04/02(土) 10:10:07.09 ID:???.net
何気なくエディタでテキストファイルを作って、情報収集していませんか。
その情報も貯まれば立派なデータベースになってしまいますね。

従来のエディタだと、ファイルの管理がややこしくなります。
そこで当然、テキストデータベースソフトを使って管理します。

データベース化する事例

・SONYのラジオに関する購入日記や感想日記
・特定のホームページから書き写した文章をまとめたテキストファイル
これもたっぷり貯め込めば立派なデータベースに。

・日報をデジタルで管理しているファイル
日報も業務開始前、業務中、業務終了後に毎日のようにタブレット端末等で記録するので、
1ヶ月で平均20ページになり、1年で240ページほどになるから立派なデータベースだ。

・ローカルで管理するマイウィキ
何気なく作成していくと、どんどんたまり、データベースになる。

それらのテキストデータベースを管理するためのソフトが要るね。

70 :NAME IS NULL:2016/04/02(土) 23:51:15.27 ID:???.net
2009年にスレが出来て、レスがまだ2桁行ってないという w

71 :NAME IS NULL:2016/04/02(土) 23:51:54.98 ID:???.net
間違えたorz
2009年にスレが出来て、レスがまだ3桁行ってないという w

72 :NAME IS NULL:2017/12/29(金) 12:11:36.05 ID:dtNZwIie.net
誰でも簡単にパソコン1台で稼げる方法など
参考までに、
⇒ 『宮本のゴウリエセレレ』 というブログで見ることができるらしいです。

グーグル検索⇒『宮本のゴウリエセレレ』

ZL4QZ41IU0

73 :NAME IS NULL:2018/02/14(水) 13:38:10.80 ID:???.net
☆ 日本の、改憲をしましょう。現在、衆議員と参議院の両院で、
改憲議員が3分の2を超えております。『憲法改正国民投票法』、
でググってみてください。国会の発議はすでに可能です。
平和は勝ち取るものです。お願い致します。☆☆

74 :NAME IS NULL:2018/02/27(火) 23:43:03.50 ID:tJZlV4of.net
>>1
ggrks

75 :NAME IS NULL:2023/09/28(木) 20:14:47.11 ID:gnh9gE01T
最近地球破壞テ囗リス├税金泥棒自閉隊が都心付近までクソへリやらС-1з0やらクソ爆音航空機飛ばしまくって低周波騒音引き起こしてるな
自閉隊とは、国民の生命と財産を守る存在ではなく、税金泥棒しながら、工ネ価格に物価にと暴騰させて、住民の権利を強奪して破壊して
気候変動させて災害連発させて国土まで破壊しながら私腹を肥やすテロリス├の典型だと理解しよう!
ウクライナの軍事予算はGDp比4%以上あったわけた゛し、軍のクーデターによって政権掌握されたミャンマ━はGDP比2%台、
徴兵して拒否すれば犬コロ公務員に制圧させて殺害可能な社會にしようとしてるのが防衛予算のために増税まて゛計画している岸田文雄
ちなみに.2014年にマレーシア地球破壊テロリス├機MH17を地対空ミサイル9K37フ゛ークで見事に撃墜したのは,戦闘民族ウクライナ人な
真の防衛として、利権を貪って税金泥棒して地球破壊して私権侵害して私腹を肥やすだけの人類に湧いた害虫クソ公務員を全滅させて.
新Ξ種の神器、拳銃、スティンガー.手榴弾を一刻も早く全家庭に普及させないとお前ら間違いなく口シア逃亡民みたいな目に合うぞ
(羽田)ttps://www.call4.jp/info.ρhр?tyрe=items&id=I0000062 , tTps://hanеda-projeCТ.jimdofree.com/
(成田)ttps://n-souonhigaisosyoudan.amebaownd.com/
(テロ組織]ttps://i.imgur.Сom/hnli1ga.jpeg

76 :NAME IS NULL:2023/09/30(土) 00:43:36.34 ID:???.net
え!?女もつらいの?

22 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★