관리 메뉴

클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

데이터베이스와 SQL 1 - 데이터베이스 알아보기 본문

알고리즘 및 자료 관리/SQL

데이터베이스와 SQL 1 - 데이터베이스 알아보기

huenuri 2024. 10. 8. 16:14

혼공머신을 공부했듯 혼공S로 SQL 공부를 시작해 보기로 했다. 처음에 개념과 역사부터 짚어주는 데다 강의도 있어서 내용을 따라가는데 이해가 잘 된다.

이번 시간에는 데이터베이스의 기초적인 내용을 학습해볼 것이다.

 

시작하기 전에

데이터베이스에는 우리 일상생활 대부분의 정보가 저장되고 관리된다. 데이터베이스를 한 마디로 정의하면 '데이터의 집합'이라고 할 수 있다.

 


 

 

데이터베이스와 DBMS

 

DBMS의 정의

DBMS는 데이터베이스를 관라하고 운영하는 소프트웨어를 말한다. 엑셀은 DBMS라고 부르지 않는다. DBMS는 대용량 데이터를 관리하거나 여러 사용자와 공유할 수 있어야 한다.

예를 들면 은행의 예금 계좌는 많은 사람들이 갖고 있다. 여러 명의 예금 계좌 정보를 모아 놓은 것이 데이터베이스이다. 은행이 가지고 있는 예금 계좌 데이터베이스에는 여러 명이 동시에 접근할 수 있다.

 


 

 

DBMS의 종류

DBMS와 같은 소프트웨어는 특정 목적을 처리하기 위한 프로그램이다. 데이터베이스를 사용하기 위해서는 소프트웨어, 즉 DBMS를 설치해야 하는데 대표적으로 MySQL, 오라클, SQL 서버, Maria DB 등이 있다. 소프트웨어 각각의 사용 방법과 특징이 다르지만 특정 목적을 위해서는 어떤 것을 사용해도 무방하다.

다음 표를 통해 대표적인 DMS의 특징에 대해 살펴보자. 그중에서 우리는 비교적 쉬우면서도 실무에서 인기가 많은 MySQL이라는 소트프웨어를 설치해서 사용할 것이다.


 

DBMS 발전 과정

 

컴퓨터가 존재하기 전부터 사람들은 데이터(정보)를 관리해왔다. 종이에 정보를 기록하고 관리하던 때부터 시작해서 지금의 DBMS까지 어떤 관정으로 발전했는지 차례대로 살펴보겠다.

 

종이에 펜으로 기록

컴퓨터가 없던 시기에도 구멍가게를 운영하면서 판매와 구매가 발생했을 것이고, 그것을 종이에 펜으로 기록했을 것이다.

 

컴퓨터에 파일로 저장

컴퓨터가 등장하고 일반 사람들도 컴퓨터를 사용하게 되면서 종이에 기록하던 내용을 컴퓨터 파일에 기록, 저장하게 되었다. 컴퓨터를 어느 정도 활용하게 되면서 엑셀과 같은 스트레드시트 프로그램을 사용해 표 형태로 내용을 기록하고 자동으로 계산하는 등 한층 더 효율적으로 정보를 관리하게 되었다. 기록된 내용은 파일이라는 형태로 저장해 필요할 때마다 열어서 사용할 수 있다.

엑셀을 사용하면 아주 편리하지만, 저장한 파일은 한 번에 한 명의 사용자만 열어서 작업할 수 있다. 규모가 큰 슈퍼마켓이나 마트 등에서는 데이터의 양이 많아 한 명의 사용자가 모두 처리할 수 없기 때문에 여러 명이 각자의 파일을 만들어서 작업할 수밖에 없다.

 

DBMS의 대두와 보급

파일의 단점을 보완하면서 대량의 데이터를 효율적으로 관리하고 운영하기 위해서 등장한 것이 DBMS이다. DBMS 개념은 1973년에 최초로 에드거 프랭크 커드라는 학자가 이론을 정립했다. 그 이후 많은 DBMS 제품이 만들어졌고 지금과 같은 안정적인 소프트웨어로 자리 잡게 되었다.

DBMS는 데이터의 집합인 데이터베이스를 잘 관리하고 운영하기 위한 시스템 또는 소프트웨어를 말한다. DBMS에 데이터를 구축, 관리하고 활용하기 위해 사용되는 언어가 SQL이다. 이 SQL을 사용하면 DBMS를 통해 중요한 정보들을 입력, 관리하고 추출할 수 있다.

 


 

 

 

DBMS의 분류

DBMS의 유형은 계층형, 망형, 관계형, 객치지향형, 객체관계형 등으로 분류된다. 현재 사용되는 DBMS 중에는 관계형 DBMS가 가장 많은 부분을 차지하며, 우리가 사용한 MySQL도 관계형 DBMS에 포함된다. 

 

계층형 DBMS

계층형 DBMS는 처음으로 등장한 DBMS 개념으로 1940년대에 시작되었다. 다음 그림과 같이 각 계층은 트리 형태를 갖는다.

계층형 DBMS의 문제는 처음 구성을 완료한 후에 이를 변경하기가 상당히 까다롭다는 것이다. 또한 다른 구성원을 찾아가는 것이 비효율적이다. 예를 들어 재무 2팀에서 회계팀으로 연결하려면 재무이사 → 사장 → 회계이사 → 회계팀과 같이 여러 단계를 거쳐야 한다. 지금은 사용하지 않는 형태이다.

 

 

 

망형 DBMS

망형 DBMS는 계층형 DBMS의 문제점을 개선하기 위해 1970년대에 등장했다. 다음 그림을 보면 하위에 있는 구성원끼리도 연결된 유연한 구조이다.

예를 들어 재무2팀에서 바로 회계팀으로 연결이 가능하다. 하지만 망형 DBMS를 잘 활용하려면 프로그래머가 모든 구조를 이해해야만 프로그램 작성이 가능하다는 단점이 존재한다. 역시 지금은 거의 사용하지 않는 형태이다.

 

 

관계형 DBMS

관계형 DBMS는 줄여서 RDBMS라고 부른다. 대부분의 DBMS가 RDBMS 형태로 사용된다. RDBMS의 데이터베이스는 테이블이라는 최소 단위로 구성되며, 이 테이블은 하나 이상의 열과 행으로 이루어져 있다.

RDBMS에서는 모든 데이터가 테이블에 저장된다. 이 구조가 가장 기본적이고 중요한 구성이기 때문에 테블만 제대로 파악하면 RDBMS를 어느 정도 이해했다고 할 수 있다.

테이블은 열과 행으로 이루어진 2차원 구조를 갖는다. 세로는 열이라 하고, 가로는 행이라고 한다. 위 테이블은 3개의 열과 4개의 행으로 구성되어 있다.

 


 

 

 

 

DBMS에서 사용되는 언어 : SQL

SQL은 관계형 데이터베이스에서 사용되는 언어이다. SQL이 데이터베이스를 조작하는 언어이긴 하지만 일반적인 프로그래밍 언어와는 조금 다른 특성을 갖는다.

SQL은 특정 회사에서 만드는 것이 아니라 국제표준화기구에서 SQL에 대한 표준을 정해서 발표하고 있다. 이를 표준 SQL이라고 한다. 그런데 문제는 SQL을 사용하는 DBMS를 만드는 회사가 여러 곳이기 때문에 표준 SQL이 각 회사 제품의 특성을 모두 포용하지 못한다는 점이다. 그래서 DBMS를 만드는 회사에서는 되도록 표준 SQL을 준수하되, 각 제품의 특성을 반영한 SQL을 사용한다.

 

다음 그림을 보면 6가지 DBMS 제품이 모두 표준 SQL을 포함하고 있지만, 추가로 자신만의 기능도 가지고 있다. 이렇게 변경된 SQL을 오라클은 PL/SQL, SQL 서버는 T-SQL, MySQL은 SQL로 부른다.

결론은 표준 SQL을 익히면 여러 DBMS의 공통적인 부분을 배우는 것이다.


 

 

단원 마무리하기

 

 

 

 

문제도 모두 잘 맞추었다.

 


 

 

 

학습을 마치고

20분 정도 되는 강의를 들어보았는데 정말 훌륭한 강의였다. 머릿속에 쏙쏙 들어오도록 설명해 주셨고, 전혀 지루하지 않았다. 머신러닝 + 딥러닝 강사는 많이 지루했는데 말이다.

이제 이 책과 함께 SQL을 더욱 열심히 공부해 보기로 했다. Oracle은 설치해서 사용방법을 알고 있으나, MySQL은 사용해 본 적은 없다.

 

다음 포스트에서 설치도 하고 실습도 해볼 수 있을 것 같다.