kyh코딩 공부 블로그
데이터 베이스 구축 본문
데이터베이스 구축
정규화
정규화 과정
비정규 릴레이션 -> 1NF(도메인이 원자값) -> 2NF (부분적 함수 종속 제거) -> 3NF (이행적 함수 종속 제거) -> BCNF ( 결정자이면서 후보키가 아닌 함수 종속 제거) -> 4NF (다치 종속 제거) -> 5NF (조인 종속성 제거)
정규화 필요성
- 데이터 구조의 안정성 최대화
- 중복 데이터의 최소화
- 수정 및 삭제 시 이상 현상 최소화
- 테이블 불일치 위험 감소화
E-R 다이어그램
기호 | 의미 |
사각형 | 개체(entity) |
마름모 | 관계(relationship) |
타원 | 속성(attribute) |
실선 | 개체 타입과 속성을 연결 |
2중 타원 | 다중값 속성 |
데이터 베이스 설계
논리적 설계
- 목표 dbms 에 종속적인 논리적 스키마 설계 및 스키마의 평가 및 정제이다
- 논리적 데이터 모델로 변환 및 트랜잭션 인터페이스 설계이다
물리적 설계
- 목표 dbms 에 종속적인 물리적 구조 설계이다
- 저장 레코드 양식 설계와 레코드 집중의 분석/설계 액세스 경로 인덱싱, 클러스터링, 해싱 등의 설게가 포함
- 목표 DBMS에 종속적인 물리적 구조설계
- 저장 레코드 양식 설계
- 레코드 집중의 분석/설계
- 접근 경로 설계
- 트랜잭션 세부 설계
데이터 베이스 분할
- 수평분할 : 효율성, 지역의 최적화, 보안 향상을 위해 행 단위로 분할한다, 종류에는 라운드 - 로빈, 해시 분할, 영역 분할(범위 분할) 이용자의 정의 분할 방식 등이 있다
- 수직분할 : 열 단위로 분할한다, 응용 프로그램에 따라 컬럼을 그룹핑하는 방법과 분영하는 방법이 있다
릴레이션의 특징
- 튜플의 유일성 : 모든 튜플은 서로 다른 값을 갖는다
- 튜플의 무순시성 : 하나의 릴레이션에서 튜플의 순서는 없다
- 속성의 원자성 : 속성값은 원자값을 갖는다.
- 속성의 무순서성 : 각 속성은 릴레이션 내에서 유일한 이름을 가지며 속성의 순서는 큰 의미가 없다
타임스탬프 기법
- 트랜잭션이 DBMS로부터 유일한 타임스탬프(시간 허가 인증 도장)
- 동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 순서를 미리 정하는 방법
로킹
로킹의 특징
- 로킹 단위가 커지면 로크의 수가 적어 관리가 쉬워지지만 병행성 수준은 낮아진다
- 로킹 단위가 작으면 로크의 수가 많아 관리가 어렵지만 병행성 수준은 높아진다
- 로킹의 대상이 되는 객체(파일, 테이블,필드, 레코드)의 크기를 로킹 단위라고한다
트랙젹션
트랜잭션 특징
- 원자성 (atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야한다
- 일관성 (consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 한다
- 격리성 (isolation,고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야한다
- 영속성 (durability, 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억된다.
트랜잭션 상태
- 활동 (active) : 초기 상태로 트랜잭션이 begin_trans에서부터 실행을 시작하였거나 실행 중인 상태
- 부분 완료 (partially committed) : 트랜잭션의 마지막 연산이 실행된 직후의 상태로 모든 연산의 처리는 끝났지만 트랜잭션이 수행한 최종 결과를 데이터베이스에 반영하지 않은 상태
- 철회 (aborted) : 트랜잭션이 실행에 실패하여 rollback 연산을 수행한 상태
- 완료(committed) : 트랜잭션이 실행을 성공적으로 완료 연산을 수행한 상태
병형제어
- 동시에 수행되는 트랜잭션들을 일관성 있게 처리하기 위해 제어하는 것
- 병행 수행의 문제점 : 갱신분실, 비완료 의존성, 모순성, 연쇄 복귀
- 종류 : 로킹, 최적 병행 수행, 타임스탬프, 다중 버전 기법
병형제어 목적
- 데이터베이스 공유 최대화
- 데이터베이스 일관성 최대화
- 시스템 활용도 최대화
- 사용자에 대한 응답 시간 최소화
관계형 데이터베이스의 릴레이션 구조
릴레이션(Relation)은 데이터들의 표(Table)의 형태로 표현한 것으로, 구조를 나타내는 릴레이션 스키마와 실제 값들인 릴레이션 인스턴스로 구성된다.
디그리(degree) : 속성의 수 (차수)
카디널리티 (cardinality) : 튜플의 수 (기수)
'기사공부' 카테고리의 다른 글
정보시스템 구축 관리 (0) | 2025.04.17 |
---|---|
프로그래밍 언어 (0) | 2025.04.17 |
소프트웨어 개발 (0) | 2025.04.17 |
소프트웨어 설계 (0) | 2025.04.17 |