본문 바로가기

전체 글

(6)
Relational Design Theory [ Overview ] [ Relational Design Theory 란 ? ] 같은 정보에 대해서 다양한 형태의 관계형 데이터 베이스를 설계 할 수 있다. 몇몇 디자인들은 다른 디자인들보다 훨씬 좋다!! 즉, 같은 정보에 대한 데이터 베이스더라도 어떻게 설계하느냐에 따라서 Query Performance가 더 좋을 수도 있고, error가 더 적게 발생 할 수도 있는 것이다. Relational Design Theory는 위에서 말한 좋은 관계형 베이스 디자인을 찾기 위한 방법에 대해 알려준다. [ 무식하게 다 뭉치면 Design Anomalies 가 생기고 무식하게 다 쪼개면 Data Loss가 발생 할 수 있다. ] 잘 쪼개고 잘 뭉쳐서 데이터베이스를 디자인 해야 하고 그에 대한 방법론이 Relational Desig..
SQL - NULL 기본 개념 [ Undefined VS Unknown ] Undefined : 해당 값을 정의 할 수 없다는 뜻. 즉, 값이 NULL인 것이 자연스러운 상태를 의미한다. Unknown : 어떠한 값이 들어가야 하는 것이 맞지만 아무것도 들어가 있지 않은 경우를 의미한다. 즉, 어떠한 값이 들어가 있어야 하는 것이 맞지만 어떠한 값을 넣어주어야 할 지 몰라서 값 대신 NULL로 표현 한 상태를 의미한다. [ NULL값이 있는 Tuple을 사용 할 때는 항상 유의 해야 한다 ] 위의 예제를 보게 되면 aggregation function을 사용하여 갯수를 구했을 때는 7이 나오지만 실제로 반환되는 tuple들을 보게 되면 NULL을 포함하여 8개의 tuple이 반환되는 것을 알 수 있다. 위의 사례는 NULL로 인해 발..
SQL - GROUP BY / AGGREGATION 기본 개념 [ Aggregation 이란? ] Aggregation이란 말 그대로 여러 개의 row(tuple)들의 값을 집계하는 기능을 한다. min, max, sum, avg, count와 같은 operation들이 있다. [ Group By - Having 이란? ] Group은 말그대로 tuple들을 group을 지어주는 것을 말하고 Having은 해당 group들에 대한 filtering을 하기 위해 사용된다. 따라서 Having 은 절대로 Group By 없이는 사용 될 수 없다는 것에 유의하자. [ Aggregation Function 사용시 유의 해야 할 사항 ] SQL에서는 기본적으로 duplicate을 제거하지 않는다. 따라서 아래의 예제 처럼 distinct를 적절하게 사용해주어야 올바른 값을 ..
SQL - JOIN 기본 개념 [ JOIN이란? ] 여러개의 table을 합쳐서 새로운 table을 만드는 것. [ JOIN의 종류 ] - Inner Join On Condition ▷ ON 과 함께 사용하기 - Natural Join - Inner Join Using (attrs) ▷ Using과 함께 사용하기 - ( Left or Right or Full ) Outer Join ▷ 반드시 3개중에 하나의 keyword가 필요하다. [ Inner Join On Condition ] On 에 들어가는 조건이 만족되면 2개의 tuple을 합쳐서 새로운 tuple을 만든다. Join은 Binary Operator 이다. [ Natural Join ] 같은 attritute을 기준으로 Join한다. 따라서 같은 attribute이 하나 이..
Subqueries in WHERE ( PostgreSQL 기준 ) 1. IN 과 함께 사용하기 2. EXISTS와 함께 사용하기 EXISTS (subqueries) - EXISTS는 boolean operator 이고, subqueries에서 반환하는 row(tuple)들의 갯수에만 관심이 있다. - subqueries에서 반환하는 값이 0보다 크다면 true를 반환한다. - 이외에는 모두 0을 반환한다. [ 예제 - 하나의 Attribute(Coulmn)을 기준으로 최댓값 찾기 ] select cName from College c1 where not exists ( select 1 from College c2 where c2.enrollment > c1.enrollment ); 3. ALL과 함께 사용하기 4. ANY와 함께 사용하기
Git local 저장소 다루기 [ Git 저장소 만들기 ] 기존 디렉토리를 Git 저장소로 만들기 git init 다른 서버에 있는 저장소를 Clone하기 git clone [ 수정하고 저장소에 저장하기 - git 에서의 파일의 LifeCycle ] Working Directory의 모든 파일은 Tracked와 Untracked로 나뉘게 된다. Tracked : 이미 스냅샷에 포함 되어 있던 파일. ( 즉, git의 관리 대상이 되는 파일 ) Unmodified : 수정 되지 않음. Modified : 수정됨. Staged : 스냅샷에 추가 됨. 즉, 커밋할 파일에 변경 사항이 추가 되었다는 것을 의미한다. Untracked : 아예 Git의 관리 대상이 아닌 파일 "Changes to be committed" 에 들어가 있는 파일은..