[ 그림으로 공부하는 오라클 구조 ] 1장. I/O와 디스크의 관계
·
DATABASE/📖 그림으로 공부하는 오라클 구조
1. 오라클을 이해하기 위한 필수 키워드✔️ 병렬 처리를 가능하게 하고 높은 처리량을 실현✔️  응답 시간(response time) 중시✔️  커밋(commit)한 데이터 지키기 이 세 가지 특성은 서로 상반된 성향이 있어 동시에 모두 만족시키기 어려운 개념이다.이러한 특성을 기억하면서 시작해보자. 2. 오라클과 디스크(하드디스크)오라클은 디스크에서 데이터를 읽어오고, 필요한 처리를 한 후 다시 디스크에 기록합니다. (중략) 그래서 오라클과 디스크는 떼려야 뗄 수 없는 관계입니다.  턴테이블에 레코드를 올려 놓은 이미지를 떠올리면 이해가 쉽다.그림 1.2의 액추에이터는 턴테이블의 톤암에 해당하고, 헤드는 턴테이블의 카트리지 바늘에 해당한다. 디스크는 거의 항상 회전하며, 그 위로 헤드가 아주 빠르게 움..
[ SQL 레벨업 ] 10장. 인덱스 사용
·
DATABASE/📖 SQL 레벨업
1. 인덱스와 B-treeRDB에서 사용하는 인덱스 3가지B-tree 인덱스비트맵 인덱스해시 인덱스1.1 만능형 : B-tree데이터를 트리 구조로 저장하는 형태의 인덱스이다.가장 많이 사용되며, 데이터베이스에서 '인덱스'라 말하면 대부분 B-tree를 지칭하는 것이다.실제 수식을 붙이지 않 채 CREATE INDEX 구문을 실행하면 모든 DBMS에서 암묵적으로 B-tree 인덱스가 만들어진다.더보기트리 구조계층적으로 데이터를 저장하고 관리하는 비선형 데이터 구조이다.  1️⃣ 각 계층루트 노드중간 노드리프 노드 2️⃣ 용어- 노드(Node) : 데이터를 저장하는 각 지점- 루트(Root) : 트리의 최상위 노드- 부모 노드 : 다른 노드를 직접 연결한 노드- 자식 노드 : 다른 노드에 연결된 노드- ..
[ SQL 레벨업 ] 7장. 서브쿼리
·
DATABASE/📖 SQL 레벨업
1. 서브쿼리란?1.1 테이블 vs. 서브쿼리 vs. 뷰종류설명테이블영속적인 데이터를 저장서브쿼리비영속적인 생존 기간(scope)이 SQL 구문 실행 중으로 한정뷰영속적이지만 데이터는 저장하지 않음따라서 접근할 때마다 SELECT 구문이 실행됨 1. 기능적인 관점에서 보면 테이블과 서브쿼리는 전혀 차이가 없다. 2. 반면 비기능적인(특히 성능적인) 관점에서 보면 큰 차이가 있다.3. 서브쿼리(또는 뷰)는 테이블에 비해 성능이 안 좋은 경향이 있다. 이 세 개의 문장을 잘 기억해두고 세세한 부분을 살펴보자. 2. 서브쿼리가 일으키는 폐해2.1 서브쿼리의 문제점서브쿼리는 실체적인 데이터를 저장하고 있지 않기 때문에  1. 연산 비용 추가 : 접근할 때마다 SELECT 구문 실행 -> 실행 비용 발생2. 데이..
[ SQL 레벨업 ] 4장. 집약과 자르기
·
DATABASE/📖 SQL 레벨업
부제 : 집합의 세계1. 여러 개의 레코드를 한 개의 레코드로 집약iddata_typedata_1data_2data_3data_4data_5data_6JimA100103434654 JimB4521677790157JimC 36871355324457KenA785724457 1KenB1231217834675235KenC45 234668733BethA75019025356 BethB4350183 4325BethC96128 0012 * 해당 레코드에서 사용하고자 하는 데이터에 하이라이트 효과를 적용했다. 위의 테이블은 한 사람에 관련된 정보가 여러 레코드에 분산되어 있어 정보를 찾기 위해서는 여러 레코드에 접근해야 한다.불필요한 과정이 생기기 때문에 이를 보완하기 위해 이 테이블을 아래와 같은 레이아웃의 테이블로 ..