너무 비슷한 단어 정확히 정리해보자!
데이터베이스(DB)란?
‘데이터의 집합’ 이라고 할 수 있다. 우리의 카톡, 카드 내역 등의 정보가 모두 데이터베이스로 기록된다.
데이터베이스의 특징
- 데이터 중복 최소화: 데이터를 구조화 하여 저장하고 관리하며, 중복을 최소화 한다.
- 데이터 무결성 유지: 데이터의 정확성, 일관성을 보장하기 위해 무결성 제약 조건을 사용한다.
- 데이터 보안성: 접근 제어와 권한 관리로 데이터 보안을 유지한다.
- 동시성 제어: 여러 사용자가 동시에 데이터에 접근 할 수 있다.
- 백업 및 복구: 데이터 손실에 대비해 백업과 복구 기능을 제공한다.
DB의 특징을 효과적으로 관리하고 적용하기 위해 DBMS라는 시스템을 사용한다.
DBMS(Database Management System) 란?
데이터베이스를 관리하고 운영하는 소프트웨어이다. 다양한 데이터가 저장되어 있는 데이터베이스는 여러 명의 사용자나, 응용 프로그램과 공유하고 동시에 접근이 가능해야 한다.
→ DBMS는 데이터베이스를 구축하는 틀을 제공하고, 효율적으로 데이터를 검색하고 저장하는 기능을 제공한다. 응용 프로그램들이 데이터베이스에 접근할 수 있는 인터페이스를 제공하고, 장애에 대한 복구 기능, 권한에 따른 보안성 유지 기능 등을 제공한다. 예로는 가장 많이 사용하는 오라클과 MySQL이 있다.
DBMS 의 특징
- 데이터 독립성 : 데이터와 응용 프로그램을 분리하여, 데이터의 구조나 위치가 변경되어도 응용 프로그램에 영향을 주지 않는다.
- 데이터의 일관성 : 데이터의 중복을 최소화하고, 데이터 간의 관계를 정의하며, 데이터의 불일치나 오류를 방지한다. 이를 위해 무결성 제약 조건(예: 외래 키, 기본 키)을 통해 데이터의 정확성과 일관성을 유지한다.
- 데이터의 효율성 :데이터를 적절한 구조로 저장하고, 색인이나 캐시 등의 기법을 사용하여, 데이터의 접근과 처리를 빠르고 정확하게 수행한다.
- 데이터의 보안성 : 사용자의 권한에 따라 데이터에 대한 접근을 제어하고, 암호화나 인증 등을 방법으로 데이터를 보안을 유지한다.
- 데이터의 신뢰성: 트랜잭션 처리와 복구 기능을 통해, 데이터의 정확성과 일관성을 유지한다. 장애가 발생할 경우 자동 백업, 복구, 로그 관리 등을 통해 데이터베이스를 이전 정상 상태로 되돌릴 수 있다.
DBMS는 데이터를 구조화 하여 저장한다고? 어떻게 ?
바로 스키마를 통해 이루어진다.
스키마
데이터베이스의 구조(개체, 속성, 관계)와 제약 조건 에 대한 정의. 메타데이터라고도 한다.
DBMS는 주어진 스키마 설정에 따라 데이터베이스를 생성하며, 사용자가 데이터를 저장, 조회, 삭제, 변경할 때 데이터 베이스 스키마를 참조하여 명령을 수행한다.
스키마 3계층
외부(서브) 스키마 = 사용자 관점
- 사용자나 응용 프로그래머가 필요로 하는 논리적 데이터베이스 구조
- 하나의 데이터 데이터베이스는 여러개의 외부 스키마가 존재할 수 있으며, 이를 여러 응용 프로그램이나 사용자가 공용할 수 있다.
- 일반 사용자들은 SQL을 통해 외부 스키마를 쉽게 이용할 수 있다.
개념 스키마 = 전체적인 데이터 베이스 구조
- 데이터베이스의 전체 논리적 구조를 정의한다. 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 종합한 구조로, 데이터 베이스에 단 하나만 존재한다.
- 개체간의 관계와 제약 조건을 포함하고, 데이터베이스 접근 권한, 보안 및 무결성을 정의한다.
- 데이터베이스 관리자(DBA)에 의해서 설정된다.
저장(내부) 스키마 = 물리적 데이터 저장
- 실제로 데이터가 물리적으로 저장되는 구조를 정의한다. 데이터 항목의 표현 방식, 물리적 순서 등을 포함하며, 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.
** 물론 모든 DB가 이런 구조화 스키마를 사용하는 것은 아니다.
대표적인 사용 데이터 베이스는 RDBMS 관계형 데이터 베이스이다.
RDBMS 관계형 데이터 베이스
DBMS의 하위 범주로, 데이터를 표 형식(릴레이션)으로 저장하고, 데이터 간의 관계를 정의하는 데이터베이스 관리 시스템이다. SQL(Structured Query Language)을 사용하여 데이터를 관리한다.
RDBMS의 특징
- 데이터 구조 : 데이터를 행과 열로 구성된 테이블로 저장하며, 각 테이블은 고유한 키(Primary Key)를 가진다. 테이블 간의 관계(예: 외래키)를 정의할 수 있다.
- 데이터 무결성 : 다한 무결성 제약 조건(예: 기본 키, 외래 키, 체크 제약 조건)을 제공하여 데이터의 정확성과 일관성을 유지한다.
- 트랜잭션 처리: ACID(Atomicity, Consistency, Isolation, Durability) 속성을 준수하여 트랜잭션을 처리한다. 이로 인해 데이터의 신뢰성을 높일 수 있다.
예: MySQL, Oracle, PostgreSQL, Microsoft SQL Server 등 다양한 RDBMS가 존재한다.
'Database' 카테고리의 다른 글
[데이터베이스] B-Tree 인덱스와 B+Tree 인덱스 (0) | 2024.11.13 |
---|---|
[데이터베이스] 순차 I/O와 랜덤 I/O (2) | 2024.11.12 |
[데이터베이스] Pagination 구현 SQL (1) | 2024.11.08 |
[데이터베이스] SQL 안티패턴 (2) | 2024.11.07 |
[데이터베이스]Table 용어 정리 (0) | 2024.10.28 |