2012-11-20 7 views
0

데이터베이스 엔진 설계와 관련된 업무가 있습니다. 코드를 전혀 구현할 필요가 없으며, 단지 설계 (psuedocode, 시퀀스 다이어그램 등) 만 할 수 있습니다. 나는 그 방법을 받았고 내가하는 일을 더 이해하기위한 도움을 찾고있다. 아래는 제가 지금까지 가지고있는 것입니다, 어떤 도움을 크게 주시면 감사하겠습니다. 이것은 숙제가 아니라 답을 찾는 것이 아니라이 소프트웨어를 어떻게 설계하는지 더 잘 이해할 수 있는지에 대한 더 많은 통찰력을 얻습니다.데이터베이스 엔진 설계

DB 방법 :

정적 무효 CREATEDB (문자열 DBNAME) :
가 디스크에 새 폴더를 만듭니다 (즉 : C로 저장 :/DBNAME) 이 폴더 데이터베이스의 루트 될 것입니다; 대한
: 그것은 테이블과 인덱스> (파일)

정적 무효 deleteDB (문자열 DBNAME)로 구성됩니다 내부 (디스크 폴더의 FolderName은 (C : /)) 경우 (폴더 이름 == DBNAME) 디스크에서 제거

정적 데이터베이스 openDB (문자열 DBNAME)

무효 closeDB()

표 CreateTable에서 (문자열 TABLENAME, 긴 레코드 사이즈) :
데이터베이스 폴더에 새 파일을 만듭니다 TABLENAME 레코드 크기를 저장하는 파일 내에 헤더를 만듭니다. 이 파일은 바이트 배열입니다. 레코드 크기는이 테이블에 저장된 오브젝트의 크기를 나타냅니다. (예 : 파일이 총 105 바이트 인 경우 내 머리글은 5 바이트이므로 머리글 (15, 25, 35 ...) 다음에 오는 모든> 10 바이트는 내 테이블 내의 개체입니다

Table getTable (파일 이름 == TABLENAME) 돌아 표 (파일)

무효 deleteTable (문자열 TABLENAME가) 데이터베이스 폴더에
, 경우 각 파일 (파일을 반복 할 경우) 데이터베이스 폴더에서
는 각 파일 을 반복 이름 == tableName) 테이블 제거 (파일)

지수 createIndex (문자열 INDEXNAME)

색인 getIndex (문자열 INDEXNAME)

무효 deleteIndex (문자열 INDEXNAME)

테이블 방법 :

긴 getRecordSize()
테이블이 파일 (바이트 []) 레코드의 첫 번째 줄 (바이트 [0])은 recordSize가 포함 된 헤더입니다. return recordSize

long addRecord (byte [] record)
테이블 파일의 헤더에 파일의 레코드 크기 및 객체 수를 얻습니다. 파일의 해당 위치에 레코드를 기록합니다 (spot = (파일에 이미있는 레코드 수 * 레코드 크기)> + 헤더 크기. (예 : 헤더 크기가 5 바이트 인 경우 레코드 크기 = 10 바이트이고 이미 파일에 7 개의 개체가 있습니다.다음 목적은, 스폿 (7 * 10) + 5 = 75)

공극 removeRecord (긴 기본 키)

바이트 [] getRecord (긴 기본 키)

공극 updateRecord (긴 기본 키에 추가 될 바이트 [] 레코드)

공극 확대()

인덱스 방법 :

보이드 ADDKEY (문자열 키 길이 값)

IteratorgetValues ​​(문자열 startKey 문자열 endKey)

긴 DELETEKEY (문자열 키)

공극에 updateKey (문자열 키 길이 값)

공극 확대()

답변

1

우선 이러한 메소드가 외부 인터페이스임을 이해해야합니다. 후드 아래에서 더 잘할 수 있습니다 (자체 스레드에서 장시간 또는 수명이 짧은 오브젝트를 생성하고 유틸리티 라이브러리 등을 가짐).

수업 다이어그램 또는 다른 방법으로 가지고있는 것을 모델링하는 것으로 시작하십시오. 그런 다음 인터페이스 사용 방법을 이해하려고 시도합니다 (자세한 사용 사례를 작성하는 등). CRC cards이이 단계에서 매우 유용하다는 것을 알았습니다. 주변을 쉽게 이동하고, 한 번에 하나의 수업을 살펴 ​​보는 등의 작업을 쉽게 수행 할 수 있기 때문입니다.

시스템이 백엔드 기능 및 기능과 관련하여 필요한 것을 파악하려고 할 때 모든 것을 다 처리 할 때까지 새로운 클래스로 클래스 다이어그램을 확장하십시오.

시퀀스 다이어그램으로 시작할 때 변경을 준비하십시오. 작업의 나머지 부분에서 초기 모델의 문제를 잘 파악할 수 있습니다. 이러한 문제를 해결하려고 시도하거나 무시하는 것이 유용한 경우가 종종 있습니다.