관계 데이터 모델이란

조창훈·2023년 9월 20일

데이터베이스-SQL,DB

목록 보기
3/10
post-thumbnail

관계 데이터 구조

기본 개념

  • 모든 데이터를 테이블로 저장함
  • 테이블로 표현 불가능한 데이터는 저장 불가

릴레이션

  • 테이블을 릴레이션이라고 함
  • 릴레이션은 속성으로 구성됨
    • 속성은 원자값(가장작은의미를 가지는 값)이거나 null 이여아함
  • 다중값 속성을 허용하지 않음
    (가장 작은 의미를 가지는 값이 여러개 들어가지 않음)

릴레이션의 수학적 정의

  • n-tuple의 집합

스키마와 데이터

스키마

  • 관계 스키마 == 릴레이션 스킴 == 테이블
  • ex) 대학 관계 스키마 = [학생, 과목, 등록]
    • 학생(학번,이름,학년,학과)
    • 과목(과목번호,과목명,학점,학과,담당교수)
    • 등록(학번,과목번호,성적,중간시험,기말시험)

데이터

  • 관계 데이터베이스 == 릴레이션 인스턴스 == 투플
  • ex) '조창훈'이 'C언어'를 수강하여 성적 'a'를 받음
    (3개 테이블에 나눠서 저장함)
    • 조창훈은 학생테이블에 저장이 됨
    • C언어는 과목테이블에 저장이 됨
    • 조창훈이 C언어에서 받은 성적 A는 등록 테이블에 저장이 됨

관계 제약

관계 제약의 목적

데이터의 건전한 상태를 유지하기 위함

  • 건전한 상태
    • 데이터베이스에 저장된 데이터는 정확하고, 데이터 간의 불일치가 없어야한다.
  • 데이터베이스 건전성 유지
    • 데이터베이스는 어느 시점에도 항상 건전한 상태를 유지해야한다.
    • 이를 위해서 "관계 제약"이라는 것이 있다.
    • 데이터를 갱신하기 전에, 데이터 갱신이 건전성을 훼손하지 못하도록
      아래와 같은 방법이 사용된다.
      • 부적절한 데이터 갱신을 거부
      • 갱신 연산 후 관련 데이터를 내부적으로 변경

기본키와 외래키

기본키(primary key, PK) 혹은 (Key)

  • 테이블에서 투플을 유일하게 식별할 수 있는 속성의 집합
  • 두 개의 속성을 합쳐서 PK로 사용하기도 한다.
    • ex) 성적의 경우, 학번과 과목번호를 합쳐서 pk로 사용

외래키(foreign key, FK)

  • 어떤 테이블의 기본키에 있는 값을 갖는 속성의 집합
  • 외래키는 키가 아님
  • PK/FK인 경우(기본키이면서 동시에 외래키)인 경우도 있음
  • PK와FK가 같은 테이블에 있을 수도 있음

부모-자식 테이블

  • 자식 테이블(FK가 정의된 테이블)
    • FK를 통해서 PK를 참조
  • 부모 테이블(FK가 참조하는 PK가 정의된 테이블.)
    -PK가 FK에 의해서 참조됨
    프로그래머스SQL/DB강의

무결성 제약

개체 무결성

  • PK값은 유일하며, 널값을 가질 수 없음

참조 무결성

  • FK값은 부모테이블의 PK와 같거나 NULL값을 가짐
profile
초전도-개발자의 길

0개의 댓글