코딩두의 포트폴리오

Database - # 04 본문

Database

Database - # 04

코딩두 2024. 3. 31. 02:41

# 데이터베이스 개발 시 데이터 저장 구조를 먼저 결정 -> 결정한 사항에 문제 없는지 검토하는 설계 과정을 거침

# 데이터베이스를 설계하는 핵심 방법과 도구의 이해 필요

 

 

4.1 데이터 모델링과 데이터 모델의 개념 이해

데이터 모델링 (data modeling)

  • 데이터베이스 설계의 핵심 과정
  • 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
  • 데이터 모델링의 고려사항
  • 데이터베이스에 저장하여 관리할 만한 가치가 있는 중요 데이터 선별 -> 추상화
  • 데이터베이스의 저장 구조 결정 -> 표 형태의 저장을 결정

코끼리의 데이터 모델링 예

데이터 모델링의 2단계

  • 개념적 데이터 모델링 - 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업
  • 논리적 데이터 모델링 - 개념 세계의 데이터를 데이터베이스에 저장할 구조를 결정하고 이 구조로 표현하는 작업

코끼리의 2단계 데이터 모델링 예시

 

데이터 모델 (data model)

  • 데이터 모델링의 결과물을 표현하는 도구
  • 개념적 데이터 모델 - 데이터베이스의 개념적 구조로 표현하는 도구 (개체-관계 모델)
  • 논리적 데이터 모델 - 데이터베이스의 논리적 구조로 표현하는 도구 (관계 데이터 모델)

데이터 모델(data model)의 구성

  • 데이터 구조 - 개념적 데이터 모델의 데이터 구조: 개념적 구조 / 논리적 데이터 모델의 데이터 구조: 논리적 구조
  • 연산 - 데이터 구조에 따라 개념 세계나 컴퓨터 세계에서 실제로 표현된 값들을 처리
  • 제약조건 - 구조적 측면의 제약 사항, 의미적 측면의 제약 사항(연산 적용 경우)

데이터 모델의 구성

데이터 모델링과 데이터 모델의 개념 이해 ex) 아파트 건설

  • 개념적 데이터 모델: 개념적 데이터 모델링을 위한 방법이나 도구(개체-관계 모델)
  • 논리적 데이터 모델: 논리적 데이터 모델링을 위한 방법이나 도구(관계 데이터 모델)

아파트 건설 예시로 이해

 

4.2 개체 - 관계 모델

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

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

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

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

개체(entity)

  • 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것
  • 즉, 저장할 가치가 있는 중요 데이터를 가지고 있는 존재 - 물리적 존재: 사람,사물 / 개념적 존재: 개념, 사건
  • 개체는 이름과 속성을 가짐
  • 개체는 파일 구조의 레코드(record)와 대응

개체 타입(entity type): 개체를 고유의 이름과 속성들로 정의한 것

개체 인스턴스(entity instance): 속성이 실제 값을 가진 실체화된 개체

개체 집합(entity set): 개체 인스턴스들을 모아 놓은 것 -> 데이터베이스에서 실제로 저장,관리하는 대상

개체 타입과 인스턴스 예시: 고객 게체 타입과 고객 개체 인스턴스

 

개체는 E-R 다이어그램에서 사각형으로 표현, 사각형 안에 개체 이름 표기

                                                           -> 개체의 E-R 다이어그램 표현 예시: 고객 개체

속성(attribute)

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

속성 표현                                                                   개체에 대한 속성 표현

                                                                  -> 속성의 E-R 다이어그램 표현 예시

 

속성의 분류

속성의 분류

속성의 분류 - 단일 값 속성 / 다중 값 속성

단일 값 속성(single-valued attribute): 값을 하나만 가질 수 있는 속성

다중 값 속성(multi-valued attribute): 값을 여러 개 가질 수 있는 속성 / E-R 다이어그램에서 이중 타원으로 표현

다중 값 속성의 E-R 다이어그램 표현 예시 - 연락처 속성

속성의 분류 - 단순 속성 / 복합 속성

단순 속성(simple attribute): 의미를 더는 분해할 수 없는 속성, 값의 의미가 1개

복합 속성(composite attribute): 의미를 분해할 수 있는 속성, 값의 의미가 다수

복합 속성의 E-R 다이어그램 표현 예시 - 생년월일 속성

속성의 분류 - 유도 속성 (derived attribute)

기존의 다른 속성의 값에서 유도되어 결정되는 속성

저장 속성: 실제로 값을 저장하고 있는 속성

유도 속성: 필요할 때마다 계산되므로 값을 따로 저장할 필요 없음

유도 속성은 E-R 다이어그램에서 점선 타원으로 표현

유도 속성의 E-R 다이어그램 표현 예시 - 판매가격 속성

속성의 분류 - 널 속성(null attribute)

널 값(아직 결정되지 않았거나 모르는 값 또는 존재하지 않는 값)이 허용되는 속성

  • 등급 속성이 널 값 - 등급이 아직 결정되지 않았음을 의미
  • 취미 속성이 널 값 - 고객의 취미를 입력하지 않았음을 의미
  • 병역 속성이 널 값 - 성별이 여자인 경우 해당 사항 없음을 의미

속성의 분류 - 키 속성(key attribute)

  • 모든 개체 인스턴스의 키 속성 값이 다르므로, 각 개체 인스턴스를 식별하는 데 사용되는 속성
  • 둘 이상의 속성들로 구성되기도 함
  • 개체 타입을 정의할 때 중요한 제약조건 - 키 속성의 값이 개체 인스턴스를 식별할 수 있어야 함
  • E-R 다이어그램에서 밑줄로 표현

키 속성의 E-R 다이어그램 표현 예시 - 고객아이디 속성

관계 (relationship)

  • 개체와 개체가 맺고 있는 의미 있는 연관성 - 개체 집합들 사이의 대응 관계, 즉 매핑을 의미
  • 관계의 속성 - 관계를 맺음으로써 발생하는 중요한 데이터들이 관계의 속성이 됨
  • E-R 다이어그램에서 마름모로 표현

관계의 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 다이어그램에서 이중선으로 표현
  • 선택적 참여(부분 참여) - 개체 인스턴스 중 일부만 관계에 참여

필수적 참여 관계의 E-R 다이어그램 표현 예시 - 고객 개체의 필수적 참여 관계

관계의 존속성

존재 종속 (existence dependence)

  • 개체 B가 개체 A에 종속 시, 개체 A가 존재해야 개체 B가 존재 / 개체 A가 삭제되면 개체 B도 함께 삭제
  • 의존적인 개체 B -> 약한 개체 // 다른 개체의 존재 여부를 결정하는 개체 A -> 강한 개체

특징

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

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

관계 존속성의 E-R 다이어그램 표현 예시 - 약한 개체인 부양가족 개체

E-R 다이어그램

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

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

E-R 다이어그램 예시 - 고객, 책, 출판사 개체로 구성

위 E-R 다이어그램에서는

고객과 책은 개체

고객아이디, 고객명, 적립금의 3속성 / 구매일자, 결제방식의 관계도 속성 / 책과 출판사는 4속성을 가짐

 

4.3 논리적 데이터 모델

논리적 데이터 모델의 개념과 특성

  • E-R 다이어그램으로 표현된 개념적 구조를 데이터베이스에 저장할 형태로 표현한 논리적 구조
  • 데이터베이스 스키마 = 논리적 데이터 모델로 표현된 데이터베이스의 논리적 구조
  • 사용자가 생각하는 데이터베이스의 모습 또는 구조
  • 논리적 구조는 사용하는 DBMS에 따라 달라짐
  • 논리적 데이터 모델의 종류
  • 관계 데이터 모델 - 논리적 구조가 2차원 테이블 형태
  • 계층 데이터 모델
  • 네트워크 데이터 모델 등이 있음

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

데이터베이스의 논리적 구조가 트리 형태

  • 루트 역할을 하는 개체가 존재하고 사이클이 존재하지 X 
  • 개체 간의 상하 관계가 성립 - 부모와 자식 개체는 일대다 관계만 허용

두 개체 사이에 하나의 관계만 정의할 수 있음

  • 책과 고객의 다대다 관계를 직접 표현할 수 없어 별도의 개체를 추가로 생성하여 표현
  • 책 개체와 고객 개체=1:n, 고객 개체와 구입도서 개체=1:n -> 고객 개체와 책 개체의 n:m 관계 표현

계층 데이터 모델의 단점

  • 개념적 구조를 모델링하기 어려워 구조가 복잡해질 수 있음 
  • 데이터의 삽입, 삭제, 수정, 검색이 쉽지 X

계층 데이터 모델의 예시

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

  • 데이터베이스의 논리적 구조가 네트워크, 즉 그래프 형태
  • 두 개체 사이의 1:n 관계를 이용해 n:m 관계 표현 - 개체 간 관계는 화살표로 표시 / 일대다 관계 표현
  • 두 개체 사이에 여러 관계를 정의할 수 있어 관계를 이름으로 구별
  • 구조가 복잡하고 데이터의 삽입, 삭제, 수정, 검색이 쉽지 X

네트워크 데이터 모델의 예시

관계 (relationship)

'Database' 카테고리의 다른 글

Database - # 06  (0) 2024.04.05
Database - # 05  (0) 2024.04.01
Database - # 03  (0) 2024.03.30
Database - # 02  (0) 2024.03.30
Database - # 01  (2) 2024.03.30