Database

    [DB] Redis 레디스

    [DB] Redis 레디스

    Redis란? REDIS(Remote Dictionary Server)는 메모리 기반의 “키-값” 구조 데이터 관리 시스템이며, 모든 데이터를 메모리에 저장하고 조회하기에 빠른 Read, Write 속도를 보장하는 비관계형 데이터베이스(NoSQL)이다. 레디스는 크게 5가지의 데이터 형식을 지원한다. Redis는 빠른 오픈 소스 인 메모리 키-값 데이터 구조 스토어이며, 다양한 인 메모리 데이터 구조 집합을 제공하므로 사용자 정의 애플리케이션을 손쉽게 생성할 수 있다. Redis 특징 NoSQL로서 Key-Value 타입의 저장소인 Redis의 주요 특징은 아래와 같다. 영속성을 지원하는 인메모리 데이터 저장소 다양한 자료 구조를 지원..

    [MySQL] WITH, WITH RECURSIVE 사용법

    [MySQL] WITH, WITH RECURSIVE 사용법

    CTE (Common Table Expression) 이란? CTE란 기존의 뷰나 파생 테이블, 임시 테이블 등으로 사용되는 것들을 대신할 수 있고, 보다 더 간결한 표현을 사용할 수 있따는 장점이 있다. CTE는 Non-Recursive(비재귀) CTE 와 Recursive(재귀) CTE 로 두가지 종류가 있다. WITH 구문은 메모리 상에 가상의 테이블을 저장할 때 사용된다. RECURSIVE의 여부에 따라 재귀, 비재귀 두 가지 방법으로 사용 가능하다. WITH CTE_테이블명(열이름1, 열이름2, 열이름3...) AS ( ) SELECT 열이름1, 열이름2, 열이름3 ... FROM CTE_테이블명 -------------------------------------------------------..

    [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] SQL vs NoSQL

    [DB] SQL vs NoSQL

    SQL vs NoSQL SQL은 '구조화된 쿼리언어(Structured Query Language'의 약자이다. 그러므로 SQL은 데이터베이스 자체를 나타내는 것이 아니라, 특정 유형의 데이터베이스와 상호 작용하는데 사용하는 쿼리 언어다. 반면, NoSQL은 관계형 데이터베이스의 한계점을 해결하기 위해 등장한 새로운 데이터베이스로, 기본적으로 SQL과 반대되는 접근 방식을 따르기 때문에 NoSQL이라고 이름 지어졌다. SQL 1. 특징 SQL을 사용하면 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다. 이러한 관계형 데이터베이스의 데이터는 정해진 데이터 스키마를 따라 데이터베이스 테이블에 저장되며, 관계를 통해 연결된 여러 개의 테이블에 데이터가 분산되는 ..