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 |