Just do IT
article thumbnail

관계형 데이터 모델

   - 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. 논리 데이터베이스 설계

profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!