데이터 : HDD에 저장되는 팩트

정보 : 데이터를 가공해 의미있게 만든 것. (데이터는 프로그램이나 질의를 통해 정보로 변환된다)


데이터베이스는 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임이다

  • 데이터베이스 스키마 : 전체적인 데이터베이스의 구조로 내포라고 한다.

DEPARTMENT ( DEPTNO, DEPTNAME, FLOOR)

  • 데이터베이스 상태 : 특정 시점의 데이터베이스의 내용으로 외연이라고 한다.

DEPTNO

DEPTNAME 

FLOOR 

영업

2

기획

3

개발


스키마는 잘 바뀌지 않는 반면, 상태는 시간이 지남에 따라 계속해서 바뀐다.


데이터베이스는 데이터베이스와 시스템 카탈로그(데이터 사전)으로 구분할 수 있다.

시스템 카탈로그는 데이터베이스의 스키마 정보를 저장한다.



데이터베이스 관리 시스템(DBMS) : 데이터베이스를 정의하고, 질의어를 지원하고, 리포트를 생성하는 등의 작업을 수행하는 소프트웨어이다.

데이터베이스 언어라는 특별한 프로그래밍 언어를 한 개 이상 제공한다. SQL은 사실상 표준 데이터베이스 언어.

DBMS는 주기억 장치에 적재되어 실행되는데, 원하는 정보를 찾기 위해 중앙 처리 장치가 사용된다.

  • DBMS는 동시성 문제를 관리해준다. (사용자가 데이터에 동시에 접근했을 때)
  • DBMS는 운영체제와 응용 소프트웨어 사이에서 돌아가는 시스템 소프트웨어이다.
  • 트랜잭션(Transaction, 업무처리 단위)로 나누어 데이터를 백업하고 복원할 수 있다.
  • 데이터의 중복을 줄이거나 제어하며 일관성을 유지한다.
  • 특정 레코드에게 고유한 값을 줌으로써 데이터의 정확성을 유지하는 데이터 무결성을 지원한다.
  • 프로그램에 영향을 주지 않으면서 데이터베이스의 구조를 변경할 수 있음 >> 프로그램-데이터 독립성
데이터베이스 시스템을 쓰기 전에는 주로 파일 시스템으로 데이터를 관리했다.
하지만 데이터가 중복되고, 보안 조치나 백업기능이 없으며 응용 프로그램에 의존도가 높고, 동시성 제어가 되지 않는 등의 이유로 현재는 거의 쓰이지 않는다.
또한 데이터 값이 바뀌었을 때 모든 프로그램을 하나하나 바꿔주어야 하므로 데이터의 불일치 현상이 나타난다. (일관성 ↓)

DBMS 선정시 고려 사항
  • 기술적 요인 : 데이터 모델, 사용자 인터페이스, 프로그래밍 언어, 응용 개발도구 등
  • 경제적 요인 : 소프트웨어/하드웨어 구입 비용, 유지보수 비용, 직원들의 교육 지원

DBMS의 단점 : 데이터를 공유하다보니 프라이버시 보장이 안된다. 또한 투자비용에 비해 관리할 데이터가 많지 않다면 적자로 이어질 수 있다.



데이터 모델 : 데이터베이스의 구조를 기술하는데 사용되는 개념으로 세 가지 모델이 존재한다.

  1. 고수준 또는 개념적 데이터 모델 : 사람이 인식하는 것과 유사하게 데이터베이스의 논리적 구조를 명시. ex) 엔티티-관계(ER) 모델
  2. 표현(구현) 데이터 모델 : 사용자가 인식하는 것을 중심으로 하되, 저장되는 방법은 기계적. ex) 네트워크 데이터 모델, 관계 데이터 모델
  3. 저수준 또는 물리적 데이터 모델 : 데이터베이스에 데이터가 저장되는지를 명시.
  • 계층 DBMS : 트리 구조를 갖는 모델을 사용한 DBMS로써, 빠른 속도와 높은 효율을 제공할 때가 있지만 레코드들이 링크로 연결되어 있어 레코드 구조를 변경하기가 힘들다. 즉, 일대다 구조는 잘 처리하는 반면, 다대다 구조는 잘 처리하지 못한다.
  • 객체 지향 DBMS : 객체 지향 프로그래밍을 기반으로 하는 모델. 데이터를 그룹화하고 복잡한 객체를 이해하기 용이하다.
  • 전용 DBMS : 범용 데이터베이스 시스템에 맞지 않는 특정 프로그램을 위한 DBMS. 


데이터 언어

  • 데이터 정의어(DDL) : 데이터베이스 스키마를 정의할 때 사용하는 언어 
  • 데이터 조작어(DML) : 데이터 레코드를 조작하기 위한 언어로써 절차적 언어와 비절차적 언어가 있다.
  • 데이터 제어어(DCL) : 데이터베이스의 트랜잭션(작업)을 명시하거나 액세스 권한을 설정한다.

절차적 언어는 데이터를 가져오는 과정까지 관여하는 것이고, 비절차적 언어는 찾고자하는 데이터만 명시하는 것이다. (SQL은 비절차적 언어)

데이터 조작어는 대화식으로 입력되어 수행되거나, 고급 프로그래밍 언어로 작성된 프로그램에 내포되어 사용된다.



데이터베이스 사용자

  • 데이터베이스 관리자(DBA) : 조직의 여러 요구를 만족시키기 위해 DB스키마의 일관성을 유지하는 사람
  • 오퍼레이터 : DBMS의 전산실 관리자
  • 응용 프로그래머 : 데이터베이스 위에서 인터페이스를 구현하는 사람
  • 최종 사용자 : 데이터베이스를 사용하는 사람


ANSI/ SPARC 아키텍처 : 현재 대부분의 상용 DBMS 구현에서 사용되는 일반적인 아키텍처. 세 가지 단계로 이루어진다.

  1. 외부 단계 : 데이터베이스의 각 사용자가 갖는 뷰. 동일한 개념 단계에서도 다수의 서로 다른 뷰가 나타난다.
  2. 개념 단계 : 데이터베이스의 사용자 공동체의 뷰. 조직체 전체에 대한 스키마를 포함하며 하나의 DB에 하나의 개념 스키마가 존재한다.
  3. 내부 단계 : 데이터베이스의 물리적 뷰. 물리적인 데이터 구조에 관한 스키마이다. 실질적인 저장을 표현하는 단계
DBMS는 내부단계를 보여주지 않고, 사용자에게 필요한 외부단계를 보여준다.
또한 DBMS는 세 단계 간에 맵핑(mapping)을 통해 질의를 변환한다.
  • 외부/개념 사상 : 외부 단계의 뷰를 사용해서 입력된 사용자의 질의를 개념 단계의 스키마를 사용한 질의로 변환
  • 개념/내부 사상 : 이를 다시 내부 단계의 스키마로 변환하여 디스크의 데이터베이스를 접근

데이터 독립성 : 상위 단계의 스키마 정의에 영향을 주지 않으면서 어떤 단계의 스키마 정의를 변경하는 것
  • 논리적 데이터 독립성 : 개념 스키마가 변하더라도 외부 스키마가 변하지 않는 것
  • 물리적 데이터 독립성 : 내부 스키마가 변하더라도 개념 스키마가 변하지 않는 것

* ODBC(Open Database Connectivity) : Microsoft사의 데이터베이스 API이다. 

개발자가 DB간 공통적으로 사용할 수 있는 API만 알게 되면 여러 회사의 DB에 접근할 수 있다.


데이터베이스 시스템 구조는 중앙 집중식과 분산식으로 나눌 수 있다.

  • 중앙 집중식 DBMS : 하나의 중앙 컴퓨터 시스템에서 데이터베이스 시스템을 운영
  • 분산 DBMS : 데이터베이스 시스템이 네트워크를 통해 여러 컴퓨터에 나누어져 있는 형태.
중앙 집중식 DBMS는 사용자가 많을 경우 트래픽이 초과될 위험이 있기 때문에 분산 DBMS시스템이 유리하다.
이는 또한 경제적인 면에서 하나의 고가 컴퓨터보다 여러 대의 저가 컴퓨터가 유리하다.


+ Recent posts