훈훈훈
데이터베이스 : 관계형 데이터 베이스 정리 본문
# 관계형 데이터 베이스란(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 |
---|