본문 바로가기
Certificate/정보처리기사

[정보처리기사] 2020년 1회차 (3)데이터베이스 설계

by HJ0216 2023. 7. 19.

정보처리기사

트랜젝션 성질

  1. 원자성(Atomicity): Commit, Rollback
  2. 일관성(Consistency): 무결성
  3. 격리성(Isolation)
  4. 영속성(Durability)

 

무결성

  1. 개체 무결성: PK - Not Null & Unique
  2. 참조 무결성: FK 값은 피참조 릴레이션의 PK 값이거나 NULL 값
  3. 도메인 무결성
  4. 키 무결성: 테이블에 최소 1개의 키가 존재해야 함

 

스키마

: DB의 구조와 제약 조건에 관한 전반적이 명세(Specification)를 기술한 메타데이터(DB에 대한 데이터)의 집합

  1. 외부 스키마
    : 사용자의 입장에서 필요로 하는 DB의 논리적 구조
  2. 개념 스키마
    : DB의 전체를 정의, 조직 전체의 DB로 하나만 존재
  3. 내부 스키마
    : 물리적인 저장장치의 입장에서 본 DB의 논리적 구조
  • 독립성
    • 논리적 독립성: 개념 스키마의 변경은 외부 스키마에 영향을 미치지 않음
    • 물리적 독립성: 내부 스키마의 변경은 개념, 외부 스키마에 영향을 미치지 않음

 

투명성

  1. 분할 투명성(Division Transparency): 하나의 데이터가 여러 장소에 저장
  2. 위치 투명성(Location Transparency)
  3. 지역사상 투명성: 각 지역시스템 이름과 무관한 이름 사용 가능
  4. 중복 투명성(Replication Transparency)
  5. 장애 투명성(Failure Transparency)
  6. 병행 투명성(Concurrency Transparency): 다수 Transaction 동시 수행 시 결과의 일관성 유지

 

데이터 모델링 3단계

  1. 개념
    • ERD 생성
    • 트랜잭션 모델링
    • 개념 스키마 설계
  2. 논리
    • 정규화
    • Transaction Interface 설계
    • 개념 스키마를 평가 및 정제
  3. 물리
    • 성능 향상(인덱스, 파티션, 반정규화 등)
    • 물리적 스키마(저장 레코드 양식, 접근 경로) 설계

반정규화

: 데이터 베이스 정규화 후 성능향상을 위해 정규화 기법에 위배된 의도적 수행기법

  • 종류
    • 테이블 분할: 수평분할 / 수직분할
    • 테이블 중복: 통계 테이블 추가 / 진행 테이블 추가
    • 컬럼 중복: 중복 컬럼 추가 / 파생 컬럼 추가

 

관계 대수(Relation Algebra) & 관계 해석 (Relation Calculus)

관계 대수(Relation Algebra)

  • 주어진 릴레이션 조작을 위한 연산 집합
    • 일반 집합 연산: 합집합(∪), 교집합(∩), 차집합(-), 카티션 프로덕트(X)
    • 순수 관계 연산: SELECT(σ), PROJECT(∏), DIVISION(÷), JOIN(▷◁)
      • DIVISION(÷)
        • R ÷ S: R 튜플 중 S에 속한 튜플 중 S에 속하지 않은 속성값 추출
  • 절차적 언어
  • 원하는 정보를 얻기 위해 어떻게 (how) 질의를 해석하는지를 기술관계 해석 (Relation Calculus)
  • 비절차적 언어
  • 원하는 정보가 무엇 (what) 인지만 명시

 

E-R 다이어그램(ERD) 속성 표기법

erd

 

Key

  1. Super Key: 유일성-대상을 유일하게 식별할 수 있으면 충족
  2. Candidate Key: 유일성 + 최소성
    • Alternate Key: PK가 아닌 후보키
    • Primary Key: AK 중 가정 적합한 키(예: 학교에서 PK는 학번)

 

Trigger: 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작어빙 자동으로 수행되는 절차형 SQL

 

 

 

참고 자료

 

흥달쌤

흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의 및 실무 노하우, 프로그래밍 언어(JAVA, C언어, Python) 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관련된 이야기

www.youtube.com