개큰일난점 : 강의밀림
살려주세요
((밀리니까진짜하기싫고그냥시간을보내는사람생성))
겨우겨우 강의 다시 시작하기 위해,, 오늘 하루 강의의 목표는 일단 하나라도 영상 듣기..
..
..
...
아아아아아아아아
지금은 10월 첫째주이고.. 자괴감이 들지만 그래도 후딱 영상을 들어야합니다.
데이터베이스란?
다시 살펴보기 :
데이터베이스란? : 데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체를 데이터베이스라고 합니다.
데이터베이스의 장점은 뭔가요? : 데이터의 중복을 막고, 효율적이고 빠른 데이터 연산을 가능하게 합니다.
DBMS란?
우리는 데이터베이스를 운여하고 관리하기 위한 DBMS(database management system)를 통해 데이터베이스를 관리합니다.
DBMS의 종류
oracle(부동의 1위), mysql(사실상 오라클꺼), mariadb(mysql과 비슷함)
elasticsearch <- 검색엔진 : 요새 많이 쓰긴 하는데 어렵다고 하네요..
SQL (structured query language)
-> 생각보다 우리는 RDBMS처럼 데이터끼리 연관지어서 생각하고 있다 (어쩌면 주객전도)
RDBMS : relational database management system
: 데이터 간 관계
관계 지향적으로 데이터베이스에서 자료를 찾는 느낌
비슷한 예시 : 마인드맵
(번외) 과목명 : XR과 공간디자인
게시글 번호가 있어야 하는 이유 : 각 게시물을 유니크하게 관리해야 하기 때문
게시글 번호 : primary key (PK)
RDBMS
이렇게 구별한다면? 생각보다,, 단순히 중복되는 정보가 차지하는 공간량이 엄청남. 수정을 할 때에도 일일이 하나씩 다 수정해야한다..
때문에 이용하는게 RDBMS이다.
-> 테이블을 쪼갠다(=정규화한다.)
-> 겹치지 않게끔 한다
cf.정규화 = 테이블을 쪼갠다.(장점/단점)
-> 분리를 하는게 정말 데이터 중복을 막아줄 수 있을까? 를 생각하며 작업해볼 것.
이런 식으로 중복을 없앨 수 있다.
(예시)게시글 3번을 쓴 사람의 생년월일은 언제인가?
: 게시글 3번의 사용자번호 1 -> 사용자번호 1 -> 생년월일 800107
두 테이블 간 연관관계가 생겼다고 볼 수 있음
FK : 외래키
여기서 외래키는 왼쪽 아래 테이블의 사용자 번호에 해당함.
(확인)
장점 : 중복이 사라졌다(중복이 최소화되었다)
단점 : 두 번 왔다갔다 해서 데이터를 찾아야 함
단점은 어떻게 해결해야 할까? -> 결론은 해결된다. 방법은 이후에 알아보자!
이 테이블에서
게시글(분리) 테이블에서는 사용자 테이블을 찾아갈 수 있었지만
사용자 테이블에서는 게시글(분리) 테이블로 찾아갈 수 없음
구분하는 방법 -> 2가지
(1)
게시글 vs 사용자
1) 사용자 1명 : 게시글은 여러 개 >> 1:N
2) 게시글 1개 : 사용자 1 명 >> 1:1
..1과 2중에서 뭐가 더 신빙성 있는가? -> 1번
이유 : 2번은 사용자 1명당 게시글 1개만 쓸 수 있다는 말과 같기 때문
(2)
게시글 - 사용자 테이블 분리
게시글 테이블을 보고 사용자 데이터를 확인 -> 연관관계를 나타내줌
=> 이제 게시글 테이블을 보고 사용자랑 어떤 관계인지 보기
=> 1 : N 관계
사용자 테이블 보고 게시글 데이터를 확인X -> 연관관계를 나타내주지 않음
간단하게 ERD 고려해보기
실제로 채널 분리해보기
채널 vs 사용자
1) 사용자 1명 -> 채널 n개 = 1:n !! 이게 답!
2) 채널 1개 -> 사용자 1명 = 1:1
채널 - 사용자 테이블 분리
mariaDB 다시 사용해볼 것!
((cmd창에서))
docker 실행시켜 주세요
-> docker exec -it mariadb /bin/bash
docker 열리면 -> mysql 실행시켜줘
-> mysql -u root -p root
-> 근데 나는 저번 실습때 mysql안 키고 mariadb로 명령어를 쳐서..
-> mariadb -u root -p로 명령어를 칠 것임
비번 : root
CLI말고 GUI로 해보기 위해 mysql workbench를 설치하고 끝!