인덱스란?데이터베이스 인덱스는 데이터 접근 속도를 향상시키기 위해 사용되는 데이터 구조이다.B-Tree보통 인덱스로 많이 쓰이는 구조의 이름.이진 검색 트리를 일반화한 자료구조.2개 이상의 자식을 가진 노드를 허용하고 탐색에 평균 O(logN)의 시간이 걸린다.대수확장성이라는 특징을 가지고 있어서 더 빠른 속도로 더 많은 양의 데이터를 검색할 수 있다.대수확장성대수확장성은 트리 깊이가 리프 노드 수에 비해 매우 느리게 성장하는 것을 뜻한다.인덱스 성능 최적화인덱스는 두 번 탐색하도록 강요한다. 인덱스 리스트 -> 컬렉션 순으로 탐색하기 때문이고 읽기에 따른 비용이 수반된다.이 때문에 사용되지 않거나 중복되는 인덱스, 불필요한 인덱스는 제거해야 한다.인덱스는 컬렉션이 수정되면 같이 수정되야 한다. 이 또한..
CS 지식/데이터베이스
트랜잭션과 관련된 용어트랜잭션데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위커밋여러 쿼리가 성공적으로 처리되었다고 확정하는 명령어.트랜잭션 단위로 수행되며 변경된 내용이 모두 영구적으로 저장됨.롤백트랜잭션으로 처리한 하나의 묶음 과정을 일어나기 전으로 돌리는 일 (Ctrl Z)트랜잭션 전파트랜잭션을 수행할 때 커넥션 단위로 수행하기 때문에 커넥션 객체를 넘겨서 수행해야 하는데 이를 넘겨서 수행하지 않고 여러 트랜잭션 관련 메서드의 호출을 하나의 트랜잭셩에 묶이도록 하는 것. 트랜잭션의 특성ACIDAtomicity원자성: 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징Consistency일관성: 허용된 방식으로만 데이터를 변경해야 하는 것을 의미Isolation격리성..
Join?조인은 두 개 이상의 테이블을 연결하여 데이터를 탐색하는 방법이다. (대부분의 SQL에서는 JOIN을 사용, MongoDB의 경우엔 lookup 이라는 키워드 사용)Inner Join두 테이블에서 일치하는 데이터만 반환. (교집합)A, B 테이블을 Inner Join 하면 A, B 모두에 존재하는 데이터만 쿼리된다.Outer Join외부 조인은 Left Outer Join, Right Outer Join, Full Outer Join의 3가지 케이스가 있다.Left Outer Join첫 번째 테이블(왼쪽)과 두 번째 테이블(오른쪽)의 일치하는 레코드를 반환한다.오른쪽 테이블에 일치하는 레코드가 없다면 왼쪽 테이블 레코드는 그대로 출력하고 오른쪽의 레코드는 NULL로 출력한다.Right Outer..
ERD(Entity Relation Diagram)위와 같이 생긴 테이블 간의 관계를 나타낸 도표 같은 것을 ERD라고 한다.각 테이블은 어떤 간선으로 연결되어 있는데 이것들은 각각 뜻을 가지고 있다. 이 간선이 실선이 아니고 점선인 경우도 있다.점선인 경우에는 자식 테이블이 부모 테이블의 기본키를 기본키로 사용하지 않는 경우에 사용한다. 어떤 부서를 나타낸 ERD이다.사원은 0 ~ n 명의 고객을 가질 수 있다. (고객 쪽의 선에 0로 구멍이 뚫려 있음.)고객은 0 ~ n 개의 주문을 넣을 수 있다.주문에는 1 ~ n 개의 상품이 들어갈 수 있다. (상품 쪽의 선에 구멍이 뚫려 있지 않음.) 출처CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조 - 큰돌https://www.in..