SQL(Structured Query Language)
**DBMS (Database Management System)**는 데이터베이스를 생성, 관리, 수정, 검색할 수 있도록 도와주는 소프트웨어 시스템입니다. 보다 쉽게 말해, DBMS는 여러 사용자와 응용 프로그램이 데이터를 안전하고 효율적으로 저장하고, 조회하고, 수정할 수 있도록 해주는 "데이터 관리 도구"라고 할 수 있습니다.
주요 기능 및 역할
- 데이터 저장 및 구조화:
- 데이터를 체계적으로 저장하고 관리할 수 있는 구조(테이블, 스키마 등)를 제공합니다.
- 데이터 모델(예: 관계형, 객체 지향, NoSQL 등)에 따라 데이터를 조직화합니다.
- 데이터 검색 및 쿼리 처리:
- SQL(Structured Query Language)과 같은 언어를 통해 데이터를 검색하고 조작할 수 있도록 지원합니다.
- 복잡한 쿼리를 최적화하여 빠른 검색 결과를 제공합니다.
- 트랜잭션 관리:
- 여러 작업을 하나의 단위로 묶어, 작업의 일관성, 원자성, 고립성, 내구성(ACID 속성)을 보장합니다.
- 오류 발생 시 데이터의 일관성을 유지하기 위해 롤백(rollback) 기능을 제공합니다.
- 동시성 제어:
- 여러 사용자가 동시에 데이터에 접근하더라도 데이터 무결성을 유지할 수 있도록 동시성 제어(concurrency control) 기법을 적용합니다.
- 잠금(Locking), 다중 버전 동시성 제어(MVCC) 등의 메커니즘을 사용합니다.
- 보안 및 접근 제어:
- 데이터 접근 권한을 관리하여, 인가된 사용자만 데이터에 접근하거나 수정할 수 있도록 합니다.
- 인증(Authentication)과 권한 부여(Authorization)를 통해 보안을 강화합니다.
- 백업 및 복구:
- 데이터 손실에 대비해 정기적인 백업을 수행하고, 장애 발생 시 데이터를 복구할 수 있는 기능을 제공합니다.
예시
- 관계형 DBMS:
- MySQL, PostgreSQL, Oracle, SQL Server 등
- 데이터를 테이블 형태로 저장하며, SQL을 통해 데이터를 조작합니다.
- NoSQL DBMS:
- MongoDB, Cassandra, Redis 등
- 관계형 모델 외의 다양한 데이터 모델(문서, 키-값, 그래프 등)을 지원하여, 대규모 분산 환경에 적합합니다.
요약:
DBMS는 데이터를 효율적이고 안전하게 관리하기 위한 시스템으로, 데이터를 저장, 검색, 수정, 보안, 트랜잭션 관리 등 다양한 기능을 제공합니다. 이를 통해 여러 사용자와 애플리케이션이 일관된 방식으로 데이터에 접근할 수 있게 도와주며, 비즈니스 및 응용 프로그램의 핵심 인프라 역할을 수행합니다.
연습 문제
아래는 데이터베이스에 관련된 설명이다. 아래 설명에 알맞은 용어를 보기에서 골라 괄호를 작성하시오.
1. 릴레이션에서 속성의 개수를 의미하는 것은?
2. 릴레이션에서 튜플의 개수를 의미하는 것은?
3. 한 릴레이션의 속성이 다른 릴레이션의 기본 키를 참조할 때, 참조하는 속성을 의미하는 것은?
4. 특정 속성에 대해 입력될 수 있는 값의 유형이나 범위를 의미하고 무결성을 보장하는 기준이 되는 것은?
[보기]
ㄱ.domain ㄴ.primary ㄷ.degree ㄹ.candidate ㅁ.cardinality ㅂ.attribute ㅅ.foreign