제가 졸업 작품으로 간단한 DBMS 를 만들어볼려고 합니다. 관심도 있고해서 만들어볼려고하는데
MySQL 식의 콘솔 형태로 만들어서 주기억상주 DBMS를 작게나마 구현해볼려고하는데
어떠한 지식이 필요한지 알고싶습니다.
지금 Oracle Adminstartion Fundmentals 책을 보면서 대략적인 DBMS 의 동작들을 살펴보고있는데
많이 난감하네요.. 부탁드립니다. 개발환경은 Linux 에서 할려고합니다.
읽어주셔서 감사합니다(__)
DBMS를 개발하시려면,
http://www.yes24.com/Goods/FTGoodsView.aspx?goodsNo=467168&CategoryNumber=002
이 책을 보시는게 좋습니다.
몇년 전까지만 해도 DBMS 개발에 관련된 유일한 책이었는데 요즘은 모르겠군요.
이 책 가격이 부담스러우시다면,
파일 처리, 자료구조, 컴파일러 등의 책을 섭렵하시면 되겠죠.
위의 책은 제가 소장하고 있는데요.
중고로 팔기는 좀 아깝고, 술 한잔에 대여는 가능할지도 모릅니다 ㅎㅎ;
암튼 말씀하신 콘솔 형태의 주기억상주 DBMS라면....
SQL 파서랑 자료 인덱싱 하는 정도만 구현해도 졸업 작품으로는 충분할 듯 한데요.
첨부터 너무 많은 것을 하려하지 마시고, API로 자료 입력/인덱싱/검색 등을 하는 정도로
시작해서 SQL로 접근하는 것 까지 개발해 보세요~
dsn의 신기배님이 만드신 http://sqlitedbms.sourceforge.net/index.htm 이것도 참고자료가 될 듯.
근데 나보다 기배가 댓글 달면 더 많은 이야기를 해 줄 수 있을 듯 한데~
안녕하세요..DBMS 개발자입니다.
위에 허정수님께서 추천하신 책은 개념잡기에 더없이 좋은 책입니다.
근데 막상 구현하시기엔 적용하기 많이 힘들듯합니다.
DBMS는 무쟈게 복잡한 시스템입니다.
속부터 구현하시기보다는 껍데기부터 접근하시는게 좋을겁니다.
SQL 스펙을 왕창 줄여서 간단한 insert, update, delete, select 구문만 지원하는
SQL 파서부터 개발에 착수하시면 될 것 같네요.
파서는 SQL 문장을 읽어 parse tree를 생성합니다.
query optimizer는 parse tree를 가지고 plan tree를 생성하고
query executer는 plan tree를 가지고 DML이나 select를 call합니다.
dml, select 수행을 실제로 수행하는 곳은 storage manager(저장 관리자)인데
여기선 동시성 제어나, 메모리 관리, 트랜잭션 관리 등을 수행합니다.
이 모든 것을 구현하시기엔 벅찰것이고...
주제를 query processing이나 storage manager 중 하나를 택해서
하나에 집중하시면 될 것 같습니다.
재미있는 주제를 택하셨군요...ㅎㅎ