관계형 데이터 모델
- Relation Data Model
- 데이터 간의 관계를 기본 키와 이를 참고하는 외래 키로 표현
- 테이블 간 관계를 1:1, 1:N, M:N 관계로 목적에 맞게 표현
1) 테이블 관련 용어
용어 | 설명 |
튜플 (Tuple) / 행 (Row) | - 테이블 내의 행, 레코드 (Record) |
애트리뷰트 (Attribute) / 열 (Column) | - 테이블 내의 열 |
식별자 (Identifier) | - 구분할 수 있는 논리적 개념 |
카디널리티 (Cardinality) | - 튜플 (Tuple)의 수 (행 Row의 수) |
차수 (Degree) | - 애트리뷰트 (Attribute)의 수 (열 Column)의 수 |
도메인 (Domain) | - 하나의 속성이 가질 수 있는 원자 값들의 집합 |
< 예시 >
고객ID | 고객이름 | 거주도시 |
S1 | 홍길동 | 서울 |
S2 | 이정재 | 인천 |
S3 | 신보라 | 인천 |
S4 | 김종국 | 서울 |
S5 | 도요새 | 용인 |
Relation: 1개 (표 1개)
Attribute: 3개 (컬럼 3개)
Tuple: 5개 (데이터 5개/ 행 5줄)
트랜잭션 (Transaction)
- 일련의 연산 집합으로 데이터베이스의 상태를 변환시키기 위하여 논리적 기능을 수행하는
하나의 작업단위
1) 트랜잭션의 특성 (ACID)
특성 | 설명 |
원자성 (Atomoticity) |
- 트랜잭선 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 함 |
일관성 (Consistency) |
- 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환 |
격리성 (Isolation) |
- 트랜잭션 실행 중 실행하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가 |
영속성 (Durability) |
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장 나더라도 영구적으로 반영되어야 함 |
2) 트랜잭션의 상태
- 활동 / 부분 완료 / 완료 / 실패 / 철회 상태
3) 트랜잭션 제어
- TCL : Transaction Control Language
- 트랜잭션의 결과를 허용하거나 취소하는 목적으로 사용되는 언어
4) 트랜잭션 제어(TCL) 명령어 ⭐
- COMMIT / ROLLBACK / CHECKPOINT
병행 제어 (일관성 주요 기법)
- 다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법
1) 목적
- 데이터 베이스의 공유 최대화
- 시스템의 활용도 최대화
- 데이터베이스의 일관성 유지
- 사용자에 대한 응답시간 최소화
2) 병행 제어 미보장 시 문제점
- 갱신 손실 (Lost Update)
- 현황 파악 오류 (Dirty Read)
- 모순성 (Inconsistency)
- 연쇄복귀 (Cascading Rollback)
3) 병행 제어 기법의 종류
- **로킹(Locking)
- 낙관적 검증
- 타임 스템프 순서 (Time Stamp Ordering)
- 다중버전 동시성 제어 (MVCC: Multi Version Concurrency Control)
**로킹(Locking)의 특징
- 데이터베이스, 파일, 레코드등 : 로킹 단위
- 로킹 단위 감소 / 데이터베이스 공유도, 로킹 오버헤드 증가
- 한꺼번에 로킹할 수 있는 객체의 크기 : 로킹 단위
회복 기법 (영속성 주요 기법)
- 회복 : Recovery
- 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구 시키는 작업
1) 회복 기법의 종류
- 로그 기반 회복 기법
- 지연 갱신 회복 기법
- 즉각 갱신 회복 기법
- 체크 포인트 회복 기법
- 그림자 페이징 회복 기법
뷰 (View)
- 논리 테이블
- 저장장치 내에 물리적으로 존재하지 않음
- 뷰 테이블은 ALTER문으로 변경 불가능 (변경이 필요할 경우 DROP하고 CREATE해야 함)
- 뷰가 정의된 기본 테이블이 제거되면 뷰도 자동적으로 제거됨
1) 뷰의 특징
- 논리적 데이터 독립성 제공
- 데이터 조작 연산 간소화
- 보안 기능(접근제어) 제공
- 뷰 변경 불가
2) 뷰의 장점과 단점
장점 | - 논리적 독립성 제공 - 사용자 데이터 관리 용이 - 데이터 보안의 용이 |
단점 | - 뷰 자체 인덱스 불가 - 뷰 정의 변경 불가 - 데이터 변경 제약 존재 |
인덱스 (Index)
- 데이터를 빠르게 찾을 수 있는 수단
- 자동으로 생성되지 않음
- 기본키 (PK: Primary Key) 컬럼은 자동 생성
스키마의 3계층 ⭐
1) 외부 스키마 (External Schema)
- User View
- 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
- 전체 데이터베이스의 논리적 부분 = 서브 스키마 (Sub Schema)
- 하나의 데이터베이스에 여러개의 외부 스키마 존재 가능
- 하나의 외부 스키마에 여러개의 응용 프로그램이나 사용자가 공용 가능
- 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용
- 일반 사용자는 질의어(SQL)를 이용하여 DB 접근 가능
2) 개념 스키마 (Conceptual Schema)
- DB의 논리구조, 하나만 존재
- 개체간의 관계와 제약 조건을 나타냄
- 접근 권한, 보안, 무결성 규칙에 관한 명세 정의
- 스키마 = 개념 스키마
- 기관이나 조직체의 관점에서 정의한 DB
- 데이터베이스 관리자(DBA)에 의해서 구성
3) 내부 스키마 (Internal Schema)
- DB의 물리적 구조
- 실제 저장 방법을 기술
- 물리적 저장장치와 밀접한 계층
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
정리하기
1. 관계형 데이터 모델
- 데이터 간의 관계를 기본 키와 이를 참고하는 외래 키로 표현
- 용어
튜플 (Tuple) / 행 (Row)
애트리뷰트 (Attribute) / 열 (Column)
식별자 (Identifier)
카디널리티 (Cardinality)
차수 (Degree)
도메인 (Domain)
2. 트랜잭션 (Transaction)
- 일련의 연산 집합으로 데이터베이스의 상태를 변환시키기 위하여 논리적 기능을 수행하는 하나의 작업단위
- 특성 : 원자성(Atomoticity), 일관성(Consistency), 격리성(Isolation), 독립성(Durability)
- 활동 / 부분 완료 / 완료 / 실패 / 철회 상태
- 트랜잭션 제어어 (TCL, Transaction Control Language) : COMMIT / ROLLBACK / CHECKPOINT
3. 병행 제어 (일관성 주요 기법)
- 다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법
- 종류 : 로킹(Locking)
4. 회복 기법 (영속성 주요 기법)
- 손상되기 이전으로 손상되기 이전의 정상적인 상태로 복구
- 종류 : 로그 기반 회복 기법, 지연 갱신 회복 기법,
즉각 갱신 회복 기법, 체크 포인트 회복 기법, 그림자 페이징 회복 기법
5. 뷰(view)
- 저장장치 내에 물리적으로 존재하지 않음 / ALTER로 변경 불가
- 특징 : 논리적 데이터 독립성 제공, 데이터 조작 연산 간소화,
보안 기능(접근제어) 제공, 뷰 변경 불가
7. 인덱스(Index)
- 데이터를 빠르게 찾을 수 있는 수단
- 자동으로 생성되지 않음
- 기본키 (PK: Primary Key) 컬럼은 자동 생성
8. 스키마의 3계층
- 외부 스키마 (External Schema)
- 개념 스키마 (Conceptual Schema)
- 내부 스키마 (Internal Schema)
'정보처리기사 > 3과 데이터베이스 구축' 카테고리의 다른 글
4. 물리 데이터베이스 설계 (2) / 5. 데이터 전환 기술 (0) | 2023.09.17 |
---|---|
4. 물리 데이터베이스 설계 (1) (0) | 2023.09.16 |
3. 논리 데이터베이스 설계 (0) | 2023.09.15 |
1. SQL 응용 (0) | 2023.04.05 |