데이터 모델과 SQL

이강용·2026년 9월 22일

SQLD

목록 보기
3/13

식별자

식별자의 개념

  • 식별자는 엔터티 내의 각 인스턴스를 유일하게 구분하기 위한 속성 또는 속성의 조합
  • 하나의 엔터티에는 반드시 하나 이상의 식별자가 존재
  • 식별자는 엔터티 간의 관계 설정과 데이터 무결성 유지의 기준

키(key)의 개념

  • 키(Key)는 테이블에서 데이터를 식별하거나 참조하기 위해 사용되는 속성
  • 키는 식별자를 데이터베이스 구현 관점에서 표현한 개념
  • 식별자는 논리 데이터 모델 단계에서 키는 물리 데이터 모델 단계에서 사용
  • 두 용어는 같은 역할(유힐한 식별·참조)을 단계별로 다르게 부르는 명칭
키 종류설명주요 특징
슈퍼키 (Super Key)테이블의 행(튜플)을 유일하게 식별할 수 있는 속성들의 집합• 유일성 만족
• 최소성은 만족하지 않을 수도 있음
후보키 (Candidate Key)튜플을 유일하게 식별하기 위해 사용되는 속성들의 최소 집합• 유일성 만족
• 최소성 만족
기본키 (Primary Key)후보키 중에서 테이블을 대표하도록 명시적으로 선택된 키• 유일성 및 최소성 만족
• 중복값 불가, NULL값 불가
대체키 (Alternate Key)후보키 중에서 기본키로 선택되지 않은 나머지 키들• 기본키를 제외한 남은 후보키들
외래키 (Foreign Key)다른 테이블의 기본키를 참조하여 테이블 간의 관계를 맺는 키• 참조 무결성 유지 목적
• 중복값 및 NULL값 허용 가능

식별자의 종류

구분주식별자 (Primary Identifier)보조식별자 (Secondary Identifier)
개념엔터티 내에서 각 인스턴스를 유일하게 식별하며, 해당 엔터티를 대표하는 주된 식별자엔터티의 인스턴스를 유일하게 식별할 수 있지만, 주식별자로 채택되지 않은 식별자
관계 매핑관계형 데이터베이스의 기본키(Primary Key)에 해당하며, 타 엔터티와 관계를 맺을 때 주로 사용됨관계형 데이터베이스의 대체키(Alternate Key)에 해당하며, 주된 관계 연결보다는 보조적인 식별용으로 사용됨
특징 및 요건• 유일성: 인스턴스를 유일하게 식별
• 최소성: 키를 구성하는 속성의 최소 집합
• 존재성: 반드시 값이 존재해야 함 (NULL 불가)
• 대표성: 엔터티를 대표함
• 유일성: 인스턴스를 유일하게 식별
• 최소성: 키를 구성하는 속성의 최소 집합
• 대표성 없음: 주식별자가 아니므로 엔터티를 대표하지 않음
• 필요에 따라 NULL 허용 여부가 달라질 수 있음

식별자와 비식별자 관계

식별자 관계

  • 부모 엔터티의 기본 식별자가 자식 엔터티의 기본 식별자에 포함되는 경우 형성
  • 부모와 자식 사이에 강한 연결을 가짐
  • 자식의 존재가 부모의 존재에 의존
  • 자식 엔터티는 부모 엔터티 없이는 존재할 수 없음
  • 실선으로 표현

비식별자 관계

  • 부모 엔터티의 기본 식별자가 자식 엔터티의 기본 식별자에 포함되지 않는 관계
  • 엔터티 간 연결이 덜 엄격
  • 자식 엔터티는 부모 엔터티와 독립적으로 존재할 수 있음
  • 자식이 부모 없이도 의미를 가질 수 있는 경우에 적합
  • 점선으로 표현

관계형 데이터베이스 개념

관계형 데이터베이스의 특징

  • RDB는 행과 열로 구성된 2차원 테이블 형태로 데이터를 저장·관리 하는 데이터베이스이다.
  • 1970년 에드거F.코드가 제안한 관계 모델을 기반으로 한다.
  • 계층형·네트워크형 DBMS의 구조적 한계를 보완하기 위해 등장
  • 대표적인 관계형 DBMS로 Oracle, MySQL, MariaDB, PostgreSQL, MS SQL Server 등이 있다.
특징설명
테이블 기반 구조데이터가 행(Row/튜플)과 열(Column/속성)로 이루어진 2차원 형태의 테이블(릴레이션)로 저장됩니다.
관계표현기본키(Primary Key)와 외래키(Foreign Key)를 활용하여 여러 테이블 간의 논리적 관계를 유연하게 표현합니다.
SQL사용표준화된 데이터베이스 질의 언어인 SQL(Structured Query Language)을 사용하여 데이터 조회, 수정, 삭제, 삽입 등을 수행합니다.
데이터 무결성다양한 제약 조건(Unique, Not Null, Check 등)을 통해 데이터의 정확성과 일관성을 유지하고 오류를 방지합니다.
트랜잭션 지원ACID(원자성, 일관성, 고립성, 지속성) 특성을 보장하여 데이터 처리의 안정성과 신뢰성을 제공합니다.
독립성 보장논리적 독립성과 물리적 독립성을 제공하여 데이터베이스의 구조가 바뀌어도 응용 프로그램이나 물리적 저장 장치에 영향을 주지 않습니다.

릴레이션의 구성요소

용어의미동의어/관련 용어
릴레이션 (Relation)행(Row)과 열(Column)로 이루어진 2차원 테이블 구조테이블 (Table)
튜플 (Tuple)릴레이션의 행을 의미하며, 개체에 대한 데이터(레코드)의 모임행 (Row), 레코드 (Record)
속성 (Attribute)릴레이션의 열을 의미하며, 데이터의 가장 작은 논리적 단위열 (Column), 필드 (Field)
도메인 (Domain)하나의 속성이 가질 수 있는 원자값들의 허용 범위 집합값의 범위, 데이터 타입
차수 (Degree)릴레이션을 구성하는 속성(Attribute)들의 개수열의 개수
카디널리티 (Cardinality)릴레이션에 포함되어 있는 튜플(Tuple)들의 개수기수, 행의 개수

무결성 제약조건

무결성 제약조건의 개념

  • 무결성 제약조건(Integrity Constraint)은 데이터의 정확성과 일관성을 보장하기 위해 적용되는 규칙
  • 잘못된 데이터의 입력·수정·삭제를 방지하여 데이터 품질을 유지

개체 무결성(Entity Integrity)

  • 개체 무결성은 기본키가 NULL 값과 중복된 값을 가질 수 없다는 것
  • 모든 튜플은 기본키에 의해 유일하게 식별되어야 함

참조 무결성(Referential Integrity)

  • 참조 무결성은 외래키 값이 참조 대상의 기본키 값과 일치하거나 NULL이어야 한다는 규칙
  • 존재하지 않는 데이터를 참조할 수 없도록 함
옵션설명예시
CASCADE부모 테이블의 데이터가 삭제되거나 수정될 때, 자식 테이블의 관련 데이터도 함께 삭제되거나 수정됩니다.부서(부모)가 삭제될 때, 해당 부서에 소속된 사원(자식) 데이터도 함께 삭제됨
SET NULL부모 테이블의 데이터가 삭제되거나 수정될 때, 자식 테이블의 외래키 컬럼 값을 NULL로 변경합니다.부서(부모)가 삭제될 때, 해당 사원들의 부서 번호 외래키 값이 NULL로 변경됨
SET DEFAULT부모 테이블의 데이터가 삭제되거나 수정될 때, 자식 테이블의 외래키 컬럼 값을 미리 지정한 기본값(Default)으로 변경합니다.부서(부모)가 삭제될 때, 해당 사원들의 부서 번호가 지정된 기본 부서 번호로 변경됨
RESTRICT자식 테이블에서 해당 데이터를 참조하고 있는 경우, 부모 테이블의 데이터 삭제나 수정을 즉시 거부합니다.사원이 한 명이라도 소속된 부서(부모)는 삭제할 수 없음
NO ACTIONRESTRICT와 유사하게 참조 중인 경우 삭제/수정을 거부하지만, 제약 조건 검사가 트랜잭션 종료 시점에 이루어집니다.참조하는 자식이 있는 상태에서 부모를 삭제하려고 하면 에러 발생

도메인 무결성(Domain Integrity)

  • 도메인 무결성은 속성 값이 정의된 도메인(데이터 타입·길이·허용값 등)을 따라야 한다는 규칙
  • CHECK, NOT NULL, DEFAULT 등의 제약조건으로 구현
profile
HW + SW = 1

0개의 댓글