SQLD - 데이터모델링

이강민·2022년 5월 22일
0

웹 개발반 - MySQL

목록 보기
5/6
post-thumbnail

21, 24, 25, 26, 30 기출문제

데이터 모델의 이해

데이터 모델링에 대한 설명

  • 논리 모델링의 외래키는 물리 모델에서 구현은 선택사항임
  • 실제 데이터베이스 구축 시 참고되는 모델은 물리적 데이터 모델링이다.
  • 개념 모델링에서 물리 모델링으로 가면서 더 구체적이며 개념 모델링이 가장 추상적이다.
  • 데이터 모델링의 3요소 Thing, Attributes, Relationship

개념적 데이터 모델링

  • 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행, 전사적 데이터 모델링, EA 수립 시 많이 이용되는 모델링.

논리적 모델링

  • 논리 데이터 모델링의 결과로 얻어지는 논리 데이터 모델은 데이터 모델링의 최종적으로 완료된 상태라고 정의한다. 즉, 물리적 스키마 설계를 하기 전 단계의 데이터 모델 상태를 일컫는 말이다.

엔터티(Entity)에 대한 설명

  • 한 개의 엔터티는 두개 이상의 인스턴스의 집합
  • 한 개의 엔터티는 두개 이상의 속성을 갖는다.
  • 하나의 속성은 하나의 속성값을 가지며 하나 이상의 속성값을 가지는 경우 정규화가 필요
  • 하나의 엔터티의 인스턴스는 다른 엔터티의 인스턴스간의 관계인 Paring을 가진다.

엔터티의 기준

  • 엔터티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다.
  • 엔터티는 업무상 관리가 필요한 관심사에 해당한다.
  • 엔터티는 저장이 되기 위한 어떤 것(thing)이다.

    데이터베이스 권위자의 의한 정의
    1.변별할 수 있는 사물
    2.데이터베이스 내에서 변별할 수 있는 객체
    3.정보를 저장할 수 있는 어떤 것
    4.정보가 저장될 수 있는 사람, 장소, 물건, 사건 그리고 개념 등.

다음 중 엔터티가 아닌 것.

  • 교수, 학생, 수강, 청약자
    청약자는 관심사라기 보다 청약의 주체가 되는 속성에 가까운 것으로 보임, 속성값을 가지기에 애매함.

기본 엔터티

  • 업무에 원래 존재하는 정보, 엔터티와의 관계에 의해 생성되지 않고 독립적으로 생성가능
  • 타 엔터티의 부모 역할, 다른 엔터티로부터 주 식별자를 상속받지 않고 자신의 고유한 주 식별자를 갖는다.
    • ex) 사원, 부서, 자재, 고객, 상품 등 ..

중심 엔터티

  • 기본 엔터티로부터 발생, 중심적인 역할을 한다.
  • 데이터 양이 많이 발생되고 다른 엔터티와의 관계를 통해 많은 행위엔터티를 생성한다.
    • ex) 계약, 사고, 예금원장, 청구, 주문, 매출 등...

행위 엔터티

  • 두개 이상의 부모엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가된다.
  • 분석 초기 단계에서는 잘 나타나지 않으며 상세 설계단계나 프로세스와 상관 모델링을 진행하면서 도출될 수 있다.
    • ex) 주문 목록, 사원변경이력, 계약진행.

도메인(Domain)

  • 도메인이란 엔터티 내에서 속성에 대한 데이터 타입과 크기 그리고 제약사항을 지정하는 것
  • 각 속성은 도메인 이외의 값을 갖지 못한다.
  • 각 속성이 가질 수 있는 값의 범위
    • ex) '학점'속성의 도메인은 0.0 ~ 4.0 사이의 실수
    • '주소' 속성은 길이가 20자 이내인 문자열

관계(Relationship)

  • 관계는 엔터티 간의 관련성을 의미하며, 존재 관계와 행위 관계로 분류

관계의 종류

  • 존재관계
    • 두 개의 엔터티가 존재 여부의 관계가 있는 것
    • 학생이 학교에 입학하여 소속학교가 할당되고 그 할당점으로 학교에서 학생을 관리
  • 행위관계
    • 행위 관계는 엔터티 간에 어떤 행위가 있는 것
    • 증권회사의 계좌 개설

관계 차수(Cardinality)

  • 관계 차수는 두개의 엔터티 간에 관계에 참여하는 수를 의미
    (한 명의 고객은 여러 개의 계과를 개설 할 수 있다.)
    (하나의 학교는 여러명의 학생을 입학시킬 수 있다.)

관계 차수의 종류

  • 1 대 1 관계
    • 하나의 엔티티에 관계되는 엔티티의 관계가 하나 있는 경우(완전 1:1)
    • 하나의 엔티티에 관계되는 엔티티의 관계가 하나이거나 없을 수 있음(선택적 1:1)
  • 1 대 N 관계
    • 엔티티에 행이 하나 있을 때 다른 엔티티의 값이 여러 개 있는 관계
      • 고객은 여러개의 계좌를 가질 수 있음
      • 헬스장은 회원을 여러명 받을 수 있음
  • M 대 N 관계
    • 두 개의 엔티티가 서로 여러개의 관계를 갖고 있는 것.
      • 한명의 학생이 여러개의 과목을 수강할 수 있음, 반대로 한개의 과목은 여러명의 학생이 수강함.

필수적 관계와 선택적 관계

  • 필수적 관계
    • 반드시 하나가 있어야 하는 관계
    • 필수적 관계는 '│'로 표현함.
      • 고객이 있어야 계좌를 만들 수 있음.
  • 선택적 관계
    • 없을 수도 있는 관계
    • 선택적 관계는 '○'로 표현함.
      • 고객이 있더라도 계좌는 없어도 됨
      • 학생이 있더라도 수강을 하지 않아도 됨.

식별 관계(identification Relationship)

  • 고객과 계좌 엔터티에서 고객은 독립적으로 존재할 수 있는 강한 개체(Strong Entity)
  • 강한 객체는 어떤 다른 엔티티에 의존하지 않고 독립적으로 존재
  • 강한 개체는 다른 엔터티와 관계를 가질 때 다른 엔터티에게 기본키를 공유함
  • 강한 객체는 식별 관계로 표현
  • 강한 개체의 키본키 값이 변경되면 식별관계에 있는 엔티티의 값도 변경
  • 고객과 계좌에서 계좌 엔티티가 약한 개체이다.

비식별 관계(non-identification Relationship)

  • 비식별 관계는 강한 개체의 기본키를 다른 엔티티의 기본키가 아닌 일반 컬럼으로 관계를 가지는 것
  • 관리점 엔티티의 기본키는 지점코드이고 고객 엔티티와 비식별 관계임
  • 지점 코드는 고객 엔티티의 기본키가 아닌 일반 컬럼으로 참조
  • 비식별 관계는 점섬으로 표시

식별자(Identifier)

  • 엔티티를 대표할 수 있는 유일성을 만족하는 속성
    • 회원id, 계좌번호, 주민번호, 여권번호, 사회보장넘버 등..

주식별자(기본키, primary key)

  • 유일성과 최소성을 만족시키는 키 (최소성)
  • 엔티티를 대표할 수 있어야 함 (대표성)
  • 엔티티의 인스턴스를 유일하게 식별 (유일성)
  • 자주 변경되지 않아야 함 (불변성)

키의 종류

  • 기본키(primary key)
    • 후보키 중에서 엔티티를 대표할 수 있는 키
  • 후보키(Candidate key)
    • 후보키는 유일성과 최소성을 만족시키는 키
  • 슈퍼키(Super key)
    • 유일성을 만족하지만 최소성을 만족하지 않는 키
  • 대체키(Alternate key)
    • 여러 개의 후보키 중에서 기본키를 선정하고 남은 키
  • 외래키(Foreign key)
    • 하나 혹은 다수의 다른 테이블의 기본 키 필드를 가르키는 것,

식별자의 종류

  • 식별자는 대표성, 생성 여부, 속성의 수, 대체 여부로 분류됨
  • 식별자의 대표성
    • 주 식별자
      • 엔티티를 대표하는 식별자, 유일성과 최소성 만족, 다른 엔티티와 참조 관계로 연결 가능
    • 보조 식별자
      • 유일성과 최소성은 만족하지만 대표성을 만족하지 못함.
  • 스스로 생성여부
    • 내부 식별자
      • 엔티티 내부에서 스스로 생성되는 식별자
    • 외부 식별자
      • 다른 엔티티와의 관계로 인해 만들어지는 식별자
  • 속성의 수
    • 단일 식별자
      • 하나의 속성으로 구성됨
    • 복합 식별자
      • 두 개 이상의 속성으로 구성
  • 대체 여부
    • 본질 식별자
      • 비즈니스 프로세스에 만들어지는 식별자
    • 인조 식별자
      • 인위적으로 만들어지는 식별자
profile
AllTimeDevelop

0개의 댓글

관련 채용 정보