관계형 데이터베이스 란

현재 주류를 이루는 데이터베이스

  • 현재 주로 사용되어 접할 기회가 가장 많음

관계형 데이터베이스란 무엇인가

  • 관계형 데이터베이스(Relational DataBase)는 줄여서 RDB라고 표기함
    • 관계(Relational)는 2차원 표를 표기할 때 사용하는 단어
    • 데이터를 2차원 표를 사용해 관리하는 데이터베이스

관계형 데이터베이스의 이점

  • 직관적으로 이해하기 쉬운 형식으로 데이터 관리 가능
  • 프로그래밍 언어를 사용하지 않고 데이터를 조작할 수 있음

SQL 기초 지식

SQL 이란

  • SQL(Structured Query Language)은 RDB의 데이터를 조작하기 위한 언어
  • RDB에는 여러 가지 소프트웨어 제품 있는데 공통적으로 SQL을 사용함

테이블, 행, 열의 의미

테이블

  • RDB에서 2차원 표를 테이블(table)이라고 함
    • 테이블은 RDB에서 데이터를 관리하기 위한 유일한 단위

열과 행

  • 테이블은 2차원 표와 같이 열(column)행(row)이 존재

관계형 데이터베이스를 다루기 위한 사전 지식

관계형 데이터베이스의 소프트웨어

  • RDB를 사용하려면 특정 소프트웨어 제품을 설치해야함
    • Oracle, MySQL, SQL Server 같은 제품이 많이 사용됨

DBMS와 데이터베이스의 차이

  • DBMS(DataBase Management System) : 데이터베이스의 기능을 제공하는 소프트웨어
  • 관계형 데이터베이스에 한정한 것은 RDBMS
    • Relational의 R을 붙임
  • DB는 기능이나 구조를 나타내는 추상적인 개념
  • DBMS는 DB을 실현하기 위해 작성된 구체적인 소프트웨어

소프트웨어와 데이터베이스의 관계

  • SI(System Integration) : 시스템 구축을 위해 데이터베이스와 여러 소프트웨어를 조합하여 만드는 작업

  • 사용되는 소프트웨어 3가지
    1. 운영체제
    2. 미들웨어 -> DBMS
    3. 애플리케이션
  • 위 소프트웨어들은 계층성이 있음
  • 한 레이어(계층)의 소프트웨어가 동작하지 않으면 상위 레이어의 소프트웨어는 설치해도 동작하지 않거나 설치조차 불가능

운영체제(OS, Operating System)

  • 시스템을 동작하게 하기 위한 일종의 토대가 되는 기능을 제공하는 소프트웨어
  • 상용 시스템을 개발할 때 자주 사용되는 OS 3종류
    1. Windows -> Windows Server 시리즈
    2. Linux -> Red Hat, CentOS
    3. UNIX -> HP-UX, AIX, Solaris

각 OS 차이

  • Windows
    • 소비자용, 상용 시스템용 OS
    • GUI에 의한 직관적인 조작 가능
      • 마우스로 아이콘이나 윈도를 클릭하여 조작하는 것
  • Linux, UNIX
    • 상용시스템이라는 비즈니스용 OS
    • CLI로 명령을 입력받아 조작
      • 키보드로 명령프롬프트 창에 입력하여 조작하는 것
    • Linux는 UNIX 기반으로 한 무료 오픈소스 소프트웨어(OSS)
  • Linux와 UNIX는 카테고리 이름이며 실제 소프트웨어 제품은 여러 개
    • ex) Linux -> Red Hat, Debian, Ubuntu
    • ex) UNIX -> IBM의 AIX, HP사의 HP-UX, Oracle사의 Solaris

미들웨어(Middleware)

  • DB는 OS 위에 설치되어 동작함
  • OS와 DBMS의 조합을 선택할 때 고려 사항
    1. 예산
    2. 제품 기능
    3. 개발자와 운용자의 기술 조합

제품에 따라 기능이 다르다

  • 제품에 따라 기능이나 조작 방법이 다른 것은 OS나 DBMS의 공통 특징
  • 어느 한쪽 계통에는 익숙 하지만, 익숙하지 않은 계열을 다루면 효율 떨어짐
    • Windows 계열 vs Linux, UNIX 계열
    • MySQL vs Oracle
  • 조합의 자유도가 높은 것은 OS나 DBMS가 기능에 대한 표준 규칙을 따르고 이식성이 있기 때문에
  • 마이그레이션(Migration) : 하나의 조합에서 다른 조합으로 시스템을 변경하는 일

애플리케이션(Application)

  • 업무용 기능을 가진 프로그램된 소프트웨어, 사용자가 가장 빈번하게 조작하는 소프트웨어

애플리케이션을 실현하는 수단

1. 스크래치(scratch) : 직접 프로그래밍 언어로 프로그램을 작성하는 방법

  • 스크래치는 ‘처음부터’란 의미
  • 직접 만들기 때문에 꼼꼼한 서비스 가능
    • 꼼꼼히 하다보면 개발 비용이 커짐

2. 기존 애플리케이션 소프트웨어 제품(패키지, Package) 구매하는 방법

  • 기존 제품을 설치만 하면되서 비용을 줄어듬
  • 패키지 기능이 부족하여 커스터마이징 하려하면 스크래치보다 비용 비싸짐

스크래치 vs 패키지 = 양복의 맞춤 vs 기성제품

애플리케이션과 데이터베이스의 관계

  • 사용자는 DB를 직접 조작하는 것이 아닌 애플리케이션을 매개로 해서 DB에 접근하는 형태
  • 사용자가 DB를 의식하지 않아도 되는 이유
    • DB 보안을 높이기 위해
    • 업무 로직을 애플리케이션에 집중시켜 개발 or 수정 비용을 낮추기 위해

비즈니스 배경도 고려해야 하나?

  • OS와 DB의 조합은 매우 자유도가 높지만 불가능한 조합도있음
  • SQL Server는 Windows 이외의 OS와 조합하는 것이 불가능
    • ex) Red Hat + SQL Server or Solaris + SQL Server 조합 불가능
    • SQL Server의 개발사인 Microsoft사는 Windows 이외의 OS에 대응하는 구현물을 제공하지 않음
      • 시장에서 경쟁력 강화를 위해 일부러 다른 OS에서는 지원을 안함
  • OS와 DB 조합 결정 시 기술적인 측면비즈니스적인 관점도 고려해야 함
    • 현시점에서 최고라고 생각했던 조합이 수년 후에 불가능해질 수 있음
    • 마이그레이션에 따라 플랫폼을 이동하면 시간이 소비됨
    • 시스템의 토대를 이루는 OS나 미들웨어를 변경하기 쉽지 않음
    • 조합 선정에 신중한 자세로 임해야함

느낀점

  • DB와 DBMS의 차이를 명확히 알게 되었고, 시스템을 구축할 때에는 운영체제, 미들웨어, 애플리케이션이 중요한데 데이터베이스는 미들웨어로써 조합을 선정하는데 기술적인 측면 뿐만 아니라 비즈니스 측면도 생각하고 결정해야한다는 사실을 인지하게 되었습니다.

reference

데이터베이스 첫걸음