1️⃣ 데이터베이스란?(복습)

2️⃣ DBMS


3️⃣ 지난 챕터에서 배운 SQL을 복습해보자

✅ RDBMS가 무엇일까?
👉 DBMS와의 차이점은? 데이터 간 "관계"가 있다.
1️⃣ 게시글 컬럼으로 RDBMS를 연습해보자
| 게시글 번호 | 제목 | 내용 | 작성일자 | 수정일자 | 작성자 | 직업 | 생년월일 |
|---|---|---|---|---|---|---|---|
| 1 | 도깨비 | 안녕하세요 | 2024-01-01 | 2024-01-01 | 공유 | 영화배우 | 800101 |
| 2 | 저승사자 | 반갑습니다 | 2024-01-01 | 2024-01-01 | 이동욱 | 유튜버 | 800105 |
| 3 | 카누커피 | 커피맛있어요 | 2024-01-01 | 2024-01-01 | 공유 | 영화배우 | 800101 |
| 4 | 낚시하는 도깨비 | 낚시는 재밌어 | 2024-01-01 | 2024-01-01 | 공유 | 영화배우 | 830501 |
| 5 | 도깨비 | 도깨비 신부는 나야 | 2024-01-01 | 김고은 | 영화배우 | 900101 | |
| 6 | 도깨비 | 도깨비 신부는 나야 | 2024-01-01 | 김고은 | 영화배우 | 900101 |
게시글 번호는 유니크한 고유성을 가져야 게시글마다 구분이 가능하므로 Primary Key를 가져야 함👉 이런 경우를 해결하기 위해 RDBMS를 사용함. 이때 정규화(테이블을 쪼갬)를 하게 됨
2️⃣ Primary Key: PK(기본 키)
해당 테이블의 각 row(행)을 유니크하게 구별할 수 있는 Key값
유튜브 프로젝트에서 썼던 Map를 보면 user_id가 key역할을 하는 것을 알 수 있음

1️⃣ 테이블 분리는 데이터 중복을 막아줄까?
게시글과 사용자 테이블을 분리해주고 PK로 사용자 번호를 지정하자

데이터를 분리하였기 때문에 테이블 간 관계를 파악할 수 있는 것
다른 테이블의 PK를 가져오는 것을 Forein Key라고 함
2️⃣ Forein Key: FK(외래 키)
3️⃣ 단점은 무엇일까?
1️⃣ 사용자 정보를 바꾸는데 효율이 좋음

2️⃣ 1-N 연관관계
사용자 테이블을 볼 때 작성한 게시글은 확인이 어려움
게시글과 사용자 테이블 비교
데이터베이스 연관관계는 1:1, 1:N, M:N 로 분류를 할 수 있음. 연관관계를 잘 사용하면 효율적으로 데이터 관리를 할 수 있음
👉 현업에서 구현을 들어가보면, SQL이 꼬이거나, 너무 많은 SQL이 필요하거나, SQL이 너무 길다면 설계를 수정하면 됨
1️⃣ 유튜브 프로젝트에서 사용한 Map을 엑셀에 그려보자
이전 유튜브 프로젝트에서 그린 ERD를 참고하여 사용자와 채널의 관계를 알아보자

채널과 사용자를 분리하면 아래 처럼 만들 수 있다

채널과 사용자의 관계
채널 - 사용자 테이블 분리
1️⃣ mariaDB 설치하기
2️⃣ 이번엔 GUI로 설치해보자