[DATABASE] 데이터 모델링

박중연·2024년 3월 13일

데이터 모델링

  • 모델링 : 현실에서 사용하는 복잡한 데이터를 어떻게 컴퓨터의 DBMS에 옮겨 놓을지 결정하는 과정.
  • 지반 설계
  • 변환할 수 있는 대상 : 실체가 있는 대상 뿐만 아니라, 행동도 변환할 수 있다.

예) 올리브영 > 직원에게 상품 문의 > 구입
-직원 R, 고객 R, 상품 R, 매장 정보R, 구입 R
-상품 R : 상품 번호, 이름 , 제조일자, 회사, 가격 .....

예)사람의 신분을 증명하는 신분증
---> 어떤 정보? 이름 주민번호 주소 등등.......

모델링은 정답이 없다. 단 효율적이지 않은 모델링은.....

  • 프로젝트 진행에서 데이터 모델링은 요구사항을 분석하고 정리하는것 부터 시작된다.

아주 잘못된 예 ) 회원가입 시 , 아이디, 비번, 이름 등 정보 받는다

  • 요구사항을 수집하고, 분석한 결과를 가지고, 핵심 개념을 추출한다.
  • 핵심 개념 : 개체
  • 개체와 개체 간 관게를 정의한다.
  • E-R다이어그램을 작성한다.

Ex) 올리브영에서 상품을 구매한다.
개체 : 고객, 상품
관계 : 구매

개념적 모델링: 개체와 개체들 간의 관계에서 ER다이어그램을 만드는 과정

논리적 모델링: ER다이어그램을 사용하여 관계 스키마 모델을 만드는 과정

물리적 모델링: 관계 스키마 모델의 물리적 구조를 정의하고 구현하는 과정

데이터 모델의 구성 요소

1. 개체(Entity)

  • 사람이 생각하는 개념, 정보와 같은 현실 세계 대상
  • 개체 타입과 개체 : 홍길동 이길동 삼길동
  • 길동이라는 개체 타입에 속해 있는 개체다

2. 속성(Attribute)

  • 개체 타입이 가지는 특징을 알아야 한다.

3. 관계(Relation)

  • 개체와 개체가 맺고 있는 의미 있는 연관성
  • ex ) 고객은 상품을 구매한다.
  • 관계의 종류( 1:1 , 1:n, n:m)
    - 관계를 어떻게 맺어줄까?? >>>KEY라는 것을 설정해서 관계를 맺어준다.(KEY는 추후 공부)

4. 데이터 베이스의 구성

  • 스키마
    • 데이터 베이스의 전체 구조

  • 인스턴스
    - 식별자 (key)
    - 18명 이름이 홍길동 일때 어떻게 구분을 할까? 식별자!
    - ex)1000번 훈련병 홍길동, 1001번 훈련병 홍길동, 1002번 훈련병 홍길동

  • 릴레이션(테이블)의 특징
    • 릴레이션은 중복된 튜플을 가질 수 없다.
    • 릴레이션의 튜플을 식별하기 위해 KEY를 설정해서 유니크하게 식별한다.
    • 릴레이션 에서 튜플의 순서는 중요하지 않다.
    • 하나의 릴레이션에서 Attribute(속성)의 이름은 중복되면 안된다.
    • Attribute의 값 (지정된 값)은 ATOMIC(더이상 나눠질 수 없어야함)해야 한다.
      -> ex) 전공(major)이라는 Attribute에 컴퓨터공학과와 경영학과를 동시에 저장할 수 없음

  • NULL의 의미?
    • 값이 존재하지 않는다
    • 값이 존재하지 않는데 아직은 모른다
profile
개발자로 취업하기

0개의 댓글