강의 링크


관계형 데이터베이스의 필요성

  • 데이터에 중복된 정보가 있는 경우, 해당 데이터베이스에는 개선될 여지가 있는 것임

    → 중복된 정보가 있는 column을 따로 테이블로 빼서 테이블로 만드는 방식으로 개선 가능

  • 관계형 데이터베이스를 사용할 경우, 유지보수가 편리하며 별도의 데이터임에도 이름이 같은 경우 등에 대해 중복 데이터가 아님을 알 수 있음

  • trade off: 직관적으로 데이터를 볼 수 없음

    • MySQL의 경우, 테이블을 합쳐서 볼 수 있음!



Join

SELECT * FROM [table_name1] LEFT JOIN [table_name2] ON [table_name1].[table_name2_id] = [table_name2_id];]

합치려는 테이블의 id를 기준으로 table을 join


SELECT [column_names] FROM [table_name1] LEFT JOIN [table_name2] ON [table_name1].[table_name2_id] = [table_name2_id];]

표기할 column을 정해서 join


실습

image

모든 항목이 보이게 join


image

특정 항목만 보이게 join → error: id값이 중복으로 존재함


image

앞선 에러 해결 방안: 어떤 table의 id값을 보이게할 것인지 명시해주면 됨


img

topic table의 id column명을 topic_id로 변경



인터넷과 데이터베이스

database client와 database server가 인터넷을 통해 request, response를 주고 받음(정보 관리)

database client: request를 server에 보내는 쪽

database server: 들어온 request에 대한 response를 보내는 쪽

image



MySQL Client

  • MySQL monitor: 명령어를 통해서만 제어할 수 있는 클라이언트
  • MySQL Workbench: GUI를 이용해 간단히 제어할 수 있는 클라이언트

둘 모두 각각의 장단점이 있으므로 각자에게 맞는 클라이언트를 찾아서 사용하면 됨. 위의 두 클라이언트 외에도 다양한 클라이언트가 있으므로 찾아서 사용하기!

나의 경우, cmd로 주로 사용하기 때문에 cmd로 사용하는 것이 제일 편하다. github를 사용할 때에도 gitbash를 주로 사용하는데 이런 걸 보면 GUI 기반 프로그램을 사용하는 게 좀 낯선 것 같기도 하다. 사실 졸프하면서 fork라는 프로그램을 깔아봤는데 손이 잘 안 간다…