데이터베이스

2. 데이터베이스 2주차 이론 정리

기디기디 2026. 3. 14. 23:40

#1. 관계 데이터 모델의 개념

  • 관계 데이터 모델
    • 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델
    • 하나의 개체에 관한 데이터를 하나의 릴레이션에 저장
    • 릴레이션: 행과 열로 구성된 테이블
  • 관계 (relation): 행과 열로 구성된 테이블
릴레이션 내의 관계 릴레이션 안에 있는 데이터들의 집합
릴레이션 간의 관계 식별 가능한 값을 이용해 표현 -> 부모/자식 관계
  • 하나의 개체에 관한 데이터를 2차원 테이블의 구조(=스키마)로 저장한 것
  • 파일 관리 시스템 관점에서 파일(file)에 대응
  • 스키마와 인스턴스로 구성
속성 (attribute) 릴레이션의 열 파일 관리 시스템 관점에서 필드(field)에 대응
튜플 (tuple) 릴레이션의 행 파일 관리 시스템 관점에서 레코드(record)에 대응
  • 릴레이션 스키마: 릴레이션의 논리적 구조, 자주 변하지x(정적)
속성 (attribute) 릴레이션 스키마의 열
도메인 (domain) 속성이 가질 수 있는 값의 집합
차수 (degree) 속성의 개수
표기 릴레이션 이름(속성1, 속성2, 속성3, ...)
릴레이션 이름(속성1: 도메인1, 속성2: 도메인2, 속성3: 도메인3, ...)
  • 릴레이션 인스턴스: 릴레이션 스키마에 저장된 데이터 집합, 삽입/추가/삭제/수정이 자주 발생(동적)
튜플(tuple) 릴레이션의 행
카디날리티(cardinality) 튜플의 수
  • 릴레이션의 특징
속성의 원자성 속성은 원자값(단일값)만을 가짐, 여러 값을 넣고 싶으면 테이블 분리 / 속성 나누기
속성의 무순서성 하나의 릴레이션에서 속성 사이의 순서 무의미
속성의 통일성 각 속성은 정의된 도메인에 속하는 동일한 유형의 값만 가짐
튜플의 유일성 하나의 릴레이션에는 동일한 튜플이 존재할 수 x (동일 튜플 중복 저장 x)
튜플의 무순서성 하나의 릴레이션에서 튜플 사이의 순서 무의미
  • 관계 데이터 모델: 데이터를 2차원 테이블 형태인 릴레이션으로 표현
    • 릴레이션에 대한 제약 조건과 관계 연산을 위한 관계 대수를 정의
    • 관계 데이터베이스 시스템: 관계 데이터 모델을 컴퓨터 시스템에 구현한 것, 관계 데이터 모델에 기초하여 SQL을 기반으로 구현

#2. 무결성 제약조건

  • 키: 릴레이션에서 특정 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합
  • 키의 특성
유일성 (uniqueness) 하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가져야 함
최소성 (minimality) 꼭 필요한 최소한의 속성들로만 키 구성
  • 키의 종류
슈퍼키 (super key) 유일성을 만족하는 속성 또는 속성들의 집합
후보키 (candidate key) 유일성과 최소성을 만족하는 속성 또는 속성들의 최소 집합
기본키 (primary key) 후보키 중에서 기본적으로 사용하기 위해 선택한 키, NULL 허용 x, 밑줄 그어 표시
대체키 (alternate key) 기본키로 선택되지 못한 후보키
대리키 (surrogate Key, artificial key) 기본키가 보안을 필요로 하거나 여러 개의 속성으로 구성되어 복잡하거나 마땅한 기본키가 없을 때, 일련 번호 같은 가상의 속성을 만들어 기본키로 삼음
외래키 (foreign key) 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합, NULL 가능, 릴레이션들 사이의 관계 표현
  • 무결성: 데이터에 결함이 없는 상태, 데이터가 정확하고 유효하게 유지된 상태
    • 데이터의 무결성: 데이터의 무결성 보장, 일관되고 정확한 상태로 유지하기 위한 규칙
  • 무결성 제약조건 (integrity constraint)
도메인 무결성 제약조건
(domain integrity constraint)
도메인 제약: 릴레이션 내의 튜플들이 각 속성의 도메인에 지정된 값만 가져야 한다는 조건
개체 무결성 제약조건
(primary key constraint)
기본키 제약: "기본키는 NULL 값을 가져서는 안 되며 릴레이션 내에 오직 하나의 값만 존재해야 함"을 지켜야 한다는 조건
참조 무결성 제약조건
(referential integrity constraint)
외래키 제약: 릴레이션 간의 참조 관계를 선언하는 제약 조건
개체 무결성 제약조건 위반 기본키가 NULL
기본키가 중복
복합키로 만든 기본키의 일부 NULL
기본키를 가진 행 삭제 시 참조하는 외래키가 있을 때
참조 무결성 제약조건 위반 참조 중인 부모 키 삭제
참조 중인 부모 키 변경
존재하지 않는 부모 키 참조
  • 부모 릴레이션에서 튜플을 삭제할 때 참조 무결성 제약조건을 수행하기 위한 옵션
RESTRICTED 자식 릴레이션에서 참조하고 있으면 부모 릴레이션의 삭제 작업 거부 삭제 거부
CASCADE 자식 릴레이션의 관련 튜플 같이 삭제 부모 삭제 시 자식도 함께 삭제
DEFAULT 자식 릴레이션의 관련 튜플을 미리 설정해 둔 값으로 변경 부모 삭제 시 자식의 외래키를 NULL 또는 기본값으로 변경
NULL 자식 릴레이션의 관련 튜플을 NULL 값으로 설정

#3. 관계대수

  • 관계대수: 릴레이션에서 원하는 결과를 얻기 위해 릴레이션의 처리 과정을 순서대로 기술하는 절차적 언어
    • 릴레이션을 처리하는 연산자들의 모임: 일반 집합 연산자 / 순수 관계 연산자
    • 폐쇄 특성 (closure property): 피연산자도 릴레이션, 연산의 결과도 릴레이션
  • 일반 집합 연산자 (set operation): 릴레이션이 튜플의 집합이라는 개념 이용
    • 합병 가능(union-compatible) 조건: 두 릴레이션의 차수가 같아야 함 / 두 릴레이션에서 서로 대응되는 속성의 도메인 같아야 함
합집합 (union) 각각의 릴레이션에 속하는 모든 튜플을 반환 교환법칙 성립, 결합법칙 성립
교집합 (intersection) 각각의 릴레이션에 공통으로 속하는 튜플 반환  교환법칙 성립, 결합법칙 성립
차집합 (difference) 릴레이션 A에는 존재하지만 릴레이션 S에는 존재하지 않는 튜플 반환 교환법칙 성립x, 결합법칙 성립x
카디션 프로덕트 (cartesian product) 각각의 릴레이션에 속한 각 튜플을 모두 연결하여 만들어진 새로운 튜플 반환 교환법칙 성립, 결합법칙 성립
  • 순수 관계 연산자 (relational operation): 릴레이션의 구조와 특성을 이용하는 연산자
셀렉트 (select) 릴레이션에서 조건을 만족하는 튜플만 추출하기 위한 연산자  델타+조건식(릴레이션), 릴레이션 where 조건식
프로젝트 (project) 릴레이션의 속성을 추출하기 위한 단항 연산자  파이+속성리스트(릴레이션), 릴레이션[속성리스트]
  • 조인: 두 릴레이션의 공통 속성을 기준으로 속성값이 같은 튜플을 수평으로 결합하는 연산
세타조인 세타 조인 중에서 비교 연산자가'='(같다)인 경우로 가장 많이 쓰임  공통 조건 만족하는 행만 반환
동등조인 조인 조건에 비교 연산자를 자유롭게 사용
자연조인 동등조건에서 중복되는 조인 컬럼을 하나 제거하여 더 깔끔하게 보여주는 조인
외부조인 자연조인에서 조인 조건에 맞지 않아 제외되는 튜플도 버리지 않고 NULL을 채워 반환 -> 왼쪽 외부조인, 오른쪽 외부조인, 완전 외부조인 조건 불만족 시에도 한쪽 테이블 행 포함 (NULL 채움)
세미조인 자연조인을 한 후 두 릴레이션 중 한 쪽 릴레이션의 결과만 반환 한쪽 테이블 행만 반환, 다른 테이블 속성은 제외
  • 디비전 (Division): 릴레이션2의 모든 튜플과 관련이 있는 릴레이션1의 튜플을 추출하는 연산
    • 표현법: 릴레이션1 ÷ 릴레이션2