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장함다시봐야함.ㅇ.예시를 직접변환해보샘