더북(TheBook)

이전에 정의했던 getCustAttrsetCustAttr 두 함수는 테이블이 아닌 addCustRecordgetCustRecord 같은 낮은 수준의 함수를 만드는 재료로 사용할 수 있다. addCustRecord 함수의 의사 코드는 다음과 같다.


define addCustRecord (p_id, p_fname, p_lname, p_addr, p_city, p_state, p_zip)
    begin
        setCustAttr(p_id,'fname', p_fname);
        setCustAttr(p_id,'lname',p_lname);
      setCustAttr(p_id,'addr',p_addr);
      setCustAttr(p_id,'city',p_city);
      setCustAttr(p_id,'state',p_state);
      setCustAttr(p_id,'zip', p_zip);
  end;

다음은 getCustRecord 함수의 의사 코드다.


define getCustRecord (p_id)
  begin
      v_custRec = make_list (
          getCustAttr(p_id,'fname', p_fname),
          getCustAttr(p_id,'lname',p_lname),
          getCustAttr(p_id,'addr',p_addr),
          getCustAttr(p_id,'city',p_city),
          getCustAttr(p_id,'state',p_state),
          getCustAttr(p_id,'zip', p_zip)
      );
      return(v_custRec);
  end;

테이블 기능을 모방하는 것은 주기적으로 관련 속성을 가져오거나 설정할 때 도움이 된다. 이 패턴은 적은 수의 모방된 테이블로 작업할 때 유용하다.

많은 테이블을 모방하거나 복잡한 필터 조건과 범위 검색을 구현할 때는 대안이 될 만한 방법이 있는지 고려해봐야 한다. 대안으로 다음과 같은 기능을 지원하는 키-값 데이터베이스를 사용하는 것도 포함될 수 있다.

Oracle NoSQL Database 같은 테이블 구조

Riak 같은 향상된 검색 기능

MySQL 같은 관계형 데이터베이스

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.