티스토리 뷰

Web/SQL

데이터베이스 기초 정리

HAN_PY 2021. 2. 1. 10:56
반응형

1. 데이터베이스(database)란

 데이터베이스라는 말을 처음 들으면 무슨 말인지 잘 안와 닿는다. 데이터베이스라는 말보다 DB라는 말이 더 와 닿는 것 같다. 결론부터 말해보면, 컴퓨터 언어를 사용하여 표형식으로 이루어진 file의 데이터를 생성, 수정, 삭제, 읽기를 할 수 있는 총칭이라고 생각하면 좋을 것 같다. 

 

컴퓨터에서 정보를 저장하려면 file을 사용한다. 데이터가 많아지고 복잡해지면서 file만으로는 효과적으로 정보를 찾기 어려웠다. 그래서 잘 정리 정돈해서 쉽게 꺼내쓸 수 있게 하기 위해서 만들어진 소프트웨어가 데이터베이스라고 한다. 즉, 일정한 체계 속에 저장된 데이터의 집합이라는 의미이다. DATA는 데이터안에서 Table(표)이라는 단위로 저장이 된다.

 

 

 

2. 스프리드시트(Spreadsheet)란

 현재 sns나 iot, 빅데이터들의 발달로 데이터들이 굉장히 많이 나오고 있고 데이터의 종류도 다양하다. 그렇다면 개발자가 아닌 일반인들을 이러한 데이터를 보기 좋게 만들기 위해서 exel에 정리를 많이 할 것이다. exel이 바로 Spreadsheet라고 할 수 있다.

 

 

 

3. 데이터베이스(DB)와 스프리드시트

 그렇다면 DB와 Spreadsheet의 차이점은 무엇일까? 사실 두 개의 목적은 같다고 할 수 있다. 다만, database는 Spreadsheet와 다르게 프로그램 언어(코딩)를 이용하여 데이터를 다룰 수 있다는 점이다. 이것의 장점은 조건에 따른 자동화를 시킬 수 있다는 것이다. 이러한 자동화 때문에 우리 개발자들은 database를 이용하여 여러 data를 관리하는 것이다.

 

 

 

4. 직관적 예시

 그래도 직관적으로 이해가 안 될 수 있다. 예시를 들어보자. 초보자 입장에서는 DB란, 표를 만드는 과정이라고 생각을 하면 좋을 것 같다. 그렇다면 표를 어떻게 만들까? 아마 가장 처음 하는 것은 표의 상단 부분을 정하여 데이터의 기준을 정하는 것일 것이다. 만약 전국 고등학교 학생정보를 기준으로 표를 만든다면, 표의 상단 부분은 id, 이름, 전화번호, 주고, 성적... 등등이 될 것이다. 이러한 부분을 정하는 것을 구조를 작성한다고 한다.

 

id 이름 번호 주소 석차
1 한파이 790-8937-927-85 서울시 서울동 서울읍 72690
... ... ... ... ...

 

이런 식으로 작성한 구조를 기준으로 학생정보가 표로 만들어질 것이다. 이때 학생의 수가 10000명일 때 좀 더 쉽게 데이터를 뽑아낼 필요가 있을 것이다. 예를 들면 주소가 제주도이면서 석차가 100등 아래인 사람만 불러오기. 가 가능하다. 아니면 학생정보를 추가하거나 삭제하는 것도 가능하다.

 

정리하면, 데이터베이스를 배우는 목적은 정보가 담겨 있는 파일에 input을 하거나 output을 하기 위해서 이다. input을 한다는 말은 데이터를 생성, 수정, 삭제한다는 말이고 output 한다는 말은 data를 읽는다는 말이다. 따라서 데이터베이스의 핵심은 데이터를 생성하고 읽고 수정하고 삭제하는 작업이라고 할 수 있다.

 

  • table - 표형식으로 저장된 데이터의 집합
  • row - 행이라는 뜻으로 table에서의 하나의 개체로 위에서는 학생 한명의 정보이다. 가로
  • columns - 열이라는 뜻으로 각 개체가 가지는 하나의 속성으로 각 학생의 속성이라고 보면된다. 세로

데이터베이스를 사용하기 위해서는 DBMS가 필요하다. DBMS는 DataBase Management System(=데이터베이스관리시스템) 의 줄인말로 데이터 베이스를 관리하기 위해 사용하는 프로그램이다. 즉, 사용자는 DBMS를 통해 DATABASE를 핸들린한다.

 

 

5. DBMS의 종류

데이터베이스에는 다양한 데이터베이스 종류가 존재한다. 종류로는 MySQL(무료고 오픈소스), Oracle(관공서나 큰 기업에서 주로 쓰인다. 비싸다), SQL Server, PostgreSQL, MongoDB( 관계형 DB가 아니다. ) 등이 존재한다.

 

이때 등장하는 새로운 개념이 관계형 데이터베이스(Relational Database)이다. 관계형 데이터베이스가 등장한 이유는 간단하다. 복잡한 데이터의 종류 속에서 서로 관계를 가지도록 데이터를 만드는 것이다. 대부분의 데이터베이스가 관계형으로 이루어져 있기 때문에 데이터베이스 분야의 절대 강자이고, 표형태로 정리 가능하여 검색을 효과적이고 빠르게 가능하다.

 

그렇다면 우리는 관계형 데이터베이스만 배우면 될까? 그렇지 않다. 앞에서 말했듯 수많은 데이터가 나오고, 다양한 데이터 종류가 나타난다. 따라서 관계형 데이터베이스에 모든 데이터가 추가된다면, 관계를 가지는 데이터로 존재해야 되기 때문에 자유도를 억압 할 수 도 있다. 따라서 NoSQL의 흐름이 나오게 됐고, 관계형 데이터베이스가 아닌 것들이 폭팔적으로 성장하고 있다. 따라서 초보자의 경우는 관계형데이터베이스인 MySQL을 공부하고 관계형데이터베이스가 아닌 MongoDB도 공부해 보는 것을 추천한다.

 

보통은 회사에서 사용하는 것을 사용하겠지만, 사실 DB 구축을 위해 가장 먼저해야할 일은 DBMS를 선택하는 것부터가 시작이다. 그러면 DBMS가 알아서 DATABASE를 생성해준다. 이때 생각해보면 모든 DBMS를 다 공부해야할까? 아니다.

 

SQL을 사용하면 된다. SQL이란 Structured Query Language로 DBMS에 명령을 내리기 위해 사용하는 언어이다. SQL은 국제 표준이 있어서 이것만 배우면 어떤 DBMS도 사용가능하다. 그러나 모든 DBMS가 완벽하게 지원을 하진 않지만, 차이가 그렇게 크지 않기 때문에 기본적으로 SQL을 배워주는 것이 좋다.

 

DBMS의 구조적 핵심은 실행되고 있는 server에 client를 이용해서 접속한 후, 원하는 명령을 내린다는 뜻이다. 즉, DBMS는 클라이언트 프로그램과 서버프로그램을 둘다 포함하고 있으며, 서버프로그램 내부에 데이터베이스를 포함하고 있다.

 

SQL을 공부하러 가보자.

 

 

 

반응형

'Web > SQL' 카테고리의 다른 글

MySQL_명령어 기초 정리  (0) 2021.03.28
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함