[CS] 데이터베이스 - 관계 데이터 모델

두두·2023년 11월 7일
0

CS

목록 보기
8/14

📌 관계 데이터 모델링

현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는
변환 과정


위 그림처럼 데이터 모델링은 두 단계로 나눠짐

개념적 데이터 모델링

현실세계의 중요데이터를 추출하여 개념세계로 옮기는 작업

논리적 데이터 모델링

념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업

📌 관계 데이터 모델

데이터 모델링의 결과물을 표현하는 도구

모델링 과정이 두 단계로 나눠졌으니까 모델도 각각에 해당하는 모델 두 가지가 있음

1️⃣ 개념적 데이터 모델

  • 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여
    데이터베이스의 개념적 구조로 표현하는 도구
  • 예시) 개체-관계 모델 (Entity-Relationship Model)

2️⃣ 논리적 데이터 모델

  • 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로
    표현하는 도구
  • 예시) 관계 데이터 모델

데이터 모델 구성

  • 구조(Structure)
    논리적으로 표현된 개체 타입들 간의 관계
    정적. 즉 한번 정해지면 잘 바뀌지 않음
  • 연산(Operation)
    데이터 구조에 따라서 개념세계나 컴퓨터 세계에서 실제로 표현된 값들을 처리하는 작업
    동적
  • 제약조건(Constraint)
    데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
    연산에서 특정 필드값을 지정해주는 등의 구조적 제약 사항을 넣을 수 있음

개념적 데이터 모델

사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여
데이터베이스의 개념적 구조로 표현하는 도구

개체-관계 모델(E-R model; Entity-Relationship model)

  • 개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현
  • 핵심 요소 : 개체, 속성, 관계

개체-관계 다이어그램(E-R diagram)

  • 개체 - 관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것

개체(Entity)

  • 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것
    ✅ 저장할 가치가 있는 중요 데이터
  • ex. 학교에 꼭 필요한 개체 : 학생, 학과, 과목
  • 파일구조의 record
  • E-R 다이어그램에서 사각형으로 표현하고 사각형 안에 이름을 표기

개체 타입(entity type)

  • 개체를 고유의 이름과 속성들로 정의한 것
  • 파일 구조의 레코드 타입(record type)

개체 인스턴스(entity instance)

  • 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체
  • 개체 어커런스(entity occurrence)라고도 함
  • 파일 구조의 레코드 인스턴스(record instance)

개체 집합(entity set)

  • 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것

속성(attribute)

  • 개체나 관계가 가지고 있는 고유의 특성
  • 의미 있는 데이터의 가장 작은 논리적 단위
  • 파일 구조의 필드(field)
  • E-R 다이어그램에서 타원으로 표현하고 타원 안에 이름을 표기

속성의 분류

속성 값의 개수

  • 단일 값 속성
    값을 하나만 가질 수 있는 속성
    ex) 고객 이름

  • 다중 값 속성
    값을 여러 개 가질 수 있는 속성
    ex) 고객 연락처
    E-R 다이어그램에서 이중 타원으로 표현

의미의 분해 가능성

  • 단순 속성(simple attribute)
    의미를 더는 분해할 수 없는 속성
    ex) 고객 아이디
  • 복합 속성(composite attribute)
    의미를 분해할 수 있는 속성
    ex) 고객의 생년월일

기존 속성 값에서의 유도

  • 유도 속성(derived attribute)
    기존의 다른 속성의 값에서 유도되어 결정되는 속성
    값이 별도로 저장되지 않음
    E-R 다이어그램에서 점선 타원으로 표현

그외

  • 널 속성(null attribute)
    널 값이 허용되는 속성
    널값 == 아직 결정 X 혹은 모르는 값 혹은 존재하지 않는 값
    != 공백, 0

  • 키 속성(key attribute)

  • 각 개체 인스턴스를 식별하는 데 사용되는 속성

  • 모든 개체 인스턴스의 키 속성 값이 다름

  • 둘 이상의 속성들로 구성되기도 함

  • E-R 다이어그램에서 밑줄로 표현


관계(Relationship)

개체와 개체가 맺고 있는 의미 있는 연관성
개체 집합들 사이의 대응 관계, 즉 매핑(mapping)을 의미

  • ex. 고객과 책의 구매 관계
  • E-R 다이어그램에서 마름모로 표현

관계의 유형

개체 타입의 수

  • 이항 관계 : 개체 타입 두 개가 맺는 관계
  • 삼항 관계 : 개체 타입 세 개가 맺는 관계
  • 순환 관계 : 개체 타입 하나가 자기 자신과 맺는 관계

매핑 카디널리티 기준

❓매핑 카디널리티(mapping cardinality)
관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수

일대일(1:1), 일대다(1:n), 다대다(n:m) 관계가 있음!

  • 일대일(1:1) 관계
    개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 하나와 관계를 맺을 수 있고,
    개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있음
  • 일대다(1:n)관계
    개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있지만,
    개체 B의 각 개체 인스턴스는 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있음
  • 다대다(n:m) 관계
    개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계를 맺을 수 있고,
    개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스여러 개와 관계를 맺을 수 있음

관계의 참여 특성 기준

  • 필수적 참여
    모든 개체 인스턴스가 관계에 반드시 참여해야 되는 것
    E-R 다이어그램에서 이중선으로 표현

  • 선택적 참여(부분 참여)
    개체 인스턴스 중 일부만 관계에 참여해도 되는 것

➡️ 모든 고객은 책을 반드시 구매해야 함
➡️ 고객이 구매하지 않은 책이 존재할 수 있음


관계의 종속성 기준

  • 약한 개체(weak entity)
    다른 개체의 존재 여부에 의존적인 개체
    E-R 다이어그램에서 이중 사각형으로 표현

  • 강한 개체(strong entity)
    다른 개체의 존재 여부를 결정하는 개체

✅ 특징

  • 강한 개체와 약한 개체는 일반적으로 일대다의 관계를 가지고,
    약한 개체는 강한 개체와의 관계에 필수적으로 참여함
  • 약한 개체는 강한 개체의 키를 포함하여 키를 구성함


약한 개체가 강한 개체와 맺는 관계는 이중 마름모로 표현
➡️ 직원 개체와 부양가족 개체 사이의 부양 관계



논리적 데이터 모델

개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로
표현하는 도구

  • E-R 다이어그램으로 표현된 개념적 구조를 데이터베이스에 저장할
    형태로 표현한 논리적 구조
  • 데이터베이스의 논리적 구조 = 데이터베이스 스키마
  • 사용자가 생각하는 데이터베이스의 모습 또는 구조

관계 데이터 모델

  • 일반적으로 많이 사용되는 논리적 데이터 모델
  • 데이터베이스의 논리적 구조가 2차원 테이블 형태

계층 데이터 모델

  • 구조가 트리(tree) 형태
  • 루트 역할을 하는 개체가 존재
  • 사이클 ❌
  • 상하 관계 (부모 개체/ 자식 개체)
  • 두 개체 사이에 하나의 관계만 정의
  • 다대다(n:m) 관계를 직접 표현 ❌
  • 개념적 구조를 모델링하기 어려워 구조가 복잡해질 수 있음
  • 데이터의 삽입·삭제·수정·검색 어려움

네트워크 데이터 모델

  • 구조가 네트워크 == 그래프 형태
  • 개체 간에는 일대다(1:n) 관계만 허용 (오너owner / 멤버member)
  • 두 개체 사이에 여러 관계를 정의할 수 있어 이름으로 구별
  • 다대다(n:m) 관계를 직접 표현
  • 구조 복잡
  • 데이터의 삽입·삭제·수정·검색 어려움
profile
멋쟁이가 될테야

0개의 댓글