구조화된 데이터는 하나의 테이블로 표현할 수 있다. 테이블을 사용하는 데이터베이스를 관계형 데이터베이스라고 한다.
하나의 레코드가 다른 테이블의 레코드 한 개와 연결
하지만 1:1 관계의 경우에는 하나의 테이블에 같이 저장하는게 나을 수도 있다.
하나의 레코드가 서로 다른 여러 개의 레코드와 연결된 경우
ex) User, Phonebook -> 1:N
1에 있는 key를 primary key로 저장하는게 수월하다.
다대다 테이블은 1:A:1의 형태로 바꿀 수 있다. 사이에 조인 테이블을 생성함으로서 더욱 효율적으로 관리한다.
GROUP BY
-> 데이터를 조회할 때 그룹으로 묶어서 조회
ex) SELECT ~ FROM ~ GROUP BY ~~;
HAVING
-> GROUP BY로 조회된 결과를 필터링할 수 있다
ex) SELECT ~ FROM ~ GROUP BY ~ HAVING xx > 5;
COUNT()
-> 레코드 갯수를 세야할 때 쓰인다
ex) SELECT , COUNT() FROM ~
SUM(), AVG(), MAX(), MIN()
-> 위의 COUNT()와 같은 방법으로 쓰인다
Instagram의 스키마를 간단하게 디자인 해보았다.
이 때 ERD Cloud를 이용하였다.
(틀린게 많을 수도 있지만 차차 보완해보도록 할 예정...이다..)