Schema & Query Design

정동아·2023년 5월 25일
0

백엔드 부트캠프

목록 보기
31/41

Schema

데이터베이스에서 데이터가 구성되는 방식과 서로 다른 엔티티 간의 관계에 대한 설명을 말한다.
즉, 데이터베이스의 청사진과 같다. 어떤 베이스가 어떻게 정의되는지, 방법 등을 정리하는 것이다.

엔티티가 뭐냐?
고유한 정보의 단위이다. 테이블로 표현이 되는데, 객체가 객체인 것처럼 엔티티는 그냥 엔티티로 알아두는 것이 좋다. (정의하기 시작하면 복잡해진다)

레코드는 뭐냐?
테이블에 저장된 항목이다.
엔티티에 이름, 과목, 과목명이 있을 때 레코드는 씬시아, 음악, 음악의 이해 과목 이라고 말할 수 있다.

아래 링크인 dbdiagram.io에서 스키마를 쉽게 작성할 수 있다. (쉽나..?)
dbdiagram.io

데이터베이스 설계

구조화된 데이터는 하나의 테이블로 표현할 수 있다. (테이블을 사용하는 데이터베이스를 관계형 데이터베이스 (Relational databese)라고한다)

관계형 데이터베이스에서 꼭 알고있어야하는 키워드는 다음과 같다.

  • Data : 각 항목에 저장되는 값

  • Table (또는 relation) : 사전에 정의된 열의 데이터 타입대로 작성된 데이터가 행으로 축적된다.

  • Column (또는 field) : 테이블의 한 열을 말한다.

  • Record (또는 tuple) : 테이블의 한 행에 저장된 데이터를 말한다.

  • Key : 테이블의 각 레코드를 구분할 수 있는 값. 각 레코드마다 고유한 값을 가진다.
    Primary Key와 Foregin Key등이 있다.

    • 기본 키 (Primary Key, PK) : 테이블 내에서 각 레코드를 고유하게 식별하는데 사용되는 키
    • 외래 키(foregin key) : 다른 테이블에서 PK를 참조하는 키

관계 종류
테이블과 테이블 사이의 관계는 다음과 같다.

  • 1:1 관계
    하나의 레코드가 다른 테이블의 레코드 한 개와 연결된 경우를 말한다.

  • 1:N 관계
    하나의 레코드가 서로 다른 여러 개의 레코드와 연결된 경우를 말한다.

  • N:N 관계
    여러 개의 레코드가 다른 테이블의 여러 개의 레콛드와 관계가 있는 경우이다. N:N관계를 위해 스키마를 디자인할 때는, Join테이블을 만들어 관리한다. 1:N 관계와 비슷하지만, 양방향에서 다수의 레코드를 가질 수 있다.

  • self referencing 관계
    테이블 스스로 관계를 가질 수도 있다.


오늘의 나...

관계형 데이터베이스 내용과 관련해 참고하기 좋은 블로그의 링크이다.
참고 링크1
참고 링크2

0개의 댓글