1. Redis란?Redis는 Key:Value 구조의 비정형 데이터를 저장하고 관리하는 비관계형 데이터베이스이다. 데이터를 디스크가 아닌 메모리에 저장하므로 인메모리 DB(In-Memory DB)라고 부른다. 2. 데이터베이스가 있는데, 왜 Redis를 사용할까?데이터베이스가 있음에도 Redis를 사용하는 이유는 CPU가 계산에 필요한 데이터를 얻기 위한 속도 차이가 발생하기 때문이다. 데이터베이스는 물리 디스크에 직접 데이터를 쓰기 때문에 서버에 장애가 발생하더라도 데이터가 손실되지 않는다. 그러나 데이터가 필요할 때마다 매번 디스크에 접근하게 되면 사용자가 많아질수록 데이터베이스에 부하가 발생하게 된다. 따라서 사용자가 많을 때 데이터베이스의 과부하를 줄이기 위해서 Redis와 같은 캐시 서버를 도..
1. READ UNCOMMITTED READ UNCOMMITTED는 커밋되지 않은 데이터에 접근이 가능하다.1-1. Dirty ReadREAD UNCOMMITTED 격리 수준에서는 Dirty Read가 발생한다. Dirty Read는 커밋되지 않은 데이터를 다른 트랜잭션에서 읽음으로써 발생하는 문제이다. 이는 아직 데이터베이스에 반영되지 않은 변경 사항을 읽기 때문에, 이후에 변경 작업을 수행한 트랜잭션이 ROLLBACK 될 경우 문제가 발생한다.트랜잭션 1이 공유 데이터 MIN을 KIM으로 UPDATE 한다.아직 데이터베이스에 커밋되지 않은 상태이다.이때, 트랜잭션 2는 트랜잭션 1이 커밋하지 않은 KIM 데이터를 읽는다.만약 트랜잭션 1이 중간에 문제가 발생하여 ROLLBACK 할 경우, 데이터는 다..
데이터베이스 : 컴퓨터에 전자 방식으로 구조화된 정보를 저장DBMS : 사용자와 데이터베이스 사이에 사용자의 요구에 따라 정보를 생성 및 관리하는 소프트웨어SQL : 관계형 데이터베이스에서 데이터를 관리하기 위한 프로그래밍 언어 1. RDBMSR(Relational, 관계) + DBMS = RDBMSRDBMS는 SQL을 사용하여 데이터를 저장한다. 데이터는 테이블 형태로 저장되며, 다른 테이블과의 관계를 통해 데이터를 관리한다. 이를 통해 데이터 정합성을 유지할 수 있다. 서로 다른 테이블 간의 관계를 맺기 위해 외래키(foreign key)를 사용하며, 이 외래키를 통해 테이블 간 조인이 가능하다. RDBMS 특징테이블 형태로 데이터를 저장한다.SQL(Structured Query Language) 언..
운영하는 서버의 사용자가 많아질수록 서버에 부하가 증가하여 많은 용량과 성능을 요구하게 된다. 이를 해결하고자 서버를 추가로 설치하는 방법과 기존의 서버의 성능을 높이는 방법이 있다. 전자의 방법을 ‘Scale-Out’이라고 하고, 후자의 방법을 ‘Scale-Up’이라고 한다. RDBMS를 사용하는 경우 수직적 확장(Scale-Up)이 필요하고, NoSQL을 사용하는 경우 수평적 확장(Scale-Out)이 유리하다. 1. Scale-Out (수평적 확장)수평적 확장이란 서버를 추가로 설치하여, 여러 대의 서버가 요청을 처리하는 방법이다. 예를 들어, 기존 1대의 서버에서 추가로 3대의 서버를 설치하면 총 4대의 서버가 사용자의 요청을 처리하게 된다.이 방식은 서버로 전달되는 부하를 여러 대의 서버로 나누..
수퍼키 (Super Key)유일성 O, 최소성 X[학생번호] → 학생을 유일하게 결정한다. → 수퍼키 만족[이름, 나이, 성별] → 중복되는 학생이 존재할 수 있다. → 수퍼키 만족 X[학생번호, 나이, 성별] → 학생을 유일하게 결정한다. → 수퍼키 만족학생번호만으로도 학생을 유일하게 결정할 수 있기 때문에 최소성을 만족하지 않는다. 후보키 (Candidate Key)유일성 O, 최소성 O[학생번호] → 학생을 유일하게 결정하면서, 최소의 키를 갖는다. → 후보키 만족[학생번호, 나이, 성별] → 학생번호만으로도 학생을 결정할 수 있으므로 최소성을 만족하지 않는다. → 후보키 X 기본키 (Primary Key)일성 O, 최소성 O튜플을 식별할 때 기준이 되는 반드시 필요한 키이다.특징NULl을 저장할 ..