AI & Data를 활용하는 기술경영자

Database Management System(DBMS) 본문

Data Engineering

Database Management System(DBMS)

Data_Lover 2022. 11. 7. 13:44
728x90

네이버 edwith 강의인 데이터베이스를 듣고 정리한 것입니다.

DBMS 탄생 이전의 데이터 저장

주로, file system을 활용해서 데이터를 저장했으나 이는 비효율적인 측면과 단점이 존재했다.

Data redundancy and inconsistency(데이터 중복과 불일치)

여러 명의 프로그래머가 응용 프로그램을 만들고 응용 프로그램에서 사용할 데이터가 저장된 파일 시스템이 만들어질 경우, 프로그래밍 언어가 다르게 구성이 되었다면, 프로그램들이 저장하는 파일의 포맷이 달라질 수 있다.

그러한 이유로, 다수의 파일은 여러 형식을 갖을 수 있게 되어서 같은 내용의 데이터나 정보가 여러 파일에 중복 저장 혹은 서로 다른 형식의 파일로 저장되는 불일치가 발생하낟.

Difficulty in accessing data(데이터 접근성이 어려움)

새로운 형식의 데이터가 필요할 경우 새로운 프로그램을 다시 작성을 해야한다. 즉, 새로운 task가 나올 때마다 새로운 프로그램을 만들 경우 비효율적일 뿐만 아니라 접근하는 방식이 점점 까다로워질 수 있다.

Data isolation(데이터 고립)

데이터 간의 유사도가 높은 것들이 하나의 파일에 존재하지 않고, 여러 파일에 정보가 흩어지게 되며 추가적으로, 각각의 다른 파일 형식을 가지고 있을 수 있다. 그렇게 되면, 원하는 데이터를 검색하기 위해서 새로운 프로그램을 다시 작성하는 비효율적인 현상이 발생한다.

즉, 데이터 공유도 어려워지게 되어서 고립 상태에 빠지게 된다.

Integrity problem(무결성 제약조건)

데이터베이스에 저장된 데이터의 값은 일정한 형식의 제한 조건을 따랴아 한다. 이것이 생긴 이유는 부적절한 데이터가 입력되는 것을 막기 위함이므로, 각 컬럼에 대한 여러 가지 규칙이라고 할 수 있습니다. 그러나, 파일 시스템은 데이터가 옳지 않게 들어가도 막을 수 없는 단점이 있다.  설령, 만들기 위해서 여러 조건을 설정한다면 1대1 대응으로 프로그램을 만들어야 하기에 기하급수적으로 늘어나게 되는 말도 안되는 현상이 일어나게 된다.

Atomicity of updates(업데이트 어려움)

데이터를 쌓다보면 중간 중간 생기는 업데이트가 자주 있는데 파일 시스템의 경우는 그럴 수 없다는 단점이 있다. 왜냐하면, 이름 그대로 원자는 더 이상 나눠지지 않는 것인데 파일 시스템으로 구성된 데이터베이스는 하나의 작업이 여러 개로 나누어지지 않고, 모두 수행이 되거나 모두 수행이 되지 않아야 한다는 것으로 all or nothing이라고 표현이 된다.

그러므로, 만약에 파일 시스템인 상태에서 부분적으로 업데이트가 일어났을 때 error가 나게 되면서 부분적으로 업데이트가 수행이 되어서 데이터의 일관성이 깨지는 상태가 발생하게 됩니다.

Concurrent access by multiple users(동시 접속이 어려움)

여러 명의 사용자가 동시에 데이터 접근하여 사용할 수 있는 것을 의미하는데 이러한 동시 접속은 응답 시간을 줄여주고 성능을 높이기 위해선 꼭 필요하지만 동시 접속 제어를 하지 못할 경우 일관성이 깨지는 상태가 됩니다. 

위에서 설명한 것처럼, 파일 시스템은 동시에 데이터 업데이트도 불가능하고 공유도 불가능하기에  동시 접속 시 생기는 상황을 컨트롤하지 못합니다. 그러므로, 일관성이 없는 상태가 되어버린다.

Security problems(보안 문제)

보안 문제는 주로 접근 권한과 밀접한 연관이 있는데 데이터베이스의 같은 경우 일부 ~ 전체까지 권한 부여가 가능하지만 파일 시스템은 '전체'만 접근이 가능하게 되어서 파일의 일부분만 사용하게 해주지 못하는 단점이 있다. 

 

Database

주요 목적

데이터베이스를 사용하는 대부분의 유저는 컴퓨터를 잘 다루는 사람이 아닐 것이기에 데이터 추상화 뷰를 제공하는 것이 목적입니다. 이 의미는 데이터베이스의 복잡한 구성도를 모두 보여주는 것이 아닌 몇 단계의 추상화를 통해서 사용자 인터페이스를 단순화해 주어야 한다는 것이다. 그래서, 개발자들이 API를 통해서 많은 작업을 줄이고 가능한 많은 인터페이스를 사용해서 데이터베이스의 세부 사항을 줄이는 것입니다.

 

그 결과, 사용자는 데이터베이스를 편히 사용할 수 있게 되고, 이로 인해서 사용자는 어떻게 데이터가 저장되고 유지되는지에 대한 Flow는 알 수 없습니다.

데이터베이스의 추상화 단계

Physical level

물리적 저장 장치의 관점에서 바라보는 단계로 어떻게 레코드가 저장되는지를 기술하는 것이고, 데이터베이스 시스템은 파일 시스템 위에 만들어져서 시스템의 가장 아래 단계가 물리적 저장 장치와 인접해 있습니다.

Logical level

어떤 데이터를 데이터베이스에 저장할 것이고, 데이터들 사이의 관계를 기술하는 것이다. 이 단계에선 데이터베이스를 조직 전체에서 바라보는 단계로 데이터베이스 관리 시스템이나 관리자의 관점에서 모든 사용자에게 필요한 데이터를 통합한 전체 데이터베이스의 논리적 구조를 볼 수 있다. 

이 단계에선, 데이터베이스의 모든 데이터가 있다고 보면 됩니다. 그래서, 데이터에 대한 논리적인 관계만 고려할 뿐 어떻게 저장되는지는 생각하지 않기에 비교적 간단한 데이터 구조를 사용해서 기술한다.

View level

각각의 응용 프로그램은 사용의 편리함과 보안을 위해서 전체 logical structure를 갖지 않기에 상세한 부분은 사용자에게 숨겨지고 응용 프로그램을 통해서 필요한 정보만을 볼 수 있게 합니다.

 

데이터베이스의  스키마와 인스턴스

데이터베이스의 전체적인 설계를 스키마라고 하는데, 시간이 지남에 따라 계속해서 정보가 삽입되고 삭제되면서 변화합니다.

이러한 과정을 거치면서 저장되는 정보들을 인스턴스라고 합니다.

데이터베이스의  스키마

데이터베이스의 구조가 어떻게 되었는지를 기술하는 것으로 프로그램에서 데이터 타입이 선언하는 변수가 어떤 타입을 갖고 있는지 정의해주는 것입니다. 

예를 들어, 데이터끼리의 관계로 구성이 된다면 정수 타입의 변수에는 정수 값만 저장되는 것과 같이 정보를 가지는 스키마를 설계하면 저장이 가능해집니다. 

 

추상화 단계에 따라서 스키마는 두 가지의 종류가 있습니다.

피지컬 스키마는 물리적 단계에서 데이터 베이스를 설계하는 것이고 로지컬 스키마는 로지컬 레벨에서 데이터를 설계하는 것이다.

데이터베이스의  인스턴스

특정 시점에서 데이터베이스에 저장되어 있는 실제 내용을 의미하는 것으로 변수의 값과 유사한데 변수는 타입이 동일한 값은 어떤 값이든 저장하고 계속 바뀌는 것처럼 데이터베이스의 값도 계속 변화가 가능하다.

 

데이터베이스의  Physical Data Independence

로지컬 스키마가 피지컬 스키마에 의존하지 않아서 피지컬 스키마를 고쳐도 로지컬 스키마를 수정할 필요가 없다는 것이다.

그러나, 피지컬 레벨에서 변화가 있어도 로지컬 스키마는 변하지 않을 수 있지만 로지컬 레벨에서 스키마가 변하면 응용 프로그램들은 로지컬 스키마를 기반으로 작성이 되기 때문에  응용 프로그램들은 수정이 되어야 합니다.

 

물론, 여러 레벨과 구성 요소들의 인터페이스가 독립적으로 잘 정의되어야 특정 부분의 변화가 다른 부분에 심각한 영향을 주지 않을 수 있지만 무튼, 위와 같은 다양한 경우를 고려해서 데이터를 설계 해야 합니다.

DBMS란?

기업에서 생산되는 데이터를 일정한 형식으로 저장한 것

관련성이 높은 데이터끼리 모으고, 이러한 데이터를 접근하기 위한 프로그램을 만들 시 편리하고 효율적이어야 한다.

Database Applications

  • 은행: Transactions 관리
  • 항공:  예약 및 항공 운항 정보 관한 시스템 내용
  • 대학: 학생이 소속되어 있는 과 등의 등록 정보 및 성적
  • 쇼핑몰: 고객, 상품, 구매 이력, 추천된 상품 등등 소비자에게 도움이 되는 정보
  • 제조: 생산, 상품, 제조 과정...등등의 정보
  • HR: 고용된 형태, 월급, 세액 등등의 정보

위에서 보는 것처럼 데이터베이스 시스템은 우리 삶 속에 정말 많이 녹아들어 있고 그 규모는 클 것이라고 예측할 수 있다.

 

 

728x90

'Data Engineering' 카테고리의 다른 글

Introduction Relational Model(1)  (0) 2022.11.25
Data Models  (0) 2022.11.23
Batch Processing  (0) 2022.11.01
Stream Processing  (0) 2022.11.01
Event Streaming  (1) 2022.11.01