[데이터베이스] 조인의 종류와 원리
·
🗂️ Database
조인(Join)이란 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것을 의미합니다.MySQL에서는 JOIN이라는 쿼리로, MongoDB에서는 lookup이라는 쿼리로 이를 처리할 수 있습니다.MongoDB를 사용할 때는 lookup은 되도록 사용하지 말아야 합니다. MongoDB는 조인 연산(lookup)에 대해 관계형 데이터베이스보다 성능이 떨어진다고 여러 벤츠마크에서 알려져 있습니다. 따라서 여러테이블을 조인하는 작업이 많을 경우에는 MongoDB보다는 관계형 데이터베이스를 써야 한다고 합니다.조인의 종류조인의 종류 중 대표적인 조인은 내부 조인(inner join), 왼쪽 조인(left outer join), 오른쪽 조인(right outer join), 합집합 조인(f..
[데이터베이스] 트랜잭션과 무결성
·
🗂️ Database
트랜잭션트랜잭션은 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 의미합니다. 데이터베이스에 접근하는 방법은 쿼리이므로, 즉 여러 개의 쿼리들을 하나로 묶는 단위를 의미합니다. 이러한 트랜잭션의 특징은 원자성, 일관성, 독립성, 지속성이 있으며 이를 한꺼번에 ACID 특징이 있습니다.트랜잭션의 특징원자성(Atomicity) = "All or Nothing"원자성(Atomicity)는 트랜잭션과 관련된 일이 모두 수행되거나 되지 않았거나를 보장하는 특징을 의미합니다. 예를 들어 트랜잭션을 커밋했는데 문제가 발생하여 롤백하는 경우 그 이후에 모두 수행되지 않음을 보장하는 것을 의미합니다.커밋(commit)커밋(commit)은 여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어입니다. 트랜잭..
[데이터베이스] ERD와 정규화 과정
·
🗂️ Database
ERD(Entity Relationship Diagram)는 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며 릴레이션 간의 관계들을 정의한 것을 의미합니다. 만약 서비스를 구축한다면 가장 먼저 신경 써야 할 부분이며 이 부분을 신경 쓰지 않고 서비스를 구축한다면 단단하지 않은 골조로 건물을 짓는 것이나 다름없다고 합니다.ERD의 중요성ERD는 시스템의 요구 사항을 기반으로 작성되며 이 ERD를 기반으로 데이터베이스를 구축합니다. 데이터베이스를 구축한 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에 설계도 역할을 담당하기도 합니다.하지만 ERD는 관계형 구조로 표현할 수 있는 데이터를 구성하는 데 유요할 수 있지만 비정형 데이터를 충분히 표현할 수 없다는 단점이 있습니다.비정형 데이..
[데이터베이스] 데이터베이스의 기본
·
🗂️ Database
데이터베이스(Database, DB)는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음을 의미합니다. 이러한 데이터베이스를 제어 및 관리하는 통합 시스템을 DBMS(Database Management System)라고 하며, 데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리언어(Query Language)를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있습니다. 또한, 데이터베이스는 실시간 접근과 동시 공유가 가능합니다.앞선 그림처럼 데이터베이스 위에 DBMS가 있으며 그 위에 응용 프로그램이 있습니다. 이러한 구조를 기반으로 데이터를 주고받습니다. 예를 들어 MySQL이라는 DBMS가 있고 그 위에 응용 프로그램에 속하는 Spring Boot에서 해당 데이터베이스 안..