1. database basic concept
“데이터”와 “정보”는 그 의미가 다르지만 혼용되는 경우가 많아 정확한 정의가 필요하다.
데이터(data)는 현실 세계에서 관찰하거나 측정한 사실이나 값이다.
정보(information)은 데이터를 의사결정에 활용할 수 있도록 처리하여 체계적으로 조직한 결과물이다.
이때 데이터를 정보로 처리, 추출하는 과정이 정보 처리(information processing)이다.
데이터베이스(database; DB)는 데이터가 모여있는 창고와 같은 역할이지만
그 정의에서 데이터의 몇 가지 특성을 제한한다.
- shared data: 여러 사용자가 데이터에 접근한다.
- integrated data: 데이터 중복성(data redundancy)을 최소화 하거나, 통제 가능해야한다.
- stored data: 컴퓨터를 이용하여 접근한다.
- operational data: 조직 운영을 위해 필수적으로, 지속적으로 유지되어야 한다.
다음은 데이터베이스의 정의에서 비롯된 그 특징들이다.
- real-time accessibility: 사용자의 요구에 실시간으로 응답하여 데이터를 공유한다.
- continuous evolution: 데이터는 현실 세계의 snapshot과 같으므로, 현실세계의 변화를 추적해야한다.
- concurrent sharing: 여러 사용자의 요구에 동시에 응답가능해야한다.
- content reference: 데이터 저장 주소가 아닌 내용을 통한 접근이 가능해야한다.
데이터의 분류를 형태, 특성을 기준으로 나누어 본다.
- 형태적 분류
-
정형 데이터(structured data): 정해진 데이터 구조(schema)에 따라 저장된 데이터
ex) excel spreadsheet
-
반정형 데이터(semi-structured data): 내용으로 그 구조가 설명된 데이터. 구조 파악을 위한 parsing이 필요하고, 파일 형태로 저장된다.
ex) HTML, XML, JSON files
-
비정형 데이터(unstructured data): 정해진 구조가 없이 저장된 데이터.
ex) SNS text, image, word, PDF file
-
- 특성적 분류
- 범주형 데이터(categorical data) - qualitative data
- 명목형 데이터(nominal data)
- 순서형 데이터(ordinal data)
- 수치형 데이터(numerical data) - quantative data
- 이산형 데이터(discrete data)
- 연속형 데이터(continuous data)
- 범주형 데이터(categorical data) - qualitative data
2. database management system(DBMS)
데이터베이스 관리 시스템(DBMS)는 조직에 필요한 데이터를 데이터베이스에 통합, 저장, 관리하는 기능을 수행한다. 사용자나 응용프로그램이 원하는 데이터와 작업을 데이터베이스 관리 시스템에 전달하면 이를 처리, 응답하는 것을 수행하고, 데이터베이스 내의 데이터의 삽입, 삭제, 수정, 검색을 수행한다.
데이터베이스 관리 시스템의 주요 기능은 아래 3가지로 요약할 수 있다.
- 정의 기능: 데이터베이스 구조를 정의, 수정
- 조작 기능: 데이터의 삽입, 삭제, 수정, 검색
- 제어 기능: 데이터의 무결성(integrity), 중복성(redundancy) 유지
데이터베이스 관리 시스템을 사용할 때의 장단점은 다음과 같다.
장점
- 데이터 중복 통제
- 데이터 독립성 확보(응용프로그램에 데이터가 종속되지 않음)
- 데이터 동시 공유 가능
- 데이터 보안 향상
- 데이터 무결성 유지
- 데이터 구조 표준화
- 장애 발생 시 회복이 용이
- 응용 프로그램 개발 비용 절감
단점
- 유지 비용이 높음
- 백업과 회복 과정이 복잡함
- 중앙 집중 관리로 인한 취약점(DBMS 장애 시 모든 프로세스 정지)
3. database system(DBS)
데이터베이스 시스템(DBS)는 앞서 언급한 데이터베이스와 데이터베이스 관리 시스템을 이용하여 조직에 필요한 정보를 제공해주는 전체 시스템이다. 데이터베이스, 데이터베이스 관리 시스템 뿐 아니라 데이터가 저장되는 컴퓨터, 사용자, 사용자가 데이터베이스 접근에 사용하는 데이터 언어까지 포괄하는 전체 시스템을 뜻한다.
데이터베이스가 가진 장점 때문에, 많은 사용자가 이를 이용하고 있지만,
데이터베이스의 복잡한 내부 구조까지 알아야 사용할 수 있다면 일반 사용자들의 접근은 어려울 것이다.
따라서 데이터베이스의 복잡한 내부 구조를 감추고 일반 사용자가 쉽게 데이터베이스를 이해, 접근할 수 있도록 3단계 데이터베이스 구조(3-level database architechture)가 제안되었다.
3단계 데이터베이스 구조는 개별 사용자 관점의 외부 단계(external level), 조직 전체 관점의 개념 단계(conceptual level), 저장 장치 관점의 내부 단계(internal level)로 구성된다.
-
외부 단계
개별 사용자는 데이터베이스 전체 구조에 능할 필요 없이 사용 목적에 따라 필요한 데이터에만 접근하면 충분하다. 외부 단계에서는 사용자에게 필요한 데이터베이스를 외부 스키마(externel schema)를 이용해 정의한다.
-
개념 단계
조직 전체 관점에서 데이터를 통합하고 전체 데이터베이스의 논리적 구조를 정의하기 위해 개념 스키마(conceptual schema)를 정의한다. 전체 데이터베이스 내 어떤 데이터가 저장되고 데이터들의 관계를 표현한다. 따라서 하나의 데이터베이스에는 하나의 개념 스키마 만이 존재한다.
-
내부 단계
내부 단계에서는 저장 장치의 관점에서 데이터베이스를 표현한다. 전체 데이터베이스가 저장 장치 내에 저장되는 방법을 내부 스키마(internal schema)를 통해 정의한다.
각 단계별 스키마 사이의 대응 관계를 사상 혹은 매핑이라고 한다. 사용자의 데이터 접근 요청을 담은 외부 스키마는 해당 하는 개념 스키마 - 내부 스키마로 대응 관계가 연속된다. 이때 각 스키마 사이에서는 데이터 독립성(data independency)가 유지된다. 하위 스키마가 변경되더라도 상위 스키마는 영향을 받지 않는다.
외부-개념 스키마는 논리적 데이터 독립성을 통해, 개념 스키마의 전체 데이터베이스의 구조가 변경되더라도 외부 스키마에서 요청하는 데이터에 변동이 없다면 외부 스키마는 영향을 받지 않는다.
또, 개념-내부 스키마는 물리적 데이터 독립성을 통해 저장 장치 내 데이터 저장 위치가 변하더라도 개념 스키마의 데이터구조를 적절히 수정하는 것으로 데이터베이스의 논리 구조에 영향을 끼치지 않게 된다.
데이터 언어는 사용자 혹은 관리자가 데이터베이스 관리 시스템과 소통하여 데이터베이스 구축과 접근을 하기 위한 언어이다. 데이터 언어는 데이터 정의어(data definition language; DDL), 데이터 조작어(data manipulation language; DML), 데이터 제어어(data control language; DCL)로 구성된다.
-
데이터 정의어(data definition language; DDL)
데이터베이스를 구축하기 위해 스키마를 정의하거나 기존 스키마의 수정, 삭제를 위해 사용되는 데이터 언어
-
데이터 조작어(data manipulation language; DML)
데이터의 삽입, 삭제, 수정, 검색을 위해 데이터베이스 관리 시스템에 요구하기 위한 데이터 언어
-
데이터 제어어(data control language; DCL)
저장된 데이터의 무결성과 일관성을 유지하기 위해 필요한 규칙이나 기법을 정의하는데 사용되는 데이터 언어