분류 전체보기
SQLD 2-6 ] 분산 데이터베이스와 성능
SQLD 2-6 ] 분산 데이터베이스와 성능
2016.02.15❏ 분산 데이터베이스 - 데이터베이스를 여러 군데로 위치시켜서 사용성/성능 등을 극대화 시킨 데이터베이스 - 논리적으로는 동일한 시스템에 속하지만, 물리적으로는 분산되어있는 데이터들의 모임. ❏ 분산 데이터베이스의 투명성 - 분산 데이터베이스 가 되려면 6가지 투명성 을 만족해야한다! http://wiki.gurubee.net/pages/viewpage.action?pageId=27427190 분할. 위치. 지역사상. 중복. 장애. 병행. ❏ 분산 데이터베이스의 적용 방법 및 장단점 1. 분산 데이터베이스 적용 방법 - 업무의 흐름을 보고 업무 구성에 따른 아키텍처 특징에 따라 구성. 단순히 분산환경에서 구축해보자! 라는게 목적이 아니라, 업무에 따라 이건 분산구조를 해야겠군. 설계하는 능력이.. 2. ..
SQLD 2-5 ] 데이터베이스 구조와 성능
SQLD 2-5 ] 데이터베이스 구조와 성능
2016.02.15❏ 슈퍼타입 / 서브타입 모델의 성능고려 방법 1. 슈퍼타입 / 서브타입 ? - 데이터의 특징을 공통점과 차이점의 특징을 고려하여 효과적으로 표현. 공통의 부분을 슈퍼타입, 공통으로부터 상속받아 다른 엔터티와 차이가 있는 속성은 서브엔터티로 구분. ( 학생 은 학부생과 대학원생 으로 나뉜다. 여기서 학생은 슈퍼타입, 학부생과 대학원생은 서브타입이라고 한다..) 예로 다음과 같다. 1. 트랜잭션은 항상 일괄로 처리하는데, 테이블은 개별로 유지되어 Union 연산에 의해 성능이 저하될 수 있다. 2. 트랜잭션은 항상 서브타입 개별로 처리하는데. 테이블은 또 하나로 되있어서.. 불필요하게 많은 양의 데이터를 읽어와야되서 성능이 저하되는 경우가 있다. 3. 트랜잭션은 항상 슈퍼+서브 타입을 공통으로 처리하는데...
SQLD 2-4 ] 대량 데이터에 따른 성능
SQLD 2-4 ] 대량 데이터에 따른 성능
2016.02.14❏ 대량 데이터발생에 따른 테이블 분할 개요 - 대량의 데이터가 처리되는데 테이블에 성능이 저하되는 이유는 SQL 문장에서 데이터를 처리하기 위한 I/O 의 양이 증가하기 때문. 인덱스를 적절하게 쓰면.. I/O 는 줄일 수 있지만, 대량의 데이터가 하나의 테이블에 존재하게 되면.. 성능저하를 유발할수 있다. 로우체이닝 : 로우 길이가 너무 길어 데이터 블록 하나에 다 저장못하고 두 개 이상의 블록에 걸쳐 하나의 데이터가 저장 로우마이그레이션 : 블록에서의 수정이 발생되면 수정된 데이터를 그 블록에 저장못하고 다른 블록의 빈공간에 저장하는거 ❏ 한 테이블에 많은 수의 칼럼을 가지고 있는 경우 저렇게 많은 칼럼들을 다 가져오려면... 디스크 I/O가 엄청많이 일어나겠지 해결법으로는 1:1 관계로 분리하였다..
SQLD 2-3 ] 반정규화와 성능
SQLD 2-3 ] 반정규화와 성능
2016.02.14❏ 반정규화? - 비 정규화는 아예 정규화 수행을 안한거고, 반 정규화는 정규화 된 엔터티, 속성, 관계 에 대해 성능향상 하려고 하는 데이터모델링의 기법 데이터를 중복하여 성능을 향상시키는 기법? 왜 이렇게까지 할까. 데이터 조회할 때 디스크 I/O량이 많아서 성능이 좀 저하될꺼같고 또 경로가 너무 멀어서 성능저하가 될때를 예상해서 반정규화를 사용한단다. ( 반정규화가 정규화 안한건줄 알았는데 아니였음. ) ( 아니 왜 일부러 중복해서 쓰는걸까.. 정규화를 하면 성능 향상시키긴 하는데 엔터티들 너무 많아지니까.. 적절히 반정규화 좀 섞어서 쓰라고 한다. 단 반정규화를 잘 못쓰면.. 오히려 성능이 저하되고, 노력비용이 많이든다!) ❏ 반정규화의 적용방법 - 난이도 높은 데이터 모델링의 실무 기술이다!! ..
SQLD 2-2 ] 정규화와 성능
SQLD 2-2 ] 정규화와 성능
2016.02.14❏ 정규화를 통한 성능 향상 전략 - 정규화를 하면.. 중복성을 제거하고, 데이터가 관심사별로 나뉘어지기 때문에 성능이 향상된다. 좀 많이 나뉘어지니까.. 엔터티가 그만큼 많아질꺼고. SQL 문장에서 조인 할께 많아지니. 성능이 오히려 안좋아질수도..!! ❏ 반정규화된 테이블의 성능저하 사례 반정규화(다음장에서 설명) 를 정규화를 해서 2개의 테이블로 만들었는데 예를들어 관서등록일자 가 2010년 이후를 조회하면. 왼쪽 반정규화 테이블에서는 납부자번호 만큼 누적된 데이터를 다 읽어야되고.. 오른쪽은 관서 수만큼만 존재하는 데이터를 읽기때문에.. 정규화를 하면 조회 성능이 저하된다는 고정관념은 틀렸다고 볼 수 있다. 다른 사례도 몇가지 있지만, 정규화를 하면 좋아진다는 설명들이다. ❏ 함수적 종속성에 근거..
SQLD 2-1 ] 성능 데이터 모델링의 개요
SQLD 2-1 ] 성능 데이터 모델링의 개요
2016.02.14❏ 성능 데이터 모델링의 정의 - 데이터베이스 성능향상이 목적이다! 설계단계의 모델링할때부터 정규화, 반정규화, 등등.. 이런 성능과 관련된 사항들이 제대로 모델링에 반영할 수 있도록 하는것 ❏ 성능 데이터 모델링 수행시점 - 그럼 언제 해야될까. 분석/설계 단계에서 데이터베이스 처리능력을 향상시킬 수 있도록 해야한다. ❏ 성능 데이터 모델링 고려사항 1. 데이터 모델링을 할 때 정규화를 정확하게 수행한다. - 정규화 하면 주요 관심사별로 데이터를 분산시킨다. 2. 데이터베이스 용량산정을 수행한다. - 어떤 엔터티에 데이터가 집중되는지 볼수 있다. 3. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다. - 그에 따라 성능을 고려한 데이터 모델을 설계할 수 있다. 4. 용량과 트랜잭션의 유형에 따라 반정..
SQLD 1-5 ] 식별자
SQLD 1-5 ] 식별자
2016.02.14❏ 식별자 → 엔터티 내에서 인스턴스들을 구분할 수 있는 구분자 ❏ 식별자의 특징 1. 주식별자에 의해 엔터티 내에 모든 인스턴스들이 유일하게 구분되어야 한다. 2. 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다. 3. 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다. 4. 주식별자가 지정이 되면 반드시 값이 돌아와야 한다. ❏ 식별자의 분류 1. 엔터티 내에서 대표성을 가지는가 에 따라 "주식별자" 와 "보조식별자" 로 구분한다. 2. 엔터티 내에서 스스로 생성되었는지 에 따라 "내부식별자" 와 "외부식별자"로 구분한다. 3. 앤터티 내에서 단일 속성으로 식별이 되는가 에 따라 "단일식별자" 와 "복합식별자"로 구분한다. 4. 원래 있는 식별자 속성을 대체하여 새롭게..
SQLD 1-4 ] 관계
SQLD 1-4 ] 관계
2016.02.12❏ 관계 : 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 현태로서나 행위로서 서로에게 연관성이 부여된 상태 ( 강사 ------------ (가르친다) ------------- 수강생 ) 가르치는 관계. ❏ 페어링 → 엔터티 내에 인스턴스와 인스턴스 사이에 관계가 설정되어 있는 것. 엔터티와 엔터티가 아니라 인스턴스와 인스턴스! 강사 엔터티의 정성철 이 수강생 엔터티의 이춘식, 황종하 에게 강의를 하는 관계. ❏ 관계의 분류 "존재에 의한 관계" 와 "행위에 의한 관계" 로 구분될 수 있다. 어떤 목적으로 연결되었느냐에 따라.. ❏ 관계의 표기법 1. 관계명 : 관계의 이름 2. 관계차수 : 1:1, 1:M, M:N 3. 관계선택사양 : 필수관계, 선택관계 1. 관계명 관계는 두 개의 관계명을 ..
SQLD 1-3 ] 속성
SQLD 1-3 ] 속성
2016.02.12❏ 속성 → 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위 ??? ... (그냥 간단하게 강사의 엔터티 안에 속성들은 이름, 주소, 생년월일, 계약일자 가 될수 있다.) ❏ 엔터티, 인스턴스, 속성, 속성값 에 대한 관계 → 한 개의 엔터티는 두개 이상의 인스턴스의 집합이여야 한다. → 한 개의 엔터티는 두 개 이상의 속성을 갖는다. → 한 개의 속성은 한 개의 속성값을 갖는다. 쉽게 사람(엔터티) 안에 속성들은 이름, 주소, 생년월일 이고, 홍길동, 서울, 1991년 은 속성값이 된다. 인스턴스는 홍길동, 서울, 1991년 이 한줄(한 세트)가 인스턴스. ❏ 속성의 특징 1. 엔터티와 마찬가지로 반드시 꼭 필요한 정보인지.. 2. 정해진 주식별자에 ..
SQLD 1-2 ] 엔터티
SQLD 1-2 ] 엔터티
2016.02.12❏ 엔터티 → 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것(Thing) 예를들어 '학생' 이라는 엔터티 가 있다고 보면 됨. 엔터티는 인스턴스들의 집합. ❏ 엔터티의 특징 1. 업무에서 필요로 하는 정보 : 꼭 필요한가? 병원에서 환자라는 엔터티는 필요한데 회사에서는... 2. 식별이 가능해야 함 : 사원중에 홍길동!! 했을때 동명이인 있을수도 있으니, 사원번호 같은걸로.. 식별이 가능하게해야함 3. 인스턴스의 집합 : 두개이상 이여야한다. 엔터티는 "집합" 이니까 4. 업무프로세스에 의해 이용 : 업무 진행과정에 안쓰이는 엔터티가 없도록. 다 정의 해놨는데 실제로는 안쓰는 엔터티면.. 5. 속성을 포함 : 엔터티에는 반드시 속성(Attributes) 가 포함 되어야 한다. 6. 관..
SQLD 1-1 ] 데이터 모델의 이해
SQLD 1-1 ] 데이터 모델의 이해
2016.02.12모델링 → 복잡한 현실세계를 단순화 시켜 표현 모델링의 특징 3가지 추상화 → 다양한 현상을 일정한 양식으로 표기 단순화 → 약속된 규약대로 표기 명확화 → 애매모호 제거, 정확하게 기술 모델링의 중요성 3가지 파급효과 → 나중에 있을 일을 생각하면 .... 간결한 표현 → 간결한 표현으로 빠른 파악 가능 데이터 품질 → 오래 보관하려면 품질이 좋아야겠지 모델링 할 때 유의점 3가지 중복 → 여러 장소에 같은 정보를 저장하지 않도록 비유연성 → 너무 잦은 변경은 유지보수가 어려워짐 비일관성 → 데이터와 데이터간 관계를 명확히 데이터 모델링의 3단계 진행 1. 개념적 데이터 모델링 : 추상적... 엔티터-관계 다이어그램 만드는 정도? 2. 논리적 데이터 모델링 : 데이터 모델링이 최종적으로 완료된 상태. ..