본문 바로가기

학습 기록/스프링 부트3 백엔드 개발자 되기[자바편]

[01장.2] 데이터베이스

데이터베이스(Database)
: 여러 사람이 데이터를 한 군데에 모아놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소

* 보통 MySQL, 오라클, 프스트그레SQL을 DB(데이터베이스)라고 하지DBSM로서 DB를 관리하기 위한 데이터베이스 관리 시스템을 의미함

 

클라이언트에서 SQL, 즉 데이터베이스 관리 시스템에 데이터를 요청하면 데이터베이스 관리 시스템은 데이터베이스테서 데이터를 꺼내 응답함

 

 

관계형 데이터베이스 (Relational Database; RDB)

: 데이터를 행(Row)과 열(Column)로 이루어진 테이블로 관리

: 기본키(Primary Key; PK)를 사용해 각 행을 식별

: 각 테이블 간의 관계(Relation)를 지을 수 있음

: 데이터의 저장, 질의, 수정, 삭제가 용이하지만 성능을 올리기 쉽지 않음

 

* RDB로 유명한 DB로는 오라클, MySQL, SQL 서버, 포스트그레SQL이 존재

 

SQL(Structured Query Language)

: 쿼리, 즉, 데이터 검색을 하는 언어

: ANSI 표준 SQL도 존재하며, 각 RDB별 방언도 존재

 

NOSQL

: SQL을 쓰지 않는다는 의미로 사용되기도 하지만, 최근에는 Not Only SQL의 의미로 사용

: RDB의 성능을 올리기 쉽지 않은 문제를 해결

 

* RDB는 성능을 올리기 위해서는 머신의 성능을 좋게하는 스케일 업 또는 머신을 여러 대로 분리하는 스케일 아웃이 필요

- 스케일 업 : 장비를 업그레이드가 가능

- 스케일 아웃 : 데이터베이스를 분산할 경우 트랜잭션을 사용하면 성능이 떨어지는 문제 발생