분류 전체보기
![[Git 기초] 1. Git - 버전 관리 시스템](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzPHIr%2FbtsBR8UZU2A%2FIoyU6Qa7LqfyJGK1HavmVK%2Fimg.png)
[Git 기초] 1. Git - 버전 관리 시스템
Git은 전세계적으로 가장 많이 사용되는 분산형 버전 관리 시스템(Distributed Version Control System)이다. '분산형 버전 관리 시스템'이 무엇인지 이해하기 위해서는 먼저 '버전 관리 시스템'이 무엇인지를 알아야 한다. 이야기를 통해 '버전 관리 시스템'이 무엇인지 알아보자. 인디 게임 개발자 철수는 철수 RPG라는 게임을 만들기로 했다. 철수는 CsRpg라는 폴더를 만들고 이 폴더 안에서 게임을 위해 필요한 소스 코드와 리소스를 작성했다. 오랜 노력 끝에 철수는 게임을 완성하고 출시했다. 철수의 게임은 엄청난 흥행을 거두었다. 철수에겐 황금빛 미래만이 기다리고 있는 듯 했다. 언젠가부터 철수 RPG에 유저들의 혹평이 쏟아지기 시작했다. 컨텐츠가 너무 부족하다는 것이 그 이유였..

Query Processing
Overview Parsing and translation 사람이 이해하기에 적합한 SQL query를 DBMS가 사용하기에 적합한 relational algebra expression으로 번역하는 과정 Optimization Optimizer는 주어진 expression과 동등한(같은 결과물을 산출하는) 여러 expression을 만든다. 다음으로 만들어진 expression 각각에 대해서 구체적인 instuction 수행 방법을 명시해서 여러 execution plan(=evalution plan)을 만든다. 여기서 instruction 수행 방법은 join을 할 때 merge join을 쓸지 hash join을 쓸지, select를 할 때 index를 쓸지 full scan을 할지와 같은 것을 의미..

Relational Model
Relation relation은 table을 의미한다. 수학적으로 table은 set of tuples로서 relation이 되기 때문에 이런 이름이 붙었다. Relation Instance relation instance는 특정 시점에서의 table snapshot을 의미한다. 비유하자면 relation은 variable에 가깝고 relation instance는 variable이 특정 시점에 가지는 값에 가깝다. Relation Schema relation schema는 list of attributes를 의미한다. 예를 들어, (ID, name, dept_name, salary)가 위에 있는 relation의 relation schema가 된다. relation을 relation schema를 사..
Key
super key 각 레코드를 유일하게 식별할 수 있는 컬럼의 집합. 수학적인 정의는 다음과 같다. $K \subset \{A_1, \dots, A_n \}$ is a super key of relation r if $\forall t_1, t_2 \in r, \quad t_1.K = t_2.K \implies t_1 = t_2$. candidate key (후보키) 각 레코드를 유일하게 식별할 수 있는 최소한의 속성의 집합. candidate key는 minimal super key이다. 즉, candidate key의 어떤 진부분집합도 super key가 아니다. primary key (기본키) candidate key 중 table을 대표하는 키로 선택된 키. alternate key (대체키) c..