IT 79

[SQLD] 반정규화와 성능

반정규화 반정규화 - 정규화된 엔터티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법을 의미한다. - 데이터베이스서버가 분리 되어 분산데이터베이스가 구성되어 있을 때 반정규화를 통해 성능을 향상시킬 수 있다. * 협의의 반정규화 - 데이터를 중복하여 성능을 향상시키기 위한 기법이라고 정의할 수 있다. * 넓은 의미의 반정규화 - 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든과정. Because. 데이터를 조회할때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나 칼럼을 계산하여 읽을 때 성능이 저하될 것이 예상되는 경우 반정규화를 수행하게 된..

[SQLD] 정규화와 성능

정규화란? - 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반속성을 의존자로 하여 입력/수정/삭제 이상을 제거하는 것이다. - 데이터의 중복속성을 제거하고 결정자에 의해 동일한 의미의 일반속성이 하나의 테이블로 집약되므로 한 테이블의 데이터 용량이 최소화되는 효과가 있다. - 일반적으로 정규화를 수행해야 데이터처리의 성능이 향상되며 데이터의 조회처리 트랜잭션시에 성능저하가 나타날 수 있음. - 데이터를 원자적으로 만드는 것이 테이블을 정규화 하는 첫 단계이다. Therefore - 일반적으로 정구화가 잘 되어있으면 입력/수정/삭제의 성능이 향상되고 반정규화를 하면 조회의 성능이 향상된다고 인식 할 수 있다. - but! 데이터 모델링을 할 때 반정구화만이 조회 성능을 향상시킨다는 고정관념..

[SQLD] 성능 데이터 모델링의 개요

성능데이터 모델링 성능 데이터 모델링 이란?! - 데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 통합, 테이블 분할, Join 구조, PK, FK, 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영 될 수 있도록 하는 것으로 정의할 수 있다. 가능 방안 - 정규화를 통해서 수행. - 인덱스의 특징을 고려해서 칼럼의 순서도 변형 가능 - 대량의 데이터 특성에 따라 비록 정규화된 모델이라도 테이블을 수직 또는 수평분할하여 적용. - 논리적인 테이블을 물리적인 테이블로 전환할 때 데이터 처리의 성격에 따라 변환하는 방법. 성능 데이터 모델링 고려사항 1) 데이터 모델링을 할 때 정규화를 정확하게 수행한다. - 정규화된 모델이 데이터를 주요 관심사 별로 분산시..

[SQLD] 데이터 모델링관점과 분류

데이터 모델링 관점과 분류 정보 시스템을 모델링할 때 세 관점 * 데이터 관점 - 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지에 대해서 모델링 하는 방법(What, data) * 프로세스 관점 - 업무가 실제하고 있는 일은 무엇인지 또는 무엇을 해야하는지를 모델링하는 방법(How,Process) * 데이터와 프로세스의 상관관점 - 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링 하는 방법 (Interaction), (상호 연관성 파악) 데이터 모델링의 세 가지 요소 1) 업무가 관여하는 어떤 것(Things) 2) 어떤 것이 가지는 성격(Attributes) 3) 업무가 관여하는 어떤 것 간의 관계(Relationships) 발생시점에 따른 엔터티의 분..

[SQLD] 식별

식별자란(Identifiers) 식별자란?! - 식별자의 개념을 알기 위해선 일단은 엔터티와 인스턴스의 개념을 명확히 알고있어야한다. - 엔터티 -> 인스턴스들의 집합. - 여러 개의 집합체를 담고 있는 하나의 통에서 각각을 구분할 수 있는 논리적인 이름이 필요하다. 이로인해 생긴 개념이 식별자이다. - 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미하며 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재해야한다. - 식별자는 업무적으로 구분이 되는 정보로 논리데이터 모델링 단계에서 사용한다. - 엔터티내에서 인스턴스들을 구분할 수 있는 구분자. 특징 * 주식별자 특징 특징 내용 비고 유일성 주 식별자에 의해 엔터티 내에 모든 인스턴스들을 유일하게 구분한다. Ex..

[SQLD] 관계(Relationship)

관계(Relationship) 관계(Relationship)란?! - 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이부여된 상태. - 엔터티와 엔터티 간 연관성을 표현하기 때문에 엔터티의 정의에 따라 영향을 받기도 하고, 속성 정의 및 관계 정의에 따라서도 다양하게 변할 수 있다. - 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것. 관계의 페어링 - 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 말함 (인스턴스 각각은 자신의 연관성을 가지고 있을 수 있다.) ex) 관계의 분류 * 존재에 의한 관계 - 예로는 부서에 사원이 소속되는 것.(부서아래에 부서에 소속된 사원이 있는것이므로 존재.) * 행위에 의한 관계 -..

[SQLD] 속성(Attribute)

Attribute(속성) Attribute란?! - 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위(엔터티는 속성들에 의해 설명된다.) 간단한 정의 ○ 업무에서 필요로 한다 ○ 의미상 더 이상 분리되지 않는다. ○ 엔터티를 설명하고 인스턴스의 구성요소가 된다. 엔터티, 인스턴스, 속성, 속성값의 관계 - 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 한다. - 한 개의 엔터티는 두 개 이상의 속성을 갖는다. - 한 개의 속성은 한 개의 속성값을 갖는다. The character of Attribute(속성의 특징) - 엔터티와 마찬가지로 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. - 정규화 이론에 근간하여 정해진 주 식별자에 ..

[SQLD] 엔터티(Enterty)

Entity(엔티티) 엔터티란?! - 사람, 장소, 물건, 사건, 개념 등의 명사. - 업무상 관리가 필요한 관심사. - 저장이 되기 위한 어떤 것(Things) Therefore. Entitiy란 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Things) ->업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합 -> 인스턴스의 집합 -> 엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성을 갖는다. Features of the entity ( 엔터티의 특징 ) - 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. (업무에서 필요로 하는 정보) - 유일한 식별자에 의해 식별이 가능..

[SQLD] 데이터 모델링의 이해

데이터 모델링의 이해 모델이란? -> 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형이라고 할 수 있다. -> 모델을 만들어가는 일 자체를 모델링 이라고 한다. 모델링의 다양한 정의 * 가설적 또는 일정 양식에 맞춘 표현 * 어떤 것에 대한 예비표현으로 그로부터 최종대상이 구축되도록 하는 계획으로서 기여하는 것. * 복잡한 '현실세계'를 단순화 시켜 표현하는 것. 모델링의 특징 * 추상화 - 현실세계를 일정한 형식에 맞추어 표현을 한다는 의미, 다양한 현상을 일정한 양식인 표기법에 의해 표현한다는 것. * 단순화 - 쉽게 이해할 수 있도록 하는 개념 * 명확화 - 누구나 이해하기 쉽게 하기 위해 정확하게 현상을 기술하는 것을 의미 요약한다면?! 모델링은 '현실세계를 추상화, 단순화, 명확하기..