- DB와 DBMS에 대한 이해
node runtime JS code
// node runtime에서 file system, file I/O control example
const fs = require("fs");
// 동기적으로 파일 읽기
const data = fs.readFileSync("example.txt", { encoding: "utf8", flag: "r" });
console.log(data);
// // 비동기적으로 파일 읽기
// fs.readFile("example.txt", { encoding: "utf8", flag: "r" }, (err, data) => {
// if (err) throw err;
// console.log(data);
// });
// 동기적으로 파일 쓰기
// fs.writeFileSync("example.txt", "Hello, World!", { encoding: "utf8" });
// // 비동기적으로 파일 쓰기
// fs.writeFile("example.txt", "Hello, World!", { encoding: "utf8" }, (err) => {
// if (err) throw err;
// console.log("File has been saved!");
// });
정보를 영구적으로 저장하기 위해서는 하드 디스크나 테입 등의 물리적인 저장 장치에 기록해야 한다.
저장 장치의 내부 구조는 굉장히 복잡하고 또 장치마다 구조가 상이해서 사용자가 직접 관리하기 어렵다.
SAM
(Sequential Access Method) / ISAM
(index + SAM)
fs.appendFileSync("example.txt", "홍길동, 3000\\n", { encoding: "utf8" });
fs.appendFileSync("example.txt", "홍길동, 1000\\n", { encoding: "utf8" });
fs.appendFileSync("example.txt", "정현우, 2000\\n", { encoding: "utf8" });
fs.appendFileSync("example.txt", "정현우, 9000\\n", { encoding: "utf8" });
fs.appendFileSync("example.txt", "동길홍, 12000\\n", { encoding: "utf8" });
1세대 : 네트 워크, 계층 DBMS - Database Management System
http://www.soen.kr/lecture/devtool/SQL/1-2.htm
ISAM
이후에 약간 더 발전한 형태로서 디렉토리, 파일의 구조처럼 정보를 수직적인 트리 형태로 저장하는 방식2세대 / 3세대 : 관계 DBMS - “RDBMS” :
https://equus3144.medium.com/1-4세대-dbms로-보는-데이터베이스-발전-과정과-양상에-대해-정리하기-b94c1d93914d
MySQL
, Oracle
, Postgresql
, MsSQL
…4세대 : NoSQL & 새로운 매커니즘의 DBMS
MongoDB
, Redis
, Cassandra
, …