관계 데이터 모델

ya·2025년 3월 26일

DataBase와 SQL

목록 보기
4/12
post-thumbnail

🏛️ 관계 데이터 모델 개념 정리

📌 릴레이션(Relation)

  • 데이터를 행(Row)과 열(Column) 로 구성된 테이블 형태 로 저장
  • 각 속성(Attribute) 은 단일 값 을 가짐
  • 속성은 서로 다른 이름 을 가져야 함
  • 속성 값은 같은 도메인(Domain) 에 속해야 함
  • 속성과 튜플의 순서는 상관없음
  • 중복된 튜플(Tuple) 은 허용되지 않음

📌 릴레이션 스키마와 인스턴스

✅ 릴레이션 스키마(Relation Schema)

  • 테이블의 구조를 정의하는 틀
  • 속성(Attribute) : 테이블의 열
  • 도메인(Domain) : 속성이 가질 수 있는 값의 집합
  • 차수(Degree) : 속성의 개수

✅ 릴레이션 인스턴스(Relation Instance)

  • 테이블에 저장된 실제 데이터
  • 튜플(Tuple) : 테이블의 행
  • 카디널리티(Cardinality) : 튜플(행)의 개수

📌 관계 데이터 모델(Relational Data Model)

  • 데이터를 2차원 테이블 형태(릴레이션) 로 표현
  • 릴레이션의 제약조건과 연산(관계 대수) 정의

🛡️ 무결성 제약조건 (Integrity Constraints)

데이터의 일관성 유지 및 중복 최소화를 위한 제약 조건

✅ 키(Key, 식별자)

  • 릴레이션에서 특정 튜플을 식별하는 속성(컬럼)

🔹 슈퍼키(Super Key)

  • 튜플을 유일하게 식별할 수 있는 속성의 집합

🔹 후보키(Candidate Key)

  • 유일성을 만족하는 속성의 최소 집합

🔹 기본키(Primary Key)

  • 후보키 중 대표로 선정된 키
    • 중복 ❌ (유일해야 함)
    • NULL ❌ (항상 값이 있어야 함)
    • 변경 가능성 최소화

🔹 대체키(Alternate Key)

  • 기본키로 선택되지 않은 후보키

🔹 외래키(Foreign Key)

  • 다른 릴레이션의 기본키를 참조하여 관계를 표현
    • 기본키와 도메인이 동일 해야 함
    • 기본키가 변경되면 참조하는 외래키도 변경됨
    • NULL 및 중복 값 허용
    • 자기 자신의 기본키를 참조하는 외래키 가능

✅ 무결성 제약조건

🛑 도메인 무결성(Domain Integrity)

  • 속성 값은 해당 도메인 범위 내에서만 가져야 함

🛑 개체 무결성(Entity Integrity)

  • 기본키는 NULL을 가질 수 없고, 유일해야 함

🛑 참조 무결성(Referential Integrity)

  • 자식 릴레이션의 외래키는 부모 릴레이션의 기본키를 참조해야 함
  • 부모 릴레이션에 없는 값이 자식 릴레이션에 들어갈 수 없음
  • 부모 릴레이션의 기본키 변경 시 자식 릴레이션의 외래키도 변경됨

🔄 관계 대수(Relational Algebra)

  • 릴레이션에서 데이터를 추출하기 위한 연산
  • 절차적인 언어 → 데이터 검색을 어떻게 수행할지 명시

✅ 순수 관계 연산 (Pure Relational Operations)

연산 기호연산명설명
σSelection (셀렉션)조건을 만족하는 튜플(행) 추출
πProjection (프로젝션)특정 속성(열)만 추출
Join (조인)두 개 이상의 릴레이션을 결합
Union (합집합)두 릴레이션의 튜플을 모두 포함 (중복 제거)
Intersection (교집합)두 릴레이션에서 공통된 튜플만 추출
-Difference (차집합)한 릴레이션에는 있지만, 다른 릴레이션에는 없는 튜플
×Cartesian Product (카티션 프로덕트)두 릴레이션의 모든 튜플을 곱집합으로 연결

📌 정리 및 추가 내용

릴레이션은 중복된 튜플을 허용하지 않음 (SQL에서는 기본적으로 중복 허용)
기본키는 중복되면 안 되며, NULL 값을 가질 수 없음
외래키는 부모 릴레이션의 기본키를 참조하며, NULL을 가질 수 있음
관계 대수는 관계형 데이터베이스에서 데이터를 처리하는 연산이며, SQL의 기초가 됨


💡 데이터 모델의 핵심은 데이터의 무결성을 유지하고, 관계를 효율적으로 정의하는 것! 🚀

profile
ya로그

0개의 댓글