데이터베이스 시스템
데이터베이스(Database)의 정의
- 데이터베이스는 조직체(데이터베이스 사용기간)의 응용 시스템들이 공유해서 사용하는 운영 데이터(Operational data)들이 구조적으로 통합된 모임입니다. 데이터베이스의 구조는 데이터 모델에 의해 결정됩니다.
자료구조와의 차이
자료구조는 주기억장치에 데이터를 저장하고 사용하는 방법 학습(파일이라는 것에 저장)
데이터베이스는 방대한 양을 다루고 데이터를 사용하고 계속해서 사용되기 때문에 데이터가 디스크에 저장
*디스크 상에 자료를 표현(저장, 관리)하고 효율적으로 처리하는 방법을 배움
*공통점: 데이터자료의 구조화
데이터과 정보
- 데이터는 프로그램과 질의에 의해 정보로 변환
예시
Name | Address | Course | Grade
허재경 | 회기동 | Database | A+
질의: Database 과목을 수강한 학생은?
정보: Database 과목을 수강한 학생은 허재경이다.
데이터베이스의 특징
- 데이터베이스는 데이터의 대규모 저장소로서, 여러 부서에 속하는 여러 사용자에 의해 동시에 사용됨
- 모든 데이터가 중복을 최소화하면서 통합됨
- 데이터베이스는 한 조직체의 운영 데이터뿐만 아니라 그 데이터에 관한 설명(데이터베이스 스키마 또는 메타데이터(metadata))까지 포함.
- 프로그램과 데이터 간의 독립성이 제공됨
- 효율적으로 접근이 가능하고 질의를 할 수 있음
데이터베이스 관리 시스템(DBMS: Database Management System)
- 데이터베이스를 정의하고, 질의어를 지원하고, 리포트를 생성하는 등의 작업을 수행하는 소프트웨어
DBMS 예시
오라클, MySQL, postgreSQL, MongoDB, 티베로, influxdb, SQLite, MS SQL Server, h2, casandra...
분류(크게 3가지)
RDBMS(Relational DBMS, 관계데이터 모델 사용, SQL사용 질의) vs. NoSQL(Not Only SQL, RDBMS + 추가적 기능) ?
NoSQL 등장 배경 - 빅데이터 시대에 등장함
빅데이터 특징(3V, 4V, 5V) - 데이터들이 큼, 빠른 속도, 자유로운 삽입, 다양한 자료형 지원
이러한 것들을 모두 처리해 주기위해 NoSQL이 등장함(기존의 SQL 기능 중 일부는 희생되지만 빅데이터 처리 특징을 강조시킴)
상용 vs. 오픈소스 ?
상용 : 오라클, MS SQL Server, 티베로
외산 vs. 국산 ?
국산 제품 : 티베로, 큐브리드
데이터베이스 시스템 개요
데이터베이스 스키마
- 전체적인 데이터베이스 구조를 뜻하며 자주 변경되지는 않음
- 데이터베이스의 모든 가능한 상태를 미리 정의
- 내포(intension)라고 부름
데이터베이스 상태
- 특정 시점의 데이터베이스의 내용을 의미하며, 시간이 지남에 따라 계속해서 바뀜
- 외연(extension)이라고 부름
*C++(객체지향언어)에서 비유한다면 스키마는 Class, 상태는 Class 객체들의 집합이라고 할 수 있습니다.
데이터베이스 시스템(DBS: Database System)의 구성 요소
데이터베이스
- 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임
- 시스템 카탈로그(또는 데이터 사전)와 저장된 데이터베이스로 구분할 수 있음
- 시스템 카탈로그(system catalog)는 저장된 데이터베이스의 스키마 정보를 유지
DBMS
- 사용자가 새로운 데이터베이스를 생성하고, 데이터베이스의 구조를 명시할 수 있게 하고, 사용자가 데이터를 효율적으로 질의하고 수정할 수 있도록 하며, 시스템의 고장이나 권한이 없는 사용자로부터 데이터를 안전하게 보호하며, 동시에 여러 사용자가 데이터베이스를 접근하는 것을 제어하는 소프트웨어 패키지
- 데이터베이스 언어라고 부르는 특별한 프로그래밍 언어를 한 개 이상 제공
- SQL은 여러 DBMS에서 제공되는 사실상의 표준 데이터베이스 언어
*DBMS는 응용 프로그램이 아니며 응용 개발 도구들을 지원해 줍니다.
사용자
- 데이터베이스 사용자는 여러 부류로 나눌 수 있음
하드웨어
- 데이터베이스는 디스크와 같은 보조 기억 장치에 저장되며, DBMS에서 원하는 정보를 찾기 위해서는 디스크의 블록들을 주기억 장치로 읽어들여야 하며, 계산이나 비교 연산들을 수행하기 위해 중앙 처리 장치가 사용됨
- DBMS 자체도 주기억 장치에 적재되어 실행되어야 함
데이터베이스 시스템의 요구사항
- 데이터 독립성
- 효율적인 데이터 접근
- 데이터에 대한 동시 접근
- 백업과 회복
- 중복을 줄이거나 제어하며 일관성 유지
- 데이터 무결성(제약조건이 있음, 데이터 타입, 범위, 키값 등등)
- 데이터 보안
- 쉬운 질의어
- 다양한 사용자 인터페이스
'👨💻Computer Science > 데이터베이스' 카테고리의 다른 글
[Database] 01 - 6 ANSI/SPARC 아키텍처와 데이터 독립성 (0) | 2021.09.09 |
---|---|
[Database] 01 - 5 DBMS 사용자 (0) | 2021.09.09 |
[Database] 01 - 4 DBMS 언어 (0) | 2021.09.07 |
[Database] 01 - 3 DBMS 발전 과정 (0) | 2021.09.07 |
[Database] 01 - 2 화일 시스템 vs. DBMS (0) | 2021.09.07 |
댓글