데이터베이스/데이터베이스 기초지식

데이터베이스란 무엇인가?

monsangter 2022. 11. 17. 04:30

데이터베이스란?

 

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

항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높인다.

즉 자료파일을 조직적으로 통합하여, 자료 항목의 중복성을 없애고, 자료를 구조화 하여 기억시켜 놓은 자료의 집합체라고 할 수 있다.

 

 

왜 사용하는가?

 

프로그램을 만들다보면 사용자들에 의해 생성된 데이터,

프로그래머가 필요에 의해 프로그램에 넣어 놓은 데이터등 필연적으로 많은 데이터들이 생성되는데,

DB를 사용하지 않으면 이 데이터는 프로그램을 종료하는 순간, 페이지를 새로고침 하는 순간 전부 날아가게 된다.

이런 현상을 방지하기 위해, 데이터들을 데이터베이스에 넣고 보관하는 방법을 사용한다.

 

 

데이터베이스 관리 시스템(DBMS). 왜 DB체제로 바뀌었는가?

 

데이터베이스는 응용 프로그램과는 다른 별도의 미들웨어에 의해 관리되는데,

이러한 미들웨어를 데이터베이스 관리 시스템이라고 한다.

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

이 이전에는 데이터를 응용프로그램을 통해 파일 시스템으로 관리 했었다.

예를들어 쇼핑몰의 경우. 고객관리, 주문관리 프로그램이 각각 존재하여, 각각 데이터를 파일로 저장해 관리했다.

하지만 이런 파일 기반 관리 시스템에서는 데이터 중복, 데이터 불일치등의 문제가 발생했다.

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

 

 

데이터 불일치 문제?

 

파일 시스템 하에서는 파일을 수정하는 도중에 해당 파일을 불러온다면, 데이터 동기화 문제가 발생하여 데이터 불일치 문제가 발생할 수 있었다.

 

 

DBMS의 특징?

 

파일 시스템의 문제점을 해결하기 위해 만들어졌기 때문에, 파일 시스템의 단점들을 극복한 것이 dbms의 장점이라 할 수 있다.

독립성, 무결성, 보안성, 일관성, 중복최소화

 

 

1.데이터의 독립성

 

파일 시스템은 데이터와 응용프로그램이 상호의존관계에 있다.

파일 시스템은, 응용프로그램의 기능을 확장하려면 파일의 구조를 재조직해야 한다

또 반대로 파일의 구조가 바뀌면 영향을 받는 모든 응용프로그램을 수정해야한다.

반면 DBMS하에서는

DB사이즈를 늘리거나, 데이터 파일을 새롭게 추가하더라도 관련 응용 프로그램을 수정할 필요가 없다.

(물리적 독립성)

또 데이터 베이스는 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있기 구조가 바뀌어 응용프로그램이 수정해야하는 일이 일어나지 않는다.

(논리적 독립성)

 

 

2.데이터의 무결성

 

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

여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 차단한다.

입력 조건에 맞지 않는 입력값은 저장할 수 없도록 방지하는 기능이 이에 해당한다.

(파일 시스템은 응용 프로그램 별로 제약 조건을 하나하나 처리해야하기 떄문에 무결성 유지가 어렵다)

 

 

3.데이터의 보안성

 

계정관리 또는 접근 권한 설정을 통해, 허가된 사용자만 DB로 접근할 수 있도록 보안을 구현한다.

(파일 시스템은 파일 단위로 권한을 설정하기 때문에, 사용자별 접근제어가 어렵다)

 

 

4.데이터의 일관성

 

연관된 정보를 통합된 논리구조로 관리함으로써, 하나의 데이터만 변경하거나, 일부데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.

(파일 시스템에서는 중복데이터가 존재하고, 또 중복데이터중 일부만 변경된다면, 중복 데이터간 불일치가 발생할 수 있다)

 

 

5.데이터의 중복 최소화

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

(파일 시스템은, APP별로 데이터를 파일로 관리하기 때문에 같은 데이터가 여러 파일에 저장되어 데이터 중복문제가 발생할 수 있다)

 

 

DBMS의 종류

 

시간이 지남에 따라 새로운 모델들이 기존 DBMS모델의 단점을 보완해가며

계속해서 제시되어 왔다.

 

1960~

계층형 db :

처음 구성한 후 변경하는 것이 상당히 까다롭다.

지금은 사용하지 않는 형태이다.

 

1970~

네트워크형 db :

계층형의 문제점을 개선하여 등장했다.

다음 그림을 보면 하위에 있는 구성원 끼리도 연결된 구조인 것을 확인할 수있다.

하지만 잘 활용하기 위해선 프로그래머가 모든 구조를 이해해야 작성이 가능하다는 단점이 존재한다.

지금은 거의 사용하지 않는 형태이다.

 

관계형 db : RDB

 

1980~

객체 지향형 db : OODB

 

 

1990~

객체 관계형 db : ORDB

 

 

2000~

NoSQL

 

 

2010~

NewSQL

 

현재 쓰이는 DBMS는 어떤 것인가?

 

현재 사용되는 DBMS들은 관계형 DBMS가 가장 많은 부분을 차지한다.

stack overflow 2021 survey