아는 만큼 보이는 데이터베이스 설계와 구축- 이춘식 지음

prana·2022년 12월 5일
0

database

목록 보기
21/38

도서명 : 아는 만큼 보이는 데이터베이스 설계와 구축- 이춘식 지음

데이터 모델 검증 시 체크리스트

엔티티 타입 검토 체크리스트

  • 선정된 PRIMARY KEY가 업무적으로 발생하는 자료의 유일성을 보장하는가?

  • 선정된 PRIMARY KEY는 효율적인 모습을 가지고 있는가?

  • 자료의 발생 유형이 유사한 엔티티는 통합되었는가?

  • 독립된 엔티티타입이나 엔티티타입의 그룹은 존재하지 않는가?

  • 병합 또는 분리되어야 할 엔티티 타입은 존재하지 않는가?

  • 추가적으로 도출되어야 하거나 불필요한 엔티티 타입은 없는가?

  • 엔티티 타입이 주변 여러 엔티티 타입의 공통 엔티티 타입인 경우 자료 원천이 어느 엔티티 타입인지 추적 가능한가?

  • PRIMARY KEY의 순서는 시스템의 성능을 고려하여 적절한 순서로 정의되어 있는가?


속성 검토 체크리스트

  • 반정규화된 속성은 식별되는가?

  • 반정규화는 시스템 복잡도와 성능을 고려하여 적절하게 이루어졌는가?

  • 동일 명칭을 가지는 속성의 타입과 크기는 동일한가?

  • 내부적인 속성을 가지고 있는 속성은 존재하지 않는가?

  • 병합되어야 할 속성은 존재하지 않는가?

  • 전후 레코드 간 영향을 미칠 수 있는 속성은 없는가?

  • 감사, 통계 등을 고려하여 속성이 정의되었는가?


관계 검토 체크리스트

  • 엔티티타입 간의 관계가 M:N인 속성은 없는가?

  • 엔티티타입 간의 관계는 업무적 흐름과 규약이 일치하는가?

  • 업무적 흐름에 비추어 미도출된 관계는 없는가?

  • 관계에 대한 표현은 적절한 수준에서 이루어졌는가?


도메인/용어 검토 체크리스트

  • 도메인이 적절히 정의되어 관리되고 있는가?

  • 도메인의 변경에 따라 속성이 변경되고 있는가?

  • 데이터 모델의 용어가 일관성을 유지하고 있는가?


데이터 무결성의 실무 적용

1. 엔티티 무결성

  • 한 엔티티는 중복과 누락이 있을 수가 없음.

  • 즉, 동일한 PK를 가질 수 없거나, PK의 속성이 Null을 허용할 수 없음

2. 참조 무결성

  • 외래키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본키 값이나 Null이어야 함

3. 속성 무결성

  • 속성의 값은 기본값, Null 여부, 지정된 도메인(데이터타입, 길이) 규칙을 준수하여 존재하여야 함

4. 사용자 무결성

  • 사용자의 의미적 요구사항을 준수해야 함

무결성 요소에 필요한 기능

  1. 엔티티 무결성 : Primary Key, Unique Index

  2. 참조 무결성 : Foreign key

  3. 속성 무결성 : CHECK, NULL/NOT NULL, DEFAULT

  4. 사용자 정의 무결성 : Trigger, User Define Data Type

DBMS 요소와 내용

1. Primary Key

  • 지정된 컬럼들이 유일성이 위배되는 일이 없음을 보장함
  • Primary Key는 Null 값이 될 수 없음

2. Unique Index

  • 다중의 보조 키 개념을 지원함

  • Primary Key와 마찬가지로 지정된 컬럼들의 유일성이 위배되지 않음을 보장함

3. Foreign Key

  • 테이블 간의 논리적 관계가 유지됨을 보장함

  • Foreign Key 값은 반드시 참조하는 테이블의 Primary Key 값으로 나타나야 함

  • Foreign Key 값은 Null값을 가질 수 있음

  • Cascaded Option : Master 삭제 시 레코드가 함께 삭제됨

  • Nullified Option : Master 삭제 시 해당 값을 Null로 세팅함

  • Restricted Option : Foreign Key가 존재하면 Master 레코드를 삭제할 수 없음.

4. Data Type

  • 데이터 형을 제한함으로서 데이터 무결성을 유지함

5. Check 제약

  • 데이터를 추가할 때마다 SQL 서버가 해당 값이 해당 컬럼들에 지정된 Check 제약을 위배하는지를 검사함으로써 데이터 무결성 유지

6. Default

  • 특정 컬럼에 대해 명시적으로 값을 입력하지 않은 경우에 SQL 서버가 자동적으로 지정도니 값을 삽입할 수 있도록 함으로써 데이터 무결성 유지
  • INSERT 또는 UPDATE 에서 DEFAULT 키워드를 사용할 수 있음

7. Trigger

  • 테이블의 내용을 변경하려는 특정 사건(DB 연산)에 대해서 DBMS가 미리 정의된 일련의 행동(DB 연산)들을 수행하는 연산 메커니즘

  • DBMS 서버에 의해 자동적으로 호출됨

  • 데이터에 대한 변경을 시도할 때마다 자동적으로 호출됨(데이터의 변경 전 상태와 변경 후의 상태를 사용)

  • 트랜잭션의 철회(Rollback)와 같은 동작을 수행할 수 있음

  • 저장 프로시져의 특별한 형태로서 SQL의 모든 기능을 이용할 수 있음

  • 참조 무결성을 위해 사용될 수도 있음. 참조 무결성이 위배되는 경우에 원하는 동작을 하도록 트리거를 구성하면 됨.

0개의 댓글

관련 채용 정보