2024년 9월 11일
: DataBase Management System
: Relational DMBS
: Primary Key(기본키) -> 해당 테이블의 각 row(행)을 unique(유일)하게 구별할 수 있는 key값
한 사람이 여러 게시글을 쓸 수 있어서 중복되는 글이 많을 수 있음 -> 이런 경우를 해결해주는것이 RDBMS임!!
데이터 중복 -> 데이터 부화, 비용 up
따라서, 데이터를 정규화 시켜주어야함 (서로의 키값을 통해 원하는 데이터를 찾는 것임)
: 테이블 분리
: Foregin Key(외래키) -> A테이블에서 B테이블의 데이터를 찾아가고 싶을 때, 사용하는 key값
만약, 중복되는 FK값이라면 원하는 데이터값을 찾아 갈 수 없으므로(모든 row값을 유일하게 보지 못함) → 따라서, PK를 FK로 사용함
최대한 B테이블의 PK값을 A테이블의 FK로 쓰는 것이 이상적 (서로의 키값을 통해 원하는 데이터를 찾는 것임)
테이블 분리 후의 KEY를 살펴보면,
단점은 한 번에 테이블을 보고 데이터를 찾지 않아서 단계를 거쳐야하는 것이지만 이것도 나중에 해결된다고했음
분리되지 않은 테이블에서는 한 명의 생년월일을 바꿀 때, 그사람의 생년월일을 각각 바꿔줘야 하지만, 분리된 테이블에서는 사용자 테이블의 생년월일만 바꾸면 된다
분리된 게시글 테이블에서는 사용자를 알 수 있지만, 사용자 테이블에서는 게시글을 무엇을 쓴지는 모른다
RDBMS을 보면 테이블간의 연관관계를 알 수 있다
데이터베이스 테이블 간 어떤 관계를 가지고 있는지에 대한 연관 관계는 1:1, 1:N, N:1, M:N이 있음
사용자 <-> 게시글
*연관 관계는 연습을 많이 해야 알 수 있고, 익숙해 질 수 있음!
(구현했을 때, SQL이 꼬이거나, 많은 SQL, 긴 SQL을 하게 되면 다시 설계를 고침)
저번에 mariaDB 실행했던거 다시 상기시키자면,
*데이터를 저장하는 방 : 스키마
하지만, GUI와 친해지면서 같이 실습할 예정
사용할 것 : mysql workbench
🍏🍎 오늘의 느낀 점: 오늘은 RDBMS에 대해 배워보고, 직접 테이블을 만들어서 연관 관계가 있는 데이터들을 만들어서(or 사용해서) 쉽게 낚시하듯 건져올릴 수 있게 했다. 데이터베이스를 만드는 것도 많은 연습을 하면서 익숙해지는게 중요할 것 같았다. 백엔드는 로직을 잘 설계 해야 한다는 말이 어떤 말인지 잘 이해가 가지 않았는데 오늘 직접 PK, FK를 만들어보고 생각해보면서 연관 관계가 로직을 말하는 것이란 걸 알게 되었다. (맞겠지유..?) 무튼 더욱 많은 연습이 필요하다!!