조인 하나의 테이블이 아닌 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것을 말한다. MySQL에서는 JOIN, MongoDB에서는 lookup이라는 쿼리로 처리한다. MongoDB에서는 조인 연산에 대해 관계형 데이터베이스보다 성능이 떨어지기 때문에 사용을 지양한다. 따라서 여러 테이블을 조인하는 작업이 많은 경우 MongoDB보다는 관계형 데이터베이스를 써야 한다. 내부 조인 (inner join) 왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기한다. SELECT * FROM TableA A INNER JOIN TableB B ON A.key = B.key 왼쪽 조인 (left outer join) 왼쪽 테이블의 모든 행이 결과 테이블에 표기된다. 테이블 B의 일..
인덱스의 필요성 인덱스는 데이터를 빠르게 찾을 수 있는 하나의 장치이다. 책의 색인과도 같다. B-트리 인덱스는 보통 B-트리 자료구조로 이루어져 있다. 이는 루트 노드, 리프 노드, 그리고 루프와 리프 사이의 브랜치 노드로 나뉜다. 트리 탐색은 맨 위 루트 노드부터 탐색이 일어나며 브랜치 노드를 거쳐 리프 노드까지 도달해서 해당 데이터가 가리키는 데이터 포인터를 통해 결괏값을 반환하게 된다. 인덱스가 효율적인 이유와 대수확장성 인덱스가 효율적인 이유는 효율적인 단계를 거쳐 모든 요소에 접근할 수 있는 균형 잡힌 트리 구조와 트리 깊이의 대수확장성 때문이다. 대수확장성이란 트리 깊이가 리프 노드 수에 비해 매우 느리게 성장하는 것을 의미한다. 기본적으로 인덱스가 한 깊이씩 증가할 때 마다 최대 인덱스 항..
트랜잭션 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위. 데이터베이스에서 접근하는 방법은 쿼리이므로 여러 개의 쿼리를 하나로 묶는 단위를 말한다. 특징으로 원자성, 일관성, 독립성 지속성이 있으며 묶어서 ACID 특징이라고 한다. 원자성 (atomicity) 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징 예를 들어 트랜잭션을 커밋했는데 문제가 발생하여 롤백하는 경우 그 이후에 모두 수행되지 않음을 보장하는 것을 말한다. 커밋(commit)과 롤백(rollback) 커밋은 여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어이다. 트랜잭션 단위로 수행되며 변경된 내용이 모두 영구적으로 저장되는 것을 말한다. 롤백은 트랜잭션으로 처리한 하나의 묶음 과정을 일어나기 전..
ERD (Entity Relationship Diagram) 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할을 하며 릴레이션 간의 관계들을 정의한 것이다. 시스템의 요구 사항을 기반으로 작성되며 이 ERD를 기반으로 데이터베이스를 구축한다. 구축 이후에도 디버깅 또는 비즈니스 프로세스 재설계가 필요한 경우에 설계도 역할을 하기도 한다. 하지만 관계형 구조의 데이터 구성은 유용하지만 비정형 데이터를 충분히 표현할 수 없다는 단점이 있다. 비정형 데이터 비구조화 데이터를 말하며, 미리 정의된 데이터 모델이 없거나 미리 정의된 방식으로 정리되지 않은 정보를 말한다. 정규화 과정 릴레이션 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나, 저장 공간을 효율적으로 사용하기 위해 릴..
데이터베이스 (DB, DataBase) 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음이다. 해당 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)라고 하며, 데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어(query language)를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다. 또한 데이터베이스는 실시간 접근과 동시 공유가 가능하다. 엔터티 (Entity) 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사를 의미한다. 예를 들어 '회원'이라는 엔터티에 이름, 아이디, 주소 등의 속성을 갖는다. 약한 엔터티와 강한 엔터티 예를 들어 A가 혼자서는 존재하지 못하고 B의 존재 여부에 따라..
- Total
- Today
- Yesterday
- 메모리 계층
- 프로세스
- 스레드
- 선언형 프로그래밍
- 스프링 R2DBC
- 스프링 WebFlux
- 인덱스최적화
- 직접연관매핑
- 함수형 프로그래밍
- 코틀린
- java
- 프로그래밍
- 연관매핑
- 세컨더리인덱스
- 프로세스와 스레드
- 프로그래밍 패러다임
- 대수확장성
- 캐시매핑
- 디자인 패턴
- 중첩루프조인
- 정렬병합조인
- 자바
- 프로세스 컴파일
- 클러스터형인덱스
- 네트워크 기초
- Design Pattern
- 보이스코드정규형
- 불연속할당
- 직접매핑
- 네트워크
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |