[데이터베이스/ORM] 데이터베이스 스키마(Schema) / Resolver

Hyo Kyun Lee·2021년 8월 1일
0

데이터베이스/ORM

목록 보기
6/12

1. DB이론

엔티티, schema 등 기본적인 이론과 용어들은 이해하고 있어야 한다.

백엔드개발자로서 Server 및 Application 운용에 있어 Database 구축 및 관리는 필수적이다.

물론 DB를 관리하고 유지하기위한 Query문이나 코딩 등의 작업은 MySQL과 같은 체계와, 이에 대한 Query 문법을 알고있는 것이 중요하다.

하지만 이에 못지않게 중요한 것은 DB이론이다.

RDBMS 체계(Table, Row, Column) 자체가 DB이론을 근간으로 하고있기 때문에, DB이론 및 용어를 어느정도 숙지할 필요가 있다.

DB이론을 배우고 용어들을 익히다보면, RDBMS가 왜 이렇게 구성이 되어있고 구조화되어있는지 눈에 보이게 될 것이다.

특히 MySQL, Oracle 등 각 데이터베이스 체계마다 사용하는 구조나 계층이 다르기때문에, DB이론을 알고있으면 체계를 이해하는데 큰 도움이 된다는 것을 잊지말자.

2. 데이터베이스 인스턴스

운영체제에서의 프로세스와 같은 의미로,
DBMS가 동작하기 위한 동작상태 및 구조를 일컫는다.

보통은 여러 Schema가 모여 하나의 데이터베이스를 구성하고, 이 데이터베이스들이 모여 데이터베이스 인스턴스를 구성한다고 할 수 있다.

책꽂이(인스턴스)에 책(데이터베이스)과 책의 페이지(Schema)와 내용들(table)이 구성된 모습이라 이해하면 쉽다.

이 데이터베이스를 사용하기위해 port를 열어 Server와 연결하고, 접근가능상태로 만들어야 한다.

이때 class(객체)에 접근하듯이, 데이터베이스에 접근하는 개념은 객체에 접근하는 개념과 같다. 쉽게 말하면 의미있는 데이터로 활용하고 접근하기 위해 데이터베이스는 인스턴스로 논리적으로 전환되어 사용된다.

3. 데이터베이스 스키마

Schema에 대한 정의는 사실 DBMS체계나 DB관리자, 사람에 따라 다를 수 있다.

그리고 MySQL RDBMS에서는 아예 데이터베이스라는 개념(계층)이 존재하진 않지만, 편의상 데이터베이스 혹은 스키마라고 불리운다.

MySQL 기준으로, 여러 데이터(table)들이 저장된 공간이라 보면 된다.

MySQL에서는 스키마들이 집합되어있는 데이터베이스 구조가 없지만,
보통 스키마와 데이터베이스를 동일한 개념으로 본다.

4. node.js 에서의 Schema 작성

기본적으로 server 운용을 위해 DB객체에 접근한다는 개념을 먼저 알고있어야 한다.

Schema를 작성한다는 것은 table을 작성하고, 이러한 table들을 작성하여 하나의 DB(table들의 집합, Schema와 같은 개념)를 구축한다는 의미와 같다.

5. Resolver

DB server에 Query를 통해 접근하여 요청을 하고, 요청에 대한 응답(Data)를 얻을때 Resolver를 통해 받는다(즉, 반환자 개념이라 보면 된다).

※ 이때 DB Server = 객체 = Schema

보통 Graphql을 통해 user 정보를 얻는데, 이 정보를 반환받는 과정이나 인자를 Resolver로 정의하기 때문에 반환자로 이해를 하면 쉽다.

Schema 개념
https://hue9010.github.io/db/mysql_schema/

Resolver / Graphql
https://chanhuiseok.github.io/posts/gql-3/

0개의 댓글