-
[데브코스] 30일차 TILTIL/교육 내용 정리 2024. 5. 7. 19:09
DBMS란
우선, 데이터베이스란 데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체이다. 데이터를 구조화하여 관리함으로써 데이터 중복을 막고, 효율적이고 빠른 데이터 연산을 가능하게 한다.
데이터베이스를 운영하고 관리하기 위한 DBMS(DataBase Management System)를 통해 데이터베이스를 사용합니다,
DBMS의 종류
- 오라클
- MySQL
- MariaDB
대표적인 SQL
- 데이터 삽입 : INSERT
- 데이터 조회 : SELECT
- 데이터 수정 : UPDATE
- 데이터 삭제 : DELETE
RDBMS
Relational DBMS
: 데이터 간 “관계”
PK, 데이터 중복, 정규
- Primary Key (PK) : 해당 테이블의 각 row(행)을 유니크(유일)하게 구별할 수 있는 key 값. ex) 게시물 번호
cf. 정규화 = 테이블을 쪼갠다.
테이블 분리, 장-단점
게시물 번호 / 내용 / 작성일자 / 수정일자 / 사용자번호
- 여기서 사용자 번호는 다른 테이블에서 PK 역할을 하고 있다.
- 하지만 여기서의 PK는 게시물번호가 하고 있다
- 그러면 여기서의 사용자 번호는 뭐라고 할까 ❓
- FK (Foreign Key) 외래키 : A 테이블에서 B 테이블의 데이터를 찾아가고 싶을 때, 사용하는 key 값 [최대한 B테이블의 PK값을 A 테이블의 FK로 쓰는 것이 이상적]
장점 :
- 중복이 최소화 되었다.
단점 :
- 데이터를 찾아가야 된다?
생년월일 바꿔보기, 1-N, 예시, 관계의 주인
- 테이블이 하나일 때는 일일이 게시물마다 바꿔줘야되었다.(단점)
- 하지만 분리를 했을 때는, 다른 테이블에서만 휙 바꿔주면 된다(장점)
- 하지만 그 다른 테이블에 봤을 때, 어떤 게시물을 사용했는 지는 못 본다.
게시물번호 내용 작성일자 수정일자 사용자번호(FK)
1 ABC 2020.02.24 1 2 DSDS 2020.02.25 2 3 ASDASD 2020.02.26 1 사용자번호(PK) 이름 직업 생년월일
1 공유 배우 901020 2 김고은 배우 901021 ✅ 데이터베이스 “테이블 간 어떤 연관 관계를 가지고 있는지 ? “
1:1, 1:N, M :N
게시글 vs 사용자
- 사용자 1명 당 게시물을 N개 쓸 수 있다. (1 : N)
- 게시물 1개 당 보통 사용자 1명이다. (1 : 1)
게시글 - 사용자 테이블 분리
- 게시글 테이블을 보고 사용자 데이터 확인 o : 연관관계를 생각.
- 게시글 테이블을 보고 사용자랑 어떤 관계인지
- 사용자 테이블을 보고 게시글 데이터를 확인 x
현업에 계신 분들 설계를 잘하냐? DBA
- 구현을 들어가보면, SQL 꼬일 때 너무 많은 SQL이 필요할 때, SQL긴데..
- 설계를 뜯어고치면 된다.
유튜브 실습
간단하게 ERD 고려해보기
채널
채널명 구독자수 영상수 채널 주인 회원id 비밀번호 연락처
달려라송아 1 5 김송아 kim 1111 1234-5678 달려라 송아 20 50 박송아 park 2222 1111-2222 걸어라 송아 500 200 최송아 choi 3333 1111-3333 집에가고싶은 1000 600 박송아 park 2222 1111-2222 침착맨 100,000,000 900 이말년 chim 555 1111-5555 - 이렇게 되면 채널을 계속 만든다고 가정하면 하나하나 수정 해줘야되는 번거로움이 생긴다.(단점) → 중복되는 데이터 발생
채널(분리)
채널목록 채널명 구독자수 영상수 회원id
1 달려라송아 1 5 kim 2 달려라 송아 20 50 park 3 걸어라 송아 500 200 choi 4 집에가고싶은 1000 600 park 5 침착맨 100,000,000 900 chim 사용자
회원id 비밀번호 연락처 이름
kim 1111 1234-5678 김송아 park 2222 1111-2222 박송아 choi 3333 1111-3333 최송아 chim 555 1111-5555 이말년 채널 vs 사용자
- 사용자 1명 당 : 채널 n 개 = 1 : n
- 채널 1개 : 사용자 1명 = 1 : 1
채널 - 사용자 테이블 분리
- 채널 테이블에서는 사용자 데이터를 찾아갈 수 있음
- 사용자 테이블에서는 채널 데이터 찾아갈 수 없죠
RDBMS 를 쓰는 이유
테이블을 분리하고 중복을 없얘고, 효율성을 높이고 테이블 분리를 했더니 테이블 간의 관계가 생기고 A 테이블의 FK 로 B 테이블을 찾아갈 수 있다.
mysql workbench 소개 및 설치
bash - shell(명령어를 줄 단위로 컴퓨터에게 할 수 있는 걸 shell)
CLI로 접속하는 방법
- Docker Desktop를 Running Status에 놓는다.
- 명령 프롬프트를 켜서
// 명령 프롬프트 명령어 docker exec -it mariadb /bin/bash mariadb -uroot -p pws 입력 root
GUI 로 접속하는 방법 : mysql workbench
다음 시간에 할 듯 하다....
'TIL > 교육 내용 정리' 카테고리의 다른 글
[데브코스] 43일차 TIL (0) 2024.05.21 [데브코스]42일차 TIL (0) 2024.05.20 [데브코스] 28일차 TIL (0) 2024.05.05 [데브코스] 27일차 TIL (0) 2024.05.04 [데브코스] 26일차 TIL (0) 2024.05.04