데이터베이스/아는 만큼 보이는 데이터베이스 설계와 구축 3

7. 엔티티타입 도출 방법

엔티티타입 도출 방법 - 명사형 도출: 장표나 업무기술서 등에서 명사를 구분하여 이것을 엔티티타입 후보로 삼은 다음 일정한 기준에 의해 판단하는 방법. -> 초기에 도출할 때 가장 많이 사용. 도출 과정에서 주관이 개입되어 오류 범할 위험 존재. - 정규화 이용: 정규화를 하려면 우선 해당 업무에서 발생하는 데이터들을 장표의 표현 방법에 의해 나열. 그 다음 1차, 2차, 3차, BCNF, 4차, 5차 정규화 적용. -> 많은 데이터를 장표 기준에 맞추기까지 해서 배열하는 작업은 실제 프로젝트에서 거의 실현 불가능. - 엔티티타입 구분에 의한 4-STEP 데이터 모델링(구조 -> 업무 흐름 -> 기술적 모델링 -> 모델 검토): 기본 엔터티타입을 먼저 도출하여 모델링 툴에 나열, 중심 엔티티타입을 도출하..

2. 식별자 관계와 비식별자 관계 설정

식별자 - 부모 테이블 PK가 자식 테이블 FK이자 기본키로 사용 비식별자 - 부모테이블 PK가 자식 테이블 일반 컬럼이나 외래키 컬럼에 저장 식별자 관계만을 이용해 데이터 모델링을 전개 시, PK 속성의 숫자가 증가 비식별자 관계만을 이용해 데이터 모델링 전개 시, 테이블 간의 과다한 조인을 유발하여 조인에 의한 성능 저하 데이터 모델링 수행에서 식별자/비식별자 관계의 구분 설정은 데이터 모델링 초기 단계인 분석 단계에서부터 이미 고려된다고 봐도 된다. 관계 설정에 따라 자식의 PK 구성이 달라질 뿐만 아니라 업무적 특징에 따라 논리적인 관계가 엔티티 사이 형성 비식별자관계 선정 기준(관계분석 -> 관계의 강/약 분석 -> 자식테이블 독립 PK 필요 -> SQL 복잡도 증가 개발생산성 저하) 식별자관계..

1. PK 컬럼 순서, 대충하지 말자

데이터베이스 생성 시 분석 - 설계 - 구축 - 테스트 - 이행 이 때 데이터 모델링 툴을 이용해 모델을 만들고 DDL을 생성하기 때문에 설계 단계에서 데이터베이스 생성 시 PK 컬럼의 순서는 그다지 신경쓰지 않고 생성하게 되는 경우가 많다. 그런 경우 다음과 같은 문제가 발생할 수 있다. 1. 인덱스 구성에서 의도하지 않은 순서의 Primary Key Unique Index가 생성(데이터 무결성이 깨질 수 있다) 2. 그에 따라 조회 SQL 실행 시 성능 저하 현상 발생 3. 많은 인덱스가 생성되므로 입력/수정/삭제 시 불필요한 내부 작업이 증가해 성능에 악영향 -> 이 문제를 해결하려면 테이블 생성 전에 SQL Where 절을 분석하여 엔티티타입의 PK 컬럼 순서를 조정하는 작업을 해야 한다. 설계 ..