DB

· DB
Redis에 대해 알아보자 ❕  1. Redis (Remote Dictionary Server)Redis는 NoSQL 중 하나로, 인메모리 데이터 저장소이다. key-value 데이터 구조에 기반한 다양한 형태의 자료구조를 제공하며, pub/sub같은 다양한 기능도 제공하여 다양한 목적으로 사용된다.  Redis에서 Remote는 Redis가 각각의 서버 안에 로컬하게 존재하지 않고, 다수의 서버에서 공통적으로 사용할 수 있도록 원격에 존재한다는 의미이며, Dictionary는 해시맵과 같이 key-value 형태로 상수의 시간 복잡도로 사용이 가능하다는 의미이다. → 즉, 다수의 서버를 사용하는 분산 환경의 서버가 공통으로 사용할 수 있는 해시 테이블로 생각하면 된다.  1-1. Redis 특징인메모리..
· DB
JDBC와 DBCP에 대해 학습하고, DBCP 옵션들에 대해 알아보자 ❕ JDBC와 DBCP 모두 데이터베이스와 상호작용하는데 사용되는 기술이다.JDBC는 자바에서 데이터베이스에 접근하고 쿼리를 실행하기 위한 표준 API이고, DBCP는 데이터베이스 연결을 효율적으로 관리하고 성능을 최적화하기 위한 기술이다. JDBC 위에서 DBCP가 동작되는 형태이다. 특히 대규모 애플리케이션이나 높은 트래픽의 서비스에서는 DBCP 방식을 사용해 성능을 최적화하는 것이 중요한데, 왜 DBCP를 사용하는 것이며 어떤 설정값이 있는지 알아보려고 한다.   1. JDBC(Java DataBase Connectivity)자바에서 데이터베이스에 접근하고 쿼리를 실행하기 위한 표준 API이다.개발자가 JDBC API를 이용해 데..
· DB
DB 인덱스 정리할 때, 대부분의 DBMS에서 인덱스가 B-Tree 자료구조로 저장된다고 했다. B-Tree는 어떤 자료구조이며, B+Tree와의 차이점과 왜 DB 인덱스에 사용되는지 공부해보자 ❕  DB 인덱스 (index)데이터베이스에서 사용하는 용어 index(인덱스)에 대해 알아보자 1. 인덱스(index) 인덱스란 RDBMS(관계형 데이터 관리 시스템)에서 테이블의 검색 속도를 향상시키기 위한 자료구조이다. DB에는 여러chchaego.tistory.com  1. B-TreeB-Tree는 탐색 성능을 높이기 위해 균형 있게 높이를 유지하는 균형 트리(Balanced Tree)의 일종이다. 이진 트리와 다르게 하나의 노드에 여러 데이터를 저장할 수 있으며, 각 key와 data가 1:1 대응하고 ..
· DB
SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 조회, 수정, 삭제하는 등 RDBMS를 조작하는데 사용되는 언어이다. NoSQL은 Not Only SQL를 뜻하며 관계형 데이터베이스 모델과는 다른 형태의 데이터를 저장 및 관리하는 방식을 제공한다. NoSQL 데이터베이스에서도 데이터를 관리하고 조작하는데 사용되는 특정 언어가 존재하며, 다양한 데이터 모델을 가지고 있다.   1. 탄생2000년대에 들어서 인터넷의 발전과 SNS 서비스들이 활성화되면서 효율적으로 대규모 데이터를 저장하고 조회하는 기술이 요구됐다. RDB는 정형화된 데이터를 저장하기 때문에 복잡하고 한정된 데이터를 저장하는데는 유용했지만, 이런 대규모 데이터를 저장하는데 어려움이 있었다. RDB의 한..
· DB
데이터베이스 정규화에 대해 공부해보자 ❕  정규화는 이상현상이 있는 릴레이션을 분해하여 중복을 없애고 구조화하는 과정이다. 정규화 과정을 통해 삽입/갱신/삭제 시 발생할 수 있는 이상현상들을 방지할 수 있으며 데이터를 효율적으로 관리할 수 있다.   1. 이상현상(Anomaly)삭제 이상 : 데이터 삭제 시 원하지 않는 값들이 연쇄적으로 삭제되는 현상삽입 이상 : 데이터 삽입 시 원하지 않는 값들이 삽입되는 현상수정 이상 : 데이터 수정 시 데이터의 일부만 수정되는 현상 학생정보 테이블에 학번, 이름, 학과, 강의명, 강의실 컬럼이 존재한다. 지금처럼 정규화되지 않은 테이블에서는 다음과 같은 이상현상이 발생한다. (삭제 이상) 학생과 관련된 데이터를 제거하려고 한다면, 강의명과 강의실에 대한 데이터도 제..
· DB
트랜잭션 격리수준에 대해 공부해보자 ❕   1. 트랜잭션 격리수준 (Transaction Isolation Level) 이란?트랜잭션의 성질로 ACID가 있다. 그 중 Isolation(독립성, 격리성)은 둘 이상의 트랙잭션이 동시에 실행되더라도 다른 트랜잭션에 영향을 받지 않고 독립적으로 실행되도록 보장하는 성질이다. 트랜잭션이 이런 성질을 가지고 있다고 해서 무조건 다른 트랜잭션이 끼어들지 못하는건 아니다. 트랜잭션 격리 수준에 따라 끼어들 수 있게 할 지 끼어들 수 없게 할 지 설정할 수 있다. ⇒ 동시에 여러 트랜잭션이 처리될 때 트랜잭션끼리 얼마나 격리되어 있는가에 대한 수준을 트랜잭션 격리수준이라고 한다.   2. 필요성트랜잭션은 격리성을 보장하기 위해 다른 트랜잭션이 관여하지 못하도록 막는 ..
· DB
데이터베이스 용어 트랜잭션에 대해 알아보자 ❕  1. 트랜잭션(Transaction)이란? 트랜잭션은 데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위이다. 데이터베이스의 상태는 SQL쿼리를 실행시켜 변경시킬 수 있는데, 사용자가 특정 기능의 수행을 위해 SQL 작업을 묶은 단위를 트랜잭션이라고 하는 것이다. 따라서 트랜잭션에는 여러개의 연산이 수행될 수 있다.  대표적인 예로, 계좌 간의 이체 상황을 들 수 있다. A계좌에서 B계좌에게 10만원을 이체한 경우A계좌에서 10만원이 출금되고B계좌에서는 10만원이 입금되어야 한다.만약 A계좌에서 10만원이 출금되었는데 B계좌에서 10만원이 입금되지 않으면 문제가 발생한다.  또 다른 예시를 들어보자. 쇼핑몰의 상품 재고를 나타내는 재고시스템에서 상품 ..
· DB
데이터베이스에서 사용하는 용어 index(인덱스)에 대해 알아보자   1. 인덱스(index)인덱스란 DBMS(데이터베이스 관리 시스템)에서 테이블의 검색 속도를 향상시키기 위한 데이터이다. DB에는 여러 개의 테이블이 존재하고, 테이블 안에는 무수히 많은 데이터가 저장된다. 많은 데이터를 관리하는 DB에서 특정 조건에 부합하는 데이터를 조회하려면 검색 속도는 아주 느릴 것이다. 이 때 인덱스를 이용하면 검색 속도를 향상시킬 수 있다. 책에서 원하는 내용을 찾을 때, 목차와 색인을 확인해 원하는 내용의 페이지를 쉽게 찾을 수 있는 것처럼 데이터베이스에서는 인덱스가 그런 역할을 하는 것이다.  테이블의 특정 컬럼(Column)에 인덱스를 설정하면 별도의 메모리 공간에 컬럼의 값과 물리적 주소를 저장한다. ..
chaego
'DB' 카테고리의 글 목록