[SQL] Schema & Query Design 개념 학습

Yalstrax·2021년 7월 25일
1

Back End

목록 보기
20/22
post-thumbnail

Schema & Query Design

Schema

스키마(schema)는 데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명입니다.

즉, 데이터베이스의 청사진과 같습니다.

데이터가 어떻게 표현되어야 할 지 구상하고, 그 데이터를 정의하고, 데이터들 간의 관계를 구성하는 방법, 이 때 필요한 것이 스키마 입니다.

스키마의 구성

  • 엔티티(Entity)

고유한 정보의 단위입니다. 데이터베이스에서 엔티티는 테이블로 표현할 수 있습니다.

  • 필드(Field)

데이터베이스 테이블의 열(column)에 해당합니다. 테이블에 저장된 모든 항목에는 해당 필드가 포함됩니다.

  • 레코드(Record)

레코드는 테이블에 저장된 항목입니다. 행렬에서 행(row)이라 볼 수 있습니다.

엔티티간 관계

교수 , 강의, 학생 세 개의 엔티티가 있습니다.

일대 다(1:N, one-to-many)

보통, 한 명의 교수님이 여러 개의 강의를 가르칩니다.
한 명의 교수님은 여러 개의 강의를 할 수 없지만, 하나의 강의는 여러 명의 교수님이 가르칠 수 없습니다.

즉, 교수강의 두 엔티티의 관계는 일 대 다 관계(1:N, one-to-many)입니다.

이 각 엔티티 간 관계를 연결할 때, 각 엔티티 간 고유한 ID를 활용합니다.

이는 각 엔티티(테이블)의 레코드 하나를 가리키는 숫자로, 자동적으로 레코드가 추가될 때마다 ID도 증가합니다(auto increments). 이 ID 필드는 해당 테이블의 기본 키(Primary Key) 역할을 합니다.

교수강의 엔티티 간의 일 대 다 관계를 연결하기 위해, 교수의 기본 키를 강의 엔티티로 참조해오는 것으로 수행할 수 있습니다.

현재 테이블이 아닌 다른 테이블에서 기본 키(Primary Key)를 참조할 때 해당 값을 외부 키(Foreign Key)라고 합니다.

강의 테이블에서 교수 테이블의 기본 키(Primary Key)를 참조해야 하므로, 강의 테이블에 새로운 필드가 만들어지고, 그 필드는 교수 테이블에서 특정 레코드를 고유하게 식별하는 외래 키 입니다.

다대 다(N:M, many-to-many)

강의학생으로 보면,

하나의 강의는 여러 학생이 수강할 수 있습니다.
한 명의 학생은 여러 개의 강의를 수강할 수 있습니다.

강의학생 엔티티 간의 관계는 다대 다(N:M, many-to-many) 관계가 될 수 있습니다.

이 관계를 스키마에서 정의하는 방법은 일대 다 관계와 조금 다릅니다.

새로운 테이블에 강의의 기본 키와 학생의 기본 키를 외래 키로 참조하여 새로운 필드를 만드는 것으로 관계를 형성할 수 있습니다.

이 새로운 테이블을 조인(join) 테이블이라 부릅니다.

하나의 강의는 조인 테이블에서 여러번 등장하기 때문에, 일대 다 관계입니다. 마찬가지로, 한 명의 학생이 조인 테이블에서 여러번 등장하기 때문에, 학생 테이블과 조인 테이블은 일대 다 관계입니다.

profile
즐겁다면 그것만으로 만만세!

0개의 댓글