Database 만들기 - 프로젝트 개요


자료는 파일(Binary) 로 저장되어 삽입, 검색등이 이루어지며,

Database 정보(테이블 이름, 컬럼 이름, 기본 키, 레코드 사이즈, 레코드 수등)를 담는 Catalog 파일은 텍스트(Text)로 관리한다.


Create 명령어를 통해 테이블을 생성하고

Insert 명령어를 통해 Record 를 입력하고

Select 명령어를 통해 Binary 파일을 읽어 화면에 출력한다.

Where 명령어를 통해 (Offset 활용) 필요한 레코드만 출력하며, Join 명령어를 통해 테이블간 Join 도 가능하다.


Batch 모드를 실행하면 한번에 여러개의 Sql 명령어를 실행할수 있다.


-------------------------------------------------------------------------------------------------

 

다음과 같은 프로그램을 만들기 위해 가장 중요한 Datatype 을 아래와 같이 만들었습니다.


#define TABLE_NAME_SIZE 100

#define TABLE_COLUMNS_MAX_SIZE 100

#define TABLE_COLUMN_SIZE 20


typedef struct _column_info

{

char name[TABLE_COLUMN_SIZE]; // Column Name

int type; // 0:INT, 1: CHAR

int size;

int offset; // Start Position

} column_info;


typedef struct _table_info

{

char name[TABLE_NAME_SIZE]; // Table Name

char columns[TABLE_COLUMNS_MAX_SIZE];

vector<column_info> col;

char primary_key[TABLE_COLUMN_SIZE];

int recordsize;

int totalsize;

int records;

} table_info;


vector<table_info> v;


벡터<vector> 를 활용하여 쉽게 데이터를 관리하였습니다.


다음 글에선 어떻게 데이터를 저장하고 검색하여 읽고 화면에 보이는지 살펴보겠습니다.


'Computer Science > DB' 카테고리의 다른 글

C++ <vector>, Database 만들기 #2 저장(fwrite)  (0) 2012.07.10
ORACLE - 테이블 join 이 잘안돼...  (0) 2009.09.16
ORACLE - SYSDATE 로 시간구하기  (6) 2009.05.20
ORACLE - 문자열 추출 (substr)  (0) 2009.03.03
ORACLE DUMP()  (0) 2008.10.24
페이스북 댓글
티스토리 댓글

+ Recent posts