SQL : Data definition language(데이터 정의 언어) / Data manipication language(데이터 조작 언어)
데이터 조작언어 -> C R U D (create read update delete)
1. 데이터의 무결성
2. 데이터의 조회 속도
키 : 유일성을 띄어야한다.
스키마 : 데이터 베이스 구조 / 데이터 베이스 테이블 간의 관계
-> 특정 열과 특정 열과의 관계를 뜻한다.
from emp as e : 별칭 (emp를 e라고 한다.) (= from emp e)
-> 한글 이름 지정에도 사용
SQL 최적화 과정
1. SQL 파싱 : 구문, 문맥 검사
2. SQL 최적화 : (DBMS 성능 결정), 여러 실행경로 중 최적 경로 설정
속도
cpu > memory > disk
-> DB가 disk에 있다면 속도 차이 때문에 최소화해야함.
DMA : Direct Memory Access
SQL 공유 및 재사용(중요)
캐시를 이용하여 disk를 사용하지 않고 memory를 사용하면 훨씬 빠름
하지만 SQL 명령어가 문제가 있을 시 오히려 느릴 수 도 있다.
소프트 파싱 vs 하드 파싱
SQL -> 로그인 ?를 이용하여 처리(id를 저장) -> 바인드 변수
=> 계속 파싱 해야 하는 것을 1회로 줄어줌
이진 탐색 트리
balanced tree -> Red-Black -> AVL -> 2-3 -> 2-3-4 -> b-tree
DBMS가 탐색에서 가장 많이 쓰는 것 -> b-tree
인덱스 : 트리 구조
소량의 데이터를 사용할 때 인덱스 사용 -> ex) 로그인
너무 많은 데이터를 가져와야 할 경우 인덱스는 독이 된다.
-> 어떤 것을 하느냐에 따라 SQL을 잘 써야 한다.
=> 무조건적 인덱스는 문제가 있다.
대규모 데이터에서 대량의 데이터 -> 시퀀셜 액세스 사용
대규모 데이터에서 소량의 데이터 -> 인덱스 사용 (대부분 소량을 가져오기에 인덱스가 빨라보임)
해시 함수 -> 제산 함수(%) + chaining
index range scan이 주력이다.
테이블 랜덤 액세스 vs 시퀀셜 액세스
5~20%지점이 손익분기점
'학교수업' 카테고리의 다른 글
데이터베이스 11주차 (0) | 2022.11.15 |
---|---|
컴퓨터그래픽스응용 9주차 (0) | 2022.11.02 |
컴퓨터 그래픽스 응용 중간고사 (0) | 2022.10.19 |
데이터베이스 7주차 (0) | 2022.10.18 |
데이터베이스 6주차 (0) | 2022.10.18 |