본문 바로가기

Coding/내일배움캠프

[내일배움캠프] Node.js 4기 TIL | Day 26 | 24.01.24.(수)

.env 파일 gitignore로 안 올리면 .. ec2에 올렸을 때 ubuntu 접속해서 따로 생성해줘야 함

vim .env 명령어로 .env 파일 생성하고 들어가서 .env 파일 내용 복붙 .

ctrl + insert가 복사고 shift + insert가 붙여넣기였던 것 같고~

 

기타 등등등

 

1-1. 관계형 데이터베이스 (RDB)


1) 이전에는 어떤 문제?

인 메모리 ~ 정형화된 데이터 관리하거나 복잡한 비즈니스 로직 구현에는 적합하지 않음

ex) MongoDB에서 여러 컬렉션 합쳐 조회하려고 할 때, 특정 필드가 존재하지 않는다면, 문제가 발생할 수 있다.

이러한 문제 해결 위해 ..

데이터의 "정규화"와 "무결성"을 보장하면서 "정형화"된 데이터를 효과적으로 관리할 수 있는 관계형 데이터베이스(RDB, Relational DataBase)가 탄생하게 된었다.

2) 관계형 데이터베이스 (RDB, Relational DataBase)

- 관계형 데이터베이스(RDB, Relational DataBasse)는 각 테이터를 '테이블'에 저장 후 '테이블' 간 연간 관계 설정, 여러 테이블에 분산된 데이터를 서로 연결하여 관리 가능

Table : MongoDB에서 Collection  .. 
Row : MongoDB에서 Document .. 
Column : MongoDB에서 Field .. 

행 : 고유한 데이터
열 : 데이터의 속성

3) 관계형 데이터베이스(RDB)와 비관계형 데이터베이스(NoSQL)의 개념

비관계형 데이터베이스 ~ 데이터 형식이 자유로웠음
관계형 데이터베이스 ~ "테이블"이라는 개념이 존재한다. 행렬 ..

테이블 간에는 서로 연간 관계를 가질 수 있고 이러한 관계를 통해 더욱 복잡한 쿼리 작성 가능.

비관계형 데이터베이스는 유연한 데이터 구조를 통해 저장(Write)과 읽기(Read) 작업이 더욱 빠르다. 복잡한 비즈니스 로직 없는 서버에서 주로 사용한다 .. 빅데이터 환경 또는 단순 페이지뷰가 많은 어플리케이션

관계형 데이터베이스는 복잡한 비즈니스 로직과 정형화된 데이터를 체계적으로 관리할 수 있어 더욱 안전한 서버 환경을 구성하기에 좋다 .. 보안이 중요한 기관이나, 은행과 같은 안전성을 중시하는 회사들

4) MySQL이란?

가장 널리 사용되는 오픈소스 관계형 데이터베이스(RDB)

MySQL .. 오픈 소스 데이터베이스 .. DBMS ..

- SQL 사용하여 데이터 조작 및 관리
- 트랜잭션의 특징인 ACID를 준수하여 구현된 데이터베이스로써, 트랜잭션을 안전하게 처리할 수 있다.

1-2. RDS 구매하고 MySQL 세팅하기

1) RDS란?

AWS에서 제공하는 관계형 데이터베이스

2) RDS 구매하기



1-3. SQL (Structed Query Language) 살펴보기

1) SQL이란?

데이터베이스에서 사용되는 생성, 삽입, 조회 명령문을 SQL(Structed Query Language)이라고 합니다.

삽입/수정/삭제/조회

2) SQL의 종류

- SQL의 종류

- DDL (Data Definition Language)
- DML (Data Manipulation Language)
- DCL (Data Control Language)
- TCL (Transaction Control Language)

3) DDL (Data Definition Language)

- 데이터를 정의할 때 사용하는 언어로 테이블이나 데이터베이스를 생성, 수정, 삭제와 같은 행위를 할 때 사용한다.

- CREATE
- DATABASE, TABLE, VIEW, INDEX 등을 생성할 때 사용
- DROP
- DATABASE, TABLE, VIEW, INDEX 등을 삭제할 때 사용
- ALTER
- DATABASE, TABLE 등의 속성을 변경할 때 사용

4) DML (Data Manipulation Language)

- 데이터베이스에서 데이터를 조작할 때 사용하는 언어로 데이터의 저장, 삭제, 수정, 조회와 같은 행위를 한다.

- SELECT

- TABLE에서 원하는 데이터를 조회할 때 사용

- SELECT 컬럼목록 FROM 테이블명 [WHERE 조건];

- INSERT

- TABLE에 새로운 데이터를 삽입할 때 사용

- INSERT INTo 테이블명 (컬럼목록) VALUES (값목록);

- DELETE

- TABLE에서 특정한 조건에 맞는 데이터들을 삭제할 때 사용한다.
- WHERE 조건이 없다면, 모든 데이터가 삭제된다.

- DELETE FROM 테이블명 [WHERE 조건];

- UPDATE

- TABLE에서 특정한 조건에 맞는 데이터들을 수정할 때 사용한다.
- WHERE 조건이 없다면, 모든 데이터가 수정된다.

- UPDATE 테이블명 SET 컬럼 = 값 [WHERE 조건];

5) DCL (Data Control Language)

- 데이터베이스에 대한 권한과 관련된 문법으로 특정 유저가 DB에 접근할 수 있는 권한을 설정할 때 사용

- GRANT

- 데이터베이스의 특정한 유저에게 사용 권한을 부여할 때 사용
- 권한에는 SELECT, INSERT, UPDATE, DELETE, 등등등

- GRANT [권한] ON 객체명 TO 사용자;

- REVOKE

- 데이터베이스의 특정한 유저에게 사용 권한을 취소할 때 사용한다.

- REVOKE [권한] ON 객체명 FROM 사용자;

6) TCL (Transaction Control Language)

- 데이터베이스 내의 트랜잭션을 관리하는 문법으로, 트랜잭션의 시작과 종료, 그리고 롤백을 수행할 때 사용한다.

- COMMIT

- 데이터베이스의 작업이 정상적으로 완료되었음을 관리자에게 알려줄 때 사용

START TRANSACTION;
...
COMMIT;

- ROLLBACK

- 데이터베이스의 작업이 비정상적으로 완료되었음을 관리자에게 알려줄 때 사용
- 작업 중 오류가 발생한 경우 이를 취소하고, 이전 상태로 되돌릴 때 사용

START TRANSACTION;
...
ROLLBACK;

1-4. SQL (Structed Query Language)

1) VSCode를 이용하여 SQL 사용 전 준비하기



2) 데이터베이스 기본 개념

데이터베이스는 매우 고도화된 엑셀입니다.

엑셀 파일 하나가 "데이터베이스"라면,
엑셀 시트 하나는 "테이블"이라고 부르고,
엑셀 행 하나는 "데이터"라고 부릅니다.

지금부터 우리가 할 것은

- 테이블을 생성
- 테이블에 데이터를 삽입
- 삽입된 데이터를 조회

3) 데이터베이스 생성

정형화된 데이터 .. 어떤 데이터가 들어갈 것인지 미리 정해져 있다 ~~

관계형 데이터베이스 ~ 데이터 정형화 ~

조건문 사용 가능!

4) 테이블 생성

5) 데이터 삽입

여러분이 사용할 데이터베이스에서 New Query를 누르셔야 한다 ~