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

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

데이터의 세계

현실 -> 개념적 구조 -> 논리적(데이터) 구조
스크린샷 2023-12-20 오전 2.40.35.png
개념적 모델링 (개념적 설계)
현실세계를 추상적개념, 개체타입으로 표현
데이터 모델링 (논리적 설계)
개념적 구조를 논리적 개념,레코드타입으로 표현
데이터 구조화 (물리적 설계)
논리적 구조를 물리적 구조로 표현

데이터 모델링

데이터 모델

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

개념적 (데이터) 모델링

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

특성

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

설계방법

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

용어

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

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

스크린샷 2023-12-20 오전 2.53.06.png E-R 모델에서의 개체 = 개체타입 : 속성을 포함하는 추상적 개념 속성 : 개체 또는 관계가 갖는 고유한 특성 값 복수 여부 단일 값 속성 : 한 개체에 대해 속성이 갖는 값 하나 다중 값 속성 : 한 개체에 대해 속성이 갖는 값 여러개 스크린샷 2023-12-20 오전 3.00.06.png 의미 분해 여부 단순 속성 : 의미적으로 더 이상 분해할 수 없는 속성 복합 속성 : 의미적으로 더 분해 가능한 속성 스크린샷 2023-12-20 오전 3.02.11.png 값 저장여부 저장속성 : 실제 값을 저장하는 속성 유도속성 : 값을 저장하지 않앗도 다른 속성 값에서 계산되거나 유도될 수 있는 속성 스크린샷 2023-12-20 오전 3.04.26.png 식별 여부 키속성 : 각 개체를 유일하게 식별할 수 있는 고유한 값을 갖는 속성 일반속성 스크린샷 2023-12-20 오전 3.04.44.png 관계 : 관계타입을 여기선 관계라함 ##### 관계 카디널리티 두 개체 집합간의 사상형대를 정의 **최대 사상수** - 1:1 - 1:n - n:1 - m:n - 링크에 숫자나 문자 적어서 표시 **최소 사상수** - 최소값이 1(= 전체 참여) 스크린샷 2023-12-20 오전 3.12.26.png - 최소값이 0(=부분 참여) 스크린샷 2023-12-20 오전 3.13.00.png ##### 관계차수 1진 관계(= 순환 관계) 스크린샷 2023-12-20 오전 3.22.25.png 2진 관계 스크린샷 2023-12-20 오전 3.22.44.png 3진 관계 스크린샷 2023-12-20 오전 3.23.03.png ##### 관계의 종속성 **종속 여부** 비식별 관계 : 대등한 관계 맺을 때 (이중 마름모로 표시) 식별 관계 : 종속적인 관계를 맺는 경우 스크린샷 2023-12-20 오전 3.27.46.png 강계체 : 고유하게 식별할 수 있는 속성 있음(PK) 약개체 : 자신을 고유하게 식별할 수 있는 속성 없음(부분키는 존재) 식별 관계의 종속자 : 약 개체 **상하관계 여부** 일반화 관계(IS-A 관계) 스크린샷 2023-12-20 오전 3.30.04.png 상위 개체 : 공통적으로 갖는 속성 표현 하위 개체 : 고유속성만 표현 ### 논리적 데이터 모델링 필드 & 레코드 타입 개념과 관계 속성을 릴레이션과 필드로 변환한다. #### 개념 모델링을 논리적 모델링으로 변환 ##### 개체 변환 1개체 = 1릴레이션 개체의 키속성 = 릴레이션의 PK ##### 관계의 변환 - 1:n - 비식별 관계 : 하나의 외래키로 변환가능(1인곳이 참조됨) 스크린샷 2023-12-20 오전 4.09.40.png - 식별관계 : 1쪽에서 외래키 참조, 약개체에서는 외래키+ 부분키 하여 PK를 생성 스크린샷 2023-12-20 오전 4.12.11.png - 순환 관계 : 하나의 외래키 속성으로 변환, 실제로 물리적으론 하나임 스크린샷 2023-12-20 오전 4.15.52.png - 1:1 - 한쪽 개체만 전체 참여 : 전체참여하는곳에 FK 추가 스크린샷 2023-12-20 오전 4.39.17.png - 양쪽 개체 모두 부분참여 : 서로 FK로 추가해도되고 어느한쪽만 추가해도됨 - 양쪽 개체 모두 전체참여 : 양쪽에 FK추가하거나 릴레이션을 합침 - m:n - 관계를 하나의 릴레이션으로, 관계 릴레이션에 양쪽 개체를 외래키 속성으로 그조합을 새로운 기본키로 ##### 속성 변환 - 다중값 속성이다 - 하나의 릴레이션으로 분리하여 변환: 분리전 개체를 외래키로 + 속성 = 기본키 - 속성이름만 다르게 해서 속성리스트를 추가 스크린샷 2023-12-20 오전 4.46.41.png - 복합속성 : 가장하위 속성만 릴레이션 속성으로 - 유도속성 : 변환에서 제외 ##### 일반화 관계 변환 - 상위개체와 하위개체를 모두 다른릴레이션 - 하위개체 FK로 상위개체의 기본키를 가져옴 - 모두 기본키 속성이없으면 외래키 속성을 기본키로 - 3개를 다 상위 개체 해당된는 하나의 릴레이션으로 하위 관계는 속성으로 - 하위 개체에해당하는 2개의 릴레이션으로 변환 - 상위 개체 속성은 각각 릴레이션에 모두포함. - 모두 기본키 속성이없으면 상위 개체 키를 기본키로 -

물리적 모델링

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

설계과정

생명주기

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

설계과정

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

전략

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

고려사항

  • 무결성 : 제약조건
  • 일관성
  • 회복
  • 보안
  • 효율성
  • db 성장 : 확대
스크린샷 2023-12-20 오전 3.32.10.png

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