관계형 데이터베이스 소개

이교준 강사님의 데이터베이스 강의를 듣고 관계형 데이터베이스에 관해 간략히 정리하고 가자.

데이터베이스란?

구조화된 데이터들의 집합이다.

관계형 데이터베이스

데이터들을 2차원 배열과 같은 테이블에 저장하고 관리하는 데이터베이스.

관계 정의

  • 1:M 관계 (부자지간 관계)
  • N:M 관계 (비즈니스 관계)
  • 1:1 관계 (부부 관계)

앞으로 위 세 개의 관계에 대해서도 정리할 예정이다. 관계는 테이블 설계시 매우 중요하다.

주식별자(Primary Key, 기본키)

하나의 레코드를 고유하게 구분할 수 있는 것으로 하나의 컬럼 또는 여러 개의 컬럼이 모여 Primary Key를 구성한다.

주식별자 특징

  • NOT NULL
  • UNIQUE (유일성)
  • 최소한의 속성 조합으로 이뤄진다(최소성)
  • 다양한 종류의 무결성을 설정하고 강화하는 것을 도와준다.
  • 테이블 관계를 설정하도록 해준다.
  • 관계에 반드시 PK 가 포함된다.

테이블 설계 시 고려해야 할 문제 상황들

예를 들어, 학생 수강신청 관리 테이블 설계를 만든다고 가정해보자.

아래 이미지처럼 테이블 초안을 작성했다고 해보자.

학생 수강신청 관리 테이블 예시

이때, 주의해야 할 점들이 무엇이 있을까?

테이블 변경 시

  • 만일 같은 과목을 담당하는 선생님들이 두 명 이상으로 늘어날 경우 대처 방법

데이터 오류 시

  • 과목명을 오기했을 경우 대처 방법
  • 학생명을 오기했을 경우 대처 방법
  • 한 학생이 동일한 과목을 두 번 이상 수강신청 한 경우 대처 방법
  • 한 과목도 신청하지 않은 학생을 찾아내는 방법
  • 동명 이인이 존재하는 경우 해결 방법
  • 한 과목이 폐강되었을 때 대처 방법

위 문제 상황들을 고려하지 않고 테이블을 설계한다면, 문제 상황이 발생했을 때 테이블의 한계에 부딪힐 것이다. 결국 테이블 구조 수정을 할 수 밖에 없게된다. 테이블의 구조체가 변경된다면 해당 테이블을 이용하고 있는 프로그램도 다시 코딩해야하는 불상사가 발생하게 된다.