본문 바로가기

SQLD

(43)
[SQLD : Ⅱ. 데이터 모델과 성능] 6-1. 분산데이터베이스와 성능 - 개요 * 분산데이터베이스의 개요 - 데이터베이스를 분산하여 저장하고 이를 하나의 데이터베이스로 인식하여 사용하는 기술 - 클라우드 컴퓨팅, SOA를 인식하듯 분산 데이터베이스를 인식하고 연구 도입하려는 기업이 많아짐 - 분산데이터베이스의 정의 : 여러 곳으로 분산된 데이터베이스를 하나의 가상 시스템으로 사용하도록 한 데이터베이스 논리적으로 동일한 시스템에 속하지만 컴퓨터 네트워크를 통해 물리적으로 분산된 데이터들의 모임 물리적 SITE분산, 논리적 사용자 통합, 공유 - 분산데이터베이스는 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 여러 지역 여러 노드로 위치시켜 사용성/성능 등을 극대화 시킨 데이터베이스 * 투명성 1) 분할 투명성 (단편화) : 하나의 논리적 Relation이 여러 단편으로 분할되..
[SQLD : Ⅱ. 데이터 모델과 성능] 3. 반정규화와 성능 * 반정규화 - 정규화된 엔티티, 속성, 관계에 대해 시스템의 성능향상과 개바라과 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법 - 데이터 무결성이 깨질 수 있는 위험 - 데이터를 조회할 때 디스크 IO량이 많아서 성능이 서하되거나 경로가 멀어 조인으로 인한 성능저하가 예상될 때 - 정규화는 입력, 수정, 삭제에 대한 성능을 향상시킬 뿐 아니라 조회에 대해서도 성능을 향상시키는 역할을 함 - 함수적 종속관계에는 위반하지 않지만 데이터의 중복성을 증가시켜야만 데이터조회의 성능을 향상 시키는 경우 - 반정규화를 기술적으로 수행하지 않은 경우 성능이 저하된 데이터베이스가 생성될 수 있음 구축이나 시험 단계에서 반정규화를 적용할 때 수정에 따른 노력비용이 많이 들게 됨 * 반정규화..
[SQLD : Ⅱ. 데이터 모델과 성능] 2. 정규화와 성능 * 정규화를 통한 성능 향상 전략 - 데이터에 대한 중복성을 제거, 데이터를 관심사별로 처리 - 정규화는 데이터를 결정하는 결정자에 의해 함수적 종속을 갖고 있는 일반속성을 입력,수정,삭제 이상을 제거 - 데이터 용량이 최소화되는 효과 * 반정규화된 테이블의 성능저하 사례 1) 조인을 하더라도 PK unique index를 이용하면 조인 성능 저하는 미미하게 발생 - 오른쪽은 왼쪽을 부분키 종속을 정규화하여 2차 정규화한 테이블 - PK가 걸려있는 방향으로 조인이 걸려 unique index를 곧바로 찾아서 데이터를 조회 2) 함수적 종속관계 형성 - 매각일자 5천 건, 일자별매각물건은 100만 건이 있다고 가정 - 서울7호 에서 매각된 총매각금액, 총유찰금액을 산출하는 조회용 SQL문장은 SELECT ..
[SQLD : Ⅱ. 데이터 모델과 성능] 1. 성능 데이터 모델링의 개요 * 성능 데이터 모델링의 정의 - 데이터 용량이 커질수록 기업의 의사결정의 속도가 빨라질수록 데이터 처리 속도는 빨라져야 함 - 일반적으로 성능은 데이터조회의 성능을 의미 데이터 입력, 수정, 삭제는 일시적이고 빈번하지 않고 단건 처리가 많지만 데이터 조회는 반복적이고 빈번하고 여러 건을 처리하는 경우가 많기 때문 - 데이터 모델링 시 작업 유형에 따라 어떤 성능 향상을 도모해야 하는지 목표를 분명하게 해야 함 - 성능 데이터 모델링이란 데이터베이스 성능향상을 목적으로 설계 단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영되도록 하는 것 - 성능 데이터 모델링이 단순히 반정규화만을 의미하지 않음 정규화, 인덱스, 수직 또는 수평분할, 데이터 처리의 성격에 따라 변환 등 * 성능 데이..
[SQLD : Ⅰ. 데이터 모델링의 이해] 5-3. ERD, 데이터 모델의 요소 * 데이터 모델 표기법 - 피터첸이 Entity-relationship model (E-R model) 표기법을 만듦 - 엔티티는 사각형, 관계는 마름모, 속성은 타원형 * ERD 표기법을 이용하여 모델링하는 방법 - ERD는 업무에 지장을 안줌, 일정한 규칙으로 데이터 모델을 누구나 공통된 시각으로 파악하고 의사소통하게 함 - 실제 프로젝트에서 분석된 엔티티와 관계, 속성정보가 표현됨, 내부 인원과 고객과 대화할때 핵심 업무산출물 - ERD 작업순서 엔티티를 그린다 엔티티를 적절하게 배치한다 엔티티간 관계를 설정한다 관계명을 기술한다 관계의 참여도를 기술한다 관계의 필수 여부를 기술한다. - 가장 중요한 엔티티를 왼쪽 상단에 배치하고 이것을 중심으로 다른 엔티티를 나열하며 전개 - ERD 관계서를 보고..
[SQLD : Ⅰ. 데이터 모델링의 이해] 5-2. 데이터 모델링 * 프로젝트 생명주기에서 데이터 모델링 - waterfall 기반에서는 데이터 모델링 위치가 분석과 설계 단계로 구분되어 명확히 정의 가능 분석 단계에서 업무 중심의 논리 데이터 모델링 수행하고 설계 단계에서 물리 데이터 모델 수행 - 나선형 모델에서는 업무 크기에 따라 논리적 데이터 모델과 물리적 데이터 모델이 분석, 설계 단계에서 수행 비중은 분석 단계에서 논리 데이터 모델이 더 많이 수행되는 형태 - 데이터 축과 애플리케이션 축으로 구분하여 진행 객체지향 개념은 데이터와 프로세스를 한번에 바라보면서 모델링을 전개 데이터 모델링, 프로세스 모델링을 구분하지 않고 일체형으로 진행 * 데이터 독립성의 필요성 - 유지보수 비용 증가, 데이터 복잡도 증가, 요구사항 대응 저하, 데이터 중복성 증가 - 데이터..
[SQLD : Ⅰ. 데이터 모델링의 이해] 5-1. 모델링의 이해 * 모델링 정의 - 살면서 나타나는 다양한 현상을 표기법에 의해 규칙을 갖고 표기하는 것 - WEBSTER 사전 : 가설적 또는 일정 양식에 맞춘 표현, 어떤 것에 대한 예비표현으로 그로부터 최종대상이 구축되도록 하는 계획으로서 기여 - 복잡한 현실세계를 단순화시켜 표현한 것 - 모델이란 사물 또는 사건에 관한 양상이나 관점을 연관된 사람이나 그룹을 위해 명확하게 하는 것 - 모델이란 현실 세계의 추상화된 반명 * 모델링 특징 - 추상화 : 현실세계를 일정한 형식에 맞추어 표현 - 단순화 : 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해하게 함 - 명확화 : 누구나 이해하기 쉽게 하기 위한 대상에 대한 모호함 제거하고 정확하게 현상 기술 - 정보시스템 구축에서는 모델링..
[SQLD : Ⅰ. 데이터 모델링의 이해] 4-2. 식별자관계와 비식별자관계 * 식별자 관계와 비식별자 관계의 결정 - 외부식별자는 다른 엔티티와 관계를 통해 자식 쪽 엔티티에 생성되는 속성 - 관계와 속성을 정의하고 주식별자를 정의하면 논리적 관계에 의해 자연스럽게 외부식별자 도출됨 - 엔티티에 주식별자가 지정되고 엔티티간 관계를 연결하면 부모쪽 주식별자를 자식 엔티티의 속성으로 내보내려함 자식 엔티티에서 부모엔티티로부터 받은 외부식별자를 자신의 주식별자로 이용할지 결정해야 함 * 식별자 관계 - 부모로부터 받은 식별자를 자식 엔티티의 주식별자로 이용하면 NULL값이 있으면 안됨 - 부모로부터 받은 속성을 자식엔티티가 모두 사용하고 주식별자로 사용하면 1:1 관계 부모로부터 받은 + 다른 부모엔티티에서 받은 속성을 포함 OR 스스로 갖는 속성으로 주식별자 구성하면 1:M 관계 ..