이제 곧 새벽에 하는 아르바이트를 그만 두고 학업에 몰입하기로 했다. 현재 하고 있는 것은 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 |