본문 바로가기

sql3

SQL 파싱과 최적화 SQL 최적화의 ‘최적화'란 무엇을 대상으로하며 어떤 과정을 거치는지 알아보자. 구조적, 집합적, 선언적 질의언어 SQL (Structured Query Language) : SQL is a set-based, declarative query language, not an imperative language such as C or BASIC. 즉, 기본적으로 구조적이고 집합적이고 선언적인 질의 언어이다. 원하는 결과 집합을 구조적, 집합적으로 선언한다. 하지만 그 결과 집합을 만드는 과정은 절차적일 수 밖에 없다. 즉, 프로시저(절차기술)가 필요한데, 그런 프로시저를 만들어내는 DBMS 내부 엔진이 SQL 옵티마이저이다. DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전 과정.. 2022. 5. 4.
[SQL-1] 정규화란? - 제 1/2/3정규형 정규화의 개념과 필요한 이유에 대해서 알아보자 1. 제1정규형 : 모든 속성은 반드시 하나의 값을 가져야 한다. 1) 잘못된 사례1 => 다중 값을 가지는 경우 다음과 같은 모델이 있다고 가정했을 때 발생할 수 있는 문제는 다음과 같다. 연락처 정보에서 집전화 번호와 핸드폰 번호를 구별할 수 없다. 집전화가 여러대인 '장소오'와 핸드폰번호가 여러개인 '장소삼'이 혼재되어잇기 때문에 원하는 데이터만 추출하기 어렵다. 이메일처럼 다른 유형의 데이터를 포함할 수도 있어 본연의 의미가 퇴색될 수 있다. 이와 같이 데이터를 관리한다면 '연락처' 속성의 의미는 퇴색될 것이고, 개발의 복잡성은 증가할 것이며 장기적으로 불안정한 데이터 구조를 양산할 것이다. 사원번호 사원명 연락처 10001 장소이 010-1111-2.. 2022. 3. 10.
Oracle 과 PostgreSQL의 차이점 Oracle 과 PostgreSQL의 가장 큰 차이점은 2가지 정도로 나눌 수 있다. 1. MVCC 모델 구현 방식의 차이 MVCC란 다중 버전 동시성 제어(multiversion concurrency control, MCC, MVCC) 이다. 동시성 제어란 뭘까? 간단하게 말하면 만약 동시성 제어 없이 누군가가 데이터베이스를 읽는 동시에 다른 누군가가 기록을 하려고 한다면 사용자는 반쯤 기록되거나 일관성이 없는 데이터를 보게 될 가능성이 있다. 이렇게 동시성을 높이기 위해서는 '읽기 작업은 쓰기 작업을 블로킹 하지 않고, 쓰기 작업은 읽기 작업을 블로킹하지 않아야 한다'는 원칙을 지켜야 한다. 그 원칙을 지키기 위해 필요한게 MVCC 이다. - ORACLE : 이 MVCC를 구현하기 위해 UNDO 세그.. 2022. 1. 19.
반응형