본문 바로가기

Self Study/SQLD20

[SQLD] 반정규화(De-Normalization) 반정규화(De-Normalization)란? - 정규화된 엔터티, 속성, 관계에대해 시스템 성능 향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법 - 조회시 디스크 I/O거 많거나 경로가 멀어 조인에 의한 성능 저하를 막기 위해 수행 * 디스크 I/O : 데이터를 작성 하고 변경 할적에 디스크 즉 하드디스크에 그것이 저장되는 것 - 일반적으로 정규화시 입력/수정/삭제 성능이 향상되며 반정규화시 조인 성능이 향상된다. 반 정규화 절차 1) 반정규화 대상 조사 (범위처리빈도수, 범위, 통계성) - 자주 사용되는 테이블 에 접근하는 프로세서의 수가 많고 항상 일정한 범위만을 조회하는 경우 - 테이블에 대량의 데어터가 있고 대량의 데이터 범위를 자주 처리하는 경우에 처리범.. 2022. 11. 4.
[SQLD] 식별자(Identifiers) 식별자(Identifiers) 란? 하나의 엔터티에 구성되어 있는 여러개의 속성중에서 엔터티를 대표할 수 있는 속성을 의미하며 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야한다. 식별자의 특징 특징 내용 예시 유일성 주식별자에 의해 모든 인스턴스들이 유일하게 구분됨 사원번호가 주식별자일 경우 모든 직원들에 대해 개인별로 고유하게 부여되어야한다. 최소성 주식별자를 주성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야함 사원번호만으로도 고유한 구조인데 ' 사원분류코드+ 사원번호 ' 로 식별자까지 구성될 경우 부적절한 주식별자 구조이다. 불변성 지정된 주식별자의 값은 자주 변하지 않아야함. 변하면 이전 기록이 말소됨 사원번호이 값이 변한단다는 의미는 퇴사하고 새로운 직원이 들어온다는 의미와 같다.. 2022. 11. 4.
[SQLD] 정규화(Normalization) 정규화(Normalization)란? - 다양한 유형의 검사를 통해서 데이터 모델을 좀 더 구조화하고 개선시켜 나가는 절차 - 관계형 스키마를 더 좋은 구조로 정제해 나가는 과성 - 함수적 종속성(속성 간의 관계 분석)을 기반으로 해서 일정한 조건을 만족하는 형태로 엔터티를 분해하는 과정 * 함수적 종속성 : 속성들 간의 관련성, 이를 이용하여 이상 현상이 일어나지 않는 테이블(릴레이션)로 설계하는 과정이 정규화이다. 정규화 종류 정규화내용 1차 정규화 복수의 속성값을 갖는 속정을 분리(중복 제거) 2차 정규화 주식별자에 종속적이지 않는 속성을 분리, 부분종속 속성을 분리 3차 정규화 속성에 종속적인 속성의 분리, 이전종속 속성을 분리 보이스-코드 정규화 다수의 주식별자 분리 4차 정규화 다가 종속 속성.. 2022. 11. 3.
[SQLD] 성능데이터 모델링 성능 데이터 모델링 데이터베이스 성능향상을 목적으로 설계단계의 데이터모델링 때 부터 정규화, 반정규와, 테이블통합, 테이블분할, 조인구조, PK, FK 등 여러가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 성능 데이터 모델링 수행시점 - 사전에 할 수록 비용이 들지 않는다. - 분석/설계단계에서 성능을 고려한 데이터 모델링을 수행하면, 나중에 성능저하때문에 발생하는 재업무 비용을 최소화 할 수 있다. 성능 데이터 모델링 고려사항 1) 데이터 모델링을 할때 정규화를 정확하게 수행 2) 데이터 베이스 용량산정을 수행 3) 데이터베이스에 발생되는 트랜잭션의 유형을 파악 4) 용량과 트랜잭션 유형에 따라 반정규화를 수행 5) 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등을 .. 2022. 11. 3.
[SQLD] 관계(Relationship) 관계(Relationship)의 정의 - 엔터티의 인스턴스 사이의 논리적 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태, 관계의 페어링의 집합 예 ) 강사 - 가르친다(관계) - 수강생 관계(Relationship)의 페어링(Pairing) - 인스턴스간의 개별적 관계 = 페어링 ---> '집합' 의 논리적 표현이 즉, '관계' - 인스턴스간 관계가 설정되어있는 어커런스(Occurence)를 관계 페어링 이라고 하며, 이러한 관계 페어링의 집합을 관계! 관계의 분류 - 존재에 의한 관계 이벤트나 액션, 행위에 의한 것이 아니라 단순히 소속되어 있기 때문에 나타나는 관계 - 행위에 의한 관계 특정 행위에 의해 관계가 발생하는 관계 관계의 표기법 - 관계명(Membership): 관계.. 2022. 11. 2.
[SQLD] 속성(Attribute) 속성(Attribute)이란? - 서물의 성질, 본질적인 성질 - 업무에서 필요로하는 정의 - 의미상 더이상 분리되지 않는 정의 - 엔터티를 설명하고 인스턴스를 구성하는 요소 엔터티, 인스턴스와 속성, 속성값에 대한 내용과 표기법 - 엔터티, 인스턴스, 속성, 속성값의 관계 - 하나의 엔터티는 여러개의 엔터티를 가지고 엔터티는 한개의 속성값만 가질 수 있음 - 하나의 엔터티는 2개 이상의 인스턴스 집합, 2개 이상의 속성 * 속성의 표기법 Barker 표기법 중 * 입력시 입력값이 반드시 있어야 하고(NOT NULL), ㅇ은 있어도 되고 없어도 된다(NULL). 속성의 특징 - 반드시 해당 업무에서 필요하고 관리하고 하는 정보이어야 한다.(예: 강사의 교재 이름) - 정규화 이론에 근간하여 정해진 주식별.. 2022. 11. 2.