╱╱╭╮╱╱╱╱╱╱╭━━━╮╱╱╱╭╮╱╭╮╱╱╱╱╱╱ ╱╱┃┃╱╱╱╱╱╱┃╭━╮┃╱╱╱┃┃╱┃┃╱╱╱╱╱╱ ╱╱┃┣━━┳━━╮┃┃╱┃┣━╮╱┃╰━╯┣━━┳━╮╱ ╭╮┃┃╭╮┃┃━┫┃╰━╯┃╭╮╮┃╭━╮┃╭╮┃╭╮╮ ┃╰╯┃╭╮┃┃━┫┃╭━╮┃┃┃┃┃┃╱┃┃╭╮┃┃┃┃ ╰━━┻╯╰┻━━╯╰╯╱╰┻╯╰╯╰╯╱╰┻╯╰┻╯╰╯

Data Base/Data Base 기초 6

[DB] 함수 종속성과 정규화(1NF, 2NF, 3NF, BCNF, 4NF, 5NF)

함수 종속성 normal form은 함수 종속성을 토대로 만들어진다. y = f(x)처럼 x에 대응되는 y값은 오직 하나인 것 처럼 relation에서 각 attribute간 함수의 성질을 만족하는 것이다. x functionally determines y X → Y iff, in every possible legal value of R, each X-value has associated with precisely one Y-value X가 R의 candidate key이면 R의 모든 attribute들은 X에 대한 FD가 성립한다. trival 종속성과 nontrivial 종속성은 2NF, 3NF을 구분하는데 중요하다. X -> Y가 성립할 때, Y가 X의 subset이면 trivial FD라고 한다...

[DB] Join 문 (Natural Join, Outer Join, Self Join)

지난번에는 Inner Join에 대해 알아보았다. 복습을 해보자면, 두 테이블을 Join 시키면 Join의 결과로 각 테이블의 튜플에 대한 Cartesian Product가 생성된다. (새로운 테이블) 이후 Inner Join이면 해당 테이블에서 join condition에서 참이 나오는 튜플만 반환된다고 했다. 만약 해당 Join이 Equi Join이라면 join condition에서 =을 사용한 것이고 이때 USING을 사용할 수 있다고 했다. USING을 사용하면 각각의 테이블에서 추출한 튜플중 같은 컬럼명을 갖고있는 튜플들에 대해서, 튜플들의 컬럼 데이터 값이 같을 때, join condition은 true가 되어 두 튜플은 하나의 새로운 튜플로 만들어지는데 이때 join conditon에서 사용..

[DB] Join 문 (Inner Join, Cross Join, Using)

이번에는 SQL의 join문에 대해서 알아보겠다. Join이란? 두 개 이상의 테이블에서 데이터를 조회하는 것이다. Join을 사용하면 테이블을 합쳐야하는 부분을 FROM절에 사용해 가독성이 높아진다. Select 문의 사용법은 다음과 같다. 키워드 입력값 SELECT columns FROM table1 JOIN table2 ON join_condition; SELECT columns FROM table1 JOIN table2 ON join_condition WHERE tuple_condition; 바로 예제를 통해 사용해 볼것인데 이때 저번에 Subquery를 알아보기위해 사용했던 테이블들을 그대로 사용할 것이다. 사용 할 테이블 우선 해당 테이블을 통해 Join을 간단하게 사용해 보겠다. JOIN 예..

[DB] SQL Select 문 (Subquery)

이전 포스트에서 Select의 기초에 대해 알아보았다. 이번에는 Subquery에 대해 알아보겠다. Subquery란? 간단하게 말하자면 쿼리 내부에 쿼리가 있는 것이다. 내부 쿼리의 반환 값을 이용하여 외부에서 Select를 한번 더 사용한다고 생각하면 좋겠다. 조건을 두번이나 걸었으니 해당 쿼리는 더 유동적일 수도 있고 더 세세한 값을 조회할 수도 있겠다. 물론 단순히 튜플에대해 조건을 여러번 걸려면 WHERE 절에서 AND를 사용해서 조건을 두개 걸어주면 된다. SELECT * FROM user WHERE name like "jaean" AND usercode = 14; 이름이 jaean이며 usercode가 14라는 조건을 만족하는 튜플만 반환된다. Subquery는 쿼리 어디든 들어갈 수 있다...

[DB] SQL Select 문 (As, Like, Distinct, Limit)

저번엔 관계형 데이터 베이스가 무엇인지, 데이터 저장은 어떻게 되는지에 대해 알아보았다. 이번엔 DB에 저장된 데이터를 접근해서 가져올 수 있는 방법에 대해 알아보겠다. 우선 데이터 처리 개념의 CRUD에 대해 간단히 설명하겠다. Create Read Update Delete CRUD 테이블에서 데이터의 생성, 조회, 수정, 삭제를 뜻한다. 기본적으로 CRUD를 통해 데이터를 처리한다. CRUD를 사용하는 것은 아니고 데이터 처리 기법을 나타내는 개념이다. 당연히 있어야 하는 기본적인 기능들을 지칭한다고 생각하면 좋겠다. DB에서 데이터 처리를 위해선 자바소스코드가 아닌 SQL을 사용해야 한다. 추가적으로 해당 글에서 query라고 말하는데 이는 SQL 코드를 뜻한다고 생각하면 좋겠다. SQL에서 CRU..

[DB] 관계형 데이터베이스 개념, 생성 (RDBMS)

관계형 데이터베이스란? 다양한 데이터베이스의 종류중 가장 많이 사용되고 있는 특정 종류이다. 서로 관련된 데이터끼리 분류해서 테이블에 저장하는 방법이다. 관계형 데이터베이스 모델을 보면 그냥 2차원 배열처럼 보인다. 이때 2차원 배열에서 행은 value, 열은 key를 나타낸다. 사실 관계형 데이터베이스 테이블을 바로 보는 편이 이해가 빠르다. 개인적으로 진행한 todo list 프로젝트의 데이터베이스를 통해 설명을 하겠다. 해당 프로젝트를 간단하게 설명하자면 회원가입 후 각자 개인적인 task를 메모하는 서비스를 구현하는 것이다. 각 사용자들이 회원가입시 기입한 정보와 tasks를 DB에 저장한다. user 테이블은 각 사용자가 회원가입시 입력한 정보를 todos 테이블은 각 사용자가 저장한 tasks..