백엔드/SQL23 쿼리 프로세싱과 최적화 - DML compiler & organizer: 쿼리 프로세싱 및 최적화1. 쿼리 프로세싱: 쿼리가 parser & translator에게 전달됨(쿼리에 일대일 대응하는 관계대수식 생성)2. 쿼리 최적화: optimizer에게 전달(최적의 execution plan)-> query evaluation engine에게 전달 - query evaluation engine: 쿼리 실행 쿼리 프로세싱 및 최적화 - DML compiler & organizer: 쿼리 프로세싱 및 최적화= parser&translator + optimizer 쿼리 프로세싱쿼리 최적화logical plan 변환execution plan 도출담당자parser & translatoroptimizer역할주어진 쿼리에 일대일 대응하.. 2025. 6. 3. 인덱싱 테이블 데이터의 저장과 접근 buffer manager은 자주 접근되는 데이터를 RAM의 버퍼 캐시 메모리에 올려두는 역할을 한다.file manager은 디스크의 메모리 공간을 관리한다. 네일 영양제를 조회하기 위해 클릭하면 상세 페이지로 이동하는데,상세 페이지에는 '네일 영양제' 행을 SELECT한 결과를 볼 수 있다.id, 제조사, 가격을 볼 수 있는 것이다.1. 이때 데이터에 접근하기 위해 먼저 RAM의 캐시 공간을 보고 없으면 디스크로 가서 본다.2. 없으면 데이터 파일에서 완전탐색을 해 찾아내 해당 정보를 캐시에 올려둔다.* 데이터베이스 테이블의 ROW는 삽입된 순서대로 저장되어 있기 때문에 정렬된 상태가 아님 -> 완전탐색해야 함==> 검색 속도 향상을 위해 "인덱싱" 기술 필요 인덱스 인덱.. 2025. 6. 1. 트랜잭션 트랜잭션이란? - 하나의 논리적 작업을 수행하기 위해 필요한 데이터베이스 연산들의 모임- 데이터베이스 논리적 작업 단위 -> 일반적으로 프로젝트 명세서의 기능 하나에 대응ex. 회원가입, 상품주문, 게시글 등록, 송금 등- All-or-nothing: 완전히 처리되거나, 전혀 처리되지 않아야 함 (미완결 상태로 중단 x)- 장애 발생 시, 복구 단위도 트랜잭션 트랜잭션의 특성(ACID) - 원자성(Atomicity): ALL-OR-NOTHING- 일관성(Consistency): 실패했든, 성공했든, 모순없이 일관된 상태를 유지해야 한다는 것.- 격리성(Isolation): 현재 트랜잭션 수행되고 있다면 끝날 때까지 다른 트랜잭션 접근 불가* 독립적 수행이 원칙- 지속성(Durability): 트랜잭션이.. 2025. 5. 31. 관계 데이터베이스 설계 - 함수 종속성과 정규화 논리적 데이터 모델링 단계에 해당하는 정규화하는 방법에 대해 알아볼 것이다. 정규화의 필요성데이터베이스의 이상현상 이상현상: 테이블에 데이터를 삽입, 수정, 삭제 시 데이터의 일관성이 깨지는 현상 1. 삽입이상: 삽입 시 의도하지 않은 정보까지 함께 삽입2. 갱신이상: 중복 저장된 데이터 중 한 쪽만 갱신되고 다른 쪽은 갱신되지 않는 현상3. 삭제이상: 특정 데이터 삭제할 때 의도하지 않은 정보까지 함께 삭제 1. 삽입이상: 600번 학생이 2학년이라는 사실을 삽입하고 싶을 때-> 과목번호, 성적이 지정되지 않았으면 NULL로 설정해야 하지만 과목번호는 PK이므로 NULL 불가 -> 다른 과목을 따로 등록해야 한다.2. 갱신이상: 400번 학생의 학년을 4에서 3으로 변경하려고 할 때-> 400번 학생.. 2025. 5. 28. 이전 1 2 3 4 ··· 6 다음