SQLD (51) 썸네일형 리스트형 [SQLD : Ⅱ. 데이터 모델과 성능] 4. 대량 데이터에 따른 성능 * 대량 데이터발생에 따른 테이블 분할 개요 - 한 테이블에 데이터가 대량으로 집중되거나 하나의 테이블에 여러 컬럼이 존재햐여 디스크에 많은 블록을 점유하는 경우 성능저하 유발 가능 - 한 테이블에 대량의 데이터가 존재할 경우 인덱스의 tree구조가 너무 커져서 효율성이 떨어짐 - 한 테이블에 많은 컬럼 존재 시 디스크에서 데이터를 읽는 IO량이 많아져서 성능 저하(로우체이닝, 로우마이그레이션) - 로우체이닝 : 로우 길이가 너무 길어서 두 개 이상의 블록에 하나의 로우가 저장되는 형태 - 로우마이그레이션 : 데이터블록에서 수정 발생 시 수정된 데이터를 다른 블록 빈 공간을 찾아서 저장하는 방식 * 한 테이블에 많은 컬럼을 갖는 경우 - 도서정보 테이블 가정 : 컬럼은 200개, 하나의 로우 길이가 10.. [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 관계 .. 이전 1 2 3 4 5 6 7 다음