Review

KOSTA 교육 26일차(데이터 모델링, SQL 필기평가)

Tigger 2020. 6. 21. 18:11

18.12.4(화)

 

배운 내용

 

  1. 데이터 모델링
  2. 엔티티타입
  3. 정규화

1. 데이터모델링

데이터모델링은?

정보화 시스템을 구축하기 위해, 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석하는 방법

 

모델링의 세가지 관점

  • 데이터 관점 : 업무가 어떤 데이터와 관련이 있는지 또는 데이터간의 관계는 무엇인지를 모델링 하는 방법
  • 프로세스 관점 : 업무에서 실제 하는 일은 무엇인지 또는 어떻게 해야 하는지에 대해 모델링 하는 방법
  • 상관 관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링 하는 방법

2. 엔티티타입

엔티티타입은?

업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 것으로 영속적으로 존재하는 단위

  • 엔티티타입은 엔티티의 집합이다.

엔티티 타입의 특징

  1. 첫 번째 반드시 업무에서 필요하고 관리하고자 하는 정보여야 한다.
  2. 유일한 식별자에 의해 식별이 가능해야 한다.
  3. 영속적으로 존재하는 엔티티의 집합이어야 한다. (여기서 영속적은 지속된다는 의미이다.)
  4. 업무 프로세스에 의해 이용되어야 한다.
  5. 반드시 속성이 있어야 한다.
  6. 최소 한 개 이상의 관계가 있어야 한다.

식별자는?

엔티티타입 내에서 엔티티들을 구분할 수 있는 구분자이다.

 

식별자의 분류

  • 대표성 여부 : 주식별자, 보조식별자
  • 자가생성여부 : 내부식별자, 외부식별자
  • 단일속성여부 : 단일식별자, 복합식별자
  • 대체여부 : 원조식별자, 대리식별자

Relationship(관계)는?

두 개의 엔티티타입 사이의 논리적인 관계 즉, 엔티티와 엔티티가 존재의 형태나 행위로서 서로에게 영향을 주는 형태

 

관계 예시

  • 부서 DB팀에 사원 황경빈이 소속되는 존재에 의한 관계이다.
  • 고객 김경재가 CTA201을 주문하는 행위에 의한 관계이다.

여기서 관계간 멤버쉽이 존재하는데 이는 엔티티타입이 참여하는 관계에 대한 자신으로부터의 관점이다.

 

  • 부서로서 사원을 포함하고, 사원으로서 부서에 소속된다는 1인칭 관점

 

관계의 종류(카디널리티)

  1. 1:1 (ONE TO ONE)

 

  • 한 개의 구매신청에 대해 한 개의 구매주문을 작성하고
    한 개의 구매주군에 대해 한 개의 구매신청내용을 작성한다.

 

2. 1:M (ONE TO MANY)

 

  • 한 명의 사원은 한 부서에 소속되고 한 부서에는 여러 사원을 포함한다.

 

3. M:M(MANY TO MANY)

 

  • 하나의 주문은 여러 개의 제품을 구매할 수 있고
    하나의 제품은 여러 개의 주문에 의해 주문될 수 있다.

 

관계의 참여도

 

  • 하나의 주문목록에는 한 개의 목록을 항상 포함하고
    한 목록은 여러 개의 주문목록에 의해 포함될 수 있다.

 

관계의 종류(주/비식별자)

 

  • 주식별자 : 부모의 주식별자가 자식의 주식별자로 상속됨
  • 비식별자 : 부모의 주식별자가 자식의 일반속으로 상속됨

 

속성은?

업무에 필요한 엔티티에서 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위이다.

 

  • 구성 방식에 따른 속성의 분류로 PRIMARY KEY는 사원번호, FORIEN KEY는 부서코드, 나머지는 일반 속성으로 분류된 것을 볼 수 있다.

3. 정규화

정규화는?

다양한 유형의 검사를 통해 데이터모델을 좀 더 구조화하고 개선시켜 나가는 절차이다.

  • 정규화의 기본 원칙은 테이블에 중복된 데이터가 없도록 하는 것
  • 정규화를 하지 않아도 오류는 없지만 쌓이다보면 걷잡을 수 없이 쓸모없는 데이터가 쌓이게 됨

  • 1차 정규화 : 중복값을 제거
  • 2차 정규화 : PRIMARY KEY(주키)와 관련없는 속성 제거
  • 3차 정규화 : 일반속성 중 주키 역할을 하는 속성 제거

 

함수의 종속성

 

  • 이름, 출생지, 주소는 주민등록번호에 함수 종속성을 가지고 있음
  • 종속자는 근본적으로 결정자에 함수적으로 종속관계를 가지고 있음

 

ERD 작업 방법

  1. 엔티티타입을 그린다.
  2. 엔티티타입을 좌에서 우, 위에서 아래로 중요도와 업무흐름에 따라 배치한다.
  3. 엔티티타입간 관계를 설정한다.
  4. 관계명을 기술한다.
  5. 관계의 카디널리티를 기술한다.
  6. 관계의 참여도를 기술한다.

 

오늘 교육 간 느낀점

오늘은 대망의 SQL 정규교육이 끝이나는 날이다.
모델링을 배우면서 지금까지 배웠던 내용들을 어떻게 이용하고 데이터를 활용하는지에 대해 알게되었다. 예제도 아직 제대로 풀어보지 않아 내 것이 되지는 않았지만 내일부터 있을 프로젝트를 통하여 직접 실습해보려고 한다.

 

또 SQL필기평가를 보았는데 기존에 배웠던 내용들을 복습 했더니 생각보다 많이 어렵지는 않았다. 다만 시간이 부족해서 못 푼 문제들이 몇 있지만 충분히 시간이 있다면 풀 수 있는 문제들이어서 프로젝트가 끝나면 복습 할 때 다시 풀어봐 마무리하려고 한다.