Skip to content

Latest commit

 

History

History
103 lines (80 loc) · 7.9 KB

SUMMARY.md

File metadata and controls

103 lines (80 loc) · 7.9 KB
비개발자를 위한 MySQL

개요

MySQL에 대해서 배우기 전에 알아야할 기본적인 내용에 대해서 알아봅시다.

데이터란?

데이터란 무언가를 사용하거나 얻기 위한 재료라고 할 수 있습니다. 예를 들어 의자를 만들기 위해서 필요한 재료의 목록, 만들고자 하는 의자의 크기, 색상 등 이러한 모든 것이 데이터라고 할 수 있습니다. 즉, 필요하다면 모든 것은 데이터가 될 수 있습니다.

데이터의 종류

이러한 데이터에도 종류는 있습니다. 크게 두 가지로 나눌 수 있습니다

  1. 정형 데이터
  2. 비정형 데이터

이 외에도 반정형 데이터라는 것이 존재하지만 반정형 데이터는 논외로 치겠습니다. 정형 데이터는 定型이라는 한자가 의미하듯이 일정한 형식이나 틀에 맞춰서 작성된 데이터를 의미합니다. 흔히 주변에서 많이 사용하는 엑셀에서 작성된 데이터 시트도 정형 데이터에 속합니다. 정형 데이터는 컴퓨터가 분석하기 쉬운 데이터입니다.

그럼 비정형 데이터는 정형 데이터의 반대겠죠? 비정형 데이터는 일정한 형식이 없는 데이터를 의미합니다. 마구잡이로 적혀있는 SNS의 텍스트들, 사진, 동영상 등이 있습니다. 비정형 데이터는 컴퓨터가 분석하기 어려운 데이터입니다.

정형 데이터와 비정형 데이터의 예
정형 데이터비정형 데이터
이름주문메뉴만족도
이선협스테이크10
김지환양갈비5
윤명근가지구이8
일정한 형식이 있기 때문에 컴퓨터가 구분하기 쉽다.
사진과 텍스트로 이루어진 데이터. 사람의 눈으로는 어떤 데이터인지 알 수 있지만 컴퓨터는 구분하기 힘들다.

데이터베이스

데이터베이스는 앞서 설명한 데이터들의 모음입니다. 데이터베이스에도 다양한 종류가 있지만 여기서는 관계형 데이터베이스를 주로 다루게 될 것입니다. 자세한 설명은 MySQL을 설명하면서 보겠습니다.

MySQL이란?

MySQL이란 관계형 데이터베이스 관리 시스템입니다. 이렇게 말하면 잘 이해가 안가죠? 좀 더 쉽게 풀어서 설명하자면 서로 관계가 있고 정형화된 데이터를 모은 것을 관리해주는 시스템입니다. 제 생각이는 이것도 이해하기는 조금 어려워 보입니다.

백문이 불여일견이라고 했나요? 그림을 보며 이해해봅시다. 위 그림은 우리 가게라는 음식점을 데이터베이스로 간단하게 표현한 그림입니다. 데이터베이스 내에 존재하는 손님, 예약자, 주문, 매출, 메뉴는 각각 우리 가게 데이터베이스 내에 존재하는 테이블입니다. 각각의 테이블 내에는 해당 테이블과 관련된 데이터가 들어가 있습니다. 그리고 테이블은 열에 해당하는 Column과 행에 해당하는 Row가 존재합니다.

처음 들어보는 용어들이 많죠? 먼저 용어정리를 하고 시작합시다.

  • 데이터베이스
    • 데이터의 집합을 의미합니다. 테이블의 모음이라고 생각하면 편합니다.
  • 테이블
    • 어떠한 의미를 가지는 데이터의 집합을 의미합니다. 예를 들어 메뉴 테이블에는 메뉴와 관계가 있는 데이터만 들어가야 합니다. 그리고 보통 행과 열로 표현됩니다.
  • Column
    • 행과 열로 표현되는 테이블에서 열에 해당됩니다. 데이터의 속성을 의미합니다.
    • ex) 메뉴 테이블의 속성은 [메뉴이름, 가격, 원가, 조리시간]로 구성된다.
  • Row
    • 행과 열로 표현되는 테이블에서 행에 해당됩니다. 실제로 기록된 데이터를 의미합니다.
    • ex) 메뉴 테이블에는 [스테이크, 24000원, 15000원, 15분]과 [가지구이, 9000원, 4000원, 10분]의 데이터가 있다.

데이터베이스와 데이터베이스를 이루는 구성에 대해서 이해가 되셨나요? 그럼 관계형에 대해서 알아봅시다.

먼저 우리 가게라는 서비스의 흐름을 봅시다. 아마 다음과 같은 흐름으로 진행될겁니다.

1. 손님이 방문합니다.
2. 손님이 메뉴를 보며 원하는 것을 주문합니다.
3. 가게 매출이 올라갑니다.

혹은 다음과 같은 흐름으로도 진행될 수 있습니다.

1. 손님이 우리 가게를 이용하기 위해 예약을 합니다.
2. 예약 시간에 맞춰서 방문합니다.
3. 위와 같은 프로세스가 진행됩니다.

또 다른 흐름으로는 예약하고 방문하지 않는 경우도 있을 수 있습니다.

여기서는 손님이 원하는 것을 얻고 만족했는지, 얻는데에 얼마나 걸렸는지에 대한 복잡한 것은 잊어버립시다. 서비스의 흐름을 보면 각각의 각각의 데이터는 연관되어 있다는 것을 알 수 있습니다. 예약자가 손님이 되고, 손님은 주문을 하고, 주문을 할 때는 메뉴를 참고하며 주문을 하는 순간 매출이 증가합니다. 이러한 흐름을 비즈니스 로직이라고 하고 흐름에 사용되는 데이터들의 구조를 데이터 모델이라고 합니다. 서비스를 만들때 비즈니스 로직데이터 모델을 초기에 잘 만들지 못한다면 나중에 기술 부채가 커질 수 있습니다. 그렇기 때문에 훌륭한 서비스를 만들기 위해서는 초기에 잘 설계를 해야합니다.

요약

  1. 필요하다면 모든 것은 데이터이다.
  2. 데이터에는 정형 데이터와 비정형 데이터가 있다.
  3. 데이터베이스는 데이터의 집합이다.
  4. MySQL은 관계형 데이터베이스 관리 시스템이다.

마치며

관계형 데이터베이스에 대해서 이해가 되셨나요? 앞서 말했듯 MySQL은 이런 관계형 데이터베이스를 관리하는 하나의 프로그램(시스템)입니다. 이런 프로그램은 MySQL 외에도 Oracle, PostgraSQL, MariaDB 등 많습니다. 다음 장에서는 MySQL을 설치하는 방법을 알아봅시다.

지적, 수정사항에 대해서

Github 계정이 있으신 분들은 Issue에 지적사항을 등록해주시거나 직접 수정하여 Pull request를 주시면 반영하도록 하겠습니다.
Github 계정이 없으신 분들은 kciter@naver.com를 통해 지적사항을 보내주세요. 😄

라이센스

Public Domain Mark

이 문서는 CC0 라이센스를 따릅니다.

특허권 또는 상표권은 CC0에 의해 영향을 받지 않으며, 퍼블리시티권 및 프라이버시권 등 저작물 자체에 대해 또는 저작물 이용에 대해 타인이 갖는 권리 또한 영향을 받지 않습니다.

달리 정하지 않은 한, 본 저작물의 인증자는 관련법에서 허용하는 최대 한도 내에서 저작물에 대해 아무런 보증도 하지 않으며 저작물의 모든 이용에 관한 어떠한 책임도 지지 않습니다.

저작물을 사용하거나 인용할 때 저자나 인증자로부터 승인을 받았다는 뜻을 시사하여서는 안됩니다.