처리 성능 개선

데이터베이스 규칙 완화 또는 파기에 따른 문제점과 성능개선에 대한 가치 비교가 필요하다

데이터 구조의 무분별한 수정의 결과로 발생할 수 있는 문제들

  • 일관성 없는 데이터 : 불필요한 이중 필드를 도입한 경우 발생
  • 중복 데이터 : 불필요한 이중 필드를 도입한 경우 발생
  • 손상된 데이터 무결성
  • 부정확한 정보 제공
데이터베이스 규칙 완화 또는 파기는 최후의 수단으로 두고, 다른 대안을 통해 성능개선을 시도해야한다.
  • 하드웨어 Scale Up / Scale Out
  • OS 옵션 최적화
  • 데이터베이스 구조가 올바르게 설계되었는지 검토
  • 데이터베이스의 구현 검토 : 효율적이고 안전하게 정의했는가 검토
  • 데이터베이스를 사용하는 응용프로그램 검토


설계 지침

후보 키의 요소

  • 다중 부분 필드가 될 수 없다.
  • 유일한 값을 가져아 한다.
  • 널(null)값을 포함할 수 없다.
  • 그 값은 조직의 보안이나 비밀 규칙을 깨뜨리도록 할 수 없다.
  • 그 값이 전체 또는 부분적으로 선택적이지 않다.
  • 유일성을 정의하기 위해 필요한 최소 개수의 필드들을 포함한다.
  • 그 값들이 테이블 내의 각 레코드들을 유일하게 그리고 배타적으로 식별해야만 한다.
  • 그 값이 주어진 레코드 내의 각 필드의 값을 구체적으로 식별해야만 한다.
  • 그 값은 아주 드물고 극단적인 경우에만 수정될 수 있다.
외래키의 요소
  • 복사된 주 키의 이름과 같은 이름을 갖는다.
  • 복사된 기본 키에 대한 필드 명세의 복제를 사용한다.
  • 참조하는 주 키에서 값을 도출한다.
주 키의 요소
  • 다중 부분 필드일 수 없다.
  • 반드시 유일한 값을 가져야 한다.
  • 널(null)값을 포함할 수 없다.
  • 그 값이 조직의 보안 또는 비밀 규칙을 깨뜨릴 수 없다.
  • 그 값이 전체 또는 부분적으로 선택적이지 않다.
  • 유일성을 정의하기 위해 필요한 최소 개수의 필드들을 포함한다.
  • 그 값이 테이블에 있는 각 레코드들을 유일하고 배타적으로 식별해야만 한다.
  • 그 값은 주어진 레코드에 있는 각 필드값을 구체적으로 식별해야 한다.
  • 그 값은 아주 드물고 극단적인 경우에만 수정될 수 있다.
이상적인 필드의 요소
  • 테이블의 대상의 뚜렷한 특징을 나타낸다.
  • 단 하나의 값만을 포함한다.
  • 더 작은 구성요소로 해체될 수 없다.
  • 계산되거나 연결된 값을 포함하지 않는다.
  • 전체 데이터베이스 구조 내에서 유일하다.
  • 하나 이상의 테이블에 나타날 때에는 속성들의 대부분을 보유한다.
이상적인 테이블의 요소
  • 개체 또는 사건일 수 있는 하나의 대상을 나타낸다.
  • 주 키를 갖는다.
  • 다중 부분 필드나 다중값 필드를 포함하지 않는다.
  • 계산된 필드를 포함하지 않는다.
  • 불필요한 중복 필드들을 포함하지 않는다.
  • 절대적으로 최소화된 중복 데이터만을 포함한다.
필드 이름을 생성하기 위한 지침
  • 전체 조직에 의미 있는 유일하고 설명적인 이름을 생성한다.
  • 필드가 나타내는 특징들을 정확하고 명확하게 그리고 모호하지 않게 식별하는 이름을 생성한다.
  • 필드가 나타내는 특징의 의미를 전달할 때 필요한 최소 개수의 단어를 사용한다.
  • 두문자어를 사용하지 않으며, 약어를 신중하게 사용한다.
  • 필드 이름의 의미를 혼동할 수 있는 단어를 사용하지 않는다.
  • 암시적이거나 명시적으로 하나 이상의 특징을 식별하는 이름을 사용하지 않는다.
  • 이름의 단수형을 사용한다.
테이블 이름을 생성하기 위한 지침
  • 전체 조직에 의미 있는 유일하고 설명적인 이름을 생성한다.
  • 테이블의 대상을 정확하고 명확하게 그리고 모호하지 않게 식별하는 이름을 생성한다.
  • 테이블의 대상을 전달할 때 필요한 최소 개수의 단어를 사용한다.
  • 물리적인 특징을 전달하는 단어들을 사용하지 않는다.
  • 두문자어와 약어를 사용하지 않는다.
  • 테이블에 입력될 수 있는 데이터를 과도하게 제한하는 이름이나 다른 단어들을 사용하지 않는다.
  • 하나 이상의 대상을 암시적이거나 명시적으로 식별하는 이름을 사용하지 않는다.
  • 이름의 복수형을 사용한다.


'기타' 카테고리의 다른 글

암호화, 해시 그리고 인코딩  (0) 2015.07.28
[도서] 오라클의 눈으로 알티베이스를 보다  (0) 2014.10.16
Posted by dreamhopp
,