훈훈훈

데이터베이스 : 관계형 데이터 베이스 정리 본문

데이터베이스

데이터베이스 : 관계형 데이터 베이스 정리

훈훈훈 2020. 2. 9. 20:06

# 관계형 데이터 베이스란(Realtaional Database)?

테이블과 칼럼으로 데이터를 구조화해서 저장하는 데이터베이스를 관계형 데이터베이스라고함

즉,  테이블로 이루어져 있으며, Key와 Value의 관계를 나타냄, 데이터 끼리 종속성을 가짐

 

# 장점 

- 데이터가 중복이될 시 퍼포먼스와 유지보수 측면에서 효율성이 떨어짐

- 따라서 객체에 관한 데이터베이스를 생성하여 중복을 발생시키지 않고 필요에 따라 데이터를 연관시켜 쿼리 가능

- 위 표를 확인해보면 상단의 노란 음영을 확인해보면 'Author' = 'KIM' 이 3개 있는 것을 볼 수 있다. 

  모든 정보를 한눈에 보기는 편하지만 정보를 수정하기 위해서는 모든 항목을 수정을 해야한다는 단점이 있다.

  그리고 식별자가 따로 없고 이름으로 확인하고 있기때문에 동명이인인지 판단도 할 수 없다.

- 이 문제를 해결하기 위해 하단의 'author', 'topic' 두 표와 같이 객체화 시켜서 관리를 나눌 수 있다.

- 이 방법의 장점으로는 식별자로 관리하기 때문에 하나의 식별자만 바꾸면 모든 테이블을 변경하는 것과 같은 효과를 볼 수 있다.

 

# JOIN 구문

JOIN 구문을 사용하여 데이터베이스 내의 여러 테이블에서 가져온 값들을 병합 후 출력해줄 수 있다.

 

 * 종류 

  1. INNER JOIN : ON 절과 함께 사용, ON 절의 조건을 만족하는 데이터만 출력

  2. LEFT JOIN : 첫번째 테이블을 기준으로 , 두번째 테이블을 조합

  3. RIGHT JOIN : 두번째 테이블을 기준으로 , 첫번째 테이블을 조합

 

 * 예제

[예제 테이블]

> topic 테이블에 author 정보를 추가하기 위해 author_id 값들이 동일한 author 들을 찾은 후 함께 출력

명령어 : Select *from topic LEFT JOIN author ON topic.author_id = author.id;

 

> 위 조건과 동일하게 출력하지만, 몇몇 칼럼들을 선택해서 출력

명령어 : Select topic.id, title, description, created, name, profile from topic LEFT JOIN author ON topic.author_id = author.id;

 

> topic 테이블의 id 컬럼을 topid_id 로 출력

명령어 : Select topic.id as topic_id, title, description, created, name, profile from topic LEFT JOIN author ON topic.author_id = author.id;

'데이터베이스' 카테고리의 다른 글

데이터베이스 : MySQL 명령어 정리  (0) 2020.02.08
Comments