본문 바로가기
데이터 베이스

(관계형)데이터베이스란?

by 왕밤 2021. 10. 13.

 

 

데이터베이스

여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임

 

참고) 이를 효율적으로 관리하는 소프트웨어를 

데이터베이스 관리시스템(Database Management System)이라 부르고 약자로 DBMS라고한다

 

🤔  데이터베이스가 왜 필요할까?

그냥 데이터를 엑셀이나 CSV 파일에 저장해서 사용할 수는 없을까?

 

이 문제의 답을 찾기 위해서는

일단 데이터를 저장하는 방법이 어떤게 있기에 데이터 베이스 낫다고 생각해 사용하는가를 알아야한다

데이터를 저장하는 방법에는 크게 In-Memory , File I/O 2가지가 있다

 

①  In-Memory 👩‍💻

 

  In-Memory 데이터베이스는 말 그대로 메모리에 데이터를 저장하는 것을 말한다

  외부 저장 장치 등 따로 데이터를 저장해 불러오는 것이 아닌 로컬 PC의 메모리에서 

  데이터를 불러와 사용한다

 

  메모리(임시저장장치)를 사용할 때 디스크(작업결과 저장공간/저장장치)와 충돌이 없어

  더 빠르게 데이터를 사용할 수 있다

 

  외부 저장장치를 사용해 데이터를 사용하면 왜 느린가? 🐌

  외부 저장 장치에 있는 데이터를 읽고자 할 경우, 해당 데이터를 곧바로 사용할 수 없다

  데이터를 읽어서 메모리에 올리고, 메모리에 올라간 데이터를 읽어서 사용할 수 있다

  그냥 메모리에서 바로 읽는 것보다 더 복잡한 과정이 있기 때문  

 

❌   In-Memory DB를 사용하지 않는 이유  ❌ 

 

프로그램을 만들다보면

프로그램 사용자들에 의해 생성된 데이터, 프로그래머가 필요에 의해 프로그램에 넣어놓은 데이터 등

필연적으로 많은 데이터들이 생성되어지게 된다(프로그램이 실행될 때만 존재하는 데이터)

데이터베이스를 사용하지 않으면 이 데이터들은 프로그램을 종료하는 순간 전부 날아가게 된다

(메모리에만 저장이 됨으로 => 작성만 되고 작성하고 프로그램을 끄면 작성한 코드들이 다 날아감)

  •   예상치 못한 상황에 대한 대비를 할 수 없고 😵
  •   데이터의 수명이 프로그램에 의존하게 되어 원하는 데이터를 원하는 시간 안에 받아올 수 없음 ⏰

  

②  File I/O

파일을 읽는 방식으로 작동하는 형태를 말한다

데이터가 필요할 때마다 전체 파일을 매번 읽어야 한다

(엑셀 시트나 CSV 같은 파일의 형태는 In-Memory에 비해 데이터를 저장하는 방식으로 적절해 보임)

 

❌   File I/O DB를 사용하지 않는 이유  ❌ 

  •   파일의 크기가 커질수록 이 작업은 버겁고, 비효율적이어서 File I/O 방식의 큰 단점이다
  •   파일이 손상되거나 여러 개의 파일들을 동시에 다뤄야 하거나 하는 등 복잡하고 데이터량이 많아질수록 데이터를 불러들이는 작업이    점점 힘들어진다

 

 

반면에 관계형 데이터베이스에서는 하나의 CSV 파일이나 엑셀 시트를 한 개의 테이블로 저장할 수 있다

한번에 여러 개의 테이블을 가질 수 있기 때문에 SQL 을 활용해 데이터를 불러오기 더 낫다

다른이유, 엑셀 시트와 CSV 파일 등 처럼 특정 형태의 파일은 대용량의 데이터를 저장하기 위한 목적이 아니다

 


메모리와 디스크의 차이

* 메모리 - 임시저장소 (저장하지 않은 작성된 한글 파일) - 한글 파일이 닫히면 내용을 볼 수 없음

* 하드디스크 -  저장을 위한 저장장치 (저장된 한글 파일) - 파일이 닫혀도 내용이 저장되어 있기 때문에 다시 확인할 수 있음

 

참고)  https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=devfarm&logNo=221414161481   

 

 

CSV(영어: comma-separated values)는

표 형태의 데이터를 저장하는 파일 형식이다

확장자는 . csv이며 MIME 형식은 text/csv이다.

comma-separated variables 라고도 한다

 

참고) 나무위키

 

 

 

 

 

 

'데이터 베이스' 카테고리의 다른 글

SQL 이란? (Structured Query Language)  (0) 2021.10.13
기본) 스키마 (Schema) 설계  (0) 2021.10.12

댓글