DB란? https://noahlogs.tistory.com/36
RDBMS http://tcpschool.com/mysql/mysql_intro_relationalDB
생활코딩DB강의 https://opentutorials.org/course/3161/19531
데이터(data)는 현실의 사건이나 사물의 특징을 관찰하거나 측정하여 기술하는 가공되지 않은 사실이나 값이다. 이는 자료라고 부르기도 한다.
반면 정보(information)은 의미 있고 쓸모 있는 내용으로 가공하여 체계적으로 조직한 데이터를 말한다.
데이터 -> (가공) -> 정보
실생활에서 데이터들은 다양한 형태로 쓰인다. 대학교에서는 수강 신청과 관련된 학생 데이터들이 있고, 이 학생들의 점수 데이터는 학기말마다 성적으로 가공되어 데이터로 저장된다. 무신사와 같은 쇼핑 어플리케이션에서는 상품 판매자와 구매자, 그리고 상품에 관련된 데이터를 저장하고 이 데이터는 추후 마케팅의 기초 자료로 쓰인다.
이러한 데이터들은 그저 무더기로 쌓여 있지 않으며, 인간이 무언가를 기억하듯이 추상적이고 감각적으로 저장되어 있지 않다.
그렇다면, 우리가 현재 실생활에서 쓰고 있으며, 앞으로 설계를 하더라도 데이터베이스로 기능하기 위해 필요한 '정의'의 모습은 어떨까?
"어떠한 특정한 조직에서 여러 명의 사용자 또는 응용 시스템들이 공유하고, 동시에 접근하여 사용할 수 있도록 구조적으로 통합하여 저장한 운영 데이터의 집합"
조금 복잡하고, 여러가지가 한번에 압축이 되어있으니 한번 풀어서 생각해보자.
이상 위의 네가지야말로 DB의 본질이라 할 수 있다. Database란 결국 의미를 부여한 가치 있는 정보들을 관리하기 위한 논리적/물리적 장치이다. 이 정보들을 관리하기 위해서는 정보를 생성하고, 읽고, 갱신하고 삭제할 수 있는 기능이 필수적이다. 따라서 어떠한 데이터베이스를 사용하던 (MySQL, Postgres MariaDB...)등등 이 4가지 기능은 세부적인 사항은 다를지언정 무조건 구현이 되어 있다.
따라서 나는 이 위의 4가지 기능이 결국 데이터베이스라는 것의 본질이라고 생각한다.
기존의 데이터를 관리하던 파일 시스템(file system)의 데이터 종속성과 데이터 중복성 문제를 해결하기 위해 고안된 데이터관리시스템이다.
정의는
사용자 또는 응용 프로그램과 데이터베이스의 사이에 위치하여 데이터베이스를 공유할 수 있도록 관리해 주는 소프트웨어이다.
서버에 저장된 대량의 데이터를 관리하며, 사용자가 원하는 정보를 효과적으로 질의(Query)할 수 있는 기능을 제공한다.
사용자 및 응용 프로그램은 DBMS를 통해서만 DB를 사용할 수 있도록 설계되었으며,
이는 DBMS가 DB의 생성, 접근방법, 처리절차, 보안, 물리적 구조 등에 대한 모든 책임을 지고 있다는 의미이다.
대표적인 DBMS로는 오라클(Oracle), MySQL, MSSQL, MariaDB 등이 있다.
: 관계형 데이터베이스(Relational Database)를 위한 DBMS이다.
: 키(key)와 값(value)로 이루어진 데이터들을 행(row)과 열(column)으로 구성된 테이블 구조로 단순화 시킨 모델이다.
데이터의 종속성을 관계(Relationship)으로 표현하는 것이 가장 큰 특징이며, 행과 열로 구성된 각 테이블들이 다른 테이블들과 관계를 맺고 모여있는 형태이다.
데이터의 분류, 탐색, 정렬 속도가 빠르다.
오랫동안 사용된 모델인만큼 신뢰성이 높고, 어떠한 상황에서도 데이터의 무결성을 보장해준다.
관계(Relationship)을 기반으로 테이블끼리 서로 참조하는 형태이기에, 한눈에 전부 알아보기에는 불편함이 있다. (참조값들을 더 자세히 보고 싶으면 참조테이블을 다시 펼쳐서 살펴야한다.)
SQL(Structured Query Language)를 사용하여 데이터를 관리한다.
다음은 생활코딩 강의에서 나온 간략한 SQL구조이다.
다음에는 SQL이란 무엇인지 한번 알아보고, 또 Relational Database의 용어들을 한번 정리해보자.