◎ SQL_TABLE
- 테이블이란 관계형 데이터베이스에서 데이터를 관리 및 저장하는 장소
- 반드시 테이블 생성 시 기본키를 설정해야 한다.
- 기본키는 특정 집합에서 특정 행을 유일하게 식별할 수 있는 속성의 집합 (기본키는 중복되면 안 된다.)
※ 정규형
- 테이블을 정의하는 기본 형태
- 즉 제대로 된 형태를 뜻한다 -> 테이블 갱신 시 부정합이 발생하기 어려운 형태
- 정규화가 제대로 되지 않아 관리의 어려움을 겪는 시스템이 다수 존재
▲ 제1 정규형(1NF) 위반
- 테이블의 셀에 여러 개의 값을 포함하지 않는다.
▲ 제2정규형(2NF) 위반
- 부분함수 종속성을 허용하지 않음
- 기본키를 구성하는 열의 일부에만 함수속 종속이 존재하는 것
▲ 제3정규형(3NF) 위반
- 기본 키를 제외한 일반 컬럼끼리 함수 종속이 발생
▲ 제 4, 5 정규형
- 실무에서 거의 쓰이지 않는다.
◎ SQL_ER 다이어그램
- 데이터 모델링 분야에서 개체-관계 모델이란 구조화된 데이터에 대한 일련의 표현
※ Barker 표기법
※ 릴레이션십
- 엔터티(테이블)와 엔터티(테이블) 사이의 관계를 말한다.
- 엔터티 간의 관련성을 표현한 것이 릴레이션십(Relationship)이고 핵심 사항은 FK인 칼럼은 부모 테이블의 기본키를 참고하고 있다는 것이다.
◎ 백업 및 복구
- 핫 백업 : 온라인 백업 / 데이터베이스 기능 이용 / 백업 대상의 데이터베이스 정지하지 않고 가동한 상태로 백업 데이터 얻음
- 콜드 백업 : 오프라인 백업 / OS 기능 이용 / 데이터 디렉터리의 파일 전부를 OS 명령으로 복사
- 논리 백업 : SQL 기반 텍스트 형식으로 백업 데이터 기록
- 물리 백업 : 데이터 영역을 그대로 덤프 하는 이미지로 바이너리 형식 기록
- 풀 백업 : 데이터베이스 전체 데이터를 매일 백업
- 부분 백업 : 풀 백업 이후 갱신된 데이터를 백업
◎ 데이터베이스 성능
- 성능은 클라이언트 요청에 대한 응답시간과 시간당 처리할 수 있는 처리량이다.
※ 성능 용어
- Active User : 대상 서버에 부하를 발생시키고 있는 사용자
- Inactive User : 현재 서버에 요청을 보내고 있지 않은 사용자
- TPS(Transaction Per Second) : 서버가 일정 시간(초) 내에 처리한 트랜잭션의 양
- Response Time : 요청 한 후부터 응답을 받을 때까지 소요된 시간
- Resource : 한정된 값을 가진 시스템의 구성 요소를 의미
▲ 성능을 저하시키는 데이터베이스 병목의 원인
- 취급하는 데이터 양이 가장 많다.
- 시스템에서 처리하는 데이터는 영속적으로 보유해야 하는 데이터일 확률이 크다.
- 데이터의 총 크기는 지속적으로 증가한다.
- DBMS 내부 I/O 병목으로 인해 대기 시간이 길어 질 수 있다.
▲ 성능을 결정하는 요인
- 옵티마이저 : 최적의 데이터 액세스 경로를 선택해주는 DBMS의 핵심 엔진 / 후보군이 될 만한 실행 계획을 찾아낸 후, 통계정보를 이용해 각 실행 계획의 예상 비용을 산정한 후 최저 비용을 나타내는 실행 계획을 선택한다.
'Data scientist > SQL' 카테고리의 다른 글
SQL_함수(2) (0) | 2021.08.09 |
---|---|
SQL_Practice_기온 데이터 분석 (0) | 2021.08.08 |
SQL_함수 (0) | 2021.08.06 |
SQL_기본 (0) | 2021.08.04 |
SQL_데이터베이스 (0) | 2021.08.04 |