데이터베이스
특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합
-
실시간 접근 가능
-
계속적으로 변화
-
동시 공유가 가능
-
저장된 주소가 아닌 내용으로 참조 가능
데이터의 유형
- structured data (정형 데이터) : excel의 스프레드시트, 관계데이터베이스의 테이블, sql
- semi-structured data (반정형 데이터) : HTML, XML, JSON
- unstructured data( 비정형 데이터) ; 정해진 구조가 없이 저장된 데이터, text, 멀티미디어
DBMS 대신 file system을 사용했을 때의 문제점
- 데이터 중복으로 인한 리소스 낭비
- 업데이트 및 데이터 일관성 유지 어려움
- 데이터 무결성(data integrity constraints) 유지 어려움
- 응용프로그램이 파일 데이터에 종속됨, 파일구조가 바뀔 때마다 응용 프로그램 교체 필요
- 여러 사용자가 동시에 접근할 때 동시성 제공이 어려움
- 파일 변경 중에 시스템 장애가 발생했을 때 처리가 어려움
- 사용자 별 파일 안에 일부 데이터 읽기 권한 제어가 어려움
DBMS
- 파일시스템의 데이터중복과 데이터 종속 문제를 해결하기 위해 제시된 스포트웨어
- 데이터베이스의 생성과 관리를 담당
- 모든 응용프로그램은 데이터베이스 공유 가능, DBMS를 통해 삽입, 수정, 검색
- Oracle, MS SQL Server, Sap HANA, MySQL, PostergreSQL
DMBS의 주요기능
- 데이터베이스 구조를 정의하거나 수행
- 데이터를 삽입, 삭제, 수정, 검색하는 연산을 수행
- 데이터를 항상 정확하고, 안전하게 유지
DBMS의 장점
- file system에서 언급했던 문제점을 모두 해결할 수 있다.
DBMS의 단점
- 구매 비용
- 데이터에 직접적인 접근이 아닌 DBMS를 통해 접근하기 때문에 추가적인 오버헤드 발생
- DBMS의 동작원리와 표준 데이터 언어에 대한 지식 필요
- DBMS의 장애가 발생하면 모든 프로그램이 같이 장애 발생
Data Dictiionary
- DBMS는 database와 함께 metadata를 저장한다.
- 데이터 정의어(DDL)에 의해 생성된다.
Metadata
- 각 데이터에 접근할 수 있는 데이터의 이름 (테이블, 컬럼 이름)
- 스토리지에 데이터가 저장된 위치
- 보안을 위한 제약 (어던 사용자가 어떤 데이터에 접근할 수 있는지)
- 무결정을 위한 제약 (어떤 값이 데이터에 유효한지)
스키마(schema)
- 데이터베이스에 저장되는 데이터의 논리적구조와 제약조건을 정의한 것
인스턴스
- 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값
데이터언어
- 사용자가 데이터베이스를 구축하고 이에 접근하기 위해 데이터베이스 관리 시스템과 통신하는 수단
- 데이터 정의어(DDL) : 스키마 구조와 제약조건 등을 정의, 삭제, 수정
- 데이터 조작어(DML) : 데이터의 삽입, 삭제, 수정, 검색
- 데이터 제어어(DCL) : 내부적으로 필요한 규칙 (보안, 무결성 체크) 등을 정의하는 데이터 언어
질의처리기
- DDL Interpreter: DDL로 작성된 스키마의 정의를 해석, 데이터 딕셔너리에 저장
- DML Compiler: DML로 작성된 데이터 처리 요구를 processing engine이 이해할 수 있는 코드로 해석하여 plan을 작성
- DML(Query) Processing Engine: 컴파일된 plan을 데이터베이스에 실제로 실행