SKSDUD

데이터베이스에 대해 본문

DB/기본개념

데이터베이스에 대해

NYinJP 2023. 1. 31. 01:41

데이터 베이스를 학습하기 전에...

SQL 이란? 하나의 언어로 Structured Query Language 구조화된 쿼리 언어이다.

쿼리란? 질의문 

저장되어 있는 정보를 필터하기 위한 정보 ➡ 쿼리문

SQL이란? 데이터베이스 프로그래밍 언어!

데이터베이스에 쿼리를 보내 원하는 데이터만을 뽑아낼 수 있다. 

 

SQL을 사용할 수 있는 테이블 형태의 데이터베이스와 달리,

데이터의 구조가 고정되어 있지 않고 테이블을 사용하지 않는 데이터베이스를 NoSQL이라고 한다. 

 

In-memory

끄면 데이터가 없어짐

File I/O

원하는 데이터를 가져올 수 없고 항상 모든 데이터를 가져온 뒤 서버에서 필터링 필요.

Database

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

엑셀 스프레드 시트와 거의 비슷합니다. 

 

클라이언트 - 서버 - 데이터베이스

DB에 서버가 쿼리문을 보내게 된다. DB는 필터링을 통해 결과값을 서버에 전달해준다. JSON, XML 서버의 환경설정에 따라 다르다. 서버는 데이터를 받아 그대로 클라이언트에게 보여준다.  

 


ACID

트랜잭션 : 여러 개의 작업을 하나로 묶은 실행 유닛.

하나의 트랜잭션에 속해있는 여러 작업 중에서 단 하나의 작업이라도 실패하면,

이 트랜잭션에 속한 모든 작업을 실패한 것으로 판단합니다.  트랜잭션에는 성공 또는 실패라는 두개의 결과만 존재합니다.

 

데이터베이스 트랜잭션의 4가지 성질

  • Atomicity 원자성
  • Consistency 일관성
  • Isolation 격리성
  • Durability 지속성
원자성 : 모든 작업이 전부 성공하거나 전부 실패해서 결과를 예측할 수 있어야 한다. 
일관성 : 데이터베이스의 상태는 일관되야 한다. 하나의 트랜잭션 이전과 이후 DB의 상태는 이전과 같이 유효. 
격리성 : 모든 트랜잭션은 다른 트랜잭션으로부터 독립되어야 한다. 
지속성 : 하나의 트랜잭션이 성공적으로 수행되었다면 그 기록이 남아야 한다.
TCL(Transaction Control Language) : 트랜잭션 제어를 위한 언어

Commit, Rollback, Savepoint


SQL(구조화 쿼리 언어) VS NoSQL(비구조화 쿼리 언어)

데이터베이스에는 관계형 데이터베이스와 비관계형 데이터베이스로 나뉜다.

NoSQL은 데이터가 고정되어 있지 않은 데이터베이스를 가리킵니다. SQL은 스키마에 맞게 데이터를 입력해야 했다면 NoSQL은 스키마에 따라 데이터를 읽어옵니다. 

  • Key-Value 타입
    • 속성을 Key-Value의 쌍으로 나타내는 데이터를 배열의 형태로 저장.
    • 속성이름 - 속성에 연결된 데이터 값.
  • 문서형 데이터베이스
    • 테이블이 아닌 문서처럼 저장하는 데이터베이스.
    • 각각의 문서는 하나의 속성에 대한 데이터를 가지고 있다.
    • 컬렉션이라고 하는 그룹으로 묶어서 관리한다.
    • MongoDB가 대표적.
  • Wide-Column 데이터베이스
    • 열에 대한 정보를 집중적으로 관리하는 데이터베이스.
    • 각 열은 Key-Value 형식으로 데이터가 저장되고 컬럼 패밀리라는 열의 집합체로 데이터를 처리한다.
    • 하나의 행에 많은 열을 포함한다.
    • 규모가 큰 데이터 분석에 주료 사용함.
  • 그래프 데이터베이스
    • 노드에 속성별로 데이터를 저장한다.