제 1절 데이터 모델의 이해
- 모델링의 특징
1. 추상화(모형화, 가설화)는 현실세계를 일정한 형식에 맞추어 표현한다는 것으로.. 다양한 형상을 일정한 양식인 표기법에 의해 표현한다는 것
2. 단순화는 복잡한 현실세계를 약속된 규약에 의해 제한된 표기법이나 언어로 표현하여 쉽게 이해할 수 있도록 하는 개념
3. 명확화는 누구나 이해하기 쉽게 애매모호함을 제거하고 정확하게 현상을 기술하는 것
- 데이터 모델링이란
1. 정보시스템을 구축하기 위한 데이터관점의 업무 분석 기법
2. 현실세계의 데이터에 대해 약속된 표기법에 의해 표현하는 과정
3. 데이터베이스를 구축하기 위한 분석/설계 과정
- 데이터 모델링의 중요성
1. 파급효과(Leverage): 데이터 구조의 변경은 전체 시스템 구축 프로젝트에서 큰 위험요소이다.
2. 복잡한 정보 요구사항의 간결한 표현(Conciseness): 데이터 모델은 구축할 시스템의 정보 요구사항과 한계를 가장 명확하고 간결하게 표현할 수 있는 도구이다.
3. 데이터 품질(Data Quality): DB에 담겨 있는 데이터는 기업의 중요한 자산이다. 오랜 기간 숙성된 데이터를 전략적으로 활용 가능
- 데이터 모델링의 유의점
1. 중복(Duplication): 여러 장소에 같은 정보를 저장하는 것
2. 비유연성(Inflexibility): 사소한 업무변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있음. 그래서 처음부터 발생될 모든 사건을 염두하고 모델링을 해야 된다.
3. 비일관성(Inconsistency): 같은 정보를 두 곳에서 가지고 있는데 한 쪽만 업데이트 한 경우. 그래서 데이터간 상호 연관 관계에 대해 명확히 정의하고 모델링을 해야 한다.
- 데이터 모델링의 3단계
1. 개념적 데이터 모델링: 추상화 수준이 높고 업무중심적이며 포괄적인 수준의 모델링 진행. 전사적 데이터 모델링. EA 수립시 많이 이용. 사용자와 시스템 개발자가 데이터 요구 사항을 발견하는 것을 지원. 현 시스템이 어떻게 변형되어야 하는가를 이해하는데 유용함.
2. 논리적 데이터 모델링: 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등을 정확하게 표현. 재사용성이 높음. 시스템 구축을 위해서 가장 먼저 시작할 기초적인 업무조사를 하는 초기단계에서부터 시스템 설계의 전 과정을 지원.
3. 물리적 데이터 모델링: 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적인 성격을 고려하여 설계. 데이터 모델이 데이터 저장소로서 어떻게 컴퓨터 하드웨어에 표현될 것인가, 데이터가 물리적으로 컴퓨터에 어떻게 저장될 것인가 하는 정의.
- 데이터베이스의 3단계 구조
1. 외부스키마(External Schema): View 단계 여러 개의 사용자 관점으로 구성. 개개 사용자가 보는 개인적 DB 스키마. 사용자 관점 접근하는 특성에 따른 스키마 구성
2. 개념스키마(Conceptual Schema): 개념단계 하나의 개념적 스키마로 구성 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것
3. 내부스키마(Internal Schema): DB가 물리적으로 저장된 형식. 물리적 장치에서 데이터가 실제적으로 저장되는 방법을 표현하는 스키마
- 좋은 데이터 모델의 요소
1. 완전성(Completeness): 모든 데이터가 데이터 모델에 정의되어 있어야 한다.
2. 중복배제(Non-Redundancy): 하나의 데이터베이스 내에 동일한 사실은 한 번만 기록하여야 한다.
3. 업무규칙(Business Rule): 데이터 모델을 활용하는 모든 사용자가 공유할 수 있도록 업무규칙을 제공
4. 데이터 재사용(Data Reusability): 데이터의 재사용성을 향상시키고자 한다면 데이터의 통합성과 독립성에 대해서 충분히 고려해야 함
5. 의사소통(Communication): 데이터 모델은 대상으로 하는 업무를 데이터 관점에서 분석하고 이를 설계하여 나오는 최종 산출물이다. 즉, 데이터 모델이 진정한 의사소통의 도구로서의 역할을 하게 된다.
6. 통합성(Integration): 동일한 데이터는 조직의 전체에서 한번만 정의되고 이를 여러 다른 영역에서 참조, 활용하는 것
- 엔터티의 특징
1. 반드시 해당 업무에서 필요하고 관리하고자 하는 정보
2. 유일한 식별자에 의해 식별이 가능해야 함
3. 영속적으로 존재하는 인스턴스의 집합이어야 한다.
4. 엔터티는 업무 프로세스에 의해 이용되어야 한다.
5. 엔터티는 반드시 속성이 있어야 한다.
6. 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
- 엔터티의 명명
1. 현업업무에서 사용하는 용어를 사용
2. 가능하면 약어를 사용하지 않는다.
3. 단수명사를 사용한다.
4. 모든 엔터터이에서 유일하게 이름이 부여되어야 한다.
5. 엔터티 생성의미대로 이름을 부여한다.
- 관계 체크사항
1. 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?
2. 두 개의 엔터티 사이에 정보의 조합이 발생되는가?
3. 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
4. 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?
- 비식별자관계(부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우)를 맺는 경우
1. 자식엔터티에서 받은 속성이 반드시 필수가 아니어도 무방하기 때문에 부모 없는 자식이 생성될 수 있는 경우
2. 자식만 남겨두고 먼저 소멸될 수 있는 경우
3. 여러 개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가질 때
4. 자식엔터티에서 별도의 주식별자를 사용하는 것이 더 유리하다고 판단될 때
- 성능 데이터 모델링 고려사항
1. 데이터 모델링을 할 때 정규화를 정확하게 수행한다.
2. 데이터베이스 용량산정을 수행한다.(테이블(엔터티)별로 데이터가 대용량인지 구분하게 하기 때문에 테이블에 대한 성능고려를 엄격하게 적용해야 하는지 기준이 될 수 있음)
3. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.
4. 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다.
5. 이력모델의 조정, PK/FK 조정, 슈퍼타입/서브타입 조정 등을 수행한다.
6. 성능관점에서 데이터 모델을 검증한다.
- 로우체이닝: 로우 길이가 너무 길이서 데이터 블록 하나에 데이터가 모두 저장되지 않고 두 개 이상의 블록에 걸쳐 하나의 로우가 저장되어 있는 형태
- 로우마이그레이션: 데이터 블록에서 수정이 발생하면 수정된 데이터를 해당 데이터 블록에서 저장하지 못하고 다른 블록의 빈 공간을 찾아 저장하는 방식
- 슈퍼/서브타입 데이터 모델의 변환타입 비교
1. one to one type: 개별테이블 유지, 확장성 우수함, 조인성능 나쁨, I/O 성능 좋음, 관리용이성 좋지 않음. 개별 테이블로 접근이 많은 경우 선택
2. Plus Type: 슈퍼+서브타입 테이블, 확장성 보통, 조인성능 나쁨, I/O 성능 좋음, 관리용이성 좋지않음. 슈퍼+서브 형식으로 데이터를 처리하는 경우 선택
3. Single Type: 하나의 테이블, 확장성 나쁨, 조인성능 우수함, I/O 성능 나쁨, 관리용이성 좋음, 전체를 일괄적으로 처리하는 경우 선택.
- 와일드카드의 종류
1. % : 0개 이상의 어떤 문자를 의미
2. _ : 1개인 단일 문자를 의미
출처: https://crosstheline.tistory.com/111?category=693092 [이거 알아영???ㅎㅎㅎ]
'ORACLE' 카테고리의 다른 글
oracle 컬럼 속성 수정, 추가, 제거 하기 (0) | 2019.08.29 |
---|---|
[Oracle] SQL Developer 에서 DB 접속시 오류사항 (0) | 2018.11.05 |
oracle replace 입니다 리플레이스 (0) | 2018.10.01 |
ORACLE "% "퍼센트 구하기 자료 (0) | 2018.10.01 |
Oracle Replace 함수 생성(결과값 변환 출력) (0) | 2018.09.11 |