1. 데이터베이스란?

데이터 : 컴퓨터 안에 기록되어 있는 숫자

데이터베이스 : 데이터의 집합


넓은 의미에서 컴퓨터 안에 기록되는 모든 것이라고 생각할 수 있고 일반적으로 통용되는 데이터베이스의 개념은 특정 데이터를 확인하고 싶을 때 간단하게 찾아낼 수 있도록 정리된 형태를 가리킵니다.


데이터베이스 내의 데이터는 영구적으로 보존되어야 합니다. 주기억장치에만 데이터를 저장한다면 저장하는 순간 데이터는 날아갑니다. 그러면 영구적이라고 할 수 없습니다. 그래서 데이터베이스의 데이터는 하드디스크와 같은 비휘발성 저장장치에 저장합니다.


 데이터베이스는 데이터센터에 있을 수 있지만 우리의 주변에도 밀접하게 있습니다. 웹서버를 통해서 데이터베이스에 접근할 수 있고, 우리가 사용하는 휴대전화에도 데이터베이스가 사용되고 있습니다. 이처럼 데이터베이스는 다양한 시스템에서 사용되며 일상생활과도 밀접히 관련되어 있습니다.


  1. DBMS가 필요한 이유

DB : Database의 약자

DBMS : 데이터베이스 관리 시스템. DB를 효율적으로 관리하는 소프트웨어를 말한다.


DBMS의 필요 이유는 아래와 같습니다.


  • 생산성

    • 시스템 개발 과정에서의 생산성 향상을 도모할 수 있습니다.

    • 데이터 검색, 추가, 삭제, 갱신과 같은 처리를 기본 기능으로 제공합니다.

  • 기능성

    • 데이터베이스를 다루는 기능을 많이 제공합니다.

    • 복수 유저의 요청에 대응하거나, 대용량의 데이터를 저장하고 고속으으로 검색하는 기능을 제공합니다.

    • 데이터베이스 관리 기능을 사용자가 확장할 수 있어서 유연하게 시스템을 개발할 수 있습니다.

  • 신뢰성

    • 대규모 데이터베이스는 많은 요청에 대응할 수 있도록 하드웨어를 여러 대로 구성하여 신뢰성을 높이는 동시에 성능향상을 도모합니다.

    • DBMS는 컴퓨터를 여러대를 두고, 소프트웨어를 통해 확장성(Scalability)과 부하분산(Load Balancing)을 구현합니다. (클러스터 구성 또는 스케일 아웃 이라고 부른다.)


  1. SQL

DBMS를 이용하면 간접적으로 데이터베이스를 참조하거나 데이터를 추가, 삭제, 갱신을 할 수 있다. 이러한 행위를 위해서는 사용자와 DBMS간에 대화를 해야하는데 이때 이용하는 것이 SQL이다. SQL은 관계형 데이터베이스 관리 시스템(RDBMS)을 조작할 때 사용합니다.

  1. SQL이란?

SQL은 IBM이 개발한 SEQUEL이라는 관계형 데이터베이스 조작용 언어를 기반으로 만들어 졌습니다. ISO 등에 표준화가 진행되어 C언어나 자바와 같이 표준 언어입니다.

  1. SQL 명령의 종류

    • DML(Data Manipulation Language)

      • SQL의 가장 기본이 되는 명령어

      • 추가, 삭제, 갱신 등 데이터를 조작할 때 사용

    • DDL(Data Definition Language)

      • 데이터를 정의하는 명령어

      • 데이터베이스는 ‘데이터베이스 객체’라는 데이터 그릇을 이용하여 데이터를 관리하는데 이러한 객체를 만들거나 삭제하는 명령어

    • DCL(Data Control Language)

      • 트랜잭션을 제어하는 명령과 데이터 접근권한을 제어하는 명령

  2. SQL 방언과 표준화

RDBMS는 처음부터 SQL 명령어를 이용하여 데이터베이스를 조작하도록 설계 되었습니다. 하지만 데이터베이스 종류가 다양해지고 기능을 확장하면서 특정 데이터베이스 제품에만 사용되는 고유방언이 생겨났습니다.

예를 들어 LEFT JOIN의 경우 Oracle에서는 (+)를 이용하여 지정하는데 SQL Server에서는 *= 연산자를 이용합니다.

이와 같이 방언을 사용할 경우 호환이 되지 않는 경우가 생기므로 방언대신에 표준 SQL을 사용하는 것이 좋습니다. ISO나 ANSI가 결정한 ‘SQL-92’, ‘SQL-99’, ‘SQL-2003’ 등이 표준 SQL입니다.

  1. 데이터베이스의 종류

    1. 저장 방법에 따른 분류

      • 계층형 데이터베이스

        • 역사가 오래된 데이터베이스

        • 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식

        • 하드디스크나 DVD 파일시스템을 계층형 데이터베이스라고 볼수 있다.

        • 현재는 DBMS로 사용되지 않음

      • 관계형 데이터베이스

        • 관계 대수(relational algebra)라는 것에 착안하여 고안한 데이터베이스

        • 행과 열을 가지는 표 형식 2차원 데이터를 저장하는 형태의 데이터베이스

        • 2차원 표들을 저장해 놓고 각각의 표에 이름을 붙여서 관리

      • 객체지향 데이터베이스

        • 가능하면 객체 그대로를 데이터베이스의 데이터로 저장하는 것

      • XML 데이터베이스

        • XML 형식으로 기록된 데이터를 저장하는 데이터베이스

        • SQL 명령을 사용할 수 없다.

        • XQuery라는 전용 명령어를 사용

      • 키-밸류 스토어(KVS)

        • 키와 그에 대응하는 값이라는 단순한 형태의 데이터를 저장하는 데이터 베이스

        • NoSQL(Not Only SQL)이라는 슬로건으로부터 생겨난 데이터베이스로, 열지향 데이터 베이스라고고 불림

    2. 데이터베이스 제품(RDBMS)

      • Oracle

        • 오라클에서 개발한 제품

        • 많은 시스템에서 채택해 사용 중

      • DB2

        • IBM이 개발한 제품

        • 발표된 이래 한동안은 IBM 컴퓨터에서만 구동했다.

        • 향후 구동가능한 OS를 확장하였으나 오라클에 밀려서 시장 점유율을 확대 할 수 없었다.

      • SQL Server

        • 마이크로소프트가 개발한 제품

        • 윈도우 플랫폼에서만 동작

      • PostgreSQL

        • 오픈소스 커뮤니티가 개발한 제품

        • 기반이 되는 RDBMS는 캘리포니아 대학교 버클리 캠퍼스에서 탄생

        • 실험적인 기능, 독특한 구조

      • MySQL

        • 오픈소스 커뮤니티가 개발한 제품

        • 최초에 경량 데이터베이스라는 점을 강조하다 보니 필요한 최소한의 기능만을 갖춤

        • 향후 기능이 확장되면서 다른 RDBMS와 비교해도 부족하지 않다.

      • SQLite

        • 오픈소스 커뮤니티가 개발한 제품

        • 임베디드 시스템에서 자주 쓰이는 작은 RDBMS


+ Recent posts

티스토리 툴바