Redesign your brain
가장 쉬운 데이터베이스 설계 책, 마이클 헤르난데즈 본문
728x90
실수와 설계 반복을 최소한으로 줄여준다.
설계 프로세스를 쉽게 만들며 데이터베이스의 설계에 소요되는 시간을 줄여준다.
훌륭한 데이터베이스 설계의 목적
- 데이터베이스는 필수 및 임의적인 정보를 모두 지원한다.
- 테이블은 적절하고 효율적으로 구성되어야 한다. (중복데이터 절대적으로 최소화, 고유값을 가진 필드에 의해 데이터베이스에서 식별됨)
- 필드, 테이블, 관계 수준에서 데이터 무결성이 부과됨.
- 데이터베이스의 구조는 업무의 변화와 성장에 따른 정보 요구사하에 의해 확장하가거나 수정하기 쉬워야 함.
훌륭한 데이터베이스 설계의 이점
- 데이터베이스 구조를 쉽게 수정할 수 있고 운영할 수 있음 : 테이블이나 필드에 대한 수정이 데이터베이스의 다른 필드나 테이블에 부정적인 영향을 주지 않음.
- 데이터를 쉽게 수정할 수 있음 : 테이블 내의 필드값을 변경하는 것이 테이블 내의 다른 필드들의 값에 부정적인 영향을 주지 않음. 또한 잘 설계된 데이터베이스는 절대적으로 중복값을 최소화하기 때문에 일반적으로 한 필드의 특정한 데이터값만 수정할 수 있음.
- 정보를 쉽게 검색할 수 있음 : 테이블들이 잘 구성되어 있고 그들 사이의 관계가 제대로 설정되어 있기 때문에 쉽게 질의를 생성할 수 있음.
- 최종 사용자가 응용프로그램을 개발하고 구축하기 쉬움
데이터베이스 설계의 프로세스
- 데이터베이스에 대한 임무 명세와 임무 목표를 정의 : 사용자가 사용하기 위한 작업들을 정의
- 기존 데이터베이스를 분석 : 사용자 관리자 확인, 조직의 데이터 요구 사항 확인
- 데이터 구조를 생성함.
- 테이블 관계를 결정하고 설정함 : 각 관계의 논리적인 연결을 설정. 적절한 특징을 설정.
- 업무 규칙을 결정하고 정의 : 제약사항 확인.
- 리포트/뷰를 결정하고 설정함 : 정해진 데이터들이 보여주어야 하는 뷰들에 대한 기준을 설정.
- 데이터 무결성을 검토 : a. 각 테이블이 설계 기준에 맞는지 확인, b. 모든 필드 명세들을 점검하고 검토함, c. 각 관계에 대한 유효성을 점검, d. 업무 규칙을 검토하고 확정.
데이터베이스 설계 시 확인 사항
- 정확하고 명확하며 모호하지 않게 테이블의 주제를 식별할 수 있는 이름을 만듬.
- 테이블 주제를 전달하는 데 필요한 최소 개수의 단어를 사용.
- 물리적 특성을 표현하는 단어 사용 X : 파일, 레코드, 테이블 등 사용 X
- 약자 사용 하지 말 것.
- 테이블에 들어갈 데이터를 제한할 수 있는 독특한 이름이나 다른 단어를 사용하지 X
- 암시적 또는 명시적으로 둘 이상의 주제로 식별되는 이름을 사용하지 X
필드 정제
- 필드 이름을 개선
- 필드가 이상적인 필드의 요소들을 따르는지 여부를 파악.
- 테이블의 이름을 정제함.
- 각 테이블에 대해 적당한 설명을 작성.
- 테이블의 종류를 지정
주 키의 요소
- 다중 부분 필드일 수 없다.
- 유일한 값들을 포함해야만 한다.
- 널값을 포함할 수 없다.
- 그 값이 조직의 보안 또는 비밀 규칙을 깨뜨리도록 할 수 없다.
- 그 값이 전체 또는 부분적으로 선택적이지 않다.
- 유일성을 정의하기 위해 필요한 최소 개수의 필드들을 포함한다.
- 그 값들이 테이블 내의 각 레코드들을 유일하게 그리고 배타적으로 식별해야만 한다.
- 그 값이 주어진 레코드 내의 각 필드의 값을 구체적으로 식별해야만 한다.
- 그 값이 아주 드물고 극단적인 경우에만 수정될 수 있다.
필드 명세서 예시
테이블 수준 무결성
- 테이블 내에 이중 필드들이 없다.
- 테이블 내에 계산된 필드들이 없다.
- 테이블 내에 다중값 필드들이 없다.
- 테이블 내에 다중 부분 필드들이 없다.
- 테이블 내에 이중 레코드들이 없다.
- 테이블 내의 각 레코드는 주 키 값에 의해 식별된다.
- 각 주 키는 주 키의 요소들을 따른다.
필드 수준 무결성
- 각 필드가 이상적 필드의 요소들을 따르는 것을 확인했다.
- 각 필드를 위한 일련의 필드 명세들을 정의했다는 것을 확인했다.
관계 수준 무결성
- 올바르게 관계를 설정했다.
- 적절한 삭제 규칙을 정의했다.
- 각 테이블을 위한 참여의 종류를 정확하게 식별했다.
- 각 테이블을 위한 올바른 참여 수준을 설정했다.
업무 규칙
- 각 규칙이 의미 있는 제약조건을 부과한다고 확신한다.
- 규칙을 위한 올바른 범주를 결정했다.
- 각 규칙을 올바르게 정의 및 설정했다.
- 적절한 필드 명세 요소들 또는 테이블-관계 특성들을 수정했다.
- 적절한 검증 테이블을 설정했다.
- 각 규칙을 위한 업무 규칙 명세서를 완성했다.
뷰
- 각 뷰는 요구되는 정보를 제공하기 위한 필요한 기반 테이블들을 포함한다.
- 각 뷰에 적절한 필드를 할당했다.
- 각 계산된 필드는 적절한 정보를 제공하거나 뷰가 데이터를 표시하는 방법을 개선한다.
- 각 필터는 적절한 레코드 집합을 반환한다.
- 각 뷰는 뷰 다이어그램을 가지고 있다.
필드 특유 업무 규칙 정의 및 설정
- 테이블을 선택한다.
- 각 필드를 검토하고 다른 제약사항을 요구하는지 판단한다.
- 필드에 필요한 업무 규칙을 정의한다.
- 적절한 필드 명세 요소들을 수정하여 규칙을 설정한다.
- 어떤 행위가 규칙을 검사하는지 판단한다.
- 업무 규칙 명세서에 규칙을 기록한다.
관계 특유 업무 규칙 정의 및 설정
- 관계를 선택한다.
- 관계를 검토하고 다른 제약사항을 요구하는지 판단한다.
- 관계에 필요한 업무 규칙을 정의한다.
- 적절한 관계 특성들을 수정하여 규칙을 설정한다.
- 어떤 행위가 규칙을 검사할지 판단한다.
- 업무 규칙 명세서에 규칙을 기록한다.
이상적일 필드의 요소
- 테이블의 대상의 뚜렷한 특징을 나타낸다.
- 단 하나의 값만을 포함한다.
- 더 작은 구성요소로 해체될 수 없다.
- 계산되거나 연결된 값을 포함하지 않는다.
- 계산되거나 연결된 값을 포함하지 않는다.
- 전체 데이터베이스 구조 내에서 유일한다.
- 하나 이상의 테이블에 나타날 때에는 속성들의 대부분을 보유한다.
이상적인 테이블의 요소
- 개체 또는 사건일 수 있는 하나의 대상을 나타낸다.
- 주 키를 갖는다.
- 다중 부분 필드나 다중값 필드를 포함하지 않는다.
- 계산된 필드를 포함하지 않는다.
- 불필요한 중복 필드들을 포함하지 않는다.
- 절대적으로 최소화된 중복 데이터만을 포함한다.
필드 수준 무결성
- 필드의 주체성과 목적이 명확하고 이것이 나타나는 모든 테이블들을 적절하게 식별된다.
- 필드 정의들은 데이터베이스 전체에 걸쳐 일관성을 갖는다.
- 필드의 값들을 일관적이고 유효하다.
- 필드의 값들에 적용될 수 있는 수정, 비교, 그리고 연산의 종류가 명확하게 실별된다.
필드 설명을 작성하기 위한 지침
- 필드를 정확하게 식별하고 그 목적을 명확하게 기술하는 문장을 사용한다.
- 명확하고 간결한 문장으로 작성한다.
- 필드 이름을 재설명하거나 재수식하지 않는다.
- 기술적인 은어, 두문자어, 약어 사용을 피한다.
- 구현에 의존적인 정보를 포함하지 않는다.
- 이 설명을 다른 필드설명에 의존하게 하지 않는다.
- 예제를 사용하지 않는다.
테이블 설명을 작성하기 위한 지침
- 테이블을 정확하게 정의하는 문장을 포함한다.
- 테이블이 조직에 중요한 이유를 설명하는 문장을 포함한다.
- 명확하고 간결한 설명을 작성한다.
- 테이블이 어떻게 또는 어디에 사용되는지와 같은, 구현과 관련된 정보를 테이블 설명에 포함하지 않는다.
- 다른 테이블의 테이블 설명에 의존적인 테이블 설명을 작성하지 않는다.
- 테이블 설명에 예제를 사용하지 않는다.
필드 이름을 생성하기 위한 지침
- 전체 조직에 의미가 있는 서술적인 고유한 이름을 만듦
- 필드가 나타내는 특성을 정확하고 명확하게 그리고 모호하지 않게 식별하는 이름을 생성.
- 두문자어 사용하지 말고, 약어는 신중하게 사용.
- 필드 이름의 의미를 혼동시킬 수 있는 단어들을 사용하지 않음.
- 하나 이상의 특성을 암시적 또는 명시적으로 식별하는 이름을 사용하지 않음.
- 단수형의 이름을 사용.
테이블 이름을 생성하기 위한 지침
- 전체 조직에 의미 있는 유일하고 설명적인 이름을 생성한다.
- 테이블 대상을 정확하고 명확하게 그리고 모호하지 않게 식별하는 이름을 생성한다.
- 테이블의 대상을 전달할 때 필요한 최소 개수의 단어를 사용한다.
- 물리적인 특징을 전달하는 단어들을 사용하지 않는다.
- 두문자어와 약어를 사용하지 않는다.
- 테이블에 입력될 수 있는 데이터를 과도하게 제한하는 이름이나 다른 단어들을 사용하지 않는다.
- 하나 이상의 대상을 암시적이거나 명시적으로 식별하는 이름을 사용하지 않는다.
- 이름의 복수형을 사용한다.
관계 식별하기
- 한 쌍의 테이블을 선택하고, 첫 번째 테이블과 두 번째 테이블의 교차 지점에 항목을 적는다.
- 현재 작업 중인 행렬에서 첫 번째 테이블이 있는 쪽의 두 번째 테이블을 지정하고 행렬의 반대쪽에 있는 첫 번째 테이블과의 교차점에 항목을 적는다.
- 이 두 항목에 다음에 나와있는 적당한 공식을 적용하여, 테이블 사이의 공식적인 관계를 식별한다.
- 적절한 방식으로 관계도를 그린다.
- 행렬에 있는 두 항목을 삭제한다.
뷰 요구사항 식별하기
- 사용자/관리자 대표들의 그룹과 함께 메모를 검토한다.
- 설계프로세서의 이전 단계에서 수집한 데이터 항목, 보고서, 프레젠테이션 견본을 검토한다.
- 테이블들과 그것들이 나타내는 대상들을 검사한다.
- 테이블 관계를 분석한다.
- 업무 규칙을 연구한다.
면담 지침
임무 명세
'읽고 또 읽고 > 경영' 카테고리의 다른 글
신규사업과 프로젝트, 사업타당성 분석, 남영호, 사업전략의 다양한 메트릭스 (0) | 2017.06.21 |
---|---|
청년 사장학, 박주관, 젊은 경영자의 체크리스트 (0) | 2017.06.21 |
직무수행관리, 조직의 효율성을 이끌어 내는 행동 변화 (0) | 2017.02.25 |
역량평가, 인적자본 역량모델 개발과 역량평가, 이홍민 (0) | 2017.02.25 |
숫자로 경영하라, 서울대 최종학 교수의 (0) | 2017.02.25 |
Comments