CS/데이터베이스

[데이터베이스] ch04. 데이터 모델링

rngPwns 2025. 4. 23. 17:45

약속화된 방법 필요. E-R모델(개체-관계 모델)

01. 데이터 모델링과 데이터 모델의 개념

  • 데이터 모델링 : 현실세계에 존재하는 데이터를 컴퓨터세계의 데이터베이스로 옮기는 변환과정
    • 데이터베이스 설계의 핵심 과정 : 추상화(abstraction)

 

  • 2단계 데이터 모델링
    • 개념적 데이터모델링(conceptual modeling)
      • 현실세계의 중요 데이터를 추출 -> 개념세게로 옮기는 작업
    • 논리적 데이터모델링(logical modeling)
      • 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업
  • 데이터 모델 : 데이터 모델링의 결과물을 표현하는 도구

 

  • 개념적 데이터모델 : 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
    • ex) 개체-관계 모델
  • 논리적 데이터모델 : 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구
    • ex) 관계 데이터모델
  • 데이터모델의 구성 
    • 데이터구조(data structure) 
      • 개념적 데이터모델에서 개념적 구조 :현실세계를 개념세계로 추상화했을 때 어떤 요소로 이루어져 있는지 표현
      • 논리적 데이터모델에서 논리적 구조 : 데이터를 어떤 모습으로 저장할 것인지 표현
      • 정적 특징
    • 연산(operation) : 개념세계나 컴퓨터세계에서 실제로 표현된 값들을 처리하는 작업
      • 동적특징
    • 제약조건(constraint) -> 데이터 무결성 유지 목적
      • 구조적 측면의 제약사항
      • 연산을 적용하는 경우 허용할 수 있는 의미적 측면 제약사항

 

02. 개체-관계 모델

 

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

  • 피터 첸이 제안한 개념적 데이터 모델
  • 개체-개체 간 관계 이용 -> 현실세계를 개념적 구조로 표현
  • 핵심요소 : 개체, 속성, 관계

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

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

개체(entity)

  • 현실세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것
  • 저장할 가치가 있는 중요 데이터를 갖고 있는 사람이나 사물, 개념, 사건 등
  • 다른 개체와 구별되는 이름을 갖고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 갖고 있다.
    • ex) 서점에 필요한 개체 : 고객, 책 / 학교에 필요한 개체 : 학과, 과목
  • 파일구조의 레코드(record)와 대응된다.
  • E-R 다이어그램에서 사각형으로 표현, 사각형 안에 이름 표기

 

속성(attribute)

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

 

개체 타입(entity type)

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

개체 인스턴스(entity instance)

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

개체 집합(entity set)

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

속성 값의 개수는 첫 번째 step에서 관계 데이터모델인지 판단기준이 될 수 있다.

 

단일 값 속성과 다중 값 속성

  • 단일 값 속성(single-valued attribute)
    • 값을 하나만 가질 수 있는 속성 ex) 고객 개체의 이름, 적립금 속성
  • 다중 값 속성(mutli-valued attribute)
    • 값을 여러 개 가질 수 있는 속성 ex) 고객개체의 연락처 속성, 책 개체의 저자 속성
      • E-R 다이어그램에서 이중 타원으로 표현

그러나 여러 개의 연락처를 통으로 처리 -> 단일값으로 볼 수도 있다.

 

단순 속성과 복합 속성

  • 단순 속성(simple attribute) *사람의 이름도 분해 가능
    • 의미를 더는 분해할 수 없는 속성 ex) 고객 개체의 적립금 속성, 책 개체의 이름, ISBN, 가격 속성
  • 복합 속성(composite attribute)
    • 의미를 분해할 수 있는 속성 ex) 고객 개체의 주소 속성 : 도, 시, 동, 우편번호 등으로 의미 세분화
    • 고객 개체의 생년월일 속성 : 연, 월, 일로 의미를 세분화할 수 있다.

 

유도 속성(derived attribute)

  • 기존의 다른 속성의 값에서 유도되어 결정되는 속성
  • 값이 별도로 저장되지 않는다. ex) 책 개체의 가격과 할인율 속성으로 계산되는 판매가격 속성, 고객개체의 출생연도 속성으로 계산되는 나이 속성
  • E-R 다이어그램에서 점선 타원으로 표현

기존값을 통해 유도 가능

 

널 속성(null attribute)

  • 널 값이 허용되는 속성
    • 널(null) 값(중요!!)  : 아직 결정되지 않았거나 모르는 값 또는 존재하지 않는 값
      • 공백이나 0과는 의미가 다름 ex) 등급 속성이 널 값 -> 등급이 아직 결정되지 않았음을 의미
      • E-R 모델은 null 속성 규정짓지 x
      • NULL과 공백이 공존할수도 있음.

키 속성(key attribute) - null을 허용하지 않는 속성

  • 각 개체 인스턴스를 식별하는 데 사용되는 속성
  • 모든 개체 인스턴스의 키 속성 값이 다르다.
  • 둘 이상의 속성들로 구성된다.
  • ex) 고객 개체의 고객아이디 속성
  • E-R 다이어그램에서 밑줄로 표현
  • 개체무결성 : 한 사람은 한 이름으로 존재

관계(relationship)

  • 개체와 개체가 맺고있는 의미 있는 연관성 (명사: 객체 or 속성 /  동사-의미있는 관계)
  • 개체 집합들 사이의 대응관계 즉 매핑(mapping)의미 (2-ary)
  •  ex) 고객 개체와 책 개체와의 구매관계 : 고객은 책을 구매한다. (3-ary)
  • E-R 다이어그램에서 마름모로 표현

이렇게 그린 그림을 표로 정리

 

  • 관계의 유형 :
    • 관계에 참여하는 개체 타입의 수 기준
      • 이항관계 ; 개체타입 2개가 맺는 관계
      • 삼항관계 : 개체 타입 3개가 맺는 관계
      • 순환 관계 : 개체 타입 1개가 자기 자신과 맺는 관계

1-ary / 2-ary / 3-ary

  • 관계의 유형 : 매핑 카디널리티(관계를 맺는 두 개체 집합에서, 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수) 기준 
    • 일대일(1:1) 관계 : 개체 A와 B 모두 상대 개체 인스턴스 하나와 관계를 맺을 수 있다. 

 

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

  • 다대다(n:m) 관계
    • 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러 개와 관계 맺을 수 있음. 또 개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스 여러 개와 관계를 맺을 수 있음. 

 

관계의 참여 특성

  • 필수적 참여(전체참여)
    • 모든 개체 인스턴스가 관계에 반드시 참여해야 되는 것을 의미
    • ex) 고객개체가 책 개체와의 구매 관계에 필수참여 - 모든 고객은 책을 반드시 구매해야 한다.
    • E-R 다이어그램에서 이중선으로 표현

  • 선택적 참여(부분참여)
    • 개체 인스턴스 중 일부만 관계에 참여해도 되는 것을 의미 
    • ex) 책 개체가 고객 개체와의 구매 참여에 선택참여 - 고객이 구매하지 않은 책이 존재할 수 있음.
    • E-R 다이어그램에서 선 1개로 표현

책을 구매한 사람만 고객으로 가입할 수 있다.

 

관계의 종속성

  • 약한 개체(weak entity) : 다른 개체의 존재 여부에 의존적인 개체
  • 강한 개체(strong entity) :다른 개체의 존재여부를 결정하는 개체
  • 특징 : 
    • 강한 개체와 약한 개체는 일반적으로 일대다의 관계 (약한 개체는 다른 약한 개체와 중복체크 불가)
    • 약한 개체는 강한 개체와의 관계에 필수참여
    • 약한 개체는 강한 개체의 키를 포함해 키를 구성(기본키, 부분키 조합으로 개체 무결성 제공)

관계의 종속성

  • E-R 다이어그램에서 약한 개체는 이중사각형, 약한개체가 강한 개체와 맺는 관계는 이중 마름모로 표현

 

E-R 다이어그램

  • 사각형 : 개체 표현
  • 마름모 : 관계 표현
  • 타원 : 속성 표현
  • 링크(연결선) : 각 요소 연결
  • 레이블 : 일대일, 일대다, 다대다 관계 표기

03. 논리적 데이터모델

 

논리적 데이터 모델의 개념

  • E-R 다이어그램으로 표현된 개념적 구조를 데이터베이스에 저장할 형태로 표현한 논리적 구조(자료구조 선택 단계)
    • 데이터베이스의 논리적 구조 = 데이터베이스 스키마(schema) : database의 구조적 정의
  • 사용자가 생각하는 데이터베이스의 모습 or 구조
  • 관계 데이터모델(일반적으로 사용), 계층 데이터모델, 네트워크 데이터모델 등 

 

관계 데이터모델

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

계층데이터모델 (hierarchical data model)

  • 데이터베이스의 논리적 구조가 트리형태
  • 루트 역할을 하는 개체 존재, 사이클 존재 x
  • 개체 간 상하관계 성립
    • 부모개체/ 자식개체
    • 부모와 자식개체: 1대다 관계만 허용(1대1관계는 넓은의미에서 1대다 관계의 한 유형)
  • 두 개체 사이에 하나의 관계만 정의 가능
  • 다대다 관계 직접 표현 불가
  • 개념적 구조 모델링이 어려워 구조 복잡해질 수 있음
  • 데이터의 삽입, 삭제, 수정, 검색 쉽지 않음

네트워크 데이터 모델 (network data model)

  • 데이터베이스의 논리적 구조가 네트워크, 즉 그래프 형태
  • 개체 간에는 일대다 관계만 허용
    • 오너(owner)/멤버(member)
  • 두 개체 간 관계를 여러 개 정의할 수 있어 이름으로 구별 (labeling 해 주어야 한다.)
  • 다대다 관계를 직접 표현 불가
  • 구조복잡, 데이터 삽입, 삭제, 수정, 검색 쉽지 않음 but 표현력은 좋음
    • 현실세계를 표현하는 정보 구조에 따라 계층, 비계층으로 나뉨.