[DB] 관계형 데이터베이스란
관계형 데이터베이스 란
현재 주류를 이루는 데이터베이스
- 현재 주로 사용되어 접할 기회가 가장 많음
관계형 데이터베이스란 무엇인가
- 관계형 데이터베이스(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가지
- 운영체제
- 미들웨어 -> DBMS
- 애플리케이션
- 위 소프트웨어들은 계층성이 있음
- 한 레이어(계층)의 소프트웨어가 동작하지 않으면 상위 레이어의 소프트웨어는 설치해도 동작하지 않거나 설치조차 불가능
운영체제(OS, Operating System)
- 시스템을 동작하게 하기 위한 일종의 토대가 되는 기능을 제공하는 소프트웨어
- 상용 시스템을 개발할 때 자주 사용되는 OS 3종류
- Windows -> Windows Server 시리즈
- Linux -> Red Hat, CentOS
- 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의 조합을 선택할 때 고려 사항
- 예산
- 제품 기능
- 개발자와 운용자의 기술 조합
제품에 따라 기능이 다르다
- 제품에 따라 기능이나 조작 방법이 다른 것은 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의 차이를 명확히 알게 되었고, 시스템을 구축할 때에는 운영체제, 미들웨어, 애플리케이션이 중요한데 데이터베이스는 미들웨어로써 조합을 선정하는데 기술적인 측면 뿐만 아니라 비즈니스 측면도 생각하고 결정해야한다는 사실을 인지하게 되었습니다.