CS/데이터베이스
-
[CS/Database] Elastic Search / Elastic Search의 인덱스구조와 RDBMS의 인덱스 구조의 차이 / Elastic Search의 키워드 검색과 RDBMS의 LIKE 검색의 차이CS/데이터베이스 2025. 2. 21. 17:14
• Elastic Search란?Elastic Search는 자바로 개발된 오픈소스 검색엔진입니다. 보통 단독으로 사용하기보다는 ELK 스택이라고 불리는 Logstash, Kibana, Beats를 추가적으로 사용합니다. Inverted Index 구조(역인덱스 구조)로 데이터를 저장해서, 전문(Full-text) 검색시에 RDBMS에 비해 뛰어난 성능을 보장합니다. 데이터 저장, 문서 검색, 위치 검색, 머신 러닝 기반 검색, 로그 분석, 보안 감사 분석 등 다양한 용도로 사용할 수 있습니다. • Elastic Search의 인덱스 구조와 RDBMS 인덱스 구조의 차이Elastic Search는 Inverted-Index 구조로 데이터를 저장합니다. 이는 책의 색인을 생각해보면 쉬운데, 특정 단..
-
[CS/Database] Redis / Redis와 Memcached 차이CS/데이터베이스 2025. 2. 17. 13:50
• Redis란?보통 데이터베이스는 하드 디스크나 SSD에 저장합니다. 하지만 Redis는 메모리(RAM)에 저장해서 디스크 스캐닝이 필요없어 매우 빠른 장점이 존재합니다. 캐싱도 가능해 실시간 채팅에 적합하며 세션 공유를 위해 세션 클러스터링에도 활용됩니다. 📓 캐싱 / 세션 클러스터링·캐싱 : 자주 사용하는 데이터나 연산 결과를 임시 저장하여 속도를 향상시키는 기술·세션 클러스터링 : 사용자의 세션 데이터를 여러 서버에 공유하여 부하 분산과 장애 복구를 가능하게 하는 기술(하나의 서버가 다운되더라도 세션 정보를 유지할 수 있도록 여러 서버가 공유하는 방식)데이터 구조는 key/value 값으로 이루어져 있습니다. (따라서 Redis는 비정형 데이터를 저장하는 비관계형 데이터베이스 관리 시스템입니..
-
[CS/Database] NoSQL / RDBMS와 NoSQL의 차이CS/데이터베이스 2025. 2. 17. 12:56
• RDBMS와 NoSQL의 차이 - RDBMS는 모든 데이터를 2차원 테이블 형태로 표현합니다. 장점 : 스키마에 맞춰 데이터를 관리하기 때문에 데이터의 정합성을 보장할 수 있습니다. 단점 : 시스템이 커질수록 쿼리가 복잡해지고, 성능이 저하되며 서버의 성능을 높이는 방식으로만 확장할 수 있고, 서버를 여러대 추가하는 방식은 어렵습니다. 📓스키마 / 데이터의 정합성· 스키마 : 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것· 데이터의 정합성 : 어떤 데이터들이 값이 서로 일치하는 상태를 의미 - NoSQL(Not Only SQL) 은 RDBMS와 반대로 데이터간의 관계를 정의하지 않고, 스키마가 없어 좀 더 자유롭게 데이터를 관리할 수 있으며, 컬렉션이라는 형태로 데이터를 관리합..
-
[CS/Database] 트랜잭션 / ACID / 트랜잭션 격리수준(Transaction Isolation Levels)CS/데이터베이스 2025. 2. 17. 11:38
• 트랜잭션이란? 트랜잭션이란 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위라고 할 수 있으며, 트랜잭션에는 여러개의 연산이 수행될 수 있습니다. 트랜잭션은 수행 중에 한 작업이라도 실패하면 전부 실패하고, 모두 성공해야 성공이라고 할 수 있습니다. • 트랜잭션의 특성(ACID)원자성(Atomicity) : 작업이 모두 반영되던지 아니면 전혀 반영되지 않아야 합니다. 일관성(Consistency) : 실행이 완료되면 언제나 일관성있는 상태를 유지해야 합니다. 독립성(Isolation) : 둘 이상의 트랜잭션이 동시에 실행될 경우 서로의 연산에 끼어들 수 없습니다. 영속성(Durability) : 완료된 결과는 영구적으로 반영되어야 합니다. • 트랜잭션 격리수준 (Transac..
-
[CS/Database] 정규화CS/데이터베이스 2024. 10. 28. 23:18
• 정규화란? 하나의 릴레이션(테이블)에 하나의 의미만 존재하도록 릴레이션을 분해하는 과정이며, 데이터의 일관성 / 최소한의 데이터 중복 / 최대한의 데이터 유연성을 위한 방법입니다. ⸰ 제1 정규형 : 테이블의 컬럼(열)이 원자 값(하나의 값)을 갖도록 분해합니다. ⸰ 제2 정규형 : 제1 정규형을 만족하고, 기본키가 아닌 속성이 기본키에 완전 함수 종속이도록 분해합니다.(여기서 완전 함수 종속이란 기본키의 부분집합이 다른 값을 결정하지 않는 것을 의미) 위 테이블에서 (학생번호, 강좌이름)을 기본키로 설정하면, 성적은 이 기본키를 통해 결정됩니다.즉, (학생번호, 강좌이름) → 성적 이라는 관계가 성립합니다.하지만 강의실 정보(강의실 컬럼)는 강좌이름에 따라 자동으로 결정되므로,강좌이름 →..
-
[CS/Database] 인덱스CS/데이터베이스 2024. 10. 28. 23:18
• 인덱스에 대해 설명해주시고, 장/단점에 대해 말해주세요. 인덱스란 테이블을 처음부터 끝까지 검색하는 방법인 FTS(Full Table Scan) 과는 달리 인덱스를 검색하여 해당 자료의 테이블을 엑세스 하는 방법입니다. 예를 들어, DB를 책으로 비유한다면 데이터는 책의 내용일 것이고, 데이터가 저장된 레코드 주소는 인덱스 목록에 있는 페이지 번호일 것입니다. 인덱스는 항상 정렬된 상태를 유지하기 때문에 원하는 값을 검색하는데 빠르지만, 새로운 값을 추가하거나 삭제, 수정하는 경우에는 쿼리문 실행 속도가 느려집니다. 즉, 인덱스는 데이터의 저장 성능을 희생하고, 그대신 데이터의 검색 속도를 높이는 기능이라 할 수 있습니다. 📓 레코드, 필드?· 레코드 : 논리적으로 연관된 필드의 집합 (= 행, 튜..