Transaction이란?Transaction은 데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위입니다. 이는 한 번에 수행되어야 할 일련의 연산들을 의미합니다. Transaction은 전체가 성공적으로 완료되거나 전혀 실행되지 않은 상태로 남아있어야 합니다.예를 들어, 은행 계좌에서 돈을 인출하는 과정을 생각해봅시다:계좌 잔액 확인인출 금액만큼 잔액 감소현금 지급거래 내역 기록이 모든 단계가 하나의 transaction으로 처리되어야 합니다. ACID 속성ACID는 데이터베이스 transaction의 안정성을 보장하기 위한 네 가지 속성을 나타냅니다.Atomicity (원자성)Consistency (일관성)Isolation (격리성)Durability (지속성)각 속성에 대해 자세히 살펴보겠습..
데이터베이스 시스템과 파일 시스템에서 중요한 역할을 하는 B-Tree와 B+Tree에 대해 알아보겠습니다. 이 두 데이터 구조는 대용량 데이터를 효율적으로 관리하고 검색하는 데 필수적입니다. B-Tree의 기본 개념B-Tree는 1970년 Rudolf Bayer와 Edward M. McCreight에 의해 발명된 자가 균형 트리 데이터 구조입니다. B-Tree의 주요 특징은 다음과 같습니다:각 노드는 최대 m개의 자식을 가질 수 있습니다.루트 노드와 리프 노드를 제외한 모든 노드는 최소 ⌈m/2⌉개의 자식을 가져야 합니다.루트 노드는 리프가 아닌 경우 최소 2개의 자식을 가져야 합니다.모든 리프 노드는 같은 레벨에 있어야 합니다.비리프 노드는 k-1개의 키와 k개의 자식 포인터를 가집니다 (2 ≤ k ≤..
데이터베이스 시스템에서 인덱싱은 성능 최적화의 핵심 요소입니다. 이 글에서는 데이터베이스 인덱싱의 기본 개념부터 고급 기술까지 포괄적으로 다루어 보겠습니다. 인덱스의 기본 개념인덱스 데이터베이스 테이블의 특정 열에 대한 검색 속도를 향상시키기 위해 사용되는 데이터 구조입니다. MongoDB 공식 문서에 따르면, 인덱스는 B-Tree 데이터 구조를 사용하여 특정 필드 또는 필드 집합의 값을 정렬된 순서로 저장합니다. Oracle 데이터베이스 문서는 "인덱스는 테이블 행에 대한 세스 속도를 높일 수 있는 스키마 객체"라고 정의하고 있습니다. 인덱스의 작동 원리인덱스는 선택된 열의 값과 해당 데이터가 저장된 위치를 가리키는 포인터로 구성됩니다. 쿼리가 실행될 때, 데이터베이스 엔진은 인덱스를 사용하여 전체 이..
데이터베이스를 설계할 때 우리는 종종 아무 생각 없이 varchar(255)를 사용합니다.하지만 이런 관행에 대해 한 번쯤 되돌아볼 필요가 있습니다. 과연 우리는 이 데이터 타입을 제대로 이해하고 사용하고 있을까요? VARCHAR의 기본 구조먼저 VARCHAR의 기본 구조를 이해해야 합니다. MySQL 공식 문서에 따르면VARCHAR values are stored as a 1-byte or 2-byte length prefix plus data. The length prefix indicates the number of bytes in the value. A column uses one length byte if values require no more than 255 bytes, two length ..
본 글에서는 조직 내 팀원 간의 소통을 강화하고 개인의 성장을 도모하기 위해 설계한 원온원(1on1) 미팅 관리 시스템에 대해 상세히 설명드리고자 합니다. 이 시스템의 목적, 데이터베이스 설계, 주요 기능 및 기대 효과 등을 체계적으로 살펴보겠습니다. 1. 프로젝트 목적원온원 미팅은 팀원 간의 신뢰를 구축하고, 피드백을 주고받으며, 목표를 설정하는 중요한 과정입니다. 그러나 효과적인 미팅을 위해서는 체계적인 관리가 필수적입니다. 본 시스템은 원온원 미팅의 기록, 피드백 관리, 행동 항목 추적 등을 통해 팀워크를 강화하고, 개인의 성과를 도모할 것을 목표로 합니다. 이 시스템을 통해 조직의 전반적인 성과 향상과 함께, 직원 만족도를 높이는 데 기여할 수 있습니다. 2. 데이터베이스 설계시스템의 핵심은 데이..
해당 쿼리는 MSSQL 기준으로 작성되었습니다.이 쿼리는 지정된 사용자 정의 테이블의 열 정보를 포함하여, 각 열의 데이터 유형, 길이, NULL 허용 여부, 정렬 규칙, 그리고 설명을 조회합니다. 결과는 열의 순서에 따라 정렬됩니다. SELECT c.colorder AS column_index, a.name AS table_name, e.value AS table_description, c.name AS column_name, f.value AS column_description, d.data_type AS type, d.character_octet_length AS length, d.is_nullable AS is_nullab..