데이터베이스 정리

1. 데이터 정의 및 조작

  • 데이터 정의(DDL): 응용 프로그램과 데이터베이스의 인터페이스 방식 정의
  • 데이터 조작(DML): 사용자와 데이터베이스 간 인터페이스 수단 제공
  • 데이터 제어(DCL): 데이터의 정확성과 안정성 유지

2. 스키마 개념

  • 외부 스키마: 사용자 또는 개발자 관점의 데이터베이스 논리적 구조 (사용자 뷰, 서브 스키마)
  • 개념 스키마: 데이터베이스의 전체적인 논리적 구조 (개체 관계, 제약조건, 무결성 등)
  • 내부 스키마: 물리적 저장장치 관점에서 데이터를 저장하는 방식 정의

3. 트랜잭션 및 병행제어

  • 트랜잭션: 논리적 기능을 수행하는 하나의 작업 단위 (ACID)
  • 커밋 & 롤백: 원자성 보장
  • 병행제어:
    • 로킹 단위가 작아지면
      • 데이터베이스 공유도 증가
      • 로킹 오버헤드 증가
      • 병행성 증가
  • 트랜잭션 상태
    • 부분 완료: 연산이 끝났지만 최종 반영되지 않은 상태
    • 실패 상태: 정상 실행 불가 상태
    • 철회 상태: 시작 전 상태로 되돌림

4. 뷰(View)

  • 논리적 독립성 제공
  • CREATE, DROP 가능 (ALTER 불가)
  • 기본 테이블 삭제 시 자동 삭제
  • 인덱스 생성 불가
  • 삽입, 삭제, 갱신 연산에 제약사항 존재

5. 관계형 데이터베이스

  • 릴레이션: 테이블
  • 튜플: 행(카디널리티)
  • 속성: 열(차수)
  • 관계대수(절차적 언어)
    • 순수 관계 연산자: SELECT, PROJECT, JOIN, DIVISION
  • 관계 해석(비절차적 언어)
    • 튜플 관계 해석
    • 도메인 관계 해석

6. 정규화 및 이상현상

  • 이상현상(삽입, 삭제, 갱신 이상)
  • 정규화 단계
    1. 원자성
    2. 부분 함수 종속 제거
    3. 이행적 함수 종속 제거
    4. 다치 종속 제거
    5. 조인 종속 제거

7. 키(Key)

  • 슈퍼키: 유일성 만족, 최소성 만족X
  • 후보키: 유일성 & 최소성 모두 만족
  • 기본키: 후보키 중 선택된 키
  • 외래키: 다른 테이블의 기본키를 참조

8. 데이터 무결성 및 보안

  • 무결성
    • 개체 무결성: 기본키는 NULL & 중복 불가
    • 참조 무결성: 외래키는 기본키이거나 NULL이어야 함
    • 속성 무결성, 사용자 무결성, 키 무결성
  • 보안 모델
    • DAC(임의적 접근 제어)
    • MAC(강제적 접근 제어)
    • RBAC(역할 기반 접근 제어)
    • 벨-라파듈라 모델: 기밀성
    • 비바 모델 / 클락-윌슨 모델: 무결성

9. SQL 활용

  • DML(데이터 조작어)
    • SELECT, INSERT INTO VALUES, UPDATE SET WHERE, DELETE FROM WHERE
  • DCL(데이터 제어어)
    • GRANT 권한 ON 테이블 TO 사용자
    • REVOKE 권한 ON 테이블 FROM 사용자
  • 집계 함수
    • AVG(), SUM(), COUNT(), MAX(), MIN() (그룹 필요)

10. 분산 데이터베이스

  • 투명성 유형
    • 위치, 복제, 병행, 분할, 장애
  • 파티셔닝 기법
    • 범위 분할, 해시 분할, 목록 분할, 조합 분할, 라운드 로빈

11. 반정규화

  • 성능 향상과 운영 단순화를 위해 중복, 통합, 분리 수행
  • 중복 테이블 추가 방법
    • 집계 테이블 추가
    • 진행 테이블 추가
    • 특정 부분만 포함하는 테이블 추가

 

+ Recent posts