데이터베이스
여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임
참고) 이를 효율적으로 관리하는 소프트웨어를
데이터베이스 관리시스템(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 |
댓글