모델링 Flashcards
데이터 모델링
[리드] 현실세계 데이터 기반 구조화
[정의] 실세계 업무를 가상세계에 적용위해 요구분석 및 개념/논리/물리 모델링기반 데이터 모델 수립 기법
[중요성] 파급효과 예방(변경 영향 최소화), 요구 가시화(간결한 표현 수단), 데이터 품질 향상(중복,불일치등 구조적 문제 방지)
[단계] (요개논물)
1. 요구사항 분석 : 사용자 요구사항 수집 및 명세, 데이베이스 용도 식별, 사용자 식별
2. 개념 모델링 : 핵심 Entity 도출, ERD, 관계설정, 핵심 속성/식별자 정의
3. 논리 모델링 : 속성 정의 및 상세화, 정규화, ERD-RDB 모델 사상
4. 물리 모델링 : DB개체 정의, 테이블/인덱스 정의, 반정규화, 성능/보안, 물리모델 품질 검증
5. 구현 : 실제 DB 구축
* 현실세계 업무를 물리적 추상화 하고 DB로 모델링 작업
개념 모델링
[리드] DBMS 독립적 개념 스키마 기술
[정의] 요구 사항 분석 및 이해 관계자간 의사 소통을 위해 데이터 타입, 속성, 관계, 제약조건을 도출하는 추상화 기법
[핵심요소] 핵심 Entity 정의(고유식별 대상, 속성집합), Relation(Entity 연관성, 업무 Process)
* 행위의 주체, 목적물이 되는 핵심 엔터티로 대상 한정, 고수준 추상 모델로 표현
[절차] (주후핵관개) 수행내역 (고려요소)
1. 주제영역 선정 : 상향식, 하향식, Inside-Out, 혼합식 (AS-IS, TO-BE Biz. 분석, 데이터 집합 분류 )
2. 후보 엔터티 선정 : 문서, DFD(Data Flow Diagram), Interview (Key, Main, Acton Entity)
3. 핵심 엔터티 정의 : 본질 식별자 엔티티 모델링 정의,코드성 키 엔터티 모델링 (집합 순수성, 집합 동질성)
4. 관계 설정 : Cardinality 정의, 1:1, 1:N, N:1, N:N, N:M (직접 종속 관계, 외래키, 참조무결성)
5. 개념 모델 작성 : ERD, (주제-엔터티 매핑, 상위 수준 모델과 매피)
* 주제 영역별 개념 모델을 통합 전사 개념 데이터 모델 구축
논리모델링
[정의] 업무를 모델링 표기법으로 형상화하여 직관적이며, 특정 DB 모델 기반 논리적 스키마로 변환하는 과정
[작업] 속성 정의, Entity 상세화, 이력 관리 정의
[절차] (엔관식속세정통데)
- 엔티티 타입 도출, 관계 도출, 식별자 도출, 속성 도출, 세부사항 도출, 정규화, 통합/분할, 데이터 모델 검증
ER모델
[리드] 논리적 구조 표현 모델링 도구
[정의] 개념적 데이터 모델링의 추상화 표현을 위해 실세계의 속성들로 이루어진 개체와 이들 사이의 관계를 정형화 시킨 모델
[구성요소]
1. 개체 집합 : 모든 객체와 구별되는 개체(Entity)들의 집합
2. 관계 집합 : 개체간 특정 관계(인스턴스)들의 집합
3. 속성 : 개체를 구체적으로 설명하는 특성
4. 제약조건 : 개체 집합 사이의 관계(사상) 특성 (사상 수/참가/키 속성 제약조건)
* ER 모델의 논리적 구조는 ER Diagram의 기호를 통해 단순, 명확한 도형으로 가시화 표현
[ERD 작성]
- 1.주제영역 설정, 2.핵심 개체 설정, 3.관계 설정, 4.핵심속성 정의, 5.식별자 선정
[표기법] Barker 표기법, IE 표기법, IDEF1X, UML, Chen
다차원모델링
[정의] DW 모델링 시 사실 테이블과 차원 테이블 간 상호관계를 정의하여 다차원으로 구현하는 모델링 기법
[기법] Star Scheme, Snowflake Scheme
[구성요소] (사차속계)
- 사실 (Fact) : 사업의 특정단면이나 활동을 수치로 표현한 값 (납입보험료)
- 차원 (Dimensions) : 주어진 사실에 추가적인 관점을 제공하는 특성, 부속 테이블 (부서, 지점)
- 속성 (Attribute) : 각 차원 Table이 가지고 있는 속성 (본부, 영업소)
- 속성 계층 (Hierarchies) : 차원내에 정의된 속성들 간에 존재하는 속성 (영업소의 상위는 본부)
Star schema
[리드] 다차원 모델링 기법
[정의] 정규화된 Fact Table 중심으로 비정규화된 Dimention Table 배치 형태 모델링 기법
* 데이터 웨어하우스 스키마중 가장 단순한 종류의 스키마로, 한 개의 사실 테이블과 주 키 및 각 차원과 추가적인 사실들로 이루어진 스키마
[특징]
- 장점 : 모델단순 이해 용이, 계층구조 정의 용이, 적은 Join 빠른 Query 성능
- 단점 : 단일차원 테이블 → 설명 및 속성의 중복 저장, 상위 레벨에서의 조회 성능 저하
[구성요소] 사실(Facts): 중심테이블, 차원(Dimensions): 각 Fact 분석 하나의 관점, 속성(Attribute): 차원 테이블의 속성, 속성계층(Hierarchies): 차원 테이블 속성간 계층 관계
[구성테이블] Fact Table, Dimension Table
Snowflake schema
[리드] 다차원 모델링 기법
[정의] 시계열분석 등 다차원 계층화 분석 설계, Dimention Table대한 3차 정규화 설계 기법
* Star Schema의 데이터 중복등의 문제를 해결하기 위해 차원테이블을 정규화 하여 계층형태로 구성하는 모델
[특징] 정규화 수행(저장공간 절감), 성능 저하(차원 테이블 join으로 성능 저하)
[구성요소] 사차속계
- 사실(Facts) : 중심 테이블로서 관련성이 높은Measure들의 집합
- 차원(Dimensions) :각Fact Table을 분석하는 하나의 관점
- 속성(Attribute) :각 차원 테이블이 가지고 있는 속성
- 속성계층(Hierarchies) :차원 내 정의된 속성들 간에 존재하는 계층 관계
슈퍼타입,서브타입
[슈퍼타입] 엔티티의 공통 속성을 통합하여 논리적으로 표현한 공통 엔티티 타입
[서브타입] 엔티티의 개별 속성을 분리하여 논리적으로 표현한 개별 엔티티 타입
[표기법] 베타관계, 포함 관계
[타입 종류] One-to-One, Plus, Single
키
[정의] 릴레이션에서 투플을 유일하게 구별하는 속성 또는 속성들의 집합
[키 특징] 유일성, 최소성, 대표성
[종류] (기대후슈)
1. 슈퍼키 : Record를 유일 식별, 하나 이상의 Attribute 집합 (유일성) / 학번, 주민번호, 학번+ 주민번호
2. 후보키 : Record를 유일하게 구분가능 최적화된 필드의 집합 / 유일성, 최소성, Not Null / 학번, 주민번호
3. 대체키 : 선정된 기본키를 제외한 나머지 후보키들, Secondary key / 유일성, 최소성, Not Null / 주민번호
4. 기본키 : 후보키 중 Record를 효율적 관리위해 선택한 주키, Main key / 유일성, 최소성, Not Null / 학번
5. 외래키 : 연관 관계가 있는 다른 테이블의 후보키 값을 참조하고 있는 키 / 학과번호
[키 도출 절차]
1.결정자 도출 (함수적 종속성) 2.유일성 식별(슈퍼키) 3.최소성 식별(후보키) 4.대표성 식별(기본키) 5.외래키 식별
키 제약
[리드] 무결성 확보 방안
[정의] 데이터 모델의 개체 무결성, 참조 무결성, 범위 무결성 보장 위한 장치로 본질적, 내재적 제약
[키 제약] (내본명)
1. 본질적 제약 : 구조적 특성으로 인한 제약 / 데이터 무결성 / 유일성, 최소성 / PK, Unique Key
2. 내제적 제약 : 데이터의 정확한 표현 및 오류방지위한 제약 / 오류방지 / 참조무결성, 범위제약 / FK, Check, Default, Not Null
3. 명시적 제약 : 프로그램에 명시하거나 사용자의 수작업으로 생성 / Programmatically
카디널리티
[정의] 엔티티 간 릴레이션을 구성하는 튜플의 수를 1:1, 1:N, N:M 등 으로 표현하는 개체 간의 관계
[개체-관계 모델 3요소] 개체(Entity), 속성(Attribute)-식별자, 관계(Relationship)-카디널리티
* Entity간의 릴레이션을 구성하는 튜플의 수
[종류]
- Exactly one : 1대1 - 1, 1
- Zero or one : 1대1에서 0 허용 - 0, 1
- One or more : 1대 N - 1, N
- Zero, one, more : 1대 N에서 0 허용 - 0, N
- More than one : 1이상 - >1, >1
뷰
[리드] SQL 레벨의 DB 접근통제
[정의] 하나 이상의 테이블에서 원하는 데이터만 가져오도록 SELECT, JOIN 구문으로 생성한 가상의 테이블
* 뷰는 DB 사용자의 테이블 직접 접근을 막는 접근 통제 기능 수행
[유형] 시스템 뷰(테이블 제약, 색인등 정보 열람), 인덱스 뷰(쿼리 성능 위해 컬럼에 인덱스 적용 뷰), 분할 뷰 (여러 대의 SQL 서버에 테이블 분할 저장, 대량 데이터 조회 목적), 인라인 뷰(하나의 쿼리문 내에 생성, 쿼리 수행후 사라짐)
[View 생성 절차]
1. View SQL 구문 작성(SELECT) 2. View 생성 구문 작성(CREATE VIEW) 3. 권한 허용(GRANT SELECT ON 뷰이름 TO 아이디) 4. 결과 확인
[구문 예시]
- 조회(SELECT * FROM 뷰이름), 수정(REPLACE VIEW 뷰이름), 삭제(DROP VIEW 뷰이름), 생성(CREATE VIEW 뷰이름 AS SELECT ..)
crud matrix
[정의] 시스템 개발 시 프로세스와 DB에 저장되는 데이터 사이의 Dependency를 표현하는 Matrix
[필요성] 모델링(데이터/프로세스 모델링) 작업 검증, 테스트 활용, 인터페이스 확인, 중요 검증 기준산출물
[구성요소]
- 엔티티 타입 : 고객,제품,주문,목록
- 프로세스 : 고객등록, 주문조회
- CRUD : 생성,조회.수정,삭제
[분석방안]
1. 하나의 Entity에 대해두개 이상의 프로세스가 동일 CURD 가질경우 - 중복, 기능 일원화 필요
2. 모든 Entity에 대해 프로세스가 CRUD가 없는 경우 - 기능 추가 필요
데이터베이스 무결성
[정의] 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성
* 데이터베이스 무결성을 유지하기 위해서, 데이터 무결성을 위한 릴레이션 무결성, 참조 무결성 등의 특성을 정의하고, 제약조건을 이용하여 일관성, 정확성, 관계조건을 유지
[유형]
- 데이터 무결성, 릴레이션 무결성, 참조 무결성
데이터 무결성
[리드] 무효 갱신으로 부터 데이터 보호 제약 조건
[정의] 개체 간 적용되는 규칙을 위반하지 않도록 제약(Constraints)하여 데이터의 일관성, 정확성 유지 방법
[유형] (개참속사키도)
1. 개체 무결성 : 기본키 유일성 보장(not null), 엔티티가 중복되지 않고 동일한 Null을 허용하지 않는 성질 (Primary Key, Unique Key, NOT NULL)
2. 참조 무결성 : 참조값 보장, 외래키가 참조하는 다른 개체의 기본키에 해당하는 값이 기본키나 Null이어야 하는 성질 (Foreign Key)
3. 속성 무결성 : 지정 형식 보장, 속성값은 지정된 규칙을 준수하여 존재해야 하는 성질 (Character, Date, LONG)
4. 키 무결성 : 같은 키 값의 중복배제 (Primary Key + Unique Index)
5. 사용자 정의 무결성 : 업무 규칙 준수(Trigger, Check, User Define Data Type, DEFAULT Value)
6. 도메인 무결성 : 범위값 준수 (Cascade, Restrict)
[무결성 확보 고려사항]
- 담당자, 설계/구현, 운영 관점