
No.5ベストアンサー
- 回答日時:
ということは、
ストレージ上へのレコードの格納方法
型ごとの格納方法
可変長データの格納方法
索引の作り方
順次検索や索引検索
ソート
リレーションのさせかた
ユニークやNULLの扱い
ネットワークからのSQLの受取り方と結果の返し方
SQLの解析方法
SQLの最適化
トランザクション処理
ロギング
バキュームやダンプ
といったことを、一からC言語で作りたいということなんですね。
(思いつくままに適当に羅列しましたが)
車輪の再発明という言葉がありますが、データベースを使っている
アプリケーションやWebシステムで、RDBエンジンそのものを一から作ることは あまりないですよ。
一般的なリレーショナルデータベースの行と列に収まらないデータを格納する場合でも、
XMLデータベースとかありますので。
勉強の為にということなら、C言語で
固定長レコードのバイナリファイルの読み書き
索引を別ファイル化
順次検索・索引検索
的なところから入って、だんだん大きくしていっては どうでしょう。
No.7
- 回答日時:
この手の本や整備されたドキュメントはなかなか難しいので、探すならOSSの方が充実していますね。
すでにC言語、C++言語が柔軟に解釈できるのであれば、
MySQL等のデータベースソフトウェアのソースコードを読む込むというのもステップの1つになるかと思います。
初級となると、図解による構造説明等が(理解を早めるために)必要になると思いますので、いきなりソースコードというのは
良いステップとは限りませんが、勉強にはなると思います。
ご参考までに
No.6
- 回答日時:
最初の質問からすると、ニコニコ動画が独自のデータベースエンジンを使っていると勘違いされているようですが、べつに特別なものは使われていないですよ。
ドワンゴの「ニコニコ動画の仕組み」
http://info.dwango.co.jp/rd/files/niconico_douga …
はっきり、「MySQL5」と書かれています。
信頼性やレスポンス性、開発工数などなどを加味すると独自のデータベースエンジンは開発コストが割に合いませんのでまず行いません。
※ googleは独自なデータベースエンジンを使ってますが。これはgoogleの規模が半端無く大きいからです。世界企業レベルのシステムは参考にもなりません。
質問者さんにはっきりしてもらいたいのは、データベースエンジン/サーバー/ライブラリなどデータベースの根本システム(DBMS)のアルゴリズムの部分を開発したいのか、データベースを使った応用ソフトを作りたいかです。
No.4
- 回答日時:
DBのライブラリ・システムは構築する気はなく、DBを使ったソフトを作りたいと言う認識でよろしいか?
であれば、DBサーバを使わないにしても何らかのDBライブラリを使うということで考えたほうが良いでしょう。
SqLite3と言うDBライブラリなら無料で利用できますし、C言語インターフェイスですので利用されたら如何でしょう。PHP5でも採用されています。
「SQLiteで組み込みDB体験(1/3):CodeZine」
http://codezine.jp/article/detail/374
「[SQLite3] SQLiteにC言語でアクセス(基礎編) | idocsq.net」
http://idocsq.net/page/505
No.2
- 回答日時:
意図がよくわかりませんがリレーショナルデータベースを一から構築したいのであれば、まずリレーショナルデータベースと言うものを経験するところから初めて見てはどうでしょうか?
RubyやPHPなどからはMySqlなどのリレーショナルDBサーバーは比較的簡単に扱えます。Sqliteと言うサーバータイプでないデータベースライブラリもあります。
その上で、リレーショナルデータベースの構造を勉強してみてください。それを元に設計できるだけの力量は必要ですが。
「関係データベース - Wikipedia」
http://ja.wikipedia.org/wiki/%E9%96%A2%E4%BF%82% …
「データベース基礎中の基礎」
http://thinkit.co.jp/book/2009/09/24/596
この回答への補足
MySqlは、利用したことはありませんが、DB2,oracleの経験がありますので、そこは、必要ないと考えています。
できれば、簡単なデータベースソフトを作るところから始めたいと思っています。
No.1
- 回答日時:
独自のデータベースということだと、
データベースエンジンそのものを、フルスクラッチでC言語で作りたいのかと、思ってしまいましたが、
> 様々なWEBサービスは、レスポンス向上のためなどの理由により独自のデータベースを作っていると思います。
ということですと、
既存のデータベースエンジンを利用したアプリケーションをC言語で作りたい、ということなんでしょうね。
データベースの利用は、極端にいうと、テーブル設計+SQL言語の修得 といってもよいかと思います。
データベースを利用したWebアプリケーションの作り方は、言語別にたくさんの書籍がありますが、
C言語のものって少なくて、PHP,Ruby on Rails, ASP.NET(VBかC#), Java,Perlあたりかと思います。
初心者がSQLを理解するんだったら、C言語よりも、PHPとかRubyのほうがよいと思いますよ。
SQLそのものに集中してコーディングできるので。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ソフトウェア データベースのウェブでの自作 2 2023/08/01 10:06
- JavaScript Typescript が必要な理由 1 2023/01/07 11:45
- MySQL 「utf8mb4_general_ci」はMAMPでは何に当たりますか? 1 2022/06/02 07:45
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- フリーソフト 色々な形式の個人情報を後で参照しやすいようWindow10で管理したいのですが、どんな方法があるの? 1 2023/04/29 16:46
- MySQL 【投稿情報用データベース posts】は必要ないと思います。 1 2022/06/02 21:25
- MySQL 私の考えていることは ・mySQL ・PHP ・web制作 この三つのスキルがあれば実現しますか? 4 2023/08/19 02:48
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HOLONついて教えてください。
-
C言語でメモ帳のようなソフト...
-
C言語、C+、C++、C#の違い
-
プログラムに書かれる"%"記号の...
-
COBOLでのNOT = の AND条件
-
教科書でBasicが使われる理由
-
Pythonを使ってブログサービス...
-
三菱製PLC Qシリーズで技術的な...
-
VB4のWin2000、WinXP対応
-
プログラミング言語「C#」の難...
-
ニンテンドーDSのソフト作成に...
-
< この記号プログラミングで使...
-
C#という完璧な言語があるのに...
-
CとJava両方学習するべきか?
-
PL/Iについて
-
Excelの開発言語ってなんですか?
-
ゲームの開発言語(1980~2010年)
-
一つのウェブページに
-
c言語 配列の値の平均値(小数...
-
VBSとWSHは読み方が違うだけで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HOLONついて教えてください。
-
C言語でメモ帳のようなソフト...
-
会社で使える言語
-
データベースソフトを作りたい
-
cgiの開発ソフト
-
VisualC++のメリット
-
言語の違い
-
いったい,,,,.NETって。。。
-
Excel,Accessの多言語対応について
-
(2017年7月現在)Windows7で実行...
-
VB.netは何系?
-
C言語、C+、C++、C#の違い
-
プログラムからアイコンファイ...
-
C言語とhtmlの違いを どな...
-
COBOLでのNOT = の AND条件
-
プログラムに書かれる"%"記号の...
-
UNITY Float型の接尾辞fって
-
アセンブリ名とは??
-
C++における継続行
-
COBOLで文字タイプを数字...
おすすめ情報