데이터 모델링

→ 영속 데이터를 이해할 수 있게 실체화하는 과정. → 업무 내용, 절차를 시스템DB에 기록,관리,활용하기 위해 데이터를 구조화, 형상화하는 과정

데이터 모델링 작업

엔티티(상품, 가입//포괄적), 속성(생년월일, 가입금액//단일 정보), 관계로 형상화하는 과정

ER 모델 : 현실세계 업무를 개체와 관계로 표현하는 모델 ERD : ER 모델에서 사용하는 실체와 관계를 알기 쉽게 약속한 도형으로 표현.

특성

  1. 완전성 : 모든 업무사항을 표현.

→ 상품 단가가 변경되면 상품 수량과 상품 금액을 같이 관리. 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+ 값, 정규화로 엔티티 분리)

식별자 : 주문 엔티티의 주문번호처럼 엔티티에서 인스턴스를 개별적으로 식별할 수 있는 속성들.

  1. 유일성 2.최소성(최소 속성으로 식별자를 구성해야 한다) 3.불변성(key는 바뀌면 안됨) 4.존재성 자연스럽게 가지는 특성은 본질 식별자, 시스템에서 필요에 의해 추가한 속성이면 인조 식별자다. 인조 식별자는 의미 없는 값일 가능성이 높음.

[여기는 그림을 붙여넣고 공부하는 게 나을 것 같다?] 슈퍼키 : 튜플 고유 식별 속성 집합 후보키 : 모든 후보 키는 슈퍼 키이지만, 모든 슈퍼 키는 후보 키가 아니다.(포함관계) 기본키(PK) : 유일성, 최소성 가지는 후보 키 하나. 대체키: 후보 기본키가 아닌 나머지 후보 키. 외래키(FK): 한 속성 값이 다른 속성의 기본 키를 참조. (Null, Dupli가능)

키 제약조건: 유일, 중복 값 없어야 한다. 실체무결성 : Not Null, Unique 영역무결성 : 정의된 도메인(범위)값일 것. 참조무결성(FK): 자식 외래키는 부모 기본키 값 외에는 안됨.

함수 종속성: 무결성 제약조건으로서 키의 개념을 일반화. (결정자X와 종속자Y) 부분 함수종속(중복이 가능) : 여러 개의 속성이 모여서 하나의 기본키를 이룰 경우, 기본키를 구성하는 일부 속성만으로도 종속관계가 결정 이행적 함수종속 : X → Y , Y→ Z ⇒ X → Z(X와 Z의 관계)

정규화: 중복을 줄이려고 더 작게 테이블을 쪼개는 것. 장점

  1. 중복 제거
  2. 데이터 구조 변경 시 유연함.
  3. 개념에 대한 재활용성 증가
  4. 중복 최소화, 데이터 품질 문제 줄임, 저장 공간 최소화
  5. 입력,수정,삭제 작업 최소화 → 작업 수행속도 향상.

데이터 모델링은 업무적 개념을 정의하는 과정, 정규화된 형태를 이미 거침. 제1 정규형 : 중복이 없고 원자값을 가져야 한다. 중복 열보다 다중 값이 나음🙂 중복과 다중 값을 가지면 컬럼 분리한다. 제2 정규형 : 후보 키에 미종속이거나 일부 속성만 종속인 어트리뷰트를 분리 제3 정규형 : 키가 아닌 어트리뷰트들끼리 종속이 아님.

연결 함정 : 정규화 과정에서 무손실 분해 원칙이 지켜지지 않아 관계성을 잃어버리는 현상.

⇒ 관계성 집합의 의미 혹은 엔티티 간의 관계, 업무적 연관성이 모호해지는 것. 종류

  1. 부채꼴 함정 : 엔티티 간의 설계를 잘못하여 연계된 정보를 추적하지 못하는 것. 예시 : 회사가 물품의 공급사를 알 수 없는 문제가 발생한다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6c79f992-7b0e-485b-b83b-16b27d974eb9/Screen_Shot_2021-02-01_at_10.11.17_AM.png

  1. 균열 함정 : 엔티티와 엔티티 사이의 관계가 존재하지 않는 경우 문제: 회사가 직접 물품을 구매한 경우의 회사와 물품 간의 관계가 빠졌다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/fa374029-67a6-4eb7-8239-6c30ea70efe7/Screen_Shot_2021-02-01_at_10.14.35_AM.png

데이터 모델링 → 영속 데이터를 이해할 수 있게 실체화하는 과정. → 업무 내용, 절차를 시스템DB에 기록,관리,활용하기 위해 데이터를 구조화, 형상화하는 과정

데이터 모델링 작업 : 엔티티(상품, 가입//포괄적), 속성(생년월일, 가입금액//단일 정보), 관계로 형상화하는 과정

ER 모델 : 현실세계 업무를 개체와 관계로 표현하는 모델 ERD : ER 모델에서 사용하는 실체와 관계를 알기 쉽게 약속한 도형으로 표현.

특성

  1. 완전성 : 모든 업무사항을 표현.