DB1 - 데이터 모델링(DB 설계)

topics 700-컴퓨터과학
types 레퍼런스

데이터의 세계

현실 -> 개념적 구조 -> 논리적(데이터) 구조

개념적 모델링 (개념적 설계)
현실세계를 추상적개념, 개체타입으로 표현
데이터 모델링 (논리적 설계)
개념적 구조를 논리적 개념,레코드타입으로 표현
데이터 구조화 (물리적 설계)
논리적 구조를 물리적 구조로 표현

데이터 모델링

데이터 모델

D = < S, O, C>
S : 구조
데이터의 정적 성질
개체 타입과 이들간의 관계를 명세
O : 연산
데이터의 동적 성질
개체 인스턴스를 처리하는 작업에 대한 명세
데이터 조작 기법
C : 제약 조건
인스턴스의 존재 조건
의미상 제약
데이터 조작의 한계를 표현하는 명세

개념적 (데이터) 모델링

속성으로 기술된 개체타입 & 관계 를 이용하여 현실세계 표현
기본 원리 : 추상화 = 집단화(속성)+ 일반화(상위 클래스)
트랜잭션모델링 :트랜잭션( 검색 갱신 혼합)이 필요로하는 정보가 포함되는지 확인

특성

  • 표현력(expressiveness): 개체 타입, 관계성, 제약조건
  • 단순성( simplicity): 이해와 사용이 단순
  • 최소성(minimality): 작은 수의 기본 개념만 사용
  • 다이어그램식 표현: 시각적이고 종합적
  • 공식성(formality): 공식적 명세를 위해 모호하지 않고 정확
  • 독립성(independency): DBMS에 독립적
  • 융통성(flexibility): 변경을 수용 능력

설계방법

  • 뷰통합방법 (일반화))
  • 속성 합성방법 ( 집단화)

용어

  • 개체 : 특정 존재 하나하나
    • 홍길동 , 디비, 자동차
  • 개체 집합 : 공통 속성을 갖는 개체를 모아 둔것
    • {홍길동, 홍장미 ,홍미림}
  • 개체 타입 : 같은 속성을 갖는 개체집합의 추상적 표현
    • 학생
  • 관계 : 개체와 개체 사이의 연관성을 의미
  • 관계 집합 : 개체집합 사이에 실제로 맺어지는 모든 관계인스턴스
  • 관계 타입 : 개체타입 사이에 모든 관계를 추상화 하여 포현 (사상)

E-R 모델(개체-관계 모델)


E-R 모델에서의 개체 = 개체타입 : 속성을 포함하는 추상적 개념
속성 : 개체 또는 관계가 갖는 고유한 특성
값 복수 여부
단일 값 속성 : 한 개체에 대해 속성이 갖는 값 하나
다중 값 속성 : 한 개체에 대해 속성이 갖는 값 여러개

의미 분해 여부
단순 속성 : 의미적으로 더 이상 분해할 수 없는 속성
복합 속성 : 의미적으로 더 분해 가능한 속성

값 저장여부
저장속성 : 실제 값을 저장하는 속성
유도속성 : 값을 저장하지 않앗도 다른 속성 값에서 계산되거나 유도될 수 있는 속성

식별 여부
키속성 : 각 개체를 유일하게 식별할 수 있는 고유한 값을 갖는 속성
일반속성

관계 : 관계타입을 여기선 관계라함

관계 카디널리티

두 개체 집합간의 사상형대를 정의
최대 사상수

  • 1:1
  • 1:n
  • n:1
  • m:n
  • 링크에 숫자나 문자 적어서 표시
    최소 사상수
  • 최소값이 1(= 전체 참여)
  • 최소값이 0(=부분 참여)
관계차수

1진 관계(= 순환 관계)

2진 관계

3진 관계

관계의 종속성

종속 여부
비식별 관계 : 대등한 관계 맺을 때 (이중 마름모로 표시)
식별 관계 : 종속적인 관계를 맺는 경우

강계체 : 고유하게 식별할 수 있는 속성 있음(PK)
약개체 : 자신을 고유하게 식별할 수 있는 속성 없음(부분키는 존재)
식별 관계의 종속자 : 약 개체
상하관계 여부
일반화 관계(IS-A 관계)

상위 개체 : 공통적으로 갖는 속성 표현
하위 개체 : 고유속성만 표현

논리적 데이터 모델링

필드 & 레코드 타입
개념과 관계 속성을
릴레이션과 필드로 변환한다.

개념 모델링을 논리적 모델링으로 변환

개체 변환

1개체 = 1릴레이션
개체의 키속성 = 릴레이션의 PK

관계의 변환
  • 1:n
    • 비식별 관계 : 하나의 외래키로 변환가능(1인곳이 참조됨)
    • 식별관계 : 1쪽에서 외래키 참조, 약개체에서는 외래키+ 부분키 하여 PK를 생성
    • 순환 관계 : 하나의 외래키 속성으로 변환, 실제로 물리적으론 하나임
  • 1:1
    • 한쪽 개체만 전체 참여 : 전체참여하는곳에 FK 추가
    • 양쪽 개체 모두 부분참여 : 서로 FK로 추가해도되고 어느한쪽만 추가해도됨
    • 양쪽 개체 모두 전체참여 : 양쪽에 FK추가하거나 릴레이션을 합침
  • m:n
    • 관계를 하나의 릴레이션으로, 관계 릴레이션에 양쪽 개체를 외래키 속성으로 그조합을 새로운 기본키로
속성 변환
  • 다중값 속성이다
    • 하나의 릴레이션으로 분리하여 변환: 분리전 개체를 외래키로 + 속성 = 기본키
    • 속성이름만 다르게 해서 속성리스트를 추가
  • 복합속성 : 가장하위 속성만 릴레이션 속성으로
  • 유도속성 : 변환에서 제외
일반화 관계 변환
  • 상위개체와 하위개체를 모두 다른릴레이션
    • 하위개체 FK로 상위개체의 기본키를 가져옴
    • 모두 기본키 속성이없으면 외래키 속성을 기본키로
  • 3개를 다 상위 개체 해당된는 하나의 릴레이션으로 하위 관계는 속성으로
  • 하위 개체에해당하는 2개의 릴레이션으로 변환
    - 상위 개체 속성은 각각 릴레이션에 모두포함.
    - 모두 기본키 속성이없으면 상위 개체 키를 기본키로

물리적 모델링

  • 영문 변환
  • 뷰생성
  • 인덱스 생성
  • 내부 자동생성열 생성

설계과정

생명주기

요구조건 분석 -> 설계 -> 구현 -> 운영 -> 감시 및 개선 (다시 앞으로)

설계과정

요구사항 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현 (다시앞으로)
요구사항 분석 : 구현범위 사용자 범주결정, 분석후 명세로로

전략

데이터중심 DB 설계
처리중심 DB 설계

고려사항

  • 무결성 : 제약조건
  • 일관성
  • 회복
  • 보안
  • 효율성
  • db 성장 : 확대

9장함다시봐야함.ㅇ.예시를 직접변환해보샘