데이터베이스(Data Base, DB)란 여러 사람들이 공유하고 사용할 목적으로, 컴퓨터, 서버 또는 클라우드에 디지털 방식으로 저장하고 관리되는 데이터들의 모임입니다.
RDBMS는 관계형 데이터베이스를 생성, 수정, 관리할 수 있는 소프트웨어입니다. 예를 들어 학생 정보를 추가하거나 수정하고, 특정 학과 학생을 검색 등의 작업을 할 수 있습니다.
- ORACLE
- MySQL
- SQL Server
- MariaDB
ERD는 데이터베이스를 설계할 때 사용되는 다이어그램으로, 데이터베이스의 논리적 구조를 시각적으로 표현하는 도구입니다. 예를 들어 학생 테이블과 수업 테이블이 어떤 관계를 가지는지 시각적으로 표현합니다.
ERD는 엔터티(Entity) 간의 관계를 명확히 정의하는데 사용됩니다. ERD에서 정의된 엔터티는 RDBMS 내의 테이블로 변환되며, 각 엔터티의 속성은 테이블의 열(컬럼)이 되고, 엔터티 간의 관계는 외래 키(Foreign Key)를 통해 구현됩니다. 예를 들어 일대다(1:N) 관계나 다대다(N:M) 관계를 ERD에서 정의하고 이를 RDBMS에서 외래 키 제약 조건을 통해 구현합니다.
NoSQL은 '비관계형 데이터베이스'라고도 불리며, 관계형 데이터베이스와는 다른 방식으로 데이터를 저장합니다. 주로 대용량의 소셜 미디어 데이터를 빠르게 처리하는 데 사용됩니다.
- Redis
- MongoDB
유연한 스키마: 처음부터 정해진 구조 없이 데이터를 저장할 수 있어, 나중에 필드를 추가하거나 변경하기 쉬움
빠른 데이터 읽기 속도: 애플리케이션에서 필요한 형식으로 데이터를 저장하므로, 읽기 속도가 빠름
수평 확장 가능: 서버를 여러 대 추가하여 데이터베이스의 용량과 처리 성능을 확장할 수 있음
구조적 유연성의 한계: 데이터 구조 결정을 미루면 나중에 복잡한 문제가 발생할 수 있음
데이터 중복 관리의 어려움: 여러 곳에 중복된 데이터를 저장해야 하므로, 업데이트할 때 번거로움
복잡한 수정 작업: 여러 컬렉션에 중복된 데이터를 수정할 때, 모든 컬렉션에서 일관되게 수정 작업을 해야 함(RDBMS에서는 한 번만 수정)