데이터베이스(DB, Database)
특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합
통합 데이터(integrated data)
최소의 중복과 통제 가능한 중복만 허용하는 데이터
저장 데이터(stored data)
컴퓨터가 접근할 수 있는 매체에 저장된 데이터
공유 데이터(shared data)
특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있는 공용 데이터
운영 데이터(operational data)
조직의 주요 기능을 수행하기 위해 지속적으로 꼭 필요한 데이터
데이터베이스 관리 시스템 (DBMS)
Database Management System
데이터를 편리하게 저장하고 효율적으로 관리하고 검색할 수 있는 환경을 제공해주는 소프트웨어.
데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지.
사용자와 데이터베이스를 연결시켜주는 소프트웨어로, 데이터베이스 사용자가 데이터베이스를 생성, 공유, 관리할 수 있도록 지원해주는 총체적인 역할을 담당한다.
DBSM의 발전 과정
계층 DBMS : 데이터베이스를 트리 형태로 구성
네트워크 DBMS : 데이터베이스를 그래프 형태로 구성
관계 DBMS : 데이터베이스를 테이블 형태로 구성
객체지향 DBMS : 객체를 이용해 데이터베이스 구성
객체관계 DBMS : 객체 DBMS + 관계 DBMS
NoSQL DBMS : 관계 DBMS를 적용하기 어려운 환경에서의 DBMS
NewSQL DBMS : 관계 DBMS의 장점 + NoSQL의 장점
DBMS의 기능
정의(Definition) 기능 : 데이터베이스 구조 정의 및 이미 정의된 데이터베이스 구조 수정(삭제, 변경)
조작(Manipulation) 기능 : 데이터의 검색, 삽입, 수정, 삭제 연산 지원
제어(Control) 기능 : 데이터를 항상 정확하고 안전하게 유지. (데이터베이스 사용자 생성, 사용자 권한 부여, 사용자 접근 제어, 백업과 회복, 동시성 제어 등)
3단계 데이터베이스 구조
ANSI/SPARC 아키텍처는 현재 대부분의 상용 DBMS 구현에서 사용되는 일반적인 아키텍처이다. 본 아키텍처는 3단계로 이루어진다.
외부(뷰) 단계
데이터베이스를 개별 사용자 관점에서 이해하고 표현하는 단계이다.
데이터베이스의 사용자가 갖는 뷰(view), 일반 사용자나 응용 프로그래머가 접근하는 계층 등 데이터베이스의 일부분에만 관심을 가진다.
여러 종류의 사용자들을 위해 동일한 개념 단계로부터 여러 개의 서로 다른 뷰가 제공될 수 있고, 여러 개의 외부 스키마(external schema)가 있을 수 있다.
개념(논리) 단계
데이터베이스를 조직 전체의 관점에서 이해하고 표현하는 단계이다.
전체 데이터베이스의 논리적인 구조를 정의한다.
하나의 데이터베이스에는 1개의 개념 스키마(conceptual schema)가 있다.
개념 스키마는 저장장치에 독립적으로 기술되며 데이터간의 관계, 제약사항, 무결성에 대한 내용이 포함된다.
내부(물리) 단계
데이터베이스를 저장 장치의 관점에서 이해하고 표현하는 단계이다.
물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법의 표현이다.
하나의 데이터베이스에는 1개의 내부 스키마(internal schema)가 존재한다.
데이터 필드 크기, 데이터 접근 경로, 데이터 압축 등 물리적 저장 구조를 정의한다.
데이터 독립성(Data Independence)
하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성이다.
논리적 데이터 독립성
(logical data independence)
외부 단계와 개념 단계 사이의 독립성이다.
개념 스키마가 변경되어도 외부 스키마는 영향 받지 않는다.
응용 프로그램에 영향을 미치지 않고, 논리적 데이터 구조를 변경시킬 수 있다.
물리적 데이터 독립성
(physical data independence)
개념 단계와 내부 단계 사이의 독립성이다.
내부 스키마가 변경(데이터 저장 위치 변경 등)되어도 개념 스키마는 영향을 받지 않는다.
응용 프로그램과 논리적 데이터 구조에 영향을 주지 않고, 물리적 데이터 구조를 변경할 수 있다.
데이터베이스 언어
데이터 정의어(DDL, Data Difinition Language)
데이터 구조(스키마) 정의, 수정, 삭제
데이터 조작어(DML, Data Manipulation Language)
데이터 검색, 삽입, 삭제, 수정
데이터 제어어(DCL, Data Control Language)
내부적으로 필요한 규칙이나 기법 정의
권한 부여 등을 통한 보안, 회복, 동시성 제어 등
데이터 모델링(Data modeling)
현실 세계의 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정으로, 데이터베이스 설계 과정이다.
데이터 모델링 단계
개념적 데이터 모델링
(conceptual data modeling)
현실 세계의 중요 데이터를 추출하여 -사람이 이해할 수 있는 형태의- 개념적 구조로 표현하는 과정
사람이 인식하는 것과 유사하게 데이터 구조를 명시한다.
논리적 데이터 모델링
(logical data modeling)
개념 세계의 데이터를 데이터베이스에 저장하는 논리적 구조로 표현하는 과정
사람이 이해하는 개념이면서 컴퓨터 내에서 데이터가 조작되는 방식과 멀리 떨어져 있지는 않다.
물리적 데이터 모델링
(physical data modeling)
컴퓨터가 인식하는 것과 가깝다. 데이터베이스에 데이터가 어떻게 저장되는 가를 기술한다.