데이터베이스
여러 사람이 공유할 목적으로 사용하는 데이터 창고
- 전자적으로 저장되고 체계적인 데이터 모음이다.
- 모든 유형의 데이터가 포함될 수 있다.
DBMS (DataBase Management System)을 활용해 데이터를 저장, 검색 및 편집 할 수 있다.
데이터베이스를 사용하는 이유
회사의 내부 운영을 지원하고 고객 및 공급업체와의 상호 작용을 저장할 수 있다.
전문화된 데이터를 보유할 수 있다.
- 효율적인 확장
- 데이터베이스 애플리케이션은 수백만, 수십억 개 등으로 확장하여 대량의 데이터를 관리할 수 있다.
- 데이터 무결성
- 데이터베이스에는 데이터 일관성을 유지하기 위해 기본적으로 제공되는 규칙 및 조건이 있다.
- 데이터 보안
- 데이터베이스는 모든 데이터와 관련된 개인정보 보호 및 규정 준수 요구 사항을 지원한다.
- e.g., 데이터 접근하려면 사용자의 로그인 요구. 사용자마다 다른 접근 권한.
- 데이터 분석
- 최신 소프트웨어 시스템은 데이터베이스를 사용하여 데이터를 분석한다.
- 추세와 패턴을 식별하거나 예측을 수행하는데 도움이 될 수 있다.
데이터베이스 유형
-
관계형 데이터베이스, RDBMS(Relational Database Management System)
- 데이터를 테이블에 직관적으로 간단하게 나타내는 관계형 모델을 기반으로 한다.
- 데이터를 구조화해 효율적이고 유연하게 접근할 수 있다.
- MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server 등
-
객체지향 데이터베이스
- 정보를 객체의 형태로 표현하는 데이터베이스 모델이다.
- ODMG 2.0 등
-
NoSQL 데이터베이스, Not only SQL DBMS
- 전통적인 RDBMS의 제약을 벗어나 다양한 형태의 데이터 모델 및 schema를 지원한다.
- 비정형 및 반정형 데이터를 저장하고 조작할 수 있다.
- MongoDB, CockroachDB 등 웹 어플리케이션에서 주로 사용한다.
-
그래프 데이터베이스
- 엔티티 및 엔티티 간의 관계 측면에서 데이터를 저장한다.
- 복잡한 관계를 쉽게 표현하고 검색할 수 있다.
- AmazoneNeptune, Neo4j 등
- OLTP 데이터베이스
- 여러 사용자가 수행하는 많은 수의 트랜잭션을 위해 설계된 고속 분석 데이터베이스이다.
-
클라우드 데이터베이스
- 공용 또는 하이브리드 클라우드 환경에서 실행되도록 구축되어 클라우드에서 배포, 제공, 액세스되는 데이터베이스이다.
- 관리형 서비스로서의 데이터베이스(DBaaS)로 제공되거나 클라우드 기반 가상 머신(VM)에 배포하여 자체 관리할 수 있다.
-
In-memory 데이터베이스
- 메모리에 데이터를 저장하고 관리하는 DBMS로, 빠른 읽기 및 쓰기 성능을 제공한다.
- 주로 실시간 분석 및 처리에 사용한다.
- Redis, Memcached, LevelDB, RocksDB
-
오픈 소스 데이터베이스
- 소스 코드가 오픈 소스인 시스템이다.
- SQL 또는 NoSQL 데이터베이스 등
데이터베이스 관리 시스템이란?
-
데이터베이스 소프트웨어 프로그램으로, 데이터베이스 파일, 기록을 생성, 편집 및 보고를 쉽게 수행할 수 있다.
데이터 저장, 백업, 보고, 다중 액세스 제어 및 보안도 처리할 수 있다.
-
인기 DBMS로는 MySQL, Microsoft Access, Microsoft SQL Server, Oracle Database 등이 있다.
관계형 데이터베이스 관리 시스템, RDBMS
- 관계형 데이터베이스는 서로 연관있는 데이터를 사용하여 데이터 테이블 간 관계를 구성하고 구조화하는 관계형 모델이다.
- 데이터를 효율적이고 유연하게 액세스할 수 있어 가장 일반적이다.
- 데이터를 저장, 조작 및 검색하는데 사용되는
SQL (Structured Query Language)을 사용한다.
MySQL 관계형 데이터베이스의 특징
- MySQL(구조적 쿼리 언어) 은 데이터 쓰기 및 쿼리와 같은 모든 기본 SQL 명령을 수행하는 일반적인 오픈 소스 SQL 관계형 데이터베이스이다.
- 안정적이고 주요 프로그래밍 언어 및 프로토콜을 지원해 대규모 기업의 기본 데이터 저장소 역할을 할 수 있다.
- 호스트 기반 확인 및 암호 암호화 트래픽과 같은 보안 기능이 포함되어있다.
- 사용하기 쉽고 업데이타 가능한 보기, 저장 프로시저와 같은 생산성 기능이 포함되어있다.
- 트랜잭션, 고객 프로필 및 제품 정보와 같은 항목을 관리하는데 능숙해 널리 사용되는 트랜잭션 엔진이다.
관계형 모델 및 데이터 일관성
ACID 속성
관계형 데이터베이스 트랜잭션을 정의한다.
원자성은 완전한 데이터베이스 트랜잭션을 구성하는 모든 요소를 정의한다.
일관성은 트랜잭션 후 데이터 포인트를 올바른 상태로 유지하기 위한 규칙을 정의한다.
고립성은 혼란을 피하기 위해 트랜잭션이 커밋될 때까지 트랜잭션의 효과가 다른 사람에게 보이지 않게 해준다.
내구성은 트랜잭션이 커밋되면 데이터 변경 사항이 영구적이 되도록 한다.