본문 바로가기

카테고리 없음

데이터베이스 (DB, database) 란

데이터베이스란?

여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임이다.

 

데이터베이스 관리 시스템 (DBMS, databaseManagementSystem)

다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어들을 의미한다.

이전에는 파일 시스템을 이용해 데이터를 관리하였다.

파일 시스템은 응용 프로그램을 이용해 데이터를 파일로 관리하는 것이다.

파일을 기반으로 데이터를 관리하게 되면 데이터 중복, 데이터 불일치 등 문제가 발생하는데,

이러한 단점을 보완하기 위해 데이터베이스가 생겼다.

 

특징

1. 데이터의 독립성

- 물리적 독립성 : 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 

  새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다.

- 논리적 독립성 : 데이터베이스는 다양한 응용 프로그램의 논리적 요구를 만족시킬 수 있다.

2. 데이터의 무결성

여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로

데이터의 유효성 검사를 통해 데이터의 무결성을 구현한다.

3. 데이터의 보안성

허가된 사용자만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록

계정관리 또는 접근 권한을 설정한다.

4. 데이터의 일관성

연관된 정보를 논리적 구조로 관리함으로써 어떤 하나의 데이터만 변경햇을 경우 발생할 수 있는

데이터의 불일치성을 배제할 수 있다.

5. 데이터의 중복 최소화

데이터베이스는 데이터를 통합해서 관리함으로써 데이터 중복 문제를 해결할 수 있다.

 

종류

1. 계층형 (Hierarchical DataBase)

데이터 간의 관계가 트리구조다. 부모 자식 관계로 표현되며 1:다로 구성될 수 있다.

데이터를 세그먼트(레코드)단위로 관리하며 세그먼트 간 계층을 트리구조로 관리한다.

구조가 간단하고 구현, 수정, 검색이 쉽지만 다대다 관계 처리가 불가능하고, 구조 변경이 어렵다.

2. 네트워크형 (Network DataBase)

계층형 데이터베이스의 단점을 보완하여 데이터 간 다대다 구성이 가능한 망형 모델이다.

계층 구조에 링크를 추가해 유연성과 접근성을 높였다.

구조가 복잡해 유지보수가 어렵다.

3. 관계형 (Relational Database)

키와 값으로 이루어진 데이터들을 행과 열로 구성된 테이블 구조로 단순화시킨 모델이다.

SQL을 사용해 데이터를 처리한다. 

데이터 모델링이 간단하지만 비정형 데이터들을 다루거나 실시간 분석에는 적합하지 않다.

4. 객체 지향형 (Object-Oriented)

객체지향 프로그래밍 개념에 기반하여 만든 데이터베이스 모델이다.

정보를 객체의 형태로 표현한다. 객체지향 프로그래밍 개념(클래스, 상속 등)을 사용할 수 있다.

비정형 데이터들을 데이터베이스화 할 수 있도록 만들어진 모델이다.

멀티미디어 데이터 지원이 가능하지만 SQL쿼리를 사용할 수 없고

검색이나 대규모 트랜잭션 처리에서 성능이 떨어지는 단점이 있다.

5. NoSQL

Not Only SQL의 약자로 SQL 뿐만 아니라 다양한 특성을 지원한다.

데이터 간에 관계를 정의하지 않는 데이터베이스 모델로

기존의 RDBMS의 복잡도와 용량의 한계를 극복하기 위한 목적으로 만들어졌다.

비정형 데이터 처리에 유리하지만 스키마 변경이 불가능해 데이터값에 문제가 발생하면 감지가 어렵다.

6. NewSQL

New와 SQL의 합성어로, RDBMS의 SQL과 NoSQL의 장점을 결합해 

관계형 모델, 트랜잭션 지원 및 확장성과 고가용성을 모두 만족시키려는 목적에서 만들어진 모델