본문 바로가기
반응형

Learning/DB SQL 가이드15

DB 모델링 - 4 데이터 통합 : 4,3 엔터티 통합 대상 4.3 엔터티 통합 대상 데이터의 성격이 유사한 통합 대상 엔터티 ▶ 슈퍼/서브타입 엔터티로 통합 ■ 주식계좌 엔터티, 선물옵션계좌 엔터티, 수익증권계좌 엔터티를 계좌 슈퍼타입 엔터티, 주식/선물옵션/수익증권 서브타입 엔터티로 통합한다. ■ 계좌 슈퍼타입 엔터티에는 공통속성을 정의한다. ■ 서브타입을 구분하는 계좌구분 속성을 정의한다. ■ 각 엔터티에만 존재하는 개별속성은 서브타입 엔터티에 속성으로 정의한다. 역할을 관리하는 통합 대산 엔터티 1) 병렬식 ▶ 테이블이 될 때 여러 개의 칼럼으로 나열된다. ▶ 하나의 로우(row)에서 관리되므로 새로운 테이블을 추가할 필요하가 없다. ▶ 인덱스 수가 증가되고 SQL이 복잡해진다. ▶ 새로운 관계의 추가, 관계 형태의 변경 등에 매우 취약한 형태이다. ▶ 관.. 2015. 11. 20.
DB 모델링 - 4. 데이터 통합 : 4.2 데이터 통합의 장단점 4.2 데이터 통합의 장단점 데이터 통합의 장점 1) 확장성 ▶ 비슷한 유형의 업무가 발생했을 때 스키마 변경을 최소화하면서 코드 값 등의 인스턴스 추가로 업무를 수용 2) 유지보수 효율성 ▶ 엔터티 개수가 감소해 데이터베이스의 유지보수가 쉬워짐 3) 분석, 설계에 대한 시간 단축, 비용 절감 4) 개발의 용이성 ▶ 엔터티 통합에 따른 배타 관계의 해소로 엑세스 경로의 효율성 향상 ▶ 단순한 SQL 작성이 가능 5) 모델의 단순성 6) 모델의 가독성 ▶ 슈퍼타입, 서브타입에서 발생하는 비즈니스 요건(관계)를 명확히 표현 데이터 통합의 단점 1) 데이터 집합의 변질(희석) ▶ 무분별한 엔터티 통합은 데이터 집합을 모호하게 만들어 집합을 변질시킬 수 있다. ■ 통합기준 ㆍ엔터티 통합 시 정규화, 엔터티의 정.. 2015. 11. 20.
DB 모델링 - 4. 데이터 통합 : 4.1 데이터 통합 4. 데이터 통합 4.1 데이터 통합 데이터 통합의 정의 ▶ 유사한 성격의 데이터, 동질성을 가진 데이터를 더 큰 주제로 합치는 것을 의미 데이터 통합의 목적 ▶ 확장성이 좋은 유연한 모델 작성으로 요구사항 추가/변경에 따른 모델 변경을 최소화 데이터 통합 프로세스 데이터 통합 기준 ▶ 데이터의 성격(주제)가 유사하다(동질성). ▶ 식별자가 동일하면서 유사한 속성이 존재한다(유사성). ▶ 식별자는 다르지만 기초 속성이 유사하다(유사성). ▶ 현행 데이터가 존재하면 마이그레이션하는데 문제가 없다. ▶ 별개의 요건으로 사용되지 않고 주로 같이 조회된다. ▶ 통합해서 성능문제를 일으키지 않는다. 데이터 통합의 대상 1) 속성 ▶ 여러 엔터티에서 동일한 성질로 관리되는 속성을 도출하여 새로운 엔터티로 통합 2).. 2015. 11. 20.
DB 모델링 - 3. 정규화 : 3.6 정규형과 성능 3.6 정규형과 성능 정규형과 성능 ▶ 정규형을 꺼리는 가장 커다란 이유는 성능이 떨어진다고 생각하기 때문 ▶ 하지만, 정규형을 하면 성능이 나빠진다는 것은 널리 알려진 잘못된 상식 ▶ 정규형은 성능을 빠르게 하고 개발을 편하게 해준다고 생각하는 것이 점차 늘어나고 있음 조회 성능 ▶ 정규형을 꺼리는 성능 문제는 대부분 조회 성능을 의미함 ▶ 조회 성능을 올리려면 잘 정규화된 모델링에 인덱스를 적절히 사용해야 하며, 때에 따라 성능이 나오지 않을 경우 비정규화를 선택할 수 있음 ▶ 오라클은 데이터를 블록 단위로 액세스하는데, 정규화가 잘 되었을 경우 적은 블록으로 많은 데이터를 가져올 수 있으므로 Hit Ratio를 끌어올릴 수 있고, 이로 인해 성능이 향상됨 조회 성능과 화면 구성 ▶ 화면 구성 또한 .. 2015. 10. 25.
DB 모델링 - 3. 정규화 : 3.5 정규형의 종류 3.5 정규형의 종류 1차 정규형 1) 1차 정규형 정의 ▶ 모든 속성은 반드시 하나의 값을 가져야 함 ▶ 1차 정규화와 관련된 속성은 다가 속성과 복합 속성이 있음 2) 다가 속성(Multivalued Atributes) ▶ 다가 속성은 같은 종류의 값을 여러 개 가지는 속성을 의미함 ▶ 위의 그림처럼 전화번호가 여러 개의 값을 가지고 있어 식별자인 고객ID에 종속되지 않으므로 정규화된 엔터티가 아님 ▶ 엔터티의 모든 속성은 단일 값을 가져야 하므로, 다가 속성일 경우 별도의 엔터티가 필요함 ▶ 위의 내용을 모델로 표현하면 아래와 같이 정규화가 됨 ▶ 앞에서처럼 다가 속성을 관리하지 않고 아래와 같이 관리할 수 있다. ▶ 하지만 위 그림은 물리적으로 1차 정규형이지만, 논리적으로 1차 정규형이 아님. .. 2015. 10. 25.
DB 모델링 - 3. 정규화 : 3.4 함수종속 3.4 함수종속 함수 종속(Functional Dependency) 1) 데이터 종송석(Data Dependency) ▶ 관계형 모델을 설계할 때 가장 중요한 요소 ▶ 데이터 종속성에는 3가지 종속이 존재하며, 그 중 대표적인 종속은 함수 종속임 ■ 함수 종속(Functional Dependency) ■ 다가 종속(Multivalued Dependency) ■ 조인 종속(Join Dependency) ▶ 함수 종속은 엔터티내에 존재하는 속성 간의 종속성을 의미함 ■ 엔터티 내 A 속성의 값이 B 속성의 값을 유일하게 식별할 수 있다면 B 속성은 A 속성에 함수적으로 종속되었음을 의미 ■ 속성 간 종속성을 규명해 집합을 분리하므로, 속성과 엔터티를 정의하고 관계를 파악하는데 절대적 역할 ■ 이를 기반으로 .. 2015. 10. 25.
DB 모델링 - 3. 정규화 : 3.3 아노말리 3.3 아노말리 아노말리(Anomaly) ▶ 아노말리는 데이터 이상 현상으로, 중복된 데이터 때문에 발생 ▶ 어떤 처리를 할 때, 중복된 데이터를 동시에 전부 처리하지 못하고 일부만 처리할 경우 어떤 데이터가 맞는지 모르고 결국 데이터는 이상해짐 ▶ 정규형 모델에서는 아노말리가 최소화되며, 중복 데이터를 채택한 모델에는 다음과 같은 아노말리가 발생함 ■ 업데이트 아노말리 : 릴레이션에서 속성의 값을 업데이트할 때 발생하는 데이터 이상 현상 ■ 삭제 아노말리 : 릴레이션에서 인스턴스를 삭제할 때 발생하는 데이터 이상 현상 ■ 삽입 아노말리 : 릴레이션에 새로운 인스턴스를 삽입할 때 발생하는 데이터 이상 현상 아노말리가 발생할 수 있는 릴레이션 사례 1) 업데이트 아노말리 ▶ '홍길동'이라는 선수의 포지션을.. 2015. 10. 25.
DB 모델링 - 3. 정규화 : 3.2 정규화의 목적 3.1 정규화의 목적 정규화의 가장 큰 목적은 안정성과 확장성 안정성 ▶ 정규화를 하는 가장 근본적인 이유는 중복 데이터 제거 ▶ 중복 데이터는 정합성에 악영향을 미치고, 아노말리 현상을 발생시킴 ▶ 아노말리가 발생하지 않을수록 데이터 무결성과 품질은 높아지며, 데이터와 데이터베이스의 안정성과 신뢰성도 높아짐 ▶ 또한 정규화는 함수 종속을 기반으로 속성을 결정자와 종속자로 구분해 모델 구조를 정의하므로 관계가 명확해짐 확장성 ▶ 정규화가 잘 되었을 경우 업무가 수정되거나 추가되어도 엔터티에 반영하기 수월함 ▶ 하지만 정규화되지 않은 엔터티를 확장하는 것은 매우 어려움 ▶ 어떤 데이터를 관리하는지 모호한 상태에서 또 다른 정의를 제대로 추가한다는 것은 의미 자체가 성립되지 않기 때문 ▶ 마지막으로 정규화는.. 2015. 10. 25.
DB 모델링 - 3. 정규화 : 3.1 정규화 3. 정규화 3.1 정규화 정규화란(Nomalization)? ▶ 정규화는 속성 간의 부정확한 종속성을 없애는 것을 의미 ▶ 함수종속 개념 기반으로 유사한 속성들은 모으고 종속성이 없는 독립적인 속성들은 분리하는 것 ▶ 관계형 데이터 모델은, 속성의 종석성과 의존성을 분석해 더는 분해될 수 없는 엔터티로 만드는 정규화 과정을 거쳐야 함 ▶ 반정규화는 반드시 정규형은 거쳐야 진행 가능 아노말리 현상 ▶ 정규형은 아노말리 현상을 최소화 함 ▶ 아노말리는 데이터 이상 현상으로 업데이트, 삭제, 삽입 아노말리 등이 존재 ▶ 데이터 중복은 아노말리를 발생시키고, 중복이 없는 정규형은 아노말리를 최소화 함 모델 구조 ▶ 관계형 데이터베이스는 모델이 잘 구현되어 있을 경우, 데이터를 가장 효율적으로 저장하고 추출해 .. 2015. 10. 25.
반응형