no image
[SQLD] 9. 대량 데이터에 따른 성능
제 4절 대량 데이터에 따른 성능 1. 대량 데이터 발생에 따른 테이블 분할 개요 대량의 데이터가 하나의 테이블에 집약되어있고, 하나의 하드웨어 공간에 저장되어 있으면 성능저하를 피하기 쉽지 않다. 처리 하는 일의 양이 한군데에 몰리는 현상은 어떤 업무에 있어서 중요한 업무에 해당되는 데이터가 특정 테이블에 있는 경우에 발생이 되는데 이런 경우 트랜잭션이 분산 처리될 수 있도록 테이블단위에서 분할의 방법을 적용할 필요가 있는 것이다. 하나의 테이블에 대량의 데이터가 존재하는 경우에는 인덱스의 Tree 구조가 너무 커져 효율성이 떨어져 데이터를 처리(입력, 수정, 삭제, 조회)할 때 디스크 I/O를 많이 유발하게 된다. 또한, 인덱스를 생성할 떄 인덱스의 크기가 커지게 되고 그렇게 되면 인덱스를 찾아가는 ..
2016.08.05
no image
[SQLD] 8. 반정규화와 성능
제 3절 반정규화와 성능 1. 반정규화를 통한 성능향상 전략 가. 반정규화의 정의 반정규화(=역정규화, De-Normalization)는 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능향상과 개발과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델리의 기법을 의미한다. 즉, 데이터를 중복하여 성능을 향상시키는 기법이며, 더 넓은 의미의 반정규화는 성능을 향상시키기 위해 정규화된 데이터 모델에서 중복, 통합, 분리 등을 수행하는 모든 과정을 포함하게 된다. 데이터 무결성이 깨질 수 있는 위험성이 있는 반정규화를 적용하는 이유는 데이터를 조회할 때 디스크 I/O량이 많아서 성능이 저하되거나 경로가 너무 멀어 조인으로 인한 성능저하가 예상되거나 칼럼을 계산하여 읽을 때 성능이 저하될 것이..
2016.08.04
no image
[SQLD] 7. 정규화와 성능
제 2절 정규화와 성능 1. 정규화를 통한 성능 향상 전략 데이터 모델링을 하면서 정규화를 하는 것은 기본적으로 데이터에 대한 중복성을 제거해주고 데이터가 관심사별로 처리되는 경우가 많기 때문에 성능이 향상되는 특징을 가지고 있다. 물론 조인이 많이 발생하여 성능저하가 나타나는 경우도 있지만 이런 부분은 사례별로 유의하여 반정규화를 해야한다. 정규화를 수행한다는 것은 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반 속성을 의존자로 하여 입력/수정/삭제 이상을 제거하는 것이다. 데이터의 중복속성을 제거하고 결정자에 의해 동일한 의미의 일반속성이 하나의 테이블로 집약되므로 한 테이블의 데이터 용량이 최소화 되는 효과가 있다. 따라서 정규화된 테이블은 데이터를 처리할 때 속도가 빨라질 수도 있..
2016.08.04
no image
[SQLD] 6. 성능 데이터 모델링의 개요
제 1절 성능 데이터 모델링의 개요 1. 성능 데이터 모델링의 정의 성능이 저하되는 데이터 모델- 잘못 설계된 데이터 모델 구조- 대용량 데이터를 가진 구조- 인덱스의 특성을 무시한 인덱스 생성 성능 데이터 모델링데이터 베이스 성능 향상을 목적으로 설계 단계의 데이터 모델링 때 부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것 - 정규화를 통해서 수행- 인덱스의 특징을 고려하여 칼럼의 순서를 변형- 대량의 데이터 특성을 고려햐여 정규화 됬다고 하더라도 테이블을 수직 또는 수평분할하여 적용- 논리적인 테이블을 물리적인 테이블로 전환할 때 데이터 처리의 성격에 따라 변환 2. 성능 데이터 모델링 수행시점 성능향상을 위한 비용은 프로젝트 수행 중에 있어서 사전에 할수록 비용이 적게 든다.특..
2016.08.04
no image
[SQLD] 5. 식별자(Identifiers)
제 5절 식별자 1. 식별자(Identifiers) 개념 여러 개의 집합체를 담고 있는 하나의 통에서 각각을 구분할 수 있는 논리적인 이름이 있어야 한다. 이 구분자를 식별자(Identifier)라고 한다. 식별자란 하나의 엔티티에 구성되어 있는 여러 개의 속성 중에서 엔티티를 대표할 수 있는 속성을 의미하며 하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 한다. 여기서 식별자와 키를 동일하게 생각하는 경우가 있는데 식별자라는 용어는 업무적으로 구분이 되는 정보로 생각할 수 있으므로 논리 데이터 모델링 단계에서 사용하고, 키는 데이터베이스 테이블에 접근을 위한 매개체로서 물리 데이터 모델링 단계에서 사용한다. 2. 식별자의 특징 - 주식별자에 의해 엔티티 내에 모든 인스턴스들이 유일하게 구분되어야..
2016.08.01
no image
[SQLD] 4. 관계(Relationship)
제 4절 관계(Relationship) 1. 관계의 개념 가. 관계의 정의 사전적 정의 : 상호 연관성이 있는 상태데이터 모델에 의한 정의 : 엔티티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태 나. 관계의 패어링 각각의 엔티티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여하는 형태를 관계 패어링(Relationship Paring)이라 한다. 관계는 엔티티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고 이것의 집합을 관계로 표현한다는 것이다. 최초의 ERD 모델에서는 관계는 속성을 가질 수 있었으나 요즘의 ERD 에서는 관계를 위해 속성을 도출하지 않는다. 관계의 표현에는 이항관계(Binary Relationship), 삼..
2016.08.01
no image
[SQLD] 3. 속성(Attribute)
제 3절 속성(Attribute) 1. 속성의 개념 사전적인 의미 : 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것데이터 모델링 관점에서의 의미 : 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위 - 업무에서 필요로 함 - 의미상 더 이상 분리되지 않음- 엔티티를 설명하고 인스턴스의 구성요소가 됨 2. 엔티티, 인스턴스와 속성, 속성값에 대한 내용과 표기법 가. 엔티티, 인스턴스, 속성, 속성값의 관계엔티티에는 두 개이상의 인스턴스가 존재하고 각각의 엔티티에는 고유의 성격을 표현하는 속성정보를 두 개 이상 갖는다.엔티티 내에 있는 하나의 인스턴스는 각각의 속성들에 대해 한 개의 속성값 만을 가질 수 있다. 예를 들면, ..
2016.08.01
no image
[SQLD] 2. 엔티티(Entity)
제 2절 엔티티(Entity) 1. 엔티티의 개념 Peter Chen (1976) : 변별할 수 있는 사물C.J Data (1986) : 데이터베이스 내에서 변별 가능한 객체James Martin (1989) : 정보를 저장할 수 있는 어떤 것Thomas Bruce (1992) : 정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등 위 개념들의 공통점- 엔티티는 사람, 장소, 물건, 사건 개념 등의 명사- 엔티티는 업무상 관리가 필요한 관심사- 엔티티는 저장이 되기 위한 어떤 것(Things) 엔티티란 "업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)"이다. 이 엔티티는 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서그 대상들 간에 동질성을 지닌 인..
2016.08.01
no image
[SQLD] 1. 데이터 모델의 이해
SQLD를 공부하기에 앞서서 SQL-D 폴더에 업데이트 하는 내용의 출처는 모두 http://www.dbguide.net 이곳에서 가져왔다. 제 1절 데이터 모델의 이해 1. 모델링의 이해 가. 모델링의 정의 1) Webster 사전에 의한 정의가설적 또는 일정 약식에 맞춘 표현 또는 어떤 것에 대한 예비 표현으로 그로부터 최종대상이 구축되도록 하는 계획으로서 기여하는 것2) 복잡한 현실세계를 단순화 시켜 표현하는 것3) 모델이란 사물 또는 사건에 관한 양상이나 관점을 연관된 사람이나 그룹을 위하여 명확하게 하는 것4) 모델이란 현실세계의 추상화된 반영 나. 모델링의 특징1) 추상화 : 현실세계를 일정한 형식에 맞추어 표현을 함, 즉, 다양한 현상을 일정한 양식인 표기법에 의해 표현2) 단순화 : 복잡한..
2016.08.01