프로그래머스 풀스택 20
posted on 11 Sep 2024 under category programmers in series programmers
백엔드 심화: 인증과 비동기처리(1)
💫 데이터베이스란?
💫 DBMS
💫 DBMS의 종류
💫 SQL (Structured Query Language)
대표적인 SQL
💫 DBMS와 RDBMS 공통점
데이터 저장 및 관리 : DBMS와 RDBMS 모두 데이터를 저장하고 관리하는 역할을 수행.
데이터를 체계적으로 관리하고, 삽입, 수정, 삭제, 검색 등 다양한 작업을 지원.
데이터 무결성 : 데이터의 일관성을 유지, 데이터 손실을 방지하는 무결성 제약 조건 설정 가능
동시성 제어 : 여러 사용자가 동시에 데이터를 접근하거나 수정할 때 충돌이나 불일치가 발생하지 않도록 동시성 제어를 제공.
데이터 백업 및 복구 : 시스템 장애나 문제 발생 시 데이터를 복구할 수 있도록 백업과 복구 기능을 제공.
💫 DBMS와 RDBMS 차이점
항목 | DBMS | RDBMS |
---|---|---|
데이터 모델 | 계층형, 네트워크형, 객체 지향형 등 다양한 모델 사용 | 테이블 형식의 관계형 데이터 모델을 사용 |
데이터 관계 | 데이터 간 명확한 관계를 정의하지 않음 | 테이블 간의 명확한 관계(기본키와 외래키)를 통해 데이터를 연결 |
ACID 속성 | 모든 DBMS가 ACID 속성을 보장하지 않음 | ACID(원자성, 일관성, 고립성, 지속성) 속성을 보장 |
SQL 사용 | SQL을 사용하지 않을 수 있음 | SQL(구조화된 쿼리 언어)을 사용하여 데이터 관리 |
확장성 | 소규모 데이터에 적합 | 대규모 데이터 처리에 적합, 수평적 확장성 우수 |
예시 | 파일 시스템, XML 데이터베이스 등 | MySQL, PostgreSQL, MariaDB, Oracle 등 |
💫 RDBMS 쓰는 이유
관계 지향적!(데이터 간에 “관계“가 있음!)
DBMS는 데이터베이스를 관리하는 일반적인 시스템으로, 모든 데이터베이스 시스템을 포함.
RDBMS는 관계형 데이터베이스 시스템으로, 테이블 간의 관계를 정의하고 SQL을 사용하여 데이터를 관리하는 방식.
따라서 RDBMS는 DBMS의 하위 개념으로, 보다 구조화된 데이터 관리와 관계형 모델을 사용하는 것이 가장 큰 차이점!
데이터의 무결성과 일관성을 유지하면서도, 관계형 모델을 통해 데이터 간의 복잡한 관계를 쉽게 처리하고, 대규모 데이터를 효율적으로 관리할 수 있기 때문
또한, SQL을 통해 복잡한 데이터 조회와 조작이 가능하며, ACID 속성을 지원하여 안전한 데이터 처리를 보장
💫 Primary Key
💫 Foreign Key
💫 연관 관계
✔ 데이터베이스 “테이블 간 어떤 관계를 가지고 있는지” 연관관계는 1:1, 1:N, M:N
게시글 VS 사용자
1) 사용자 1명 : 게시글 여러 개 / 1:N
2) 게시글 1개 : 사용자 1명 / 1:1 ✨이유가 있다면 2번도 정답가능✨
게시글 - 사용자 테이블 분리
🌟 현업에 계신 분들은 “DBA“분들을 통해 연관관계를 파악!
💫 연관 관계의 주인
Foreign Key
💫 유튜브 실습
채널 VS 사용자
1) 사용자 1명 : 채널 n개 / 1:N
2) 채널 1개 : 사용자 1명 / 1:1
채널 - 사용자 테이블 분리
💫 mariaDB 접속 방법
docker를 켜줌
docker exec -it mariadb /bin/bash
mariadb -u root -p
💫 MySQL workbench
Y 일을 통해 명확히 알게 되었거나 이해한 부분(한 일)에 대해 정리 :
DBMS 복습, RDBMS 공통점과 차이점, RDBMS 쓰는 이유, 데이터베이스 연관 관계
W 배운 점과 시사점 :
💫 DBMS와 RDBMS 차이점
항목 | DBMS | RDBMS |
---|---|---|
데이터 모델 | 계층형, 네트워크형, 객체 지향형 등 다양한 모델 사용 | 테이블 형식의 관계형 데이터 모델을 사용 |
데이터 관계 | 데이터 간 명확한 관계를 정의하지 않음 | 테이블 간의 명확한 관계(기본키와 외래키)를 통해 데이터를 연결 |
ACID 속성 | 모든 DBMS가 ACID 속성을 보장하지 않음 | ACID(원자성, 일관성, 고립성, 지속성) 속성을 보장 |
SQL 사용 | SQL을 사용하지 않을 수 있음 | SQL(구조화된 쿼리 언어)을 사용하여 데이터 관리 |
확장성 | 소규모 데이터에 적합 | 대규모 데이터 처리에 적합, 수평적 확장성 우수 |
예시 | 파일 시스템, XML 데이터베이스 등 | MySQL, PostgreSQL, MariaDB, Oracle 등 |
💫 RDBMS 쓰는 이유
데이터의 무결성과 일관성을 유지하면서도, 관계형 모델을 통해 데이터 간의 복잡한 관계를 쉽게 처리하고, 대규모 데이터를 효율적으로 관리할 수 있기 때문
또한, SQL을 통해 복잡한 데이터 조회와 조작이 가능하며, ACID 속성을 지원하여 안전한 데이터 처리를 보장
💫 연관관계는 1:1, 1:N, M:N
Foreign Key
T 응용하여 배운 것을 어디에 어떻게 적용할지:
데이터베이스와 백엔드를 연결하여 프로젝트 구현할 것!