Database 12

챕터02. 데이터 모델과 성능 - 2.4 대량 데이터에 따른 성능

대량 데이터발생에 따른 테이블 분할 개요 테이블을 조회할 떄 대량의 데이터가 존재하는 테이블에 많은 트랜잭션이 발생하여 성능이 저하되는 테이블 구조에 대해 수평/ 수직 분할 설계를 통해 성능 저하를 예방할 수 있습니다. 2. 오라클 테이블의 데이터는 Block(8Kb) 단위로 디스크에 저장됩니다. - 컬럼이 많아지게 되면 하나의 로우를 저장 시 물리적인 디스크에 여러 블록에 데이터가 저장될 가능성이 높아집니다. - 그래서 하나의 행(로우)을 읽더라도 여러 개의 블록을 읽어야 하기 때문에 SQL문의 Block I/O 가 많아집니다. - 오라클 DB는 데이터를 저장하는 Disk와 사용자 사이에 자주 사용하는 데이터에 대한 버퍼 캐시를 두어 Block I/O 횟수를 줄여 속도를 향상 시킵니다. 하지만 이 때,..

챕터02. 데이터 모델과 성능 - 2.3 반정규화와 성능

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

챕터02. 데이터 모델과 성능 - 2.2 정규화와 성능

정규화를 통한 성능 향상 전략 정규화를 수행한다는 것은 데이터를 결정하는 결정자에 의해 함수적 종속을 가지고 있는 일반 속성을 의존자로 하여 입력/수정/삭제 이상현상을 제거하는 것이다. 데이터의 중복 속성을 제거하고 결정자에 의해 동일한 의미의 일반 속성이 하나의 테이블로 집약되므로 한 테이블의 데이터 용량이 최소화되는 효과가 있다. 정규화된 테이블은 데이터를 처리할 때 속도가 빨라질 수도 있고 느려질 수도 있는 특성이 있다. - 정규화된 데이터 모델은 조회 시에는 처리 조건에 따라 성능이 향상 혹은 저하된다. - 정규화된 데이터 모델은 입력/수정/삭제 시 무조건 성능이 향상된다. 정규화 용어 용어 설명 정규화 (Normalization) - 함수적 종속성 등과 같은 이론에 근거하여 관계형 데이터베이스 ..

챕터02. 데이터 모델과 성능 - 2.1 성능 데이터 모델링의 개요

성능 데이터 모델링의 정의 성능 데이터 모델링이란 데이터베이스 성능향상을 목적으로 설계단계의 모델링 때부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것으로 정의할 수 있다. 성능 데이터 모델링 수행시점 성능 향상을 위한 비용은 프로젝트 수행 중에 있어서 사전에 할수록 비용이 들지 않는다. 분석 / 설계 단계에서 데이터 모델에 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재 업무 (Rework) 비용을 최소화 할 수 있는 기회를 가지게 된다. 분석 / 설계 단계에서 데이터베이스 처리 성능을 향상시킬 수 있는 방법을 주도면밀하게 고려해야 한다. 성능 데이터 모델링 고려사항 데이터 모델링을 할..

챕터01. 데이터 모델링의 이해 - 1.6 연습문제

※ 정답과 해설을 드래그하시면 정답과 해설을 보실 수 있습니다. 문제 1. 다음 중 정보시스템을 모델링할 때 세 가지 관점에 해당하지 않는 것은? ① 업무가 어떤 데이터와 관련이 있는지 분석 ② 업무가 실제하는 일은 무엇인지 또는 무엇을 해야 하는지 분석 ③ 업무가 처리하는 일의 방법에 따라 데이터가 어떻게 영향을 받는지 분석 ④ 업무를 처리할 수 있는 프로그램 구성을 어떻게 해야 하는지 분석 정답 : ④ 해설 : 데이터 모델링을 할 때 관점은 데이터를 중심으로 모델링하는 것이기 때문에 프로그램 구성과는 거리가 멀다. 문제 2. 데이터 모델링의 세 가지 중요개념에 속하지 않는것은? ① 업무가 관여하는 어떤것 (Things) ② 업무가 관여하는 어떤것의 행위 (Events) ③ 업무가 관여하는 어떤것의 성..

챕터01. 데이터 모델링의 이해 - 1.5 식별자

식별자 (Identifiers) 개념 엔터티는 인스턴스들의 집합이다. 여러 개의 집합체를 담고 있는 하나의 배열에서 각각을 구분할 수 있는 논리적인 이름이 필요한데 이 구분자를 식별자 (Identifier)라고 한다. 엔터티내의 각 인스턴스를 개별적으로 식별하기 위해 사용된다. 고객 (고객번호) 사원 (사원번호) 주문(주문번호) 상품 (상품번호) ※ 식별자는 엔터티내에서 인스턴스들을 구분할 수 있는 구분자이다. 식별의 특징 - 유, 최, 불, 존 주식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분되어야 한다. 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다. 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다. 주식별자가 지정이 되면 반드시 값이 들어와야 한다. 특징..

챕터01. 데이터 모델링의 이해 - 1.4 Relationship의 정의, 패어링, 표기법

관계의 정의 사전적으로 정의하면 상호 연관성이 있는 상태이다. 엔터티 간 논리적인 연관성을 의미한다. 존재에 의한 관계와 행위에 의한 관계로 구분된다. ※ 엔터티 간 논리적인 연관성을 의미하고 존재에 의한 관계와 행위에 의한 관계로 구분된다. 관계의 패어링 관는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이고 이것의 집합을 관계로 표현하는 것이다. 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스 (발생, 사건)로 참여하는 형태를 관계 패어링 (Relationship Paring)이라 한다. - 강사인 박선생은 홍길동과 춘향이에게 강의를 하는 형태로 관계가 표현되어있고 - 김선생은 춘향이게게 강의를 하는 형태로 되어있다. - 이와 같이 엔터티 내에 인스턴스와 인스턴스..

챕터 01. 데이터 모델링의 이해 - 1.3 Attribute의 개념, 특징, 분류

속성 (Attribute)의 개념 업무에서 필요로 한다. 의미상 더 이상 분리되지 않는다. 엔터티를 설명하고 인스턴스의 구성요소가 된다. ※ 속성은 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소 데이터 단위 엔터티, 인스턴스, 속성, 속성값의 관계 한 개의 엔터티는 두 개 이상의 인스턴스 집합이어야 한다. 한 개의 인스턴스는 두 개 이상의 속성을 갖는다. 한 개의 속성은 한 개의 속성값을 갖는다. (1:1관계) ※ 속성은 자신이 속한 엔터티에 대해 자세하고 구체적인 정보를 나타내며 각각의 속성은 구체적인 값(속성 값을 갖는다.) ※ 이름, 주소, 생년월일과 같은 대표 값은 속성이라 하고 박은서, 인천시, 1997년 8월 11일은 속성값이라고 한다. 속성의 표기법 ※..

챕터01. 데이터 모델링의 이해 - 1.2 Entity의 특징과 분류

엔터티의 개념 엔터티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다 엔터티는 업무상 관리가 필요한 관심사에 해당한다. 엔터티는 저장이 되기 위한 어떤 것 (Thing)이다. 엔터티와 인스턴스 : 엔터티는 인스턴스의 집합이라고 할 수 있다. 엔터티 표기법 (Barker 표기법) 엔터티를 표기하는 방법은 둥근 사각형 내 엔터티의 이름을 쓰고, # 과 인스턴스를 식별할 수 있는 식별자 이름을 써준다. 엔터티의 특징 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다. 유일한 식별자에 의해 식별이 가능해야 한다. 영속적으로 존재하는 인스턴스의 집합이어야 한다. 엔터티는 업무 프로세스에 의해 이용되어야 한다. 엔터티는 반드시 속성이 있어야 한다. 엔터티는 다른 엔터티와 최소 한 개 이상의 관..

챕터01. 데이터 모델링의 이해 - 1.1 데이터 모델링의 요소와 용어(3)

데이터 모델링의 세 가지 요소 1. 업무가 관여하는 어떤 것 (Things) 2. 어떤 것이 가지는 성격 (Attributes) 3. 업무가 관여하는 어떤 것 간의 관계 (Relationships) 데이터 모델링 용어 개념 복수 / 집합 개념 타입 / 클래스 개별 / 단수 개념 어커런스 / 인스턴스 어떤 것 (Thing) 엔터티 타입 (Entity Type) 엔터티 (Entity) 엔터티 (Entity) 인스턴스 (Instance) 어커런스 (Occurrence) 어떤 것 간의 연관 (Association between Things) 관계 (Realtionship) 패어링 (Paring) 어떤 것의 성격 (Characteristic of a Thing) 속성 (Attribute) 속성 값 (Attribu..