SQLD/데이터 모델링의 이해

    2-6 분산 데이터베이스와 성능

    2-6 분산 데이터베이스와 성능

    분산 데이터베이스 DB 시스템 구축 시 한 대의 물리적 시스템에 DBMS를 설치하고 여러 사용자가 접속하여 DB를 사용하는 구조를 중앙 집중형 데이터베이스라고 한다. 또 분산 데이터베이스는 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역의 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스이다. 분산데이터베이스의 정의는 다음과 같다. 여러 곳으로 분산되어있는 데이터베이스를 하나의 가상 시스템으로 사용할 수 있도록 한 데이터베이스 논리적으로 동일한 시스템에 속하지만, 컴퓨터 네트워크를 통해 물리적으로 분산되어 있는 데이터들의 모임 물리적 Site 분산, 논리적으로 사용자 통합·공유 분산 데이터베이스의 투명성Transparency 투명성 설명 분할 투명성 고객은 하..

    2-5 데이터베이스 구조와 성능

    2-5 데이터베이스 구조와 성능

    슈퍼타입/서브타입 모델의 성능고려 방법 슈퍼/서브타입 데이터 모델의 개요 'Extended ER모델'이라고 부르는 '슈퍼/서브타입 데이터 모델'은 최근에 데이터 모델링을 할 때 자주 쓰이는 모델링 방법이다. 업무를 구성하는 데이터를, 공통점/차이점 등 특징을 고려하여 효과적으로 표현할 수 있기 때문이다. 즉 공통의 부분은 슈퍼타입으로 모델링하고 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성은 별도의 서브엔터티로 구분해서, 업무의 모습을 정확하게 표현하고 물리적 데이터 모델로 변환할 때 선택의 폭을 넓힐 수 있는 장점이 있다. 당연히 슈퍼/서브타입의 데이터 모델은 논리적 데이터 모델에서 이용되는 형태이고 분석/설계단계를 구분하자면, 분석단계에서 많이 쓰인다. 따라서 물리적인 데이터 모델을 설계하는 ..

    2-4 대량 데이터에 따른 성능

    2-4 대량 데이터에 따른 성능

    대량 데이터발생에 따른 테이블 분할 개요 아무리 설계가 잘되어 있는 데이터 모델이라고 하더라도 대량의 데이터가 한 테이블에 집약되어 있고 한 하드웨어 공간에 저장되어 있으면 성능저하를 피하기 힘들다. 일이 처리되는 양이 한군데에 몰리는 현상은 어떤 업무에 있어서 중요한 데이터가 특정 테이블에 있는 경우에 발생되는데, 이런 경우 트랜잭션이 분산 처리될 수 있게 테이블 단위의 분할을 적용할 필요가 있다. 대량의 데이터가 처리되는 테이블의 성능이 저하되는 이유는 SQL 문장에서 데이터 처리를 위한 I/O량이 증가하기 때문이다. 막연하게 데이터량이 많아져 그 처리를 위한 I/O량이 많아질 것이라고 생각한다면, 인덱스의 적절한 구성(원하는 데이터만 접근하여 I/O량을 조절하는 방법)을 통해 해결될 수 있다고도 생..

    2-3 반정규화와 성능

    2-3 반정규화와 성능

    반정규화De-Normalization DB의 성능 향상을 위해 데이터 중복을 허용하고 조인을 줄이는 것으로, 반정규화를 통해 조회 성능은 좋아지지만 데이터 모델의 유연성을 낮아진다. 또 데이터 무결성을 깨뜨릴 위험이 있다. 반정규화를 수행하는 경우 정규화에 충실하면 종속성, 활용성을 향상되지만 수행 속도가 느려질 때 다량의 범위, 대량의 데이터를 자주 처리할 때 특정 범위의 데이터만 자주 처리할 때 통계성 프로세스에 의해 통계/요약/집계 정보가 자주 요구될 때 + 문제 지문: 반정규화 정보에 대한 재현의 적시성으로 판단한다. 예를 들어 빌링의 잔액은 다수 테이블에 대한 다량의 조인이 불가피하므로 데이터 제공의 적시성 확보를 위한 필수 반정규화 대상이다. 반정규화의 적용방법 반정규화 절차 설명 반정규화 대..

    2-2 정규화와 성능

    2-2 정규화와 성능

    정규화Normalization 정규화는 최소한의 데이터 중복, 데이터의 일관성, 최대한의 데이터 유연성을 위해 데이터를 분행하는 과정이다. 따라서 데이터 중복을 제거하고 데이터 모델의 독립성을 확보하는 방법이다. 정규화를 통해 업무 상의 변화가 생겨도 데이터 모델의 변경을 최소화할 수 있다. 제1정규화부터 제5정규화까지 있지만 실질적으로는 제3정규화까지만 수행한다. 위 그림의 왼쪽 테이블에서 새로운 직원이 추가된다고 가정하자. 만약 부서 정보가 없으면 부서코드를 임의로 채워넣어야 한다. 즉 불필요한 정보를 꼭 추가해야 한다. 새로운 부서도 마찬가지인데, 사원 정보가 없기 때문에 임의의 값으로 사원번호를 입력하지 않으면 추가할 수 없다. 이를 이상현상Anomaly이라고 하며 테이블 분해가 필요하다. 오른쪽..

    2-1 성능 데이터모델링의 개요

    2-1 성능 데이터모델링의 개요

    성능 데이터 모델링의 정의 성능이 저하되는 데이터 모델의 경우 크게 세 가지 경우를 고려하여 그 성능을 향상시킬 수 있다. 데이터 모델 구조에 의해 성능이 저하될 수도 있고 데이터가 대용량이 됨으로 인해 불가피하게 성능이 저하되어 나타나는 경우도 있다. 인덱스 특성을 충분히 고려하지 않고 인덱스를 생성함으로 인해 성능이 저하되어 나타나는 경우도 있다. 일반적으로 성능이라고 하면 데이터조회의 성능을 의미한다. 데이터입력/수정/삭제는 일시적이고 빈번하지 않고 단건 처리가 많은 반면 데이터조회의 경우는 반복적이고 빈번하며 여러 건을 처리하는 경우가 많기 때문이다. 이러한 특징은 일반적인 트랜잭션의 성격이 조회의 패턴을 가지고 있다는 것이다. 하지만 어떤 업무의 경우에는 데이터 입력/수정/삭제에 대한 성능이 중..

    1-5 식별자

    1-5 식별자

    식별자Identifiers의 개념 식별자는 엔터티 내에서 인스턴스들을 구분하는 구분자로, 엔터티를 대표하는 속성이다. 따라서 하나의 엔터티에는 반드시 하나의 유일한 식별자가 존재한다. 보통 식별자와 키Key를 동일하게 사용하는데, 논리 데이터 모델링 단계에서는 업무적으로 구분이 되는 '식별자'로, 물리 데이터 모델링 단계에서는 DB 테이블 접근을 위핸 매개체로서 '키'를 사용한다. 식별자의 특징 유일성: 주식별자에 의해 엔터티 내 모든 인스턴스들이 유일하게 구분된다. 최소성: 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수이다. 불변성: 지정된 주식별자의 값은 자주 변하지 않는다. 존재성: 주식별자가 지정되면 반드시 값이 들어와야 한다. Null 값도 안된다. 대체식별자의 특징은 주식별자의 ..

    1-4 관계

    1-4 관계

    관계의 정의 관계는 엔터티 간의 관련성을 의미하며 존재 관계와 행위 관계로 분류된다. 관계의 패어링 관계는 엔터티 안의 인스턴스가 개별적으로 관계를 가지는 '관계 패어링Relationship Paring'의 집합이다. 따라서 개별 인스턴스가 각각 다른 종류의 관계를 가진다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다. 관계의 분류 관계를 연결할 때 어떤 목적으로 연결되었느냐에 따라 존재에 의한 관계와 행위에 의한 관계로 구분된다. 1. 존재 관계 -엔터티 간의 상태를 의미한다. -'소속된다'라는 의미는 행위(이벤트)에 의해 발생되는 의미가 아니라 황경빈 사원이 DB팀에 소속되어 있기 때문에, 즉 존재에 의해 형성된 의미이다. -UML 클래스 다이어그램의 관계 중 연관관계Associatinon..

    1-3 속성

    1-3 속성

    속성Attribute의 개념 속성은 "업무에서 필요로 하는 인스턴스로, 의미상 더 이상 분리되지 않는 최소의 데이터 단위"이다. 예를 들어 생년월일은 하나로서 의미가 있다. 이를 생년/생월/생일로 구분한다면 사실상 하나의 속성을 관리목적에 따라 구분했다고 할 수 있다. 그래서 S/W 비용을 계산하는 기능점수(Function Point)를 산정할 때, 이렇게 분리된 속성은 하나의 속성(DET)으로 계산한다. 하지만 만약 서로 관련이 없는 이름, 주소를 하나의 속성인 ‘이름주소’로 정의하면 어떻게 될까? 이것은 하나의 속성의 두 개의 의미를 갖기 때문에 기본속성으로서 성립되지 않는다. 이렇게 정리된 속성은 그냥 값의 의미로, 속성보다는 내역으로서 정의하여 관리할 수는 있다. 엔터티, 인스턴스, 속성, 속성값..

    1-2 엔터티

    1-2 엔터티

    엔터티의 개념 엔터티는 "업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing)"이다. 엔터티는 그 집합에 속하는 개체들의 특성을 설명하는 속성Attribute을 갖는데, 이 속성은 엔터티 인스턴스 전체가 공유할 수 있는 공통 속성일 수도 있고 일부에만 해당하는 개별 속성일 수도 있다. 또 집합의 특성을 가지며 순수 개체이거나 행위 집합이다. 엔터티와 인스턴스에 대한 내용과 표기법 엔터티는 대부분 사각형으로 표현한다. 엔터티와 엔터티 사이의 ERD는 다음과 같다. 엔터티의 특징 1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이다. 업무에서 관리되어야 하는 집합이다. 2. 유일한 식별자에 의해 식별 가능하다. 3. "두 개 이상"의 인스턴스의 집합이다. 4. 엔터티는 업무 ..

    1-1 데이터 모델의 이해

    1-1 데이터 모델의 이해

    데이터 모델링의 정의 업무에 필요로 하는 데이터를 시스템 구축 방법론에 의해 분석/설계하여 정보시스템(DB)을 구축하고 개발 및 데이터 관리에 사용한다. 데이터 모델링의 3대 특징 특징 설명 추상화 현실세계를 간략하게 표현한다 단순화 누구나 쉽게 이해할 수 있도록 표현한다 명확화 명확하게 한 가지 의미로 해석되어야 한다 좋은 모델링의 3대 요건 중복배제 Business Rule 완전성 모델링의 세 가지 관점 1. 데이터 관점 비즈니스 프로세스에서 사용되는 데이터를 의미 업무가 어떤 데이터와 관련이 있으며 무슨 관계인지에 대해 모델링 (What, Data) 구조 분석, 정적 분석 2. 프로세스 관점 비즈니스 프로세스에서 수행하는 작업을 의미 업무가 실제하고 있는 일은 무엇이며 어떻게 해야 하는지에 대해 모..