Basic

이윤근·2021년 7월 31일
0

Basic

1)데이터베이스가 필요한 이유

-In-memory

자바스크립트에서 데이터를 다룰 때에는 프로그램이 실행될 때에만 존재하는 데이터가 있다.
이러한 변수를 만들어 저장한 경우 프로그램의 실행에 의존한다.예기치 못한 상황으로부터 데이터를 보호할수 없다.
프로그램이 종료된 상태라면 데이를 원하는 시간에 받아올수 없게된다

-File I/O

데이터가 필요할 때마다 전체 파일을 매번 읽어야 한다. 파일의크기가 커질 수록 작업이 버거워 진다. 또 여러파일을 동시에 다뤄야하는경우 데이터를 불러들이는 작업이 힘들어진다.

Database

-필터링(query) 외에도 File I/O로 구현이 힘든 관리를 위한 여러 기능들을 가지고 있는 데이터에 특화된 서버

2)query

:질의문
:검색할 떄 기존에 존재하는 데이터를 검색어로 필터링한다.

3)SQL(Structured Query Language)

:데이터베이스용 프로그래밍 언어
데이터베이스에 쿼리를 보내 원하는 데이터를 가져오거나 삽입할 수 있다.
데이터 구조가 고정되어 있어야 한다

4)NoSQL

:데이터 구조가 고정되어 있지 않은 데이터베이스
테이블을 사용하지 않고 데이터를 다른 형태로 저장한다.
문서지향데이터베이스( ex)MongoDB)

5)관계형 데이터베이스 특성

ACID
:데이터베이스는 트랜젝션이 발샐할 때, 그 안정성을 보장할 수 있는 성질

*트랜잭션
:여러개의 작업을 하나로 묶는 실행 유닛
하나의 특정 작업을 시작해 묶여 있는 모든 작업들을 다완료해야 정상적으로 종료한다.
만약하나라도 실패한다면 모든 작업을 실패한 것으로 판단한다.

(1)Atomicity(원자성)

:하나의 트랜잭션에 속해있는 모든 작업이 전부 성공하거나 전부 실패해서 결과를 예측할 수 있어야 한다.

예를들어 A계좌에서 B계좌로 송금을 할떄 A계좌에서 송금했으나 B계좌에서 입금이 안된경우에는 작업이 실패하게 만들어 기존 데이터를 보호하게된다.

(2)Consistency(일관성)

:데이터베이스의 상태는 이전과 같이 유효해야 한다.
트랜잭션이 일어난 이후의 데이터베이스는 데이터베이스의 제약이나 규칙을 만족해야 한다.

예를들어 모든 고객은 반드시 이름을 가지고 있어야한다라는 제약이 있다고 가정하면 이름없는 새로운 고객을 추가,기존 고객의 이름을 삭제는 제약을 위반하기 때문에
일관되지않게된다.

(3)Isolation(격리성,고립성)

:모든 트랙잭션은 다른 트랜잭션으로부터 독립되어야 한다
각 트랜젝션은 고립되어 있어 연속으로 실행된 것과 동일한 결과를 나타내야한다.

예를들어 계좌로부터 계좌 B,C에 각각 6천원씩 동시에 계좌를 보내는경우와 계좌B에 보낸후 계좌C에 보낸 결과와 동일해야 한다.

(4)Durability(지속성)

:하나의 트랜잭션이 성공적으로 수행되었다면,해당 트랜잭션에 대한 로그가 남아야 한다. 만약 런타임 오류나 시스템 오류가 발생하더라도 해당 기록은 영구적이여야 한다.

*참고자료
https://websitesetup.org/wp-content/uploads/2020/08/SQL-Cheat-Sheet-websitesetup.pdf

profile
성실한코딩러

0개의 댓글