Search

데이터베이스의 종류

데이터베이스란

데이터베이스(Database)는 사용자나 프로그램에서 사용하기 위해 저장 및 관리하는 데이터 집합이다.
데이터베이스는 목적에 맞춰 대용량 데이터를 저장하고 관리할 수 있으며 다음과 같은 특징이 있다.
실시간 접근
데이터베이스에 언제든지 접근해 필요한 처리를 할 수 있다.
동시 공유
여러 사용자가 데이터베이스에 접근할 수 있다.
지속적 변화
데이터의 갱신, 삽입, 삭제 등을 통해 계속해서 변화한다.
내용 기반 참조
데이터의 값을 이용해 데이터에 접근할 수 있다.
데이터베이스는 다음과 같은 개념적 요소로 구성한다.
개체(entity)
데이터로 표현하려는 대상을 의미하며 하나 이상의 속성으로 구성한다.
속성(attribute)
개체의 특성과 상태를 나타내며 데이터베이스를 구성하는 가장 작은 논리적 단위다.
관계(relationship)
개체 간에 어떤 관련이 있는지를 나타내며 주로 동사로 표현한다.
데이터베이스의 전체적인 구조와 제약 조건을 명시하기 위해 스키마(schema)를 사용한다.
스키마는 데이터의 구조와 표현 방식, 제약 조건을 정의하는 역할을 한다.
스키마의 종류
내부 스키마
사용자 측면에서 데이터베이스의 전체 구조
개념 스키마
데이터베이스의 전체 구조
외부 스키마
물리적 저장장치 측면에서 데이터베이스의 구조

관계형 데이터베이스

관계형 데이터베이스(Relational Database)는 데이터가 2차원 테이블에 저장되며 데이터의 구조와 데이터 간 종속성 등을 알 수 있다.
스키마를 바탕으로 데이터베이스의 구조를 정의하는데 스키마는 개체-관계 다이어그램(Entity-Relation Diagram) 또는 문자열로 표현할 수 있다.
관계형 데이터베이스에서 데이터의 개념적 모델릴레이션(relation)이라고 하고 릴레이션을 실제로 구현한 개체테이블(table)이라고 한다.
관계형 데이터베이스는 테이블을 이용해 데이터의 종속성과 관계를 나타낸다.
테이블은 키와 값으로 이루어진 2차원 형태로 행과 열로 구성된다.
(row)은 데이터 묶음을 뜻하며 튜플(tuple) 또는 레코드(record)라고도 한다.
(column)은 이름과 타입을 가진 데이터의 속성(attribute)으로 필드(field)라고도 한다.
(key)는 테이블의 행을 식별할 수 있는 속성으로 테이블의 열에 속한다.
(value)은 속성이 갖는 실제 데이터이다.

NoSQL 데이터베이스

NoSQL(Not Only SQL)은 비관계형 데이터베이스로 보다 유연한 형태의 데이터베이스를 의미한다.
NoSQL 데이터베이스는 대용량 데이터를 조회할 때 속도 면에서 유리하다.
또한 수평적 확장성이 좋아 서버를 추가해 데이터베이스를 확장하기도 쉽다.
그래서 데이터 확장과 대용량 데이터 조회가 빈번히 일어나는 경우에 사용하면 좋다.
계층형 데이트베이스와 네트워크형 데이터베이스
계층형 데이터베이스
데이터 간에 부모-자식 관계를 갖는 트리 형태의 데이터베이스다.
개체 간 1:N 관계를 갖기 때문에 일대다 관계라고도 한다.
네트워크형 데이터베이스
트리 형태의 데이터베이스이나 계층형 데이터베이스와 달리 개체 간에 N:M 관계를 갖는 그래프 구조를 이룬다.