본문 바로가기

IT/이게뭐야?

데이터베이스

반응형

안녕하세요.

오늘은 데이터베이스에 대해 알아보겠습니다.

 

 

1. 데이터베이스(Database)란?

단순하게는 데이터의 집합을 의미합니다.

일반적으로는 단독적으로 서비스되지 않으며

데이터베이스 관리 시스템(DBMS)과 함께 제공 됩니다.

 

여기서 데이터(Data)란 단순한 관찰이나 측정 등을 통해

현실 세계로부터 수집된 사실이나 값을 의미합니다.

이런 데이터 중에서도

조직화되고 체계화 된 데이터로서 의사 결정권자에게

판단 근거를 제공하는 것을 '정보'라고 합니다.

 

여기서 데이터베이스의 '데이터'는 바로 '정보'로서의 데이터를 의미하며

우리가 흔히 말하는 데이터베이스는 '정보의 집합'을 의미합니다.

 

 

2. 관계형 데이터베이스

관계형 데이터베이스는 현재 가장 널리 쓰이고 있는 형식의 데이터베이스이며

데이터를 행과 열로 이루어진 표 형태로 저장합니다.

 

데이터의 종속성을 관계(Relation)로 표현하며

구조화 질의 언어(SQL)라는 표준 언어를 통해

데이터베이스를 관리합니다.

 

관계형 데이터베이스는 기본적으로

신뢰성이 높고 분류, 정렬, 탐색 속도가 빠릅니다.

또한 데이터가 입력되지 않는 경우는 있어도 잘못 입력되는 경우는 없습니다.

이를 통해 데이터의 무결성을 보장할 수 있지만

스키마를 수정하기 힘들고, 데이터를 표 형태로만 출력가능합니다.

 

-구조화 질의 언어(SQL)

시퀄이라고도 불리며 관계형 데이터베이스를 이용하기 위한 표준 언어로써

간단하게 말하면 데이터베이스와 통신하여 원하는 결과를 얻기위해

대화하는 언어라고 할 수 있습니다.

관계형 데이터베이스에서 기본적으로 제공하지만

NoSQL 계열의 데이터베이스에서는 사용하지 않습니다.

 

-스키마

데이터베이스를 구성하는 레코드의 크기, 키(Key)의 정의, 레코드 간의 관계, 검색 방법 등을

정의한 것이 바로 스키마입니다.

데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 나타내는 메타데이터의 집합이며

데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의합니다.

 

-무결성

데이터베이스에 저장된 데이터 값과

그것이 표현하는 현실 세계의 실제값이 일치하는 정확성을 의미합니다.

중앙 통제에 의한 데이터 갱신으로써 무결성을 유지할 수 있으며 

모든 갱신 과정에서 검증단계를 거치도록 통제하여 무결성을 유지합니다.

 

 

3. 비관계형 데이터베이스

더 다양한 데이터를 다루기 위해 비관계형 데이터베이스가 등장했는데

표 형테의 정형화된 데이터를 다루는데 특화된 관계형 데이터베이스와는 달리

비관계형 데이터베이스는 비정형의 다양한 데이터를 다루는데 특화되어있습니다.

분산 저장 시스템을 지원하여 빅데이터 등 막대한 크기의 데이터를 처리하는데 특화되어있으며

분산 저장의 특징인 안정성도 그대로 계승하고 있습니다.

또한 데이터간의 연결에 제한이 없어서 유연한 데이터 모델링이 가능하며

유지 보수 및 확장 역시 용이합니다.

 

 

4. 데이터베이스의 특징

(1) 자기 기술성

데이터 뿐만이 아니라 데이터베이스에 대한 정의나 설명까지 기술되어 있습니다.

따라서 데이터의 구조를 직접 알고 있지 않아도 접근이 가능하며

데이터의 삽입 및 삭제를 데이터/구조적 종속 없이 가능하게 해줍니다.

 

(2) 데이터의 독립성

데이터베이스는 자기기술성을 가지므로

저장 구조 등을 수정하여도 응용프로그램에 영향을 미치지 않습니다.

 

(3) 추상화

저장된 데이터에 대한 상세한 정보와는 별개인 개념적 표현을 제공하여 사용자가 더욱 쉽게 접근하도록 하며

복잡한 데이터베이스의 구조에 대한 정보를 감추고, 각 사용자에게 뷰(View)를 제공합니다.

 

(4) 동시성 제어

다수의 사용자에게 동시 접근을 허용합니다.

 

 

5. 데이터베이스 관리 프로그램(DBMS)

데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능을 제공하는 응용 프로그램입니다.

DBMS는 다음과 같은 특징을 갖고있습니다.

 

(1) 중복제어

동일한 데이터가 여러 위치에 중복 저장되는 현상을 방지합니다.

 

(2) 접근 통제

사용자마다 다양한 권한을 부여하며, 권한에 따라 접근을 통제합니다.

 

(3) 관계 표현

서로 다른 데이터간의 다양한 관계를 표현할 수 있는 기능을 제공합니다.

>>샤딩/파티셔닝 : 구조 최적화를 위해 작은 단위로 쪼개는 기능을 제공합니다.

 

(4) 무결성 제약 조건

무결성에 관한 제약 조건을 정의/검사하는 기능을 제공합니다.

 

(5) DBMS의 종류

-OracleDB

오라클(Oracle)사에서 판매하는 관계형 데이터베이스 관리 시스템입니다.

사용 소프트웨어로써 은행 등 대기업에서 많이 사용합니다.

오랜 역사를 기반으로 막강한 신뢰성을 보유하고 있으며

데이터베이스 시장에서 오랜시간 1위를 유지하고 있습니다.

 

-MySQL

오픈소스로 공개되어 무료버전이 많이 쓰이며, 유료 버전도 그리 비싸지 않습니다.

오라클 사에서 소유하고 있으며 오픈소스 진영에서는 상당히 유명한 소프트웨어입니다.

 

-MariaDB

MySQL이 오라클에 인수된 후 MySQL의 기술진이 오라클을 나와서 만든 프로그램입니다.

개발 속도와 업데이트 속도가 MySQL을 추월하였으며 점차 MySQL을 대체해 가는 추세입니다.

 

-ProstgreSQL

OracleDB, MySQL, MicrosoftSQL에 이은 점유율 4위의 프로그램이며

같은 오픈소스인 MySQL에 비해 SQL표준을 더 잘 지원하고 기능역시 더 강력합니다.

 

-MACHBASE

산업IoT 시장에 특화된 국산 상용 DBMS로써

로그성 머신 데이터를 실시간으로 저장, 분석할 수 있는 실시간 시계열DBMS입니다.

스마트 팩토리나 빅 데이터 로그 수집에 특화되어있습니다.

 

 

6. 데이터베이스의 구조

(1) 외부단계 (External Level)

외부단계 혹은 뷰 단계는 가장 추상화된 층으로 개별 사용자 혹은 프로그램이 접근하는 층입니다.

사용자는 뷰 또는 SQL 쿼리를 통해 외부 스키마를 구성할 수 있습니다.

외부스키마는 아래 단계의 개념스키마로부터 생성되거나 사용되므로 서브스키마라고도 불립니다.

한개의 개념 스키마로부터 여러개의 서브 스키마가 만들어질 수 있습니다.

 

(2) 개념단계(Conceptual Level)

개념 스키마가 존재하는 단계입니다.

개념 스키마는 논리스키마(Logical Schema)라고도 하는데 어떤 데이터들이 기억되어야 하는지,

그 데이터들 간에는 어떤 관계가 있는지를 정의합니다.

 

(3) 내부 단계(Internal Level)

내부 단계는 데이터들이 실질적으로 어떻게 저장되어 있는지에 관심이 있는 층으로 내부 스키마(Internal Schema)를 가집니다. 내부 스키마는 데이터베이스의 물리적인 저장구조를 기술하므로 물리스키마(Physical Schema)라고도 합니다.

 

 

7. 데이터베이스 모델링

(1) 개념적 데이터 모델

사용자에 초점을 맞추는 데이터 모델로 사용자가 데이터를 어떻게 인식하는지에 관심을 둡니다.

어떤 데이터들이 있고 각 데이터의 특징, 데이터 간의 관계 등을 정합니다.

 

(2) 논리적 데이터 모델

컴퓨터와 사용자 둘 다를 고려하는 데이터 모델로 사용자가 이해하면서 실제로 저장 될 수 있는 구조를 설계합니다.

 

(3) 물리적 데이터 모델

컴퓨터에 초점을 맞춘 모델로 데이터가 어떻게 컴퓨터에 저장되는지에 관심을 둡니다.

 

반응형

'IT > 이게뭐야?' 카테고리의 다른 글

DDNS(Dynamic DNS)  (0) 2020.04.21
지그비  (0) 2020.04.04
블루투스 메쉬  (0) 2020.03.24
빅데이터  (0) 2020.03.08
블록체인이란 ?  (0) 2020.03.03