부트캠프/코트스테이츠 백엔드 코스

회고 20~23일차

태태코 2023. 3. 29. 23:38
반응형

이제 곧 새벽에 하는 아르바이트를 그만 두고 학업에 몰입하기로 했다. 현재 하고 있는 것은 Spring으로 이것 저것,,,?

해야 할 일

1. 객체지향 공부(자료가 너무 부족)..

2. 데이터베이스 sql말고 설계 연습하기 

3. Spring 구글링x 다루기

4. 알고리즘 연습

 

사실 이 4가지만 해도 실력이 금방 늘 것 같긴 한데 항상 미루느라 .. 4.14일부터는 이 모든 것이 몰두하자, 화이팅!!!

 

데이터베이스 SQL에 대해서 요약을 해드리겠습니다.

SQL이란 structured query Language이다. 즉 구조화 된  query 언어이다.

즉 질의문을 통해 원하는 데이터를 받아오는 언어라고도 할 수 있다.

 

 

In-memory 구조

---> 실행시 메모리에 저장해 두었다가 실행종료시 데이터가 사라지는 구조로, 흔히 우리가 IDE로 코딩을 하게 되면 볼 수 있는 구조이다.

단점으로 실행에 의존 적 이기 때문에 종료시 데이터가 유실된다.

 

File I/O 

--> 저장이 되긴하지만 데이터를 사용할 때 모든 파일을 불러와서 필터링 작용이 필요하므로 힘들다.

 

Database구조

여러 기능을 가져 데이터를 저장 수정 출력등 편리하게 다양한 기능 들 을 수행 할 수 있다.!?!?

QUERY가 가장 중요한데 질의문이라는 뜻을 가지고 데이터베이스 용 프로그래밍 언어입니다. DATABASE에서 데이터를 가져오거나 삽입 할 수 있어서 데이터 관리를 아주 편하게 해주는 언어입니다.

 

일단 Database의 기본은

 

트랜잭션,

트랜잭션이란 여러 개의 작업을 하나로 묶은 실행 유닛입니다. 각 트랜잭션은 하나의 특정 작업으로 시작을 해 묶여 있는 모든 작업들을 다 완료해야 정상적으로 종료합니다.

 

 

ACID가 있는데 간략하게 말하자면,

A: 하나의 트랜잭션에 속해있는 모든 작업이 전부 성공하거나 전부 실패해야합니다.

ex) 한명이 송금을 했을 때 서버가 망가져 끊겼다 했을때 송금을 했는데 돈이 오지 않았다면 큰 일이 될 것입니다.

 

C: 일관되야합니다.

여러가지 제약조건속에서 모두가 일관을 유지해야 합니다.

ex) 이름 없는 새로운 고객을 추가하는 쿼리 

 

I: 독립되어야합니다.

모든 트랜잭션은 다른 트랜잭션으로부터 독립이 되어야합니다.

하나의 계좌에서 여러 트랜잭션이 겹친다면 데드락,, 등등 안좋은 일이 섞일 수가 있습니다.

 

D: 지속성 모든 기록들은 영구적이여야 한다. 

 

기본 select delete where from 절들은 생략을 하겠습니다. sql공식문서에 들어가면 확인하 실 수 있습니다.

 

제가 가장 중요하게 여겼던 부분들은

데이터 베이스 설계 , NOSQL, 정규화 이 부분들이였습니다. 지금부터 요약시작하겠습니다.

 

관계형 데이터베이스는 테이블의 구조와 데이터 타입 등을 사전에 정의하고, 알맞은 형태의 데이터만 삽입할 수 있다.

--->sql쿼리를 통해 데이터를 정확하게 삽입했을 경우 원할하게 사용할 수있다.

 

비관계형 데이터베이스는 관계형 데이터베이스에서는 데이터를 입력할 때 스키마에 맞게 입력해야 하는 반면, NoSQL에서는 데이터를 읽어올 때 스키마에 따라 데이터를 읽어 옵니다

ex) JSON형식으로 문서화 해서 사용.

  • NoSQL은 key-value, document, wide-column, graph 등의 방식으로 데이터를 저장합니다.
  • NoSQL은 관계형 데이터베이스보다 동적으로 스키마의 형태를 관리할 수 있습니다. 행을 추가할 때 즉시 새로운 열을 추가할 수 있고, 개별 속성에 대해서 모든 열에 대한 데이터를 반드시 입력하지 않아도 됩니다.
  • 데이터베이스를 위한 서버를 추가적으로 구축하면, 많은 트래픽을 보다 편리하게 처리할 수 있습니다.

 

데이터베이스 설계에는

간략하게 1:1 1:N N:1 N:N 자기참조가있고,

1:1 은 하나의 레코드가 다른 테이블의 레코드 한개와 연결 된 경우를 뜻합니다.

1:N 하나의 레코드가 다른 여러개의 레코드와 연결되는 경우를 뜻합니다.

N;N다중관계로 조인 테이블을 만들어서 사용합니다.

자기가 자기를 참조하는 방법이 있습니다. 

 

보통 이런식으로 erd를 통해 테이블간의 관계를 나타내곤 합니다.

 

언어에는 DDL, DML, DCL, DQL->query , TCL-> commit, rollback등의 종류가있습니다.

 

sql에는 다양한 함수가 존재하는데 이것도 간단하게 생략하겠습다.

case end -> if else

subquery --> query안에 query

in --> 안에 있는가

exsist -> 존재하는가 true or false

 

 

마지막으론 데이터베이스 정규화과정입니다.

-> 증복 제거

데이터 베이스를 설계할 땐 데이터의 중복을 제거해서 설계해야 합니다. 저장공간낭비, 데이터 효율성 감소이유

-> 무결성

일관성을 유지해야합니다.

-> 데이터이상현상

 

->갱신이상(같은 테이블에서 두개의 다른 값을 갱신해야할 때)

->삽입이상(삽일할 때 데이터가 없을 떄)

->삭제이상(삭제하면 데이터가 사라질때)

반응형

'부트캠프 > 코트스테이츠 백엔드 코스' 카테고리의 다른 글

24~27차 회고  (1) 2023.04.16
24일차 스프링 프레임워크  (0) 2023.04.11
회고 19일  (0) 2023.03.20
회고 18일  (0) 2023.03.16
회고 18일차  (0) 2023.03.15