PlayData 백엔드 부트캠프 정리

PlayData 백엔드 부트캠프 Start 15일차 - 2

효건 2024. 8. 28. 21:58

<데이터 베이스 모델링>

1. 데이터 베이스 모델링 기초

  • 모델링의 정의
    현실세계를 추상화, 단순화, 명확하 하여 대상에 대한 모호함을 제거하는 방법.
    따라서 데이터관점의 분석, 약속된 표기법에 의한 표현, 분석 및 설계 과정이 필요함.
  • 모델링의 3가지 관점
    • 데이터 관점 : 업무를구성하는데 데이터에 집중하여 서로 관계를 맺고 사용되는지를 모델링 
    • 프로세스 관점 : 업무의 흐름에 집중하여 실제로 처리하는 일이 어떻게 처리되는지를 모델링
    • 데이터와 프로세스의 상관관점 : 데이터와 프로세스간의 관계와 영향을 확인 
  • 모델링의 3가지 단계
    • 개념적 모델링 : 전사적 차원의 모델링 수행시 발생--> 엔터티와 속성을 도출
    • 논리적 모델링  : 키 속성 관계를 표현 하며 서로 다른 dbms에 적용이 가능한 수준까지 도출
      draw.io등을 이용해서 가시화 할수있음.   
    • 물리적 모델링  : 성능, 보안, 가용성까지 고려하여설계하는것
  • ANSI에서 정의한 3단계 스키마 구조
    • 외부스키마 : 사용자 관점에서 데이터베이스를 보는 관점을 정의함.
    • 개념스키마 : 설계자관점에서 데이터베이스 스키마를 통합하는 것을 정의함.
    • 내부스키마 : 개발자 관점에서 실질적 물리적 저장구조를 나타냄.
  •  모델링의 유의점 
    • 중복 --> 정규화 과정으로 모면할수있는데 같은정보를 여러 곳에 담을 필요없다.
    • 비유연성 -->sql의 뷰를 수정하면 원본파일 훼손이 될수있는 상황이 발생할 수있는데 이를 막아야 한다,
    • 비일관성 -->상호 연관에 관환 명확한 정의를 해야함.

2. 엔터티

  • 엔터티의 개념
    • 정의 : 데이터 베이스의 구성요소 중 독립적으로식별가능한 객체이다.
    • 특징 
      • 업무에서 필요로하고관리하고자 하는 정보이다.
      • 식별이 가능하도록 유일한 식별자를 가져야 한다.
      • 영속적으로 존재하는 인스턴스가 두 개 이상인 집합을 이루어야 한다.
      • 하위 요소로 반드시 속성을 가져와야 한다.
      • 엔터티는 다른 엔터티와 한 개 이상의 관계를 가져야 한다.
    • 엔터티의 분류 
      • 발생시점/상속관계에 따른 분류 
        • 기본 엔터티 : 자신의 고유한 주 식별자를 가지는 독립적으로 생성되는 엔터티
        • 중심 엔터티 ; 기본 엔터티로부터 주 식별자를 상속받아 생성되며 업무의 중심역할을 수행함. 
        • 행위 엔터티 : 두개 이상의 엔터티를 상속받아 생성되는 엔터티이며 내용이 자주 변경되거나 데이터량이 계속 증가
      • 물리적 형태의 존재여부에 따른 분류
        • 유형 엔터티 : 물리적형태가 존재하는엔터티
        • 개념 엔터티 : 물리적 형태없이 개념적으로정의되는 데이터
        • 사건 엔터티 : 업무를수행하면서 발생하는 행위나 이벤트를 나타내는 데이터 
      • 엔터티의 행은 인스턴스 라고 하며 열은 속성이며 내부의 값은 속성값이라고한다. 

3. 속성

  • 속성의 개념 
    • 엔터티에 대한 자세하고 구체적인 정보이다.
  • 속성의 분류
    • 속성의특성에 따른 분류
      • 기본속성 : 엔터티가 본래부터 가져야 하는 속성
      • 설계속성 : 설계시 필요하다고 판단되어 도출된 속성
      • 파생속성 : 다른속성으로부터계산되거나 특정 규칙에 따라 변형되어 만들어진 속성  
    • 속성의 구성방식에 따른 분류
      • PK(기본키) 속성 : 유일하게 인스턴스를 식별할수있는 속성
      • FK(외래키) 속성 : 관계를 통해 속성을 가져와 포함시킨 속성
      • 일반속성 : 키가 아닌나머지 일반 속성 
    • 도메인
      • 정의 : 속성이 가질수 있는 값의 범위 를 정의한 것으로 테이터의 타입과 크길 그리고 제약사항을 정의한다.

4. 관계

  • 관계의 개념 : 엔터티간에 맺고 있는 연관성.
    • 존재적 관계 : 존재 자체로 서로 연관성을 갖는 관계를 의미
    • 행위적 관계 : 엔터티가 특정 해우이나 이벤트를 일으킬경우에 연관성이 발생하는 관계 
  • 표기법
    • 관계명 : 존재적 관계와 행위적 관계를 기술 
    • 관계차수 : 1:1관계, 1:다 관계, 다대다 관계와 같이 관게르 나타냄
    • 관계선택사항 : 필수적 관계에서는 null값을가질수 없으나  선택적 관계에서는 null값을 가질수있다

5. 식별자

  • 식별자의 개념
    • 엔터티 인스턴스 역시 유일하게 구별할 수있는 속성이 있어야 하며 이런 속성을 식별자라고 부른다. 
  • 주식별자
    • 유일성
    • 최소성
    • 불변성
    • 존재성
  • 식별자의 분류
    • 대표성여부
      • 주식별자 :인스턴스를 유일하게 구별하수있는 식별자
      • 보조식별자 : 해당 엔터티를 유일하게 구별할수있는 식별자이나 대표성을 가지지 못하는 식별자
    • 스스로 생성 여부
      • 내부식별자 : 엔터티 내웁에서 스스로만들어지는 식별자 
      • 외부식별자 : 관계를 통해 다른 엔터티로부터 받아오는 식별자이다.
    • 속성의 수
      • 단일 식별자 : 식별자를구성하는 속성이 하나인 식별자 
      • 복합 식별자 : 식별자를 구성하는 속성이 둘이상인 식별자
    • 대체여부
      • 본질식별자 : 원조 식별자
      • 인조식별자 :인위적으로 만든 식별자