🔐 트랜잭션과 무결성
·
Computer Science/Database
📦 트랜잭션(Transaction)데이터베이스에서 논리적 기능을 수행하기 위한 작업의 단위입니다. DB 접근 방법인 쿼리들을 하나로 묶은 단위이며, 작업의 완전성을 보장합니다. 주요 특징으로 원자성, 일관성, 독립성, 지속성이 있으며, 앞 글자를 따 ACID라 부릅니다.⚛️ 원자성(Atomicity)"All or Nothing" 트랜잭션 내의 모든 작업이 완벽하게 수행되었거나, 아예 수행되지 않아야 함을 보장합니다. 중간에 문제가 생기면 롤백하여 아무 일도 없던 것처럼 만듭니다.주의점: 트랜잭션 단위 내 외부 API 호출은 지양해야 합니다. 롤백 시 외부 API 호출 취소가 어렵기 때문입니다.용어 설명: 커밋(commit) :여러 쿼리가 성공적으로 처리되어 변경 내용을 영구 저장하는 것.롤백 :에러나 ..
📐 ERD와 정규화 과정
·
Computer Science/Database
ERD(Entity Relationship Diagram)는 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며, 릴레이션(테이블) 간의 관계들을 정의한 설계도입니다.🏗️ ERD의 중요성ERD는 시스템의 요구 사항을 기반으로 작성되며, 이를 토대로 실제 데이터베이스가 구축됩니다. DB 구축 이후에도 디버깅을 하거나 비즈니스 프로세스를 재설계해야 할 때, 길잡이가 되는 설계도 역할을 담당합니다.하지만 ERD는 관계형 구조로 표현할 수 있는 데이터에는 유용하지만, 비정형 데이터를 표현하는 데는 한계가 있다는 단점이 있습니다. 용어 설명: 비정형 데이터:비구조화 데이터를 말하며, 미리 정의된 데이터 모델이 없거나 정해진 규칙으로 정리되지 않은 정보(예: 동영상, 오디오, 소셜 미디어 피드 등)를 뜻합니..
🗄️ 데이터베이스의 기본
·
Computer Science/Database
데이터베이스(DB, DataBase)는 일정한 규칙이나 규약을 통해 구조화되어 저장된 데이터의 집합입니다. 이 데이터베이스를 제어하고 관리하는 통합 시스템을 DBMS(DataBase Management System)라고 부릅니다.데이터베이스 내부의 데이터는 각 DBMS마다 정의된 쿼리 언어(query language)를 사용하여 삽입(Insert), 삭제(Delete), 수정(Update), 조회(Select) 등의 작업을 수행할 수 있습니다. 또한, 실시간으로 접근할 수 있고 여러 사용자가 동시에 공유할 수 있다는 특징이 있습니다.구조는 보통 데이터베이스 -> DBMS -> 응용 프로그램 순서로 연결되어 데이터를 주고받습니다. 예를 들어, MySQL이라는 DBMS가 있고, 그 위에서 작동하는 Node...