데이터베이스는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음이다. 해당 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)라고 하며, 데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어(query language)를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다.

또한, 데이터베이스는 실시간 접근과 동시 공유가 가능하다.

image.png

그림처럼 데이터베이스 위에 DBMS가 있고 그 위에 응용 프로그램이 있으며, 이러한 구조를 기반으로 데이터를 주고 받는다.

예를 들어 MySQL이라는 DBMS가 있고 그 위에 응용 프로그램에 속하는 Node.js나 php에서 데이터베이스 안에 있는 데이터를 끄집어내 해당 데이터 관련 로직을 구축할 수 있다.

1. 엔터티 (Entity)


엔터티는 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미한다.

엔터티

엔터티

e.g. 회원이라는 엔터티는 다음과 같은 속성을 갖는다.

물론 이보다 많은 속성이 있을 것이고 서비스의 요구 사항에 맞춰 속성이 정해진다. 예를 들어 주소라는 속성이 서비스의 요구 사항과 무관한 속성이라면 주소라는 속성은 사라지게 된다.

1-1) 약한 엔터티와 강한 엔터티

엔터티는 약한 엔터티와 강한 엔터티로 나뉜다.

예를 들어 A가 혼자서는 존재하지 못하고 B의 존재 여부에 따라 종속적이라면 A는 약한 엔터티이고 B는 강한 엔터티다.

e.g. 방은 건물안에 존재하기 때문에 방은 약한 엔터티이고 건물은 강한 엔터티다.

2. 릴레이션 (Relation)


릴레이션은 데이터베이스에서 정보를 구분하여 저장하는 기본 단위다. 엔터티에 관한 데이터를 데이터베이스는 릴레이션 하나에 담아서 관리한다.

릴레이션

릴레이션