作者wa120 (哇120)
看板Programming
標題Re: [問題] 怎麼寫一個資料庫?
時間Thu Feb 11 05:09:23 2010
※ 引述《yeagen (天使)》之銘言:
: 大家好
: 想請問,該怎麼寫出一個簡單的資料庫
: 網路上有沒有什麼資料,還是關鍵字,可以讓我找到相關資訊的
教你一個簡單版的
1. 要會用fopen 並且寫入資料要用wb
2. 要會用struct跟malloc開動態結構陣列
將每一筆資料 都放在struct定義的動態結構陣列
EX:
struct bucket
{
int PK;
String Name;
...
};
1.用for迴圈開struct陣列幾筆資料就開幾個
2.用for迴圈將讀取到的資料放入struct裡面
3.用for迴圈將struct資料依照型別存入fopen內的檔案
建議這三個流程要寫3個for迴圈分開,開發上會容易的多
在struct的{....}內的變數集合叫metadata, 那些變數的型別叫data schema
之後在讀取那個資料庫檔案都要依照那個struct的格式讀取
做到這樣就已經夠為一個簡易的儲存資料了
要做到新增、簡易查詢、修改 還ok
光這樣其實就有很多活的功能要設計了,像是data schema寫成活的,
例如說主鍵只需要3bits那就要這樣寫int PK:3; (希望我沒記錯)
以及matadata寫成活的EX: 自由的可以擴充欄位 (struct內容)
以暫存器的角度來看data structure其實沒有什麼是不可以辦到的。
做XML簡易版的就更簡單了,自定義的標籤,也不需要struct
完完全全都是字串處理,這樣就夠了,
但是實際上,XML讀起來是建在一顆Tree裡面
DBMS的書裡面,說真的,不用程式設計的觀點來看其實很難融會貫通的...
只有在背一些莫名其妙的規則..然後不知道背後的涵意
然後很多的功能,像是叢集式index,span bucket等的 用嘴巴說都比較容易= =
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.133.9.148
1F:推 yeagen:謝謝你~~如果要上google查相關資料 219.84.15.178 02/11 05:23
2F:→ yeagen:就是您說的這些流程 219.84.15.178 02/11 05:24
3F:→ yeagen:要下什麼關鍵字呢? 219.84.15.178 02/11 05:24
4F:→ wa120:以前我老師跟我說,去抓mysql的程式碼XD 140.133.9.148 02/11 08:32
5F:→ Foremanytz:database system concepts 111.255.11.57 02/11 08:32
6F:推 annheilong:我覺得...去學學mysql之後 大概就會寫120.126.194.175 02/11 13:21
7F:→ annheilong:了 你要先知道資料庫怎麼使用吧?120.126.194.175 02/11 13:22
8F:→ clliu168:會 mysql 跟寫資料庫是兩回事. 有些資料114.137.228.241 02/11 17:34
9F:→ clliu168:庫課程的最後 project 就是寫一個小型的114.137.228.241 02/11 17:34
10F:→ clliu168:資料庫. 這篇其實給了很不錯的方向了,應114.137.228.241 02/11 17:35
11F:→ clliu168:該想一下就可以寫出一個基本的小 DB114.137.228.241 02/11 17:35
12F:→ clliu168:至於去 trace mysql code? 你去看看裡面114.137.228.241 02/11 17:36
13F:→ clliu168:的 code, 應該就會放棄了. 如果只是一個114.137.228.241 02/11 17:36
14F:→ clliu168:作業,上面這個已經夠了114.137.228.241 02/11 17:36
15F:推 annheilong:恩..我的意思是說看mysql的功能 61.228.134.85 02/12 09:44
16F:→ annheilong:自己做出一個有類似功能的"簡易資料庫" 61.228.134.85 02/12 09:45
17F:→ wa120:老實講 這也是我剛學資料庫DBMS的疑惑218.175.103.190 02/12 17:33
18F:→ wa120:但是隨著經驗的累積 就大概知道該怎麼做...218.175.103.190 02/12 17:33
19F:→ wa120:你先以XML的資料庫關鍵字會比較好找218.175.103.190 02/12 17:34
20F:→ wa120:因為它只是一個DOM的解析器 然後再做一個架218.175.103.190 02/12 17:35
21F:→ wa120:構 而且 現在非常多的東西都是用XML218.175.103.190 02/12 17:36
22F:→ wa120:所以找到的資料會非常豐富 實作的部份又比218.175.103.190 02/12 17:37
23F:→ wa120:較容易218.175.103.190 02/12 17:37