데이터베이스란?
데이터베이스란? 데이터의 집합!
예를 들어 우리가 인터넷 쇼핑을 하면, 구매자가 누구고, 언제 구매했고, 무엇을 구매했는지 등 정보들을 저장해야하겠지 그 정보들의 집합을 데이터베이스라고 생각하면 된다.
데베가 발전하면서 여러 사용자나 응용 프로그램이 데베에 접근할 수 있게 되었다. 만약 데베가 없이 엑셀로 관리하고, 관리자가 여러 명이라면? 데이터 수정이 어려웠을 것이고, 신뢰성이 떨어졌을 것이다. 데베가 발전하면서 동시에 많은 관리자가 접근하고 수정할 수 있고, 사용자가 물건을 구매하면 자동적으로 데베에 값이 저장되기도 한다.
데이터베이스의 형태가 역사적으로 보면, 계층형, 망형도 있었지만 현재는 사용하고 있지 않고, 관계형 데이터베이스를 많이 사용한다.
관계형은 우리가 흔히 보는 엑셀의 스프레드시트를 떠올리면 된다.
고객id | 구매일 | 아이템id |
1234 | 22-05-30 12:07 | 5678 |
2345 | 22-05-31 12:07 | 9090 |
3456 | 22-06-30 12:07 | 1010 |
위와 같은 표의 형식으로 정리된 데이터베이스를 관계형 데이터베이스라고 하고, 구조화되어있다고 한다.
관계형 데이터베이스에 접근하고, 관리하고, 수정하기 위해 사용하는 언어는 "SQL structured query language" 구조화된 질의 언어라고 한다.
컴활자격증을 땄다면 이미 접해봤을 명령어들이다.
SELECT * FROM datalist WHERE id="1234";
위와 같은 명령어들로 CRUD(create, read, update, delete) 등이 가능하다.
DBMS database management system
데이터베이스를 관리할 수 있는 소프트웨어를 dbms라고 한다.
MySQL, Oracle, SQL Server, PostgreSQL 등 다양한 기업이 표준 SQL에 플러스 알파를 지원하며 데이터베이스를 관리할 수 있도록 돕는다.
표준SQL이란, 자동차의 오른쪽 페달이 엑셀, 왼쪽 페달이 브레이크인 것처럼 SQL이라면 기본적으로 지켜야 할 기준, 표준이다. 여기에 각 회사들이 더 편리하게 데베를 관리할 수 있게 해주는 기능을 추가해 주는 것이다.
한편, 현대에 와서 다양한 데이터들이 생겨나고 있고, 관계형 데이터베이스가 제한적으로 작용할 수 있기 때문에 NoSQL도 성장하고 있다. MongoDB가 그 일례이다.
데이터베이스는 스키마라고도 한다. 스키마안에는 여러 table이 존재할 수 있다.
수많은 데이터를 관리하면 위와 같은 table이 엄청나게 만들어질 것이다. 예쁘게 정리하기 위해서 연관된 table끼리 묶어서 데이터베이스를 형성한다.
MySQL, Oracle, SQL Server, PostgreSQL 등 데베관리시스템은 데이터베이스서버를 구축해주고, 우리는 그 안에서 데이터베이스(스키마)를 형성하고, 또 그안에 table을 형성하면서 예쁘게 데이터를 정리할 수 있다.
table안에는 열(column)과 행(row)가 있으며, rows 즉 table에 저장된 값들을 인스턴스라고 한다.