개인 공부를 위해 작성했습니다
MySQL_ 관계형 데이터베이스의 꽃 JOIN
●관계형 데이터베이스의 필요성
- 중복되는 데이터를 개선할 수 있다
- 사용되는 데이터 용량을 줄일 수 있다 → 경제적이다
- 중복되는 데이터들을 수정할 때 용이하다
- 실습을 통해 알아보자
- 기존 topic table의 정보를 author와 topic으로 분리해보자
- 기존의 topic에 존재하던 중복된 데이터가 사라지고
- 각각의 데이터들이 author table의 식별자인 id값으로 대체가 됐다
- table이 분리되면서 나타난 장점으로,
- author table의 데이터를 변경하면 author table을 참조하고 있는 모든 table에도 데이터가 연동된다
- table이 분리되면서 중복되는 데이터를 한 번만 수정해도 참조되는 모든 table의 데이터가 수정된다
🚩집중! 즉, 유지보수가 용이하다, 동명다인의 데이터를 구분할 수 있다
장점이 생기면 단점도 생기는데 이를 Trade-off 라고 한다.
데이터 분리를 통해 나타난 Trade-off는,
- 장점: 한번에 다 있는 경우 데이터를 직관적으로 보기가 쉽다
- 단점: 데이터에 해당되는 행의 별도 데이터를 비교해가면서 봐야한다.
- MySQL에서는 위와 같은 trade-off를 상쇄할수 있도록 데이터를 분산해서 저장하고 합쳐서 한번에 보여줄수 있다
●관계형 데이터베이스의 꽃 JOIN
MySQL에서 데이터를 합치는 명령어
SELECT * FROM topic LEFT JOIN author ON topic.author_id = aythor.id;
topic과 author를 결합할건데, 그냥 결합하지말고, topic.author_id값과 aythor.id을 일치시켜서 결합해라!
- 각각 독립적인 테이블을 Read할때 마치 하나의 테이블로 저장되어 있었던것과 같이 보여준다
- 기본 문법
SELECT * FROM 테이블1 LEFT JOIN 테이블2 ON 기준;
- 모든 테이블이 각자의 식별자 값을 갖고 있다면 JOIN을 통해서 얼마든지 관계를 맺을수 있다
●DATABASE SERVER
- 인터넷 위에서 동작하는 컴퓨터들은 요청과 응답을 한다
- client: 서비스를 요청하는 쪽(웹 브라우저, 웹 클라이언트)
- server: 서비스를 제공하는 쪽(웹 서버)
- MuSQL은 database client와 database server를 동시에 제공한다
- database client: mysql>에 실행되는 명령어 기반의 프로그램. MySQL monitor
- MySQL monitor를 통해서 database sever를 제어
✅ 목표!
- 관계형 데이터베이스의 개념 이해
- MySQL에서 관계형 데이터베이스에 대한 실습
생활코딩-DATABASE2 MySQL_ 관계형 데이터베이스의 필요성
생활코딩-DATABASE2 MySQL_ JOIN🌹