[오늘의 배움] 013 데이터베이스 데이터 모델

이상민·2020년 12월 8일
0

[오늘의 배움]

목록 보기
13/70
post-thumbnail

1. 데이터의 세계

  • 데이터 모델링 : 현실 세계를 개념 세계를 통해 컴퓨터 세계로 만드는 것
    (현실) -- 추상화/개념적모델링 --> (개념적 구조) -- 변환/데이터 모델링 --> (논리적 구조)

  • 개념적 구조를 거지치 않고 바로 모델링을 하려면 어렵다

  • 개념적 모델링 : 현실 세계를 추상적 개념인 개체와 관계로 표현, E-R 모델

  • 논리적 모델링 : 개념적 구조를 논리적 개념, 레코드 타입으로 표현, 관계 데이터 모델

  • 데이터 구조화 : 논리적 구조를 물리적 구조로 표현, 물리적 설계

2. 데이터 모델

D = <S, O, C>

  • S : 구조
    데이터의 정적 성질
    개체 타입과 관계 명세

  • O :연산
    데이터의 동적 성질
    데이터의 조작기법

  • C : 제약 조건
    데이터의 논리적 제약
    데이터 조작의 한계를 표현

2-1. 데이터 모델의 종류

  • 논리적 데터 모델 중 가장 많이 사용되고 있는 모델은 관계 데이터 모델

  • 이전에는 네트워크, 계층 데이터 모델이 사용됐고 최근에서 OO 데이터 모델과 OR 데이터 모델 사용

  • DBMS는 하나의 논리적 데이터 모델만을 구현, 모델 간 차이점은 데이터 요소 간 관계 표현 방식에 있음

3. 개체 타입

개체 : 단독으로 존재할 수 있으며 다른 것과 구별되는 객체
개체 타입 : 이름과 애트리뷰트로 정의, 개체의 집합(개체는 개체 타입에 대한 인스턴스)
애트리뷰트 유형 : 단순/복합, 단일/다중 값, 유도/저장, null

3-1. 단순/복합 애트리뷰트

  • 단순 : 원자값을 갖는 애트리뷰트
  • 복합 : 단순 애트리뷰트로 분할 수 있는 애트리뷰트

ex) 주소 = 복합, 도/시/동 = 단순

3-2. 단일/다중 값 애트리뷰트

  • 단일 : 한 개체에 하나의 값
  • 다중 : 한 개체에 여러개의 값

ex) 취미 = 다중, 이름 = 단일
다중값 애트리뷰트는 E-R 모델에서는 허용되지만 RDB에서는 분해해야한다

3-3. 유도/저장 애트리뷰트

  • 유도 : 값이 다른 애트리뷰트나 개체의 값으로 유도되어 결정
  • 저장 : 유도 애트리뷰트를 생성하는데 사용된 애트리뷰트

ex) 유도 = 평균 성적, 저장 = 성적

3-4. null 애트리뷰트

  • null 값을 가지는 애트리뷰트, null은 인스턴스가 애트리뷰트에 대한 값을 가지고 있지 않을 때 명시적으로 표시하기 위해 사용
  • null 값을 가지는 경우 : 값이 개체에 해당되지 않거나, 또는 값을 알 수 없는 이유가 누락 혹은 존재x 일 때

4. 관계 타입

개체 타입들 사이의 대응, 즉 사상

4-1. 관계 타입의 유형

  • 원소 사상 수 (mapping cardinality)
    1) 1 : 1
    2) 1 : n
    3) n : 1
    4) n : m

4-2. 애트리뷰트를 가진 관계 타입

4-3. 전체/부분 참여

  • 전체 참여 (total participation) : A-B에서 A의 모든 개체가 A-B 관계에 참여
    ex) 교수 - (소속) - 학과

  • 부분 참여 (partial participation) : A-B에서 A의 일부 개체만 A-B 관게에 참여
    ex) 학생 - (수강) -과목

4-4. 존재 종속

  • 개체 b의 존재가 개체 a의 존재에 종속, 이때 a = 주 개체, b = 종속 개체

5. E-R 모델

개체 타입과 관계 타입을 기본 개념으로 현실 세계를 개념적으로 표현하는 방법

  • E-R 모델에서 관계 데이터, 객체지향 데이터, 네트워크 데이터 모델로 이용 가능

5-1. E-R 다이어그램의 특징

  • 다 대 다 관계 표현

  • 다원 관계 표현 (n-ary relationship) : 두개 이상의 개체 타입이 하나의 관계 타입에 관련 가능
    >> 대부분 2원 관계이지만 가끔 3원 관계도 존재하고, 4원 관계는 쓰지 않는다

  • 다중 관계표현 : 두 개체 타입 사에 둘 이상의 관계 존재 가능

  • 관계 타입도 애트리뷰트를 가질 수 있음

5-2. 키 애트리뷰트

  • 기본키와 후보키들
  • 키 : 개체 타입 내의 모든 개체 인스턴스들을 유일하게 식별, 동일한 키 값을 갖는 두 개체는 없음

5-3. 약한 개체 타입

  • 자신의 애트리뷰트만으로는 키를 명세할 수 없는 개체 타입

  • 주 개체 = 강한 개체 타입, 종속 개체 = 약한 개체 타입

  • 구별자 (discriminator) : 약한 개체 집합 내에서만 인스턴스를 식별할 수 있는 애트리뷰트

  • 식별 관계 타입 : 약한 개체를 강한 개체에 연결시켜 개체를 유일하게 식별하게 하는 관계

5-4. E-R 다이어그램 표기법

6. 논리적 데이터 모델

개념적 구조를 데이터베이스로 구현하기 위한 중간 단계, 개체 타입과 관계로 표현

6-1. 모델

  • 네트워크 데이터 모델
  • 계층 데이터 모델
  • 관계 데이터 모델
  • 객체지향 데이터 모델
  • 객체-관계 데이터 모델

6-2. 관계 데이터 모델

  • DB : 릴레이션(개체, 관계)의 집합

  • 릴레이션 스키마 : 개체와 관계성을 모두 릴레이션으로 정의

profile
편하게 읽기 좋은 단위의 포스트를 추구하는 개발자입니다

0개의 댓글