코딩 성장기

[Database] 데이터 베이스 설계 본문

컴퓨터 공학/데이터베이스

[Database] 데이터 베이스 설계

김소우 2022. 4. 8. 16:23

데이터 베이스에서 Schema(스키마)란?

데이터 베이스(data base)에서 데이터가 구성되는 방식과 서로 다른 entity(엔티티)간의 관계.

데이터 베이스의 '청사진' 이라고도 볼 수 있다.

entity(엔티티)란? 

데이터들의 집합이라고 생각하면 편하다. 정보의 단위.

데이터 베이스 관련 용어

  • table / relation : 데이터가 행으로 축적되는 구조화된 데이터.
  • field / column : 데이터 테이블의 '열'
  • record / tuple : 데이터 테이블의 '행'
  • primary key(기본키) : 각 테이블의 레코드 하나를 가르키는 고유한 숫자. 자동으로 할당된다. ID 필드가 이에 해당됨.
  • foreign key(외래키) : 현재 테이블에서 참조하고 있는 외부 테이블의 키값을 말할때 사용하는 용어.

키(key)에 접근하여 데이터를 수정 할 수도 있다.

데이터 관계 종류

1:1 관계

하나의 레코드(행)가 다른 테이블의 레코드 하나와 연결되어 있는 경우.

어느쪽에서 보더라도 서로 한개씩의 레코드끼리 연결되어 있다.(다른 레코드는 연결되어있지 않음)

예) 학생의 이름 - 학번

 

1:N 관계

하나의 레코드가 다른 테이블의 여러개의 레코드와 연결되어 있는 경우.

그러나 역은 성립하지 않는다.

예) 반 이름 - 해당 반에 속한 학생들의 이름

한 반에 여러 학생들이 속할 수는 있지만, 한 학생이 여러 반에 속할 수는 없다!

 

N:N 관계

여러개의 레코드가 다른 테이블의 여러개의 레코드와 연결되어 있는 경우.

1:N 관계와 다르게 역으로 봐도 성립이 된다.

다대다(N:N) 관계를 관리할때는 ID를 이용하여 join 테이블을 만들어서 관리한다.

함수의 '좌표계'처럼 생각하면 이해하기 쉽다.

예) 여러명의 학생들의 이름 - 여러개의 동아리

한 학생은 여러개의 동아리에 참여할 수 있고, 한 동아리에는 여러명의 학생들이 참여할 수 있다.

Student Club
1 1
1 3
1 7
2 1
2 2

→학생과 참여중인 동아리를 ID 값으로 연결시켜서 하나의 표(join 테이블)를 만듦

 

self referencing relationship(자기 참조 관계)

같은 테이블 내에서 데이터 끼리의 관계.

1:N 관계와 유사한 관계를 가질 수도 있으나, 일반적으로 1:N 관계는 자기 참조 관계로 나타내지 않는다.