-
- DB 설계 순서
요구사항 분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > 구현
- 개념적 설계
머리속에 있는 걸 다 꺼냄, 산출물 : E-RDiagram
- 논리적 설계
체계적으로 모으는 과정, 중복 배제, 정규화, 트랜잭션 인터페이스 설정
- 물리적 설계 : 성능을 위한 설계
오라클, SQL등에 넣음 Index, View, Trigger 등 설정, 역정규화 반정규화 수행
정규화 이유? : 이상 현상 때문(삽입, 삭제, 갱신 이상)
<> 반정규화 : DB 정규화 이후, 성능 향상과 개발 편의성 등 정규화 기법에 위배되는 수행 기법
- 정규화 과정(도메인, 부분, 이행, 결정자, 다치, 조인)
충족 조건 예시 제1 정규형 도메인이 원자값 회원 테이블에 취미로 여러개가 있을 경우
>> 회원/취미 테이블로 분리제2 정규형 부분 함수 종속 제거 학번만 가지고도 이름을 알 수 있다
>> 학번+이름 / 학번+과목+점수 테이블로 분리제3 정규형 이행 함수 종속 제거 X>Y Y>Z일 경우 X>Z 아닌가? >> X+Y, Y+Z 테이블로 분리 BCNF 결정자이면서
후보키가 아닌 것 제거제4 정규형 다치 종속 제거 제5 정규형 조인 종속 제거 - DB 회복 기법
- 로그 기반 회복 기법
REDO : 오류가 발생한 트랜잭션을 재실행하여 복구 수행
UNDO : 오류와 관련된 내용을 취소하여 복구를 수행
- 갱신 기법
지연 갱신 기법 : DB에 반영을 몰아서 한번에 수행 > 오류 발생 시 REDO
즉시 갱신 기법 : DB에 반영이 계속 됨 > 오류 발생 시 REDO, UNDO 실행
- DB 스키마 : DB의 전체적인 구조와 제약조건을 정의
- 외부 스키마 : 클라이언트에게 보여지는 부분, VIEW와 연관
- 개념 스키마 : DB의 전체적인 구조, 제약조건
- 내부 스키마 : 저장장치 안에서 본 구조
- DB 용어 정리
- - Relation(릴레이션) : DB의 테이블, 정보를 구분하여 저장하는 기본 단위
- - Attribute(어트리뷰트) : 속성, 테이블(Relation)의 열,
- - Degree(디그리) : 차수. 열의 수를 뜻한다.
- - Tuple(튜플) : 테이블(Relation)의 행을 뜻한다.
- - Cardinality(카디널리티) : 행의 수를 뜻한다, 테이블 내 데이터에 대해 C모양으로 생각하면 외우기 쉽다
- - Domain(도메인) : 하나의 Attribute가 가질 수 있는 값의 집합
- (과목 Attribute는 수학, 과학만 포함할 수 있다. > 과목 Attribute의 Domain은 수학, 과학)
- DB KEY
- 기본키(Primary Key, PK) : 유일성, 최소성 만족, 단 하나만 지정 가능
- 후보키(Candidate Key) : 유일성, 최소성 만족
- 슈퍼키(Super Key) : 유일성 만족, 최소성 만족x
- 대체키(Alternate Key) : 기본키로 지정하고 남은 후보키
반응형'정보처리기사' 카테고리의 다른 글
소프트웨어 생명주기 V모델 (0) 2022.10.13 결합도/응집도 (0) 2022.10.13 객체지향 설계 원칙(SOLID) (0) 2022.10.13 관계대수, 관계해석 (0) 2022.10.12 SQL, JOIN (0) 2022.10.12