관계형 데이터베이스


관계형 데이터베이스의 제약 조건 중 키 (1)

  • Name
    키(Key)
    Type
    Description
    • 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
    1. 후보키 (Candidate Key): 속성 중 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합 / 유일성과 최소성을 만족해야 한다.
    2. 기본키 (Primary Key): 후보키 중 특별히 선정된 주키(Main Key) / 중복은 있을 수 없다. NULL 값을 가질 수 없다.
    3. 대체키 (Alternate Key): 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키 (보조키)
    4. 슈퍼키 (Super Key): 유일성은 만족하지만, 최소성은 만족하지 못한다.
    5. 외래키 (Foreign Key): 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
관계형 데이터베이스의 제약 조건 중 키

관계형 데이터베이스의 제약 조건 중 무결성 (2)

  • Name
    무결성
    Type
    Description
    • 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성

    무결성의 종류

    1. 개체 무결성: 기본키는 절대 NULL과 중복값을 가질 수 없다.
    2. 참조 무결성: 참조할 수 없는 외래키 값을 가질 수 없다.
    3. 도메인 무결성: 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정
    4. 키 무결성: 하나 이상의 키가 존재해야 한다.
  • Name
    데이터 무결성 강화
    Type
    Description
    • 데이터 무결성은 데이터 품질에 직접적인 영향을 미쳐 데이터 특성에 맞는 적절한 무결성을 정의하고 강화해야 한다.
    • 데이터 무결성은 애플리케이션, 데이터베이스 트리거, 제약 조건을 이용하여 강화할 수 있다. (DB Trigger Event에 무결성 조건을 실행하는 절차형 SQL을 추가한다. / DB 제약 조건을 설정하여 무결성을 유지)
관계형 데이터베이스의 제약 조건 중 무결성

관계 대수 및 관계해석 (3)

  • Name
    관계대수
    Type
    Description
    • DB에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도할지 기술하는 절차적인 언어
    • 연산자와 연산 규칙을 제공
    • 질의에 대한 답을 구하기 위해 수행해야 할 연산 순서 명시
  • Name
    순수 관계 연산자
    Type
    Description
    1. SELECT(σ): 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산 / 수평연산이라고 한다.
    2. PROJECT: 주어진 속성 리스트에서 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산 (중복이 발생하면 중복 제거) / 수직연산이라고 한다.
    3. JOIN: 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 만드는 연산
    4. DIVISION: R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
  • Name
    일반 관계 연산자
    Type
    Description
    • 일반 집합 연산자 중, 합집합, 교집합, 차집합을 처리하기 위해 합병 조건을 만족해야 한다. (합병 조건에는 속성의 수가 같고, 대응하는 속성별 도메인이 같아야 한다.)
    1. 합칩합: 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산
    2. 교집합: 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
    3. 차집합: 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
    4. 교차곱: 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
  • Name
    관계 해석
    Type
    Description
    • 관계 데이터의 연산을 표현하는 방법
    • 원하는 정보가 무엇인지만 정의하는 비절차적 특성을 지닌다.
    • 원하는 정보를 정의할 때 계산 수식을 사용한다.

이상 / 함수적 종속 (4)

  • Name
    이상(Anomaly)
    Type
    Description
    • 테이블에서 일부 속성들의 종속으로 인해 데이터 중복이 발생하고, 중복으로 인해 테이블 조작 시 문제가 발생하는 현상

    이상의 종류

    1. 삽입 이상(Insertation Anomaly)
    2. 삭제 이상(Deletion Anomaly)
    3. 갱신 이상 (Update Anomaly)
  • Name
    삽입 이상(Insertaion Anomaly)
    Type
    Description
    • 테이블에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들로 인해 삽입할 수 없게 되는 현상

    예를들면 기본키가 없는 곳에는 데이터를 삽입할 수 없다.

  • Name
    삭제 이상(Deletion Anomaly)
    Type
    Description
    • 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄 삭제 문제가 발생

    기본키가 아닌, 2개 이상의 키가 존재하는 키를 사용해 데이터를 삭제할 때, 원하는 데이터가 아닌 2개 이상의 키의 데이터가 한번에 삭제된다. (중복 삭제는 정보 손실)

  • Name
    갱신 이상(Update Anomaly)
    Type
    Description
    • 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성(Inconsistency)가 생기는 현상
  • Name
    함수적 종속 (Functional Dependency)
    Type
    Description
    • 함수적 종속은 데이터의 의미를 표현하는 것으로, 현실 세계를 표현하는 제약 조건이 되는 동시에 DB에서 항상 유지되어야 할 조건이다.

    DB에 학번과 이름이 있을 때, 학번 → 이름이기 때문에 학번은 결정자, 이름은 종속자가 된다.

    1. 완전 함수적 종속: 기본키에 대해 완적히 종속적일 때
    2. 부분 함수적 종속: 기본키에 의해 결정된 경우
이상 / 함수적 종속