1-1 관계형 데이터베이스 RDB(RelationShip Data Base)
1. 이전에는 어떤 문제가 있었나?
지난 주차에는 인 메모리(In-Memory) 방식으로 데이터를 저장하거나,
NoSQL 데이터베이스인 MongoDB를 사용하여 "해야할 일" 데이터를 저장하였습니다.
하지만, 이런 저장 방식은 정형화된 데이터를 관리하거나
복잡한 비즈니스 로직을 구현하기에는 적합하지 않았다.
ex) MongoDB에서 여러 컬렉션을 합쳐 조회하려고 할 때,
특정 필드(Field)가 존재하지 않는다면, 문제가 발생할 수 있다.
이와 같은 문제점을 해결하기 위해 데이터의 정규화와 무결성을 보장하면서
정형화된 데이터를 효과적으로 관리할 수 있는
관계형 데이터베이스(RDB, Relational DataBase)가 탄생하게 됐습니다.
2. 관계형 데이터베이스(RDB, Relational DataBase)
관계형 데이터베이스(RDB, Relational DataBase)는 각 데이터를 "테이블"이라는 표형태의 구조에 저장합니다.
여기서, 각 "테이블"은 여러 정보를 저장하며, "테이블" 간에 연관 관계를 설정하여,
여러 테이블에 분산된 데이터를 서로 연결하여 관리할 수 있습니다.
연관 관계(Relationship)란, 각 테이블 사이의 연결된 관계를 의미합니다.
관계형 데이터베이스는 테이블(Table)이라는 구조를 가지며,
각 테이블은 고유한 데이터를 나타내는 행(row)과
데이터의 속성을 나타내는 열(column)을 가집니다.
이 테이블들은 서로 연결될 수 있으며, 이 연결을 통해 복잡한 데이터를 관리할 수 있게 됩니다.
3. 관계형 데이터베이스 (RDB) 개념
관계형 데이터베이스는 "테이블"이라는 개념이 존재합니다.
여기서 테이블이란, 여러개의 열(column)과 행(row)을 가지는데,
이는 저희가 많이 사용한 엑셀의 표와 유사한 형태입니다.
각 행(row)은 고유한 데이터(record)를 나타냅니다.
ex) 1, test@emalil.com, 테스트닉네임, 1234
반면, 열(colum)은 해당 데이터의 속성(field)을 표현하고 있습니다.
ex) userId, email, nickname, password
위와 같이, "관계형 데이터베이스"는 더욱 복잡한 비즈니스 로직과
정형화된 데이터를 체계적으로 관리할 수 있어 더욱 안전한 서버 환경을
구성하기 좋습니다.
4. MySQL이란?
MySQL은 가장 널리 사용되는 오픈소스 관계형 데이터베이스(RDB) 입니다.
MySQL은 오픈 소스 데이터베이스로, 다른 DBMS와 달리 라이센스 비용이 들지 않습니다.
→ 엔터프라이즈 버전에서는 추가적으로 라이센스 비용이 발생합니다.
데이터베이스를 관리하는 가장 대표적인 언어인
SQL(Structured Query Language)을 사용하여
데이터를 조작하고 관리할 수 있습니다.
트랜잭션의 특징인 (중요)ACID를 준수하여 구현된 데이터베이스로써,
트랜잭션을 안전하게 처리할 수 있습니다.