리코딩 : 데이터베이스(Database)

데이터베이스(Database) - 데이터베이스, 데이터베이스 관리시스템 - 공부 내용 정리

BreezeBm 2021. 11. 24. 20:26

Photo by  Tobias Fischer  on  Unsplash

1. 데이터베이스(Database)

 단순히 관찰하거나 측정해서 나온 결과 또는 수집된 사실이나 값을 데이터라고 한다. 그리고 데이터를 필요한 형태로 유용하게 활용할 수 있도록 처리한 결과물은 정보라고 한다.  데이터를 가공해서 정보를 만들어내는 과정을 정보처리라고한다.

 맛있는 빵(정보)을 만들려면 좋은 밀가루(데이터)가 필요하다. 좋은 정보를 얻기 위해서는 현재 상황에 맞고 필요한 정확한 데이터를 수집해야한다. 그리고 수집에서 끝나는 것이 아니라 효율적으로 저장하고 필요할 때 사용할 수 있어야 한다. 유용하게 활용할  수 있는 정보를 정확히 꺼내쓸 수 있도록 관리해주는 역할을 데이터베이스가 한다.

데이터의 종류
1. 정형 데이터
: 정해진 구조에 맞게 저장된 데이터이다. 
2. 반정형 데이터
: 구조에 맞게 저장된 데이터지만 데이터 내용안에 구조에 대한 설명이 존재한다. 그렇기 때문에 구조를 파싱하는 과정이 필요하다.
ex) HTML, XML, JSON 등..
3. 비정형 데이터
: 정해진 구조가 없는 데이터이다.
ex) 영상, 이미지, 워드, pdf 등..

 

1.1 정의

1963년 '컴퓨터 중신의 데이터베이스 개발과 관리' 심포지엄에서 공식적으로 처음 데이터베이스라는 용어가 소개되었다. 일반적으로 특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장운영 데이터의 집합이라고 정의한다. 

데이터베이스의 개념
: 공유 / 통합 / 저장 / 운영

 

- 공유

 데이터베이스는 여러 사용자가 함께 이용할 수 있어야 한다. 그렇기 때문에 사용목적이 다른 사용자들을 고려해서 데이터 베이스를 구성해야한다. 

 

- 통합

 데이터베이스는 똑같은 데이터(중복)가 여러개 있는 것을 허용하지 않는다. 효율성을 위해 의도적으로 허용하는 경우도 있지만 중복을 최소화 해야한다. 데이터가 중복되면 관리에 어려움을 겪는다.

 

- 저장

 컴퓨터가 접근할 수 있는 매체에 데이터베이스를 저장해야한다.

 

- 운영

 서비스를 운영하고 주요 기능들을 수행하기 위해서 필요하기 때문에 일시적으로 사용는 것이 아니다. 지속적으로 사용하기 때문에 유지해야하는 데이터이다.

1.2 특징

 데이터 베이스 특징은 다음과 같다. 

데이터베이스의 특징
: 내용참조 / 동시공유 / 변화 / 실시간 접근

 

- 내용 참조

데이터베이스는 저장된 주소나 위치가 아니라 데이터의 값을 참조할 수 있다. 컴퓨터에 저장된 데이터는 저장 주소를 알아야 검색이 가능하지만  데이터베이스는 데이터의 내용 조건만 알려주면 조건이 맞는 내용들이 다른 위치에 있어도 검색이 된다.

 

- 동시 공유

여러 사용자들이 다른 데이터를 동시에 사용가능하고 같은 데이터도 동시에 사용가능하다. 

 

- 변화

 데이터는 끊임 없이 변화한다. 데이터베이스에 저장이 되어있는 데이터도 이에 맞게 계속 변화 됭야 한다. 데이터를 계속 만들거나, 삭제, 수정을 통해 정확한 데이터를 유지해야한다.

 

- 실시간 접근이 가능

 데이터베이스는 사용자의 요구에 실시간으로 응답할 수 있어야 한다.

1.3 3단계 데이터베이스 구조

스키마(Schema)는 데이터베이스에 저장되는 데이터의 구조와 조건들을 명시한 것이다. 예를 들어 메뉴 정보라고 했을 때, 관련된 내용으로 카테고리, 메뉴이름, 설명(150자 제한), 맵기(5까지 제한), 가격 등과 같은 내용들이 스키마다. 그리고 스키마를 따라서 실제로 저장된 값을 인스턴스(instance)라고 한다.

 3단계 데이터베이스 구조는 데이터베이스의 복잡한 내부구조를 감추고 일반 사용자가 쉽게 이해하고 이용할 수 있도록 제안한 내용이다. 데이터 베이스를 세단계로 나누었다. 사용자의 관점에서 바라보는 외부 단계, 조직 전체에서 바라보는 개념 단계, 물리적인 저장장치의 관점에서 바라보는 내부 단계로 나뉘어 진다. 

1.3.1 외부단계

 외부 단계는 사용자의 관점에서 데이터베이스를 정의한 것이다. 회사 전체 각 사용자들이 전체 데이터 베이스에 관심이 있는 것은 아니다. 또한 팀별로 데이터 베이스에서 필요한 내용은 다르다. 그렇기 때문에 사용자 마다 생각하는 구조와 내용이 다르다. 사용자들이 생각하는 데이터 베이스의 모습을 표현한 논리적인 구조이고 외부 스키마라고 한다.

1.3.2 개념단계

 개념 단계에서는 사용자들의 생각과 관점을 하나로 합친다. 데이터 베이스를 조직 전체의 관점에서 바라보고 표현을 한다. 관리자의 관점에서 모든 사용자들에게 필요한 데이터를 통합해서 데이터 베이스 구조를 정의하고 이것을 개념 스키마라고 한다. 데이터들의 관계와 조건을 명시하고 보안정책과 접근 권한에 대한 정의도 이루어진다. 일반적으로 스키마라고 하는 것이 이 개념 스키마이다. 

1.3.3 내부단계

내부 단계는 데이터베이스를 저장장치의 관점에서 이해하고 표현한다.  테이터베이스가 실제로 저장되는 방법을 정의하고 이를 내부 스키마라고 한다. 레코드의 구조와 필드의 크기 인덱스를 통한 접근 경로를 정의한다. 

 

 각각의 스키마 사이의 대응관계를 사상 또는 매핑이라고 한다.  데이터 베이스는 이 정보들을 이용해서 원하는 데이터에 접근을 한다. 

외부/개념 사상 - 외부스키마 개념스키마 
개념/내부 사상 - 개념스키마 내부스키마

 데이터베이스를 3단계로 나누고 스키마를 유지하고 대응관계를 정의하는 이유는 데이터 독립성을 위해서이다. 데이터 독립성은 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성이다. 즉, 개념 스키마가 변경이 되어도 외부 스키마는 영향을 받지 않고, 내부 스키마가 변경이 되어도 개념 스키마는 영향을 받지 않는다(외부 스키마도 영향을 받지 않음).


2. 데이터베이스 관리시스템

 관리시스템 이전에 파일을 관리하기 위해서 파일 시스템이 존재했다. 하지만 파일시스템의 데이터의 중복성과 종속성이 문제가 되었고, 이 문제를 해결하기 위해 데이터베이스 관리시스템(Database Management System)이 나왔다. 관리 시스템은 필요한 데이터를 데이터베이스에 저장하고 관리한다. 또한 응용프로그램을 대신해서 데이터를 삽입, 삭제, 수정, 검색을 하고 공유한다. 또한 데이터베이스 구조나 접근 방법이 변경이 되어도 사용자나 응용프로그램이 알 필요가 없어서 독립성이 확보된다. 

 

  관리시스템은 데이터베이스 구조를 정의하거나 수정할 수 있고, 필요한 연산(CRUD)을 할 수 있게 한다. 그리고 데이터를 여러 사용자가 공유해도 항상 정확하고 안전하게 유지 시켜준다. 연산이 진행되고 나서도 데이터가 일관되면서 무결성을 유지하게 하고, 장애가 발생해도 회복이 가능하게 제어한다. 또한 동시에 접근해서 데이터를 처리할 수 있게 제어한다.

관리시스템의 장단점
- 장점
: 데이터의 중복 통제 / 데이터의 독립성 확보 / 동시 공유 가능 / 무결성 유지 / 회복 기능 
-단점 
: 비용이 듦 / 백업과 회복이 복잡 / 중앙 관리로 인한 취약