인덱스 설계 & 파티션 설계 (6)
·
데이터 모델링/04. 물리 모델링
인덱스 설계와 파티션 설계는 SQL 튜닝 부분을 확인해주세요! 인덱스 설계: https://developer-soyun.tistory.com/category/SQL%20%ED%8A%9C%EB%8B%9D/Ch03%20%EC%9D%B8%EB%8D%B1%EC%8A%A4%20%ED%8A%9C%EB%8B%9D 'SQL 튜닝/Ch03 인덱스 튜닝' 카테고리의 글 목록developer-soyun 님의 블로그 입니다.developer-soyun.tistory.com 파티션 설계https://developer-soyun.tistory.com/125
성능을 고려한 데이터 구조 (5)
·
데이터 모델링/04. 물리 모델링
집계/요약 테이블 추가처리할 데이터 양을 줄이는 방법대량의 데이터를 실시간으로 읽어, 일부 데이터를 집계하는 경우 집계 테이블을 추가할 수 있다컬럼 추가성능 문제 때문에 정규화의 장점을 일부 포기하고, 반정규화하거나 중복 컬럼을 추가해야 하는 경우도 있다부모 테이블에서 인조 식별자를 기본키로 설계한 경우, 기본키를 상속받으면서 본질 식별자에 해당하는 컬럼 추가자주 조회 조건으로 사용하는 컬럼을 자식 테이블에 추가하는 경우중복컬럼 추가양쪽 테이블에 분산된 조회 조건을 한 쪽 테이블에서 같이 체크하여 처리범위를 줄일 수 있도록 데이터 구조를 변경부모 테이블 중복 컬럼 추가부모 테이블에서 자식 테이블의 집계된 값이나 최종 데이터 값을 가지고 있다면, 매번 자식 테이블에서 최소/최대, 건수/합계, 최종 데이터 ..
데이터 무결성 설계 (4)
·
데이터 모델링/04. 물리 모델링
데이터 무결성데이터를 저장하고 관리할 때 데이터의 정확성과 일관성을 유지하기 위해 사전에 정의한 규칙이다1. 실체 무결성(Entity Integrity) 2. 영역 무결성(Domain Integrity) 3. 참조 무결성 (Referential Integrity) 실체 무결성 (Entity Integrity)기본키와 관련된 제약조건으로는 모든 실체는 식별자를 가지고 있으며, 그 식별자 값은 NOT NULL이고, 실체 내에서 유일한 값이어야 한다영역 무결성 (Domain Integrity)데이터의 속성 값들은 정해진 데이터 범위를 벗어나지 않아야 한다데이터타입, 길이, 유효값을 일관되게 유지해야 한다NULL이 아니라 0으로 하면 평균을 구할 때 문제가 될 수 있다SQL Server에서는 NULL과 빈 값(..
컬럼 설계 (3)
·
데이터 모델링/04. 물리 모델링
컬럼은 관계형 데이터베이스의 테이블을 구성하는 열을 의미하며, 데이터타입과 길이를 가진다 속성-컬럼 변환논리 모델 속성을 컬럼으로 1:1 변환한다시스템에서 데이터에 대한 변화를 추적하고, 트랜잭션을 관리하기 위해 시스템 컬럼을 추가할 수 있다시스템 컬럼은 모든 테이블에 공통으로 추가하며, 테이블 가장 마지막에 위치하도록 한다 (있으면 좋으니 추가하도록 하자!)ex) 최초등록일시, 최종수정일시 등등데이터 타입 및 길이 지정 이슈 1) CHAR vs VARCHAR2VARCHAR2만 사용하는 것이 좋다CHAR을 쓰고 싶다면 하나짜리 ex) Y/N 에는 괜찮다이슈 2) 일자(YYYYMMDD) 컬럼을 VARCHAR2(8) vs DATE형VARCHAR2(8)개발자들이 선호하는 형식날짜형 데이터타입개발 시 날짜를 문..
관계 설계 (2)
·
데이터 모델링/04. 물리 모델링
기본적인 관계상속받은 컬럼은 참조하는 컬럼과 동일한 데이터타입과 길이를 가져야 한다상호배타적 관계자식 테이블에서 상호배타적 (Exclusive-OR) 관계를 설계하는 방법1. 참조 컬럼을 한 컬럼으로 통합하여 설계하는 방법2. 개별 컬럼으로 분리하는 방법컬럼을 통합하는 방법상호배타적 관계에 참여한 모든 관계를 동일한 컬럼(고객번호)으로 변환어떤 테이블을 참조하는지 별도 구분 컬럼(고객유형코드)을 추가하여 구분통합 컬럼은 NOT NULL을 지정할 수 있다인덱스 수를 최소화 할 수 있다컬럼을 분리하는 방법상호배타적 관계를 개별 컬럼(개인번호/법인번호/단체번호)으로 변환한다어떤 테이블을 참조하는지는 컬럼 값의 유무로도 판단할 수 있으나, 별도 구분 컬럼(고객유형코드)을 추가하여 구분한다장점: 해당 관계에 대해..
물리 모델링이란 (1)
·
데이터 모델링/04. 물리 모델링
물리모델링논리 데이터모델을 데이터베이스 종류에 맞게 데이터를 저장할 수 있는 스키마 구조로 변환하는 과정엔티티 및 서브타입을 테이블로 변환속성을 컬럼으로 변환하여 데이터타입 및 길이 등을 지정관계 및 무결성 설계데이터베이스 성능 향상을 위해 엔티티를 반정규화하거나 중복 컬럼을 추가하여 설계ex) Computed Column 추가
데이터 표준화 (5)
·
데이터 모델링/03. 논리 모델링
데이터 표준화데이터 항목 (틀) 에 대한 명칭과 의미를 정한다실제 정하고 활용하는 데이터 값(내용)에 대한 형식 및 범위를 규정하는 활동의사소통을 원활하게 할 수 있다개발 생산성을 높일 수 있다표준단어는 독립적인 형태로 기본단어 중 분류단어가 도메인 단위가 된다도메인(분류단어)는 여러 인포타입을 가지며, 인포타입은 DBMS의 데이터타입과 길이를 포함표준용어는 표준단어들의 조합이며, 도메인의 특정인포 타입을 가지게 된다단어 표준화단어는 용어를 구성하는 최소 단위의 낱말을 의미한다단어 표준화는 업무 또는 IT에서 사용하는 단어를 식별하고 정의하는 과정이다ex) 하청업체 X, 협력업체 O도메인 표준화 (도메인 사전 p161쪽 참고하기)도메인은 데이터에 대한 형식(문자형, 숫자형, 날짜형)과 범위 (타입, 길이..
속성 도출 및 정의 (4)
·
데이터 모델링/03. 논리 모델링
논리 모델링 단계에서 속성에 대한 설계는 엔티티에서 관리하는 속성을 도출하여 식별하고 정의하는 과정이다업무 요건을 만족할 수 있도록 모든 속성을 도출해야 하며, 속성명, 속성정의나 설명, 필수여부, 데이터 타입 등을 정의해야 한다속성 도출속성을 도출하고 식별하는 과정은 요구사항이나 형행 ERD 등 엔티티를 도출하고 식별하는 과정과 비슷하다https://developer-soyun.tistory.com/90 엔티티 정의 및 상세화를 참조하세요!속성명 부여속성을 가장 명확하게 설명할 수 있는 명칭을 부여한다간결하면서 너무 일반적이지 않아야 한다표준단어들의 조합으로 구성한다속성 정의속성에 대한 설명이나 데이터 발생 규칙 등을 기술한다가급적이면 일괄 작업을 통해 불필요한 작업을 최대한 줄여야한다중요한 속성에 대..
관계 도출 및 정의 (3)
·
데이터 모델링/03. 논리 모델링
관계란?!엔티티와 엔티티 간의 관계를 말한다종속관계업무 내에서 중요 엔티티나 상세 내역 등 행위 엔티티 간에 자주 나타난다부모 엔티티의 식별자를 주 식별자로 상속받는다 (식별관계)참조관계핵심 엔티티와 중요 엔티티, 중요 엔티티와 중요 엔티티 간의 관계에 해당한다참조되는 엔티티의 주 식별자를 일반 속성으로 상속받는다 (비식별관계)관계 도출관계를 업무 행위의 성격에 따라 행위의 주체, 대상, 상세, 인과, 역할/자격, 구성 참조 관계 등으로 구분할 수 있다관계 정의엔티티 간의 관계수와 선택성, 식별자 상속을 정의한다한 엔티티를 기준으로 상태 엔티티를 바라 보고 문장으로 기술하여 관계수와 선택성을 선별하고, 반대로 다른 엔티티에서도 상대 엔티티와의 관계를 정의한다EX) 1:1 필수-필수 관계, 1:1 필수-선..
엔티티 정의 및 상세화 (2)
·
데이터 모델링/03. 논리 모델링
핵심 엔티티 (Key Entity, 기준정보)업무처리와 상관없이 독립적으로 이미 정의한 엔티티거나, 업무를 위해 미리 정의한 엔티티데이터 모델링 과정에서 가장 먼저 분석해야 할 대상타 엔티티 유형의 존재 유무와 관계없이 독립적으로 존재하며 식별할 수 있다 ⭐ 핵심 엔티티 분류 (외우기)유형 및 분류 (Type & Category)별도 엔티티로 구성할 수도 있고, 여러 분류를 일반화하여 공통코드로 통합하여 관리할 수도 있다 분류체계는 자원을 식별하고, 판단기준이 되는 등, 업무 전체 영역에 미치는 영향이 크다 (대/중/소 기준)업무규칙 및 지식 (Rule & Knowledge)업무규칙이나 지식 등을 데이터로 관리하면 업무 요건이 변경되었을 때 프로그램을 수정하지 않고도 데이터를 반영하여 일정 부분 손쉽게 ..