데이터베이스 다중화 및 MySQL Replication
·
CS 공부/데이터베이스
재직중인 회사에서 고객사별 데이터베이스 관리에 있어 Master-Slave 패턴을 이용한다.Master 서버에서는 쓰기 연산이 가능하지만, Slave 서버에서는 읽기 연산만 가능하다. 그래서, 업무 중에 운영 상황에서 필요한 데이터 처리는 쓰기 연산 SQL 쿼리를 작성하여 Master 서버에서 하며, 그 외에 데이터 확인용 단순 Select 쿼리는 Slave 서버에서 한다. 이 방식에 익숙해지기만 하였고 대략 안정성 때문에 도입된 방식이라고만 생각하였는데, 이 개념에 대하여 자세히 정리해보았다.  데이터베이스 다중화와 Replication많은 데이터베이스 관리 시스템이 다중화를 지원하며, 보통은 서버 사이에 Master-Slave 관계를 설정하고 데이터 원본은 Master 서버에, 사본은 Slave 서버..
레디스(Redis) 란?
·
CS 공부/데이터베이스
Redis란 무엇일까? -> Redis(REmote Dictionary Server) 보통 데이터베이스는 데이터를 하드 디스크나 SSD에 저장한다. 하지만 Redis는 데이터를 메모리(RAM)에 저장하는 인메모리 데이터베이스(In-Memory)로서 디스크 스캐닝이 필요없어 매우 빠른 장점이 존재한다. 이 말만 들으면 Redis의 가장 큰 특징이 모든 데이터를 메모리에 저장하는 빠른 DB가 다라고 생각할지도 모른다. 하지만, 빠른 성능은 Redis의 특징 중 일부분이고, 다른 인메모리 데이터베이스들과의 가장 큰 차이점은 "다양한 자료구조" 이다. 데이터 구조는 key/value 값으로 이루어져있다. Value가 될 수 있는 데이터의 형식은 5가지이다. String (text, binary data) - 5..
이상현상 (Anomaly)
·
CS 공부/데이터베이스
이상현상 (Anomaly) 이란? 데이터베이스에서 정규화를 수행하지 않으면, 데이터의 중복이 발생하고 전체적인 무결성이 저하된다. 이러한 원인은 데이터 이상 현상(Anomaly)에 의해 발생하며, 이상 현상으로 인해 현실세계의 실제 값과 데이터베이스에 저장된 값이 일치하지 않는 문제가 발생한다. 데이터 이상은 삽입 이상, 삭제 이상, 업데이트 이상이라는 세 가지 유형이 존재한다. 다음은 이상 현상을 설명할 대학교 테이블이다. 학번 학생명 학과 코드 학과명 학과장 코드 학과장명 1 도우너 101 경영학과 1000 워런 버핏 2 고길동 101 경영학과 1000 워런 버핏 3 또치 102 물리학과 2000 아인슈타인 4 마이콜 102 물리학과 2000 아인슈타인 5 둘리 103 컴퓨터공학과 3000 빌 게이츠..
SQL과 NOSQL의 차이
·
CS 공부/데이터베이스
웹/앱 개발을 할 때 데이터베이스를 선택하게 된다. MySQL과 같은 SQL을 사용할까? 아니면 MongoDB와 같은 NoSQL을 사용할까? 보통 Spring에서 개발할 때는 MySQL을, Node.js에서는 MongoDB를 주로 사용한다. 하지만 그냥 단순히 프레임워크에 따라 결정하는 것이 아니다. 적합한 데이터베이스를 택해야 한다. 차이점을 알아보자. SQL (관계형 DB) SQL을 사용하면 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있다. ※ RDBMS(Relational DataBase Management System) - 관계형 데이터베이스 관리 시스템 - 대표적으로 오라클, MySQL, Access, MsSql 등이 있다. - 데이터를 테이블 형태('스키마'라고 부른다)로 관리..