Computer Science/Database (20) 썸네일형 리스트형 데이터베이스 기초 3. SQL로 데이터베이스, 테이블 정의(MySQL) SHOW DATABASES;CREATE DATABASE company;USE SELECT DATABASE(); MySQL 에서는 databse와 schema가 같은 뜻즉 CREATE DATABSE company = CREATE SCHEMA comapnyi.g.) PostgreSQL에서는 SCHEMA가 DATABASE의 namespace를 의미오라클에서는 유저가 소유한 논리적 데이터 구조,즉, 스키마 오브젝트(테이블,인덱스, 뷰 등)의 집합, 유저=SCHEMA라고 할 수 있다. 서로 다른 유저가 같은 스키마 오브젝트들을 공유할 수 있음. DATA TYPE숫자타입 종류설명사이즈MySQL Type정수정수를 저장할 때 사용1 byteTINYINT2 byteSMALLINT3 byteMEDIUMINT4 byte.. 데이터베이스 기초 2. 관계형 데이터베이스(Relational datamodel) 데이터베이스 시스템의 데이터 모델 중 가장 많이 사용되는 것이 관계 데이터 모델이다.관계 데이터 모델은 테이블 형태로 데이터 간의 관계를 표현한다.Relationrelation은 row와 column으로 구성된 table을 말한다.위 테이블은 고객의 주문 내역 정보를 담고 있는 릴레이션이다.이 릴레이션은 주문번호, 고객코드, 제품코드, 수량, 가격이라는 5개의 집합으로 구성되어 있다.각 집합의 값은 각각 다음과 같이 원소를 가지고 있다.주문번호 = { ABCDE00001, ABCDE00002 }고객코드 = { 123456, 654321 }제품코드 = { 1002, 1004 }수량 = { 10, 4 }가격 = { 500000, 40000 }첫 번째 행은 5개의 집합에서 각각 원소 1 개씩 선택하여 만들어졌.. 데이터베이스 기초 1. 데이터베이스 관련 용어와 개념 *데이터베이스 기초 시리즈는 유튜버 '쉬운 코드'님의 데이터베이스 강의 및 책 '오라클로 배우는 데이터베이스 개론과 실습'을 공부하며 정리함.https://www.youtube.com/watch?v=aL0XXc1yGPs&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&ab_channel=%EC%89%AC%EC%9A%B4%EC%BD%94%EB%93%9C 데이터베이스 : 관련있는 데이터들을 조직화된 집합으로 정리Metadatadatabase를 정의하거나 기술하는 datacatalog라고도 부름ex) 데이터 유형, 구조, 제약조건, 보안, 저장, 인덱스, 사용자 등의 데이터Database System = Database + DBMS + 연관된 application줄여서 데이터베이스라고.. SQLP 기초 - 4. 인덱스 기본 사용법 인덱스를 사용할 때는 인덱스 컬럼을 가공하지 않아야 인덱스를 정상적으로 사용할 수 있다.- 정상적으로 사용한다는 것은 인덱스의 리프 블록에서 스캔 시작 지점을 찾아 거기서부터 스캔하다가 중간에 멈추는 것(Range Scan)을 의미한다.- 인덱스를 full scan 하는 것은 인덱스를 제대로 사용하는 것이 아니다. 인덱스 컬럼을 가공하게 되면 full scan 방식으로 인덱스를 사용하기 때문에 좋지 않다. - 인덱스 컬럼을 가공하지 않았을 대는 INDEX RANGE SCAN을 사용한다. - 인덱스 컬럼 가공 시 인덱스를 사용하지 못하고 TABLE FULL SCAN 한다. OR Expansion - 옵티마이저의 실행계획 선택 예시- or 조건을 union all 조건으로 바꾸는 방법- USE_CONCAT.. SQLP 기초 - 3. 인덱스 구조 및 탐색 - 인덱스 탐색 과정은 수직적 탐색과 수평적 탐색 2단계로 이루어진다. - OLTP(Online Transaction Processing)은 소량 데이터를 주로 검색하므로 인덱스 튜닝으로 속도를 빠르게 하는 것이 중요하다. 인덱스 튜닝의 핵심 요소1. 인덱스 스캔 과정에서 발생하는 비효율 줄이는 것. 즉, 인덱스 스캔 효율화 튜닝2. 테이블 엑세스 회수 최소화. 인덱스 스캔 후 테이블 레코드를 엑세스할 때 랜덤 I/O를 사용하므로 랜덤 엑세스 최소화 튜닝- 랜덤 I/O를 줄여야 하는 것이 인덱스 튜닝의 핵심이다. - B*Tree Index 구조(B = Balanced)- Root와 Branch 블록에 있는 각 레코드는 하위 블록에 대한 주소값을 갖는다.- Root와 Branch 블록에는 키값을 갖지 않.. SQLP 기초 - 2. 데이터 저장 구조 및 I/O 매커니즘 1. SQL이 느린 이유- SQL이 느린 이유는 디스크 I/O 때문이다.- OS 또는 I/O 서브시스템이 I/O를 처리하는 동안 프로세스는 잠을 잔다.- 프로세스는 생성(new) 이후 종료(terminated) 전까지 준비(ready)와 실행(running)과 대기(waiting) 상태를 반복한다.- 이러한 매커니즘은 하나의 프로세스만 CPU를 사용할 수 있기 때문에 필요하다.- DB 프로세스도 디스크에서 데이터를 읽어야 할 땐(디스크 I/O) CPU를 OS에 반환하고 waiting 상태에서 대기한다. 그러므로 일해야 할 프로세스가 대기를 하고 있으니 I/O가 많으면 DB 성능이 떨어진다. 2. 데이터베이스 저장 구조- 데이터베이스를 논리적 구조로 보면 테이블스페이스 - 세그먼트 - 엑스텐트 - 블록(오.. SQLP 기초 - 1. SQL 처리 과정 : 파싱, 최적화, 캐싱 1. SQL 파싱과 최적화- 파싱(parsing) : Syntax 체크(문법 체크) - Semantic 체크(의미 체크) - Shared Pool 체크(공유 메모리에 캐시 되어 있는지 체크) 과정, 최적화 이전 단계.- 최적화 : DBMS 내부에서 Optimizer가 각종 정보를 가지고 다양한 실행경로 중 효율적인 하나를 선택하는 단계.- 최적화 이후 로우 소스(실행가능한 코드 혹은 프로시저)를 생성한다. 2. Optimizer- 최적의 데이터 엑세스 경로를 선택해 주는 DBMS의 핵심 엔진(별도의 백그라운드 프로세스가 아닌 서버 프로세스가 가진 기능임)*컴퓨터 프로그래밍에서 엔진(engine)이란 특정 프로그램 내부에서 또는 다른 프로그램들을 위해 핵심적이고 본질적인 기능을 수행해주는 프로그램- 옵티마.. 그림으로 공부하는 오라클 구조 - Ch10,11. 오라클 백업/복구, 백그라운드 프로세스 백업과 복구 백업온라인 백업 : 데이터베이스 운영 상황에서 백업 => BEGIN BACKUP과 END BACKUP 사이에 변경이 일어난 블록을 Redo 로그에 기록하여 불완전 복구 방지콜드 백업 : 인스턴스 정지 후 백업복구장애(인스턴스) 복구 : 장애 발생 시 자동으로 실행되는 복구미디어 복구 : 사용자가 명시적으로 실행완전복구 : 최신 데이터까지 복구불완전 복구 : 특정 시점까지 복구데이터베이스/테이블스페이스/데이터파일/블록의 복구기본적인 복구 흐름데이터베이스 손상 확인재작업할 수 있도록 현재 상태 백업필요한 데이터 파일과 아카이브 리두 로그 파일 restore복구 실행 백그라운드 프로세스의 동작과 역할DBWR(DBW) : 이미 변경된 데이터를 캐시에서 디스크로 기록LGWR : commit 시 red.. 이전 1 2 3 다음