ddodoi 님의 블로그
5주차-파트03: DBMS, SQL, DB에서의 연관관계 본문
CHAPTER 1. 데이터베이스
✅데이터베이스(Database: DB)
데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체를 데이터베이스(Database: DB)라고 한다. 데이터를 구조화하여 관리함으로써 데이터 중복을 막고, 효율적이고 빠른 데이터 연산을 가능하게 한다.
✔️DBMS
데이터베이스를 운영하고 관리하기 위한 DBMS(DataBase Management System)를 통해 데이터베이스를 사용한다.
✔️RDBMS(Relational DBMS)
데이터 간 "관계"를 이용하여 데이터베이스의 정보를 구조화 시킨 것
- Primary Key: PK(기본키)
해당 테이블의 각 row(행)을 유니크(=유일)하게 구별할 수 있는 key값
- Foreign Key: FK(외래키)
A테이블에서 B테이블의 데이터를 찾아가고 싶을 때, 사용하는 key값
(최대한 B테이블의 PK값을 A테이블의 FK로 쓰는것이 이상적)
cf. 정규화 = 테이블을 쪼갠다.
장점 : 중복이 최소화되고 데이터 무결성(데이터의 정확성, 일관성, 유효성) 이 유지된다, 데이터 수정이 용이해진다.
단점: 하나의 테이블 안에 모든 정보가 다 있는게 아니기 때문에 직관성이 떨어질수도 있다.
✔️SQL(Structured Query Language)
SQL은 데이터베이스에 연산을 요청하기 위해 사용되는 언어로 데이터를 생성, 조회, 수정, 삭제 등과 같은 기능을 수행할 수 있다.
대표적인 SQL은 다음과 같다.
- 데이터 삽입: INSERT
- 데이터 조회: SELECT
- 데이터 수정: UPDATE
- 데이터 삭제: DELETE
CHAPTER 2. 데이터베이스 연관관계
✔️연관관계
: RDBM란 전제하에 데이터베이스 "테이블 간 어떤 관계를 가지고 있는지".
종류 : 1:1, 1:N, N:M
게시글 VS 사용자
1) 사용자 1명 : 게시글 여러개 -> 1 : N
2) 게시글 1개 : 사용자 1명 -> 1 : 1
게시글 - 사용자 테이블 분리
-게시글 테이블을 보고 사용자 테이터를 확인 : 연관 관계
=> 게시글 테이블을 보고 사용자랑 어떤 관계인지
-사용자 테이블을 보고 게시글 데이터를 확인 X
현업에 계신분들? 설계를 잘 하나 "DBA"
+ 구현을 들어가보면 sql이 꼬일때, 너무 많은 sql이 필요할때, sql이 길때
=> 설계를 뜯어고치면 된다.
CHAPTER 3. CLI방식으로 데이터베이스 관리
✔️Docker로 mariadb 실행하기(CLI 방식)
1) docker앱 실행시키고 mariadb돌린후 cmd창을 켜 다음 명령어 순서대로 입력
docker exec -it mariadb /bin/bash
mariadb -u root -p
root
'웹풀스택 일일정리' 카테고리의 다른 글
5주차-파트05: Workbench(GUI)로 데이터베이스 다루기, Timezone (1) | 2024.09.15 |
---|---|
5주차-파트04: CLI로 데이터베이스 관리, ALTER, JOIN (0) | 2024.09.14 |
5주차-파트02: 라우팅, vs code에서 변수명 한번에 바꾸기 (0) | 2024.09.10 |
5주차-파트01: Object.keys(), API설계 (0) | 2024.09.09 |
4주차-파트 05: 핸들러, find()와 예외처리, ==과 === 비교 (0) | 2024.09.07 |