Database

데이터베이스 개론 정리

ch-yang 2022. 12. 20. 16:35

3장. 데이터베이스 시스템

  • 스키마
    • 데이터 구조와 제약 조건을 정의
    • 저장된 값 = 인스턴스
  • 시스템 카탈로그 (= 데이터 사전, 시스템 데이터베이스)
    • 저장되는 데이터에 관한 정보를 저장하는 곳

  • 데이터 정의어 (DDL) - Difinition
  • 데이터 조작어 (DML) - Manipulation
  • 데이터 제어어 (DCL) - Control

4장. 데이터 모델링

  • 데이터 모델링
    • 현실 세계의 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
  • E-R Model (개체-관계 모델)
    • Entitiy-Relationship Model
  • Entity (개체)
    • 저장할만한 가치가 있는 요소
    • 개체 타입 → 고객(이름, 주소, 연락처, 적립금)
    • 개체 인스턴스 : 개체를 구성하는 속성이 실제 값을 가짐으로써 실체화 된 개체
    • 개체 집합 : 개체 인스턴스의 모음
      • 데이터베이스는 개체 집합을 관리한다.
  • 속성 (Attribute)
    • 개체가 갖는 고유 특성
    • 데이터의 가장 작은 논리적 단위
  • 관계 (Relationship)
    • 개체 간 맺고 있는 연관성 (Mapping)
  • Mapping cadinality (매핑 카디널리티)
    • 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수
    • 일대일, 일대다, 다대다
  • 데이터베이스 스키마
    • 데이터베이스의 논리적 구조
    • 계층 데이터 모델, 네트워크 데이터 모델, 관계 데이터 모델

5장. 관계 데이터 모델

  • attribute (속성) : 열
  • tuple (투플) : 행
  • domain (도메인) : 속성 하나가 가질 수 있는 모든 값의 집합
  • reation (릴레이션)
    • 모든 릴레이션은 테이블이지만, 모든 테이블은 릴레이션이 아니다.
    • 테이블이 릴레이션이 되기 위해서는 테이블의 행들이 개체에 대한 데이터를 저장해야하고, 테이블들의 열이 그 개체들의 특성에 대한 데이터를 저장해야 한다. 릴레이션은 한 열의 모든 값들은 동일한 종류여야 한다.
    • 정규화를 만족하는 테이블이 릴레이션이겠네
    • 다른 해석으로는 “릴레이션은 추상적 개념이고 테이블은 구체적인 표현이라고 볼 수 있다.”
    • 릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 구성되어 있다.

  • degree (차수) : 하나의 릴레이션에서 속성의 전체 개수
  • cardinality (카디널리티) : 하나의 릴레이션에서 투플의 전체 개수

릴레이션의 특성

  • 튜플의 유일성 : 동일한 튜플이 존재할 수 없다. (유일하게 구별하기 위한 속성 - 키)
  • 튜플의 무순서 : 튜플 사이의 순서는 무의미하다.
  • 속성의 무순서 : 속성 사이의 순서는 무의미하다.
  • 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다. (다중 값을 가질 수 없다.)

키의 종류

  • 슈퍼키, 후보키, 기본키, 대체키, 외래키

무결성 제약조건

  • 개체 무결성 제약조건 : 기본키는 널 값을 가질 수 없다.
  • 참조 무결성 제약조건 : 외래키는 참조할 수 없는 값을 가질 수 없다.
    • 투플을 수정/삭제하는 연산은 “참조 무결성 제약조건”을 위반하지 않는 경우에만 수행한다.

7장. 데이터베이스 언어 SQL

  • SQL : Structured Query Language
  • SQL은 연습하는 걸로…

9장. 정규화

정규화의 개념과 이상 현상

  • 데이터베이스를 설계한 후 설계 결과물을 검증하기 위해 사용하기도 한다.
  • 정규화는 이상 현상이 발생하지 않도록, 릴레이션을 분해하는 과정이다.
  • 이상현상의 종류 (책의 예시를 다시 보는 것이 좋을 것 같다)
    • 삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제
    • 갱신 이상 : 중복 투플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제
    • 삭제 이상 : 투플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제

함수 종속

  • 하나의 릴레이션을 구성하는 속성들의 부분 집합을 X와 Y라 할 때, X 값에 따라 Y 값이 결정되면 “Y가 X에 함수적으로 종속되어 있다” (X→Y)라고 한다. (X: 결정자, Y: 종속자)
  • 기본적으로 릴레이션의 속성들은 기본키에 함수적으로 종속되어 있다.
  • 함수 종속 관계를 판단할 때는, 현재 시점의 데이터만으로 판단하면 안되고 속성 자체가 갖는 특성과 의미를 기반으로 판단해야 한다.
  • 완전 함수 종속 : X→Y 관계에서, Y가 속성 집합 X 전체에 종속되어 있음 (일반적인 함수 종속)
  • 부분 함수 종속 : X→Y 관계에서, Y가 속성 집합 X의 일부분에도 종속되어 있음

정규화의 개념과 정규형의 종류

  • 이상 현상이 발생하지 않는 올바른 릴레이션으로 만들어나가는 과정을 정규화(Normalization)라고 한다.
  • 제 1정규형
    • 릴레이션에 속한 모든 속성의 도메인이 원자 값으로만 구성되어 있으면 제 1정규형에 속한다.
  • 제 2정규형
    • 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속되면 제 2정규형에 속한다.
  • 제 3정규형
    • 기본키가 아닌 모든 속성이 기본키에 이행적 함수 종속이 되지 않으면 제 3정규형에 속한다.
    • X→Y, Y→Z 관계가 만족하면 논리적으로 X→Z가 성립하는데, 이때 Z가 X에 이행적으로 함수 종속되었다고 한다.
  • BCNF형 (Boyce/Codd Normal Form : 보이스/코드 정규형)
    • 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키이면 보이스/코드 정규형에 속한다.
    • 강한 제 3정규형 (Strong 3NF)이라고도 한다.
    • 이 내용도 이행적 함수 종속과 비슷한 내용으로 보이는데, 예시를 보면서 하는 게 이해하기 좋겠다.

10장. 회복과 병행 제어

트랜잭션의 개념

  • 트랜잭션 (transaction) : 작업 하나를 수행하는 데 필요한 데이터베이스의 연산들을 모아놓은 것
    • 데이터베이스에서 논리적인 작업의 단위가 된다.
    • 장애가 발생했을 때 데이터를 복구하는 작업의 단위도 된다.

트랜잭션의 특성

  • 트랜잭션의 네 가지 특성의 영단어 첫 자를 따서 ACID 특성이라고 한다.
  • 원자성, 일관성, 격리성, 지속성

트랜잭션의 연산

  • commit, rollback

회복

병행 제어

'Database' 카테고리의 다른 글

SQL Window Function  (0) 2023.07.24