본문 바로가기

DB9

DB - B 트리를 사용하는 이유 B트리(B-tree)와 데이터베이스B트리의 기본 구조와 동작 원리B트리는 다음과 같은 특징을 가진 균형 트리 자료구조입니다:각 노드는 여러 개의 키(key)를 가질 수 있습니다.노드의 키들은 항상 정렬된 상태를 유지합니다.각 노드는 M차 B트리일 때 최대 M-1개의 키를 가질 수 있습니다.루트 노드를 제외한 모든 노드는 최소 ⌈M/2⌉-1개의 키를 가져야 합니다.간단한 3차 B트리의 예시입니다: [4] / \ [2] [6] / \ / \[1] [3] [5] [7,8]B트리를 사용하는 이유1. 디스크 접근 최적화데이터베이스에서 B트리를 사용하는 주된 이유는 디스크 I/O를 최적화하기 위해서입니다. 이는 다음과 같은 특성 때문입니다:디스크는 블록 단위로 데이터.. 2024. 12. 16.
트랜잭션 동작 방식과 스프링의 트랜잭션 동작 방식 데이터베이스 연결과 트랜잭션 관리1. DB 드라이버애플리케이션과 데이터베이스 간의 통신을 담당JDBC 드라이버를 통해 DB와 커넥션을 맺고 애플리케이션에 반환2. 커넥션 풀 (Connection Pool)성능 향상을 위해 커넥션을 미리 생성하고 관리HikariCP와 같은 커넥션 풀 라이브러리가 대표적장점:커넥션 재사용으로 리소스 절약설정과 사용의 분리로 관리 용이동시성 처리를 위한 별도 스레드 관리3. 트랜잭션 (Transaction)3.1 기본 개념데이터베이스의 데이터 정합성을 보장하는 작업 단위ACID (원자성, 일관성, 고립성, 지속성) 준수 필요기본적으로 autocommit 모드로 동작3.2 트랜잭션 격리와 락동시성 제어를 위한 락(Lock) 메커니즘 제공SELECT FOR UPDATE 등으로 명.. 2024. 12. 6.
DB N-N관계 풀어내기 예제 데이터베이스의 다대다(N:M) 관계 설명1. 다대다 관계란?한 테이블의 여러 레코드가 다른 테이블의 여러 레코드와 관계를 가질 수 있는 구조예: 학생과 강좌의 관계한 학생이 여러 강좌를 수강할 수 있음한 강좌에 여러 학생이 등록할 수 있음2. 관계도[Student 테이블] [StudentCourse 테이블] [Course 테이블]- student_id (PK) ────┐ - student_id (FK) ┌──── - course_id (PK)- name │ - course_id (FK) │ - course_name- email 1│ - enrollment_date .. 2024. 12. 6.
DB - 인덱스 데이터베이스 인덱스 개요1. 인덱스란?인덱스는 데이터베이스에서 데이터를 빠르게 검색할 수 있도록 도와주는 자료구조입니다. 특정 열(컬럼)에 대한 포인터를 저장하여 데이터를 효과적으로 찾을 수 있게 해줍니다. 인덱스는 데이터베이스의 성능을 최적화하는 중요한 역할을 합니다.2. 인덱스의 종류클러스터형 인덱스 (Clustered Index):데이터가 물리적으로 정렬되어 저장됩니다.각 테이블에 하나만 존재할 수 있으며, 주로 기본 키에 설정됩니다.검색 시 직접 데이터에 접근할 수 있어 성능이 우수합니다.설계 방식: 일반적으로 B-트리 또는 B+트리 구조를 사용하여 구현됩니다. 이 구조는 데이터의 삽입, 삭제 및 검색이 효율적입니다.비클러스터형 인덱스 (Non-Clustered Index):데이터와 인덱스가 별도.. 2024. 12. 3.