db

    [DB] Transaction 트랜잭션

    [DB] Transaction 트랜잭션

    트랜잭션(Transaction)이란? 트랜잭션이란 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용하는 단위이다. 즉, 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다. 💡 데이터베이스의 상태 변화 질의어(SQL)를 이용하여 데이터베이스에 접근하는 것 ex) SELECT, INSERT, DELETE, UPDATE 등 트랜잭션 특징 ACID는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 트랜잭션의 특징을 말한다. 원자성(Atomicity) All or Nothing 트랜잭션이 DB에 모두 반영되거나, 혹은 전혀 반영되지 않아야 된다. 일관성(Consistency) 트랜잭션의 작업 처리 결과는 항상 일관성 있어야 한다. 독립성(Isolation) 둘 이상의 트랜잭션이 동..

    [DB] 정규화 & 비정규화

    [DB] 정규화 & 비정규화

    DB 정규화 (Normalization) 란? 데이터베이스 정규화는 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정이다. 데이터베이스 정규화 목적 중복 데이터를 최소화하여 테이블 불일치 위험 최소화 수정, 삭제 시 이상 현상 최소화함으로써 데이터 구조의 안정성 최대화 어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능 데이터 삽입 시 릴레이션 재구성에 대한 필요성 줄이기 효과적인 검색 알고리즘 생성 | 이상 현상이란? 이상 현상은 릴레이션 조작 시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 문제 현상 | 이상 현상의 종류 삽입 이상 (Insertion Anomaly) 튜플 삽입시 지정하지 않은 속성값이 NUL..

    [DB] Index & B-Tree

    [DB] Index & B-Tree

    데이터베이스 인덱스는 왜 B -Tree 자료 구조를 선택하였는가? 해당 이유를 확인하기 전에 우선 인덱스에 대해 알아보자. 인덱스란 DB 내 저장된 데이터의 '주소'를 갖고 있는 것이다. 대용량 데이터를 담고 있는 데이터베이스에서 필요한 데이터를 빨리 찾으려면 인덱스가 필요하다. 인덱스는 DB 데이터 조회 성능 향상을 위해 사용된다. 만약 인덱스가 없으면 특정 값을 찾기 위해 모든 데이터 페이지를 확인하는 TABLE SCAN이 발생한다. TABLE SCAN : 테이블에 읽는 모든 레코드를 순차적으로 읽는 것 Index 장단점 1. 장점 테이블을 조회하는 속도와 그에 따른 성능을 향상시킬 수 있다. 전반적인 시스템의 부하를 줄일 수 있다. 2. 단점 인덱스를 관리하기 위해 DB의 추가 저장 공간이 필요하다..

    [DB] 키(KEY) 정리

    [DB] 키(KEY) 정리

    키(KEY) 키는 DB에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성을 말한다. 무엇인가를 유일하게 식별한다는 의미가 있으며, 키의 종류로는 슈퍼키, 후보키, 기본키, 대체키, 외래키가 있다. [ 유일성 ] - 하나의 키값으로 튜플을 유일하게 식별할 수 있는 성질 - 여러 개의 튜플이 존재할 때 각각의 튜플을 서로 구분할 수 있어야한다. 즉, 각각의 튜플은 유일해야 한다. [ 최소성 ] - 키를 구성하는 속성들 중 꼭 필요한 최소한의 속성들로만 키를 구성하는 성질 - 키를 구성하는 속성들이 각 튜플을 구분하는데 곡 필요한 속성들로 구성되어 있는가? 슈퍼키 (Super Key) [유일성 O, 최소성 X] 테이블에서 각 행을 유일하게 식별할 수 있는 하나 또는 그 이상의 속성들의 집..