[6] 더 배워보기

ttt-1-2·2026년 3월 7일

강의: https://www.inflearn.com/course/database-2-mysql-강좌?cid=119293

이번 강의에서는 관계형 데이터베이스가 왜 필요한지 살펴보고, JOIN을 통해 데이터를 연결하는 방법과 MySQL을 사용하는 기본 환경을 간단히 알아본다.


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

  • 유지 보수가 쉽다
  • 중복된 데이터 제거가 쉽다
  • 서로 다른 데이터를 연결할 수 있다 (관계형 데이터베이스의 꽃!)

ex: 만약 파일이나 하나의 테이블에 모든 정보를 같이 저장하면 다음과 같이 된다.

idtitlecontentauthorauthor_email
1데이터베이스...kim@gmail.com
2자료구조...lee@gmail.com
3정보통신공학...lee@gmail.com

이 경우 같은 작성자가 여러 글을 쓰면 작성자 정보가 계속 반복 저장된다.

→ 이메일이 바뀌면 모든 row를 수정해야 한다. 데이터 중복이 많아지고 유지 보수가 어려워진다.

관계형 데이터베이스에서는 데이터를 테이블로 나누고 관계를 만든다.

(1) author 테이블

author_idnameemail
1kim@gmail.com
2lee@gmail.com

(2) post 테이블

idtitleauthor_id
1데이터베이스1
2자료구조2
3정보통신공학2

이렇게 하면 작성자 정보는 한 번만 저장하고 게시글에서는 author_id로 연결한다. 데이터 중복이 줄어들고 관리가 훨씬 쉬워진다.

이처럼 서로 다른 데이터를 연결해 구조적으로 관리할 수 있는 것이 관계형 데이터베이스의 핵심이다.

JOIN - 관계형 데이터의 꽃

관계형 데이터베이스의 가장 큰 특징은 여러 테이블에 저장된 데이터를 서로 연결해서 조회할 수 있다는 것이다. 이때 사용하는 SQL 구문이 바로 JOIN이다.

ex: 다음과 같이 두 개의 테이블이 있다.

  • author 테이블

  • topic 테이블

여기서 topic 테이블의 author_id는 작성자 테이블(author)의 id를 참조하는 값이다. 즉 topic.author_id = [author.id](http://author.id/)

→ 이 관계를 이용하면 게시글 정보와 작성자 정보를 함께 조회할 수 있다.

JOIN을 사용하면 여러 테이블에 나누어 저장된 데이터를 연결하여 조회할 수 있다. 대표적인 JOIN의 종류는 다음과 같다:

  • INNER JOIN: 두 테이블 모두에 존재하는 데이터만 조회
  • LEFT JOIN : 왼쪽 테이블의 모든 데이터 유지
  • RIGHT JOIN: 오른쪽 테이블의 모든 데이터 유지
-- topic 테이블과 author 테이블을 LEFT JOIN으로 연결
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;

→ 게시글 정보와 작성자 정보들은 다른 테이블에 저장되지만 JOIN 통해 한눈에 확인할 수 있다.

인터넷과 데이터베이스

인터넷은 여러 컴퓨터가 서로 통신할 수 있도록 연결해 주는 네트워크이다. 컴퓨터들은 인터넷을 통해 서로 요청(Request) 과 응답(Response) 을 주고받는다. 대표적인 구조가 바로 Client – Server 구조이다.

Client   ── 요청 ──▶  Server
Client   ◀─ 응답 ──   Server

데이터베이스도 같은 구조로 동작한다.

Database Client ── SQL Query ──▶ Database Server ── 데이터 처리 ──▶ 결과 반환 ──▶ Database Client
  • MySQL Server: 데이터를 저장하고 관리하는 프로그램
  • MySQL Client: 서버에 접속해서 SQL을 실행하는 프로그램

현재 실습에서 사용하고 있는 프로그램은 MySQL Client이다. mysql -uroot -p 로 MySQL 접속하면 영문으로 “Welcome to the MySQL monitor” 볼 수 있다. 여기서 말하는 MySQL monitor는 터미널에서 사용하는MySQL command line client를 의미한다. 즉, 우리가 SQL을 입력하고 결과를 확인하는 CLI(Command Line Interface) 기반 MySQL Client이다.


또 다른 MySQL Client로 MySQL Workbench가 있다. MySQL Workbench는 GUI기반 MySQL Client이다. 즉, 터미널 대신 그래픽 화면을 통해 데이터베이스를 관리할 수 있는 프로그램이다.

MySQL Workbench

다운로드: https://www.mysql.com/products/workbench/

앞에서 사용한 MySQL monitor는 터미널에서 SQL을 직접 입력해야 하는 CLI 방식이었다. 반면 MySQL Workbench는 GUI를 통해 데이터베이스를 관리할 수 있다.

ex: SQL 쿼리를 입력하고 실행하거나 데이터 조회 결과를 표 형태로 바로 확인할 수 있다.



MySQL Workbench를 사용하면 SQL 실행뿐 아니라 데이터베이스 서버의 상태, 성능, 사용자 관리 등 다양한 작업을 한 곳에서 관리할 수 있다.

0개의 댓글