본문 바로가기

이전 게시물들

[DB] 데이터베이스 논리 설계 - 데이터베이스 구축 준비

1. ERD 전환: 테이블의 정규화, 데이터베이스의 성능, 무결성을 위한 규칙 고려

- 관계형 테이블 전환

: 논리적 데이터 모델링을 통해 산출한 ERD를 관계형 데이터베이스로 구축할 수 있도록 테이블 관계도로 전환하는 작업

- 반정규화

: 정규화된 엔티티타입, 속성, 관계를 시스템의 성능 향상, 개발과 운영을 단순화하기 위해 데이터 모델을 통합하는 프로세스를 의미

- 무결성 제약 정의

 

1.1 무결성 제약 정의

: 데이터 베이스의 가장 중요한 역할 중 하나인 정보의 정확한 저장, 정합성을 유지하기 위해 데이터베이스에서 지원하는 무결성 보존 기능을 이용하거나 애플리케이션 로직에 의해 적용

- FK 제약이 걸려 있는 컬럼들은 인덱스를 걸어줄 것을 권유(풀 스캔으로 인한 성능 저하 해결)

 

1.2 종류

1.2.1 입력 참조 무결성

- 각 테이블에 레코드가 생성될 때 자신이 참조하고 있는 테이블의 PK에 대해 데이터의 정합성을 일치시켜 주는 기능

- 보통 애플리케이션에서 구현

- 의존: 자신의 테이블에 데이터를 입력할 때, 참조하고 있는 테이블의 PK가 존재해야만 데이터 입력이 

-자동: 자신의 테이블에 데이터를 입력할 때, 참조하고 있는 테이블의 PK가 존재하지 않으면 PK를 생성하고 자신의 테이블에 데이터를 생성한다.

- 지정: 사용자가 정의해 놓은 일정한 조건을 만족한 이후에 자신의 레코드를 입력한다.

- Null: 자신 테이블의 레코드를 입력할 때 참조하는 테이블의 PK가 없어도 그대로 입력한다. PK 컬럽값은 Null이 된다.

- 미지정: 자신 테이블의 레코드를 입력할 때 참조하는 테이블의 PK가 없어도 그대로 입력한다. FK 컬럼값은 Null이 된다.

 

1.2.2 수정 참조 무결성

- 자신이 참조되는 모든 테이블의 FK 정보와 일치를 위해 자신의 PK가 수정되면 관련된 모든 테이블의 FK도 수정하여 데이터이 정합성을 유지하는 기능

- FK CONSTRAINT

- 제한: 자신의 테이블의 PK를 수종하면 자신을 참조하는 테이블의 FK가 없어야 한다.

- 연쇄: 자신의 테이블의 PK를 수정하면 참조되는 모든 테이블의 FK를 수정하고 자신의 PK도 수정한다.

1.2.3 삭제 참조 무결성

- 자신의 PK가 삭제될 때 관련된 모든 테이블의 FK를 기본값이나 Null로 수정하여 데이터의 정합성을 유지하는 기능

- 일반적으로 DBMS에서 지원하는 경우가 많다.

- 제한: 자신의 테이블의 레코드를 삭제하려면 자신을 참조하는 테이블의 레코드가 없어야 한다.

- 연쇄: 자신의 테이블 레코드를 삭제하려면 참조되는 모든 테이블의 레코드를 삭제하고 자신을 삭제한다.

- 기본: 자신의 테이블의 레코드를 삭제할 때 참조되는 모든 테이블의 레코드를 기본값으로 바꾼 후 자신의 레코드를 삭제한다.

- 지정: 사용자가 정의해 놓은 일정한 조건을 만족한 이후에 자신의 레코드를 삭제한다.

- Null: 자신의 테이블의 레코드를 삭제할 때 참조되는 모든 ㅔ이블의 레코드를 기본값으로 바꾼 후 자신의 레코드를 삭제한다.

- 미지정: 자신의 테이블의 레코드를 삭제해도 특별한 참조 무결성 규칙을 적용하지 않는경우. 조건없이 삭제 가능

 

2.1 트랜잭션 뷰 설계

트랜잭션: 데이타베이스에서 행해지는 작업의 논리적인 단위.

트랜잭션 분석의 목적: 테이블에 발생하는 업무 트랜잭션 양에 따라 데이타베이스의 용량을 산정하여 DB의 구조를 최적화

트랜잭션 분석의 이용: 용량산정의 근거자료, 디스크 구성의 이용, 데이타베이스와 연결되는 채널의 분산

 

3. 분산 설계

 

무결성 제약 정의

 

정규화, ER다이어그램

 

학생 강사