본문 바로가기

DATABASE

DBMS에 대하여

데이터베이스 관리 시스템(영어: database management system, DBMS)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. 

 

데이터베이스 - 위키백과, 우리 모두의 백과사전

SQL 데이터베이스 쿼리의 예. 데이터베이스(영어: database, DB)는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다.[1] 작성된 목록으로써 여러 응용 시스템들의

ko.wikipedia.org

여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다.

 

이전에 우리는 File을 통해 데이터(정보)를 정리하였고, 데이터가 방대해지자 정돈하기 위한 구조가 필요해졌다.

구조적으로 데이터를 정돈하게 되면 데이터를 가공하기 훨씬 쉬워지기 때문이다.

*데이터를 가공한다 = 필요한 데이터를 찾거나, 수정하거나, 삭제하는 등의 행위

 

이때 등장한 것이 엑셀(스프라이드 시트)이다.

출처 https://blog.hyosung.com/2579

여기서 더 발전하여, 컴퓨터 언어를 이용해서 데이터를 추가하고 수정하고 삭제하고 읽을 수 있게 하는 것이

바로 데이터베이스 이다.

엑셀에 시트가 있듯이, 데이터베이스에는 테이블이 있다.

문서에 행과 열이 있듯이 테이블에는 행과 열이 있다.

 

컴퓨터 언어를 쓰는 데이터베이스는 사람이 일일이 작성하지 않고도 조건에 따라 데이터를 자동으로 가공할 수 있다.

 

데이터베이스는 방대한 기능을 가졌다. 데이터의 종류가 다양하기 때문이다.

어떤 데이터베이스든 공통적으로 구조는 다음과 같이 나뉠수 있다.

  • 입력은 데이터의 생성, 수정, 삭제
  • 출력은 데이터의 읽기

즉, CRUD만 알면 데이터베이스를 이해할 수 있다(모든 데이터베이스의 공통점이다)

 

 

SQL이란?

데이터베이스와 대화하기 위해 특별히 디자인된 언어로, 우리가 데이터를 저장하기 위한 공간인 데이터베이스는 거의 모든 것에 필요하다.

개발자로서 데이터베이스와 대화하기 위해 SQL이 등장했다.

 

데이터베이스 2종류

  • SQL DB(관계형 데이터베이스) : mySQL, postgreSQL,split 등등
  • Non-SQL(NO 관계형 데이터베이스) : mongoDB, DynamoDB, GraphDB등등

'한국음식 VS 한국음식이 아닌 모든 음식' 처럼 SQL 진영과 달리 NOSQL 진영에는 다양한 것들이 존재한다.

출처 https://www.youtube.com/c/%EB%85%B8%EB%A7%88%EB%93%9C%EC%BD%94%EB%8D%94NomadCoders

  1. Document DB
    • mongoDB : 데이터를 json document 형태로 저장한다 <-> 테이블 형태
    • 원하는 어떤 형태든 저장 가능하고 꼭 데이터가 같은 모양일 필요가 없이 유연하다는 장점이 있다

출처 https://www.youtube.com/c/%EB%85%B8%EB%A7%88%EB%93%9C%EC%BD%94%EB%8D%94NomadCoders

<-> 테이블 형태의 데이터베이스

출처 https://www.youtube.com/c/%EB%85%B8%EB%A7%88%EB%93%9C%EC%BD%94%EB%8D%94NomadCoders

2. Key Value DB

  • CassandraDB (매우빠르게 데이터를 읽고 저장)
  • DynamoDB (빠른 속도)

 

3. GraphDB

  • column이나 document가 필요 없을때, 그러나 각 노드 사이 관계를 알아야 할때
  • 각각의 엔트리를 저장하고 이를 관계망으로 연결한다.
  • ex. 소셜 네트워크, 페이스북

Non-SQL은 특장점이 있기 때문에 특별한(특정) 프로젝트를 할때 사용한다.

 

  •  

ORM

파이썬을 가져와서 SQL코드로 바꿔준다 (파이썬으로 코딩하면 SQL 코드를 얻음)

그래서 개발자들이 ORM에 너무 의존하게 만든다