데이터 모델링은 업무와 영속 데이터를 구조화, 형상화하는 과정을 의미한다.
목적
데이터 모델링 작업은 엔티티, 속성, 관계로 데이터들을 형상화하는 과정이다.
엔티티는 속성보다 포괄적이다. 속성은 단일 정보다.
ER 모델 : 업무를 개체와 관계로 표현한 모델.
ERD: ER 모델을 도형화 한 것. ⇒ 모델의 실체와 관계가 잘 보인다.
특성
→ 상품 단가가 변경되면 상품 수량과 상품 금액을 같이 관리. 2.정확성 : ER 모델 개념을 그대로 정확하게 구현한다.
→ 3.최소성 : 오직 한번, 중복 없이 표현한다.
→부서에서는 직원 수 속성이 필요 없다. 4.자명성 : 설명, 증명 없이도 의미를 알 수 있도록
→주문자 ≠ 수령자를 대비해 배송정보를 별도로 관리한다. 5.확장성 : 유연한 확대, 변경 → 엔티티를 일반화하여 통합한다. 6. 표현성 : iv 이름짓듯이 구체적으로 작명한다. 7.가독성
ER 모델 구성 요소 엔티티(==클래스) 업무에 필요한 모든 집합적인 것 최소 둘 이상의 인스턴스, 속성이 필요함. 각 인스턴스를 식별할 수 있는 속성이나 관계 1개 이상 정의
일반화 : 여러 개의 엔티티를 하나의 공통된 엔티티로 만드는 것(개인과 기업 → 고객) 특수화 : 하나의 상위 엔티티를 두 개 이상의 하위 수준 엔티티로 분할.(통합 테이블 설계 형태) 집단화 : 하나의 엔티티로 취급되는 두 개의 엔티티의 관계를 상위 수준 엔티티로 대체함. (고객과 상품 → 주문 상품)
엔티티 형태 독립 엔티티 : 고객, 상품. 업무중심 엔티티 : 주문, 결제 종속 엔티티 : 주문상품, 주문배송 교차 엔티티 : m : n 관계 해소하는 중간 역할.
관계 관계수 : 까마귀발 1 : 1 → 직원과 인턴 과정 1 : m → 부서와 직원 m : n → 학생과 수강과목
선택성 : 필수(|)인지 선택(O)인지 필수 : 필수 → 주문과 주문상품 필수 : 선택 → 고객과 주문 선택 : 선택 → 사원과 계좌
식별자 상속 : FK를 식별자로 상속받으면 식별관계 , 일반 속성으로 받으면 비식별 관계(다른 주제영역 엔티티 간의 참조 관계) 식별 → 고객 주소와 고객 비식별 → 고객과 주문 비식별 → 고객 주소와 고객.
관계명 : 관계 의미, 이름 표시. 기본 관계 (1:1, 1: m): 부서와 사원
재귀적 관계 : 자기 자신과 관계맺기(Optional) → 상위부서는 여러 하위부서로 이루어짐.
병렬 관계 : 관계가 소수일때 사용. → 고객과 보험계약, 피보험자 보험자 둘 다 가능.
단항 관계 : 재귀적 관계, self-join 이항 관계 : 일반적 관계. 삼항 관계 : 교차 엔티티 추가하여 표현(매우 레어, 이항 아닌지 체크해야한다.)
속성 : 데이터를 표현하는 가장 작은 단위 (가급적 한 속성에 여러 값을 넣지 않는다) 엔티티 특성, 상태를 나타낸다(==iv). 1엔티티 ⇒ 2+속성 속성명 → 의미가 명확하며 함축성 있는 명사로. 식별자여부 → 엔티티 식별자에 해당하나 확인. 옵셔널리티 → 필수인지 선택인지 또는 조건인지. 도메인 : 속성이 허용하는 데이터 형식과 범위.
단순 속성(분해 불가능, 이메일)과 복합 속성(고객 주소) 저장 속성(원래 존재)과 파생 속성(다른 컬럼에 의해 만들어짐, 주문 금액) 단일 값 속성(1속성 1값)과 다중 값 속성(1+ 값, 정규화로 엔티티 분리)
식별자 : 주문 엔티티의 주문번호처럼 엔티티에서 인스턴스를 개별적으로 식별할 수 있는 속성들.
[여기는 그림을 붙여넣고 공부하는 게 나을 것 같다?] 슈퍼키 : 튜플 고유 식별 속성 집합 후보키 : 모든 후보 키는 슈퍼 키이지만, 모든 슈퍼 키는 후보 키가 아니다.(포함관계) 기본키(PK) : 유일성, 최소성 가지는 후보 키 하나. 대체키: 후보 기본키가 아닌 나머지 후보 키. 외래키(FK): 한 속성 값이 다른 속성의 기본 키를 참조. (Null, Dupli가능)
키 제약조건: 유일, 중복 값 없어야 한다. 실체무결성 : Not Null, Unique 영역무결성 : 정의된 도메인(범위)값일 것. 참조무결성(FK): 자식 외래키는 부모 기본키 값 외에는 안됨.
함수 종속성: 무결성 제약조건으로서 키의 개념을 일반화. (결정자X와 종속자Y) 부분 함수종속(중복이 가능) : 여러 개의 속성이 모여서 하나의 기본키를 이룰 경우, 기본키를 구성하는 일부 속성만으로도 종속관계가 결정 이행적 함수종속 : X → Y , Y→ Z ⇒ X → Z(X와 Z의 관계)
정규화: 중복을 줄이려고 더 작게 테이블을 쪼개는 것. 장점
데이터 모델링은 업무적 개념을 정의하는 과정, 정규화된 형태를 이미 거침. 제1 정규형 : 중복이 없고 원자값을 가져야 한다. 중복 열보다 다중 값이 나음🙂 중복과 다중 값을 가지면 컬럼 분리한다. 제2 정규형 : 후보 키에 미종속이거나 일부 속성만 종속인 어트리뷰트를 분리 제3 정규형 : 키가 아닌 어트리뷰트들끼리 종속이 아님.