본문 바로가기
반응형

Database/SQLD23

데이터 모델링의 이해 모델링은 단지 시스템 구현만을 위해 수행하는 타스크가 아니며, 시스템 구현을 포함한 업무분석 및 업무형상화를 하는 목적도 있다. 데이터 모델링을 하는 주요한 이유는 일정한 표기법에 의해 표현함으로써 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것이 첫 번째 목적이다. 두 번째는 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것이 두 번째 목적이다. 데이터모델링을 할 때 유의사항 : 중복성, 비유연성, 비일관성 개념적 데이터 모델링 - 추상화 수준이 높고 업무 중심적이며 포괄적인 수준의 모델링 물리적 데이터 모델링 - 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등의 물리적인 성격을 고려한 데이터 모델링 개념스키마 - 통합관점의 스키마구조를 표.. 2023. 8. 22.
조인 방식(NL, SORT MERGE, HASH JOIN) 1. NL Join ( Nested Loops Join) 조인 컬럼에 인덱스 있으면 유리 선행 테이블에서 만족하는 행수가 적을수록 유리 → 컬럼 순서가 중요함 수행시간이 적게걸리는 소량테이블 조회시 유리 select /*+ order use_nl(e) */ e.empno, e.ename, d.dname,e.job, e.sal from dept d, emp e where e.deptno = d.deptno 2. Sort Merge Join 조인 전 양쪽 집합 정렬 부분범위 처리 가능 테이블 별 검색 조건에 의해 전체 일량이 좌우됨 스캔위주의 조인방식 3. Hash Join 둘 중 작은 집합(Build Input)을 읽어 해시 영역(Hash Area)에서 해시 테이블(= 해시 맵)을 생성하고, 반대쪽 큰 집.. 2023. 7. 14.
인덱스 인덱스 - 테이블의 컬럼을 떼서 정렬을 하고 따로 저장을 해두는 것 인덱스 사용 이유 WHERE 구문과 일치하는 열을 빨리 찾기 위해 특정 열을 고려 대상에서 빨리 없애 버리기 위해 조인(JOIN)을 실행할 때 다른 테이블에서 열을 추출하기 위해 특정하게 인덱스된 컬럼을 위한 MIN() 또는 MAX()값을 찾기 위해 사용할 수 있는 키의 최 자측 접두사(leafmost prefix)를 가지고 정렬 및 그룹화를 하기 위해 (??) 데이터 열을 참조하지 않은 상태로 값을 추출하기 위해서 쿼리를 최적화 하는 경우 인덱스 구조 논리적/물리적으로 테이블과 독립적 테이블은 컬럼에 데이터가 정렬되지 않고 입력된 순서대로 들어가지만, 인덱스는 KEY컬럼과 ROWID컬럼 두개로 이루어져 있고 오름차순, 내림차순으로 정렬.. 2023. 7. 14.
옵티마이저 옵티마이저 - db내부 핵심 엔진 옵티마이저와 실행계획 1. Parser 1) 문법적, 의미적 오류 확인 2) SQL과 실행계획이 라이브러리 캐시에 존재하는 확인 (1) 존재하면 (soft parsing) => sql과 실행계획을 라이브러리 캐시에서 찾아 바로 실행 (2) 존재하지 않으면 (hard parsing) => 옵티마이저를 거쳐서 쿼리비용 계산 후 실행계획 생성 2. Optimizer 1) Query Transformer : 최적화하기 쉽게 형태 변환 시도, 논리적으로 변환 전후 동일해야 함. 2) Estimator : 실행계획에 대한 전체 비용계산 (I/O, cpu, 메모리, 테이블 및 인덱스 통계정보 확인) 3) Plan Generator : 후보군이 할만한 실행계획 생성 3. Row-Sou.. 2023. 6. 9.
PL/SQL 1. PL/SQL (Procedural Language Extenstion to SQL) SQL을 확장한 절차적 언어(Procedural Language) 관계형 데이터베이스에서 사용되는 Oracle의 표준 데이터 엑세스 언어로, 프로시저 생성자를 SQL과 완벽하게 통합한다. 유저 프로세스가 PL/SQL 블록을 보내면, 서버 프로세서는 PL/SQL Engine에서 해당 블록을 받고 SQL과 Procedural을 나눠서 SQL은 SQL Statement Executer로 보낸다. PL/SQL 프로그램의 종류는 크게 Procedure, Function, Trigger로 나뉘어진다. 2. PL/SQL의 특징 블록 단위의 실행을 제공한다. 이를 위해 BEGIN 과 END를 사용한다. 마지막 라인에 /를 입력하면.. 2023. 6. 5.
반응형