Search
Duplicate

데이터 베이스란?

데이터베이스는 이전에는 IT분야에서만 사용되는 용어였습니다.
이제는 우리의 일상생활에서 사용되지 않는 부분이 없기에 보편적으로 사용되는 용어가 되었습니다.
데이터베이스에는 우리 일상생활 대부분의 정보가 저장되고 관리됩니다. 카카오톡 메세지, 인스타그램 게시물, 교통카드 사용 내역, 신용카드 결제 내역등 거의 모든 데이터들이 데이터베이스(DB)에 저장 됩니다.
DB는 한마디로 정의하면 ‘데이터의 집합’ 이라고 할 수 있습니다.

데이터 베이스와 DBMS

DBMS는 Database Management system 의 약자로 데이터베이스를 관리하는 소프트웨어입니다.
다양 한 데이터가 저장되어 있는 데이터베이스는 여러명의 사용자나 응용 프로그램과 공유하고 동시에 접근이 가능해야 합니다.
예를들어 마이크로소프트사의 EXCEL 과 같은 프로그램은 데이터를 관리하고 운영한다는 관점에서 DBMS로 볼수도 있지만 여러 사용자와 공유하는 개념과는 거리가 있어 DBMS라고 부르지 않습니다.
은행의 계좌를 관리하는 시스템 같은 경우에는 DBMS라고 볼수 있습니다.

DBMS의 종류

DBMS는 다양한 프로그램들이 존재 합니다. 각각 사용 방법과 특징이 다르지만 특정 목적을 위해서는 어떤것을 사용해도 무방합니다.
DBMS
제작사
작동 운영체제
기타
MySQL
Oracle
Unix, Linux, Windows, Mac
오픈 소스(무료), 상용
MariaDB
MariaDB
Unix, Linux, Windows
오픈 소스(무료),MySQL 초기 개발자들이 독립해서 만듦
PostgreSQL
PostgreSQL
Unix, Linux, Windows, Mac
오픈 소스(무료)
Oracle
Oracle
Unix, Linux, Windows
상용 시장 점유율 1위
SQL Server
Microsoft
Windows
주로 중/대형급 시장에서 사용
DB2
IBM
Unix, Linux, Windows
메인프레임 시장 점유율 1위
Access
Microsoft
Windows
PC용
SQLite
SQLite
Android, iOS
모바일 전용, 오픈 소스(무료)

DBMS의 발전과정

사람들은 고대시대 부터 데이터(정보)를 관리 해왔습니다. 보통 종이와 펜을 이용해서 관리 하였습니다.
컴퓨터가 등장하고 나서는 파일(FILE) 이라는 형태로 저장해 필요 할 떄마다 열어서 사용할 수 있었습니다.
하지만 파일을 이용해서 작업을 하게 되면 한번에 한사람만이 작업할수 있습니다. 만약에 반품같은 작업이 진행되면 반품 시간을 기점으로 작업해야할지, 물건을 구매한 시점으로 작업해야 할지 등등 여러가지 중복되는 부분에서의 기록작업이 모호해집니다.
이러한 문제점 떄문에 DBMS를 만들고 대량의 데이터를 효율적으로 관리하고 운영하기 시작했습니다.
우리가 사용할 MYSQL 이라는 DBMS는 197년 에드 프랭크 커드라는 학자가 이론을 정립했습니다.
그 이후로 다양한 DBMS가 만들어 졌고 지금까지 발전하게 되었습니다.
데이터베이스를 잘 관리하고 운영하기 위해서 사용되는 언어가 SQL(sturctured query language)입니다. 이 SQL언어를 사용하면 DBMS를 통해 중요한 데이터들을 입력하고 관리할수 있습니다.

DBMS의 분류

DBMS의 유형은 계층형(Hierarchical), 망형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류됩니다. 현재 사용되는 DBMS 중에는 관계형 DBMS가 가장 많은 부분을 차지하며, MySQL도 관계형 DBMS에 포함됩니다.

계층형 DBMS

계층형 DBMS(Hierarchical DBMS)는 처음으로 등장한 DBMS 개념으로 1960년대에 시작되었습니다. 아래 그림과 같이 각 계층은 트리tree 형태를 갖습니다. 사장 1명에 이사 3명이 연결되어 있는 구조입니다. 계층형 DBMS의 문제는 처음 구성을 완료한 후에 이를 변경하기가 상당히 까다롭다는 것입니다. 또한 다른 구성원을 찾아가는 것이 비효율적입니다. 예를 들어 재무2팀에서 회계팀으로 연결하려면 재무이사 → 사장 → 회계이사 → 회계팀과 같이 여러 단계를 거쳐야 합니다. 지금은 사용하지 않는 형태입니다.

망형 DBMS

망형 DBMS(Network DBMS)는 계층형 DBMS의 문제점을 개선하기 위해 1970년대에 등장했습니다. 다음 그림을 보면 하위에 있는 구성원끼리도 연결된 유연한 구조입니다. 예를 들어 재무2팀에서 바로 회계팀으로 연결이 가능합니다. 하지만 망형 DBMS를 잘 활용하려면 프로그래머가 모든 구조를 이해해야만 프로그램 작성이 가능하다는 단점이 존재합니다. 역시 지금은 거의 사용하지 않는 형태입니다.

관계형 DBMS

관계형 DBMS(Relational DBMS)는 줄여서 RDBMS라고 부릅니다. MySQL뿐만 아니라, 대부분의 DBMS가 RDBMS 형태로 사용됩니다. RDBMS의 데이터베이스는 테이블(table)이라는 최소 단위로 구성되며, 이 테이블은 하나 이상의 열(column)과 행(row)으로 이루어져 있습니다.
한글이나 워드에서 표를 만들었던 경험이 있을텐데요, 이 표의 모양이 바로 테이블입니다. 친구의 카카오톡 아이디, 이름, 연락처 등 3가지 정보를 표, 즉 테이블로 만들면 다음과 같습니다.
RDBMS에서는 모든 데이터가 테이블에 저장됩니다. 이 구조가 가장 기본적이고 중요한 구성이기 때문에 RDBMS는 테이블로 이루어져 있으며, 테이블은 열과 행으로 구성되어 있다는 것을 파악했다면 RDBMS를 어느정도 이해했다고 할 수 있습니다.

SQL: DBMS에서 사용하는 언어

SQL(Structured Query Language)은 관계형 데이터베이스에서 사용되는 언어로, ‘에스큐엘’ 또는 ‘시퀄’로 읽습니다. 관계형 DBMS 중 MySQL를 배우려면 SQL을 필수로 익혀야 합니다. SQL이 데이터베이스를 조작하는 ‘언어’이긴 하지만 일반적인 프로그래밍 언어(C, 자바, 파이썬 등)와는 조금 다른 특성을 갖습니다.
SQL은 특정 회사에서 만드는 것이 아니라 국제표준화기구에서 SQL에 대한 표준을 정해서 발표하고 있습니다. 이를 표준 SQL이라고 합니다. 그런데 문제는 SQL을 사용하는 DBMS를 만드는 회사가 여러 곳이기 때문에 표준 SQL이 각 회사 제품의 특성을 모두 포용하지 못한다는 점입니다. 그래서 DBMS를 만드는 회사에서는 되도록 표준 SQL을 준수하되, 각 제품의 특성을 반영한 SQL을 사용합니다.
다음 그림을 보면 3가지 DBMS 제품(오라클, SQL 서버, MySQL)이 모두 표준 SQL을 포함하고 있습니다. 그래서 표준 SQL을 익히면 대부분의 DBMS에 공통적으로 적용할 수 있습니다. 각 DBMS는 추가로 자신만의 기능도 가지고 있어서 이렇게 변경된 SQL을 오라클은 PL/SQL, SQL서버는 T-SQL, MySQL은 SQL로 부릅니다.