데이터베이스와 DBMS
데이터와 데이터베이스
데이터(data) : 어떤 이론을세우는데 기초가 되는 자료로 문자와 숫자, 그림, 영상 등의 형태로 된 단위
정보(information) : 데이터를 특정 목적에 따라 가공하고 이론을 세워 의미와 가치를 부여한 결과
데이터베이스(database) : 데이터를 하나에 모아두는 집합
DBMS(DataBase Management System) : 데이터베이스를 관리하는 시스템. 데이터에 대해 사용자의 논리적 명령을 해석하고 필요한 데이터를 찾아주는 시스템
데이터베이스 모델 유형
계층형 데이터베이스 모델
- 트리 구조를 기반으로 하며 데이터는 1:N으로 상하 종속 관계 구조로 되어있음
- 데이터에 빠르게 접근이 가능하지만, 구조 변경에 대한 유연성이 부족하다는 단점이 있음
네트워크형 데이터 베이스 모델
- 네트워크형 데이터베이스 모델은 계층형 데이터베이스의 정형화된 구조를 해결하기 위해 1:N 뿐 아니라 1:1, N:N 형태의 구조를 가질 수 있음
- 하위 개체는 다수의 상위 개체를 가질 수 있어 형태가 좀 더 자유로움
- 다만 다양한 개체 간 연결에 따라 복잡성이 높아지기 때문에 데이터베이스 전반의 구조를 이해하는데 어려움이 있을 수 있음
관계형 데이터베이스 모델
- 데이터의 논리적 관계를 초점으로 특정 개체 정보를 이용하여 열과 행으로 된 테이블이라는 최소 단위로 구성됨
- 앞서 계층형과 네트워크형 데이터베이스 모델은 데이터가 변화하면 상관관계에 따라 모든 데이터를 변경해야하지만, 관계형 데이터베이스 모델은 데이터가 변화하면 쉽게 적용할 수 있다는 장점이 있음
- 하지만 시스템 자원을 많이 차지해서 상대적으로 느리다는 단점이 있음
- SQL(Structured Qurey Language)이라는 프로그래밍 언어를 사용하여 데이터베이스를 읽고 쓰고 해석함
객체 지향형 데이터베이스 모델
- 객체라는 형태의 최소 단위로 표현함
- 객체 집합을 정의하고 연결 구조를 확립하여 복잡한 객체 구조도 즉각적으로 표현할 수 있음
- 사용자 정의 데이터, 멀티미디어 등 비정형 데이터도 지원
- 하지만 보편적으로 사용하는 관계형 데이터베이스의 호환성 문제와 복잡성에 따른 문제도 있음
관계형 DBMS의 SQL 언어
현재 가장 보편적으로 사용하는 데이터베이스 모델은 관계형 DBMS
SQL 데이터 정의
- DBMS와 연계되는 다양한 응용 프로그램에서 요구하는 데이터의 형식과 구조를 정의하는 기능으로 테이블이나 관계의 구조를 정의하는 목적에 따라 CREATE, ALTER, DROP 등 명령어가 있음
- CREATE : 테이블을 구성하고 속성에 대한 제약을 정의하는 명령어
- ALTER : 생성된 테이블 속성을 정의 하고 변경하는 명령어
- DROP : 생성된 테이블을 삭제하는 명령어
SQL 데이터 조작
- 데이터 검색, 삽입, 삭제 등을 처리하는 인터페이스를 제공하는 기능으로 SELECT, INSERT, UPDATE, DELETE 등 명령어가 있음
- SELECT : 테이블에 있는 정보를 가져오는 명령어
- INSERT : 테이블에 새로운 데이터를 삽입하는 명령어
- UPDATE : 테이블에 있는 데이터를 수정하는 명령어
- DELETE : 테이블에 있는 기존 데이터를 삭제하는 명령어
SQL 데이터 제어
- 데이터 무결성 유지와 접근 권한 및 다수의 사용자 데이터베이스에 정확히 접근하는 기능으로 GRANT, DENY, REVOKE 등 명령어가 있음
- GRANT : 테이블에 대한 권한을 허용하는 명령어
- DENY : 테이블에 대한 권한을 차단하는 명령어
- REVOKE : 테이블에 대한 권한을 회수하는 명령어
AWS 데이터베이스 서비스
Amazon RDS
Amazon RDS(Relational Database Service)
- 클라우드 환경에서 관계형 데이터베이스를 간편하게 설정하고 운영할 수 있는 서비스
- 원하는 성능 요구에 따라 다양한 데이터 베이스 인스턴스 유형을 선택할 수 있음
- Amazon Aurora, PostgreSQL, MariaDB, Oracle Database... 등 관계형 데이터베이스 엔진을 선택할 수 있음
- 사용 편의성이 높고 모니터링 및 지표와 이벤트 알람을 이용하여 높은 관리 효율성을 보장하며, 비용도 상대적으로 매우 저렴
- 간편한 복제 기능을 이용하여 워크로드의 가용성과 확장성을 확보할 수 있음
Amazon RDS 데이터 복제
Multi-AZ 복제 방식
- 기본적으로 액티브-스탠바이 형태로 동작
- Privary DB가 액티브(활성) 상태이며, 보조의 Standby Replica가 스탠바이(대기) 상태임
- Primary DB에 문제가 발생하면 Stanby Replica를 Primary DB로 승격하여 동적으로 유지
- 데이터 정합성을 유지하는 것이 가장 중요
- 데이터 정합성 : 데이터가 서로 일관되게 일치하는 것
- 이를 위해 동기식 복제로 다른 가용 영역에 있는 데이터베이스와 데이터를 동기화함
- 동기식 복제 : 데이터에 변화가 일어나면 원본 데이터를 복제해서 전달하여 동기화하는 것을 의미함
Read Replica 복제 방식
- 원본 데이터를 Primary DB에 두고 읽기 전용의 복제 데이터를 Read Replica 데이터베이스에 생성하여 유지함
- 읽기 전용 복제 데이터가 있는 Read Replica 데이터베이스는 확장이 가능하며 데이터 읽기 처리 속도를 높일 수 있음
- Amazon RDS는 최대 다섯 개의 Read Replica 데이터베이스를 복제할 수 있으며 다른 리전까지 Read Replica 데이터베이스를 가질 수 있음
Amazon Aurora
엔터프라이즈 수준의 관계형 데이터베이스 엔진으로 안정적이고 고성능의 데이터베이스 처리가 가능
또한 오픈 소스를 기반으로 다른 관계형 데이터베이스와 호환성이 우수하며 비용 효율이 높다는 장점 존재
Amazon RDS에서 관리하며 프로비저닝, 패치, 백업, 복원, 장애 복구 등 작업을 수행함
Amazon Aurora 복제 방식
다른 관계형 데이터베이스 엔진보다 스토리지 내결함성이 우수함
Amazon DynamoDB
- 비관계형 데이터베이스로 키-값 메소드를 사용하는 키-값 데이터베이스
- 여기에서 비관계형 데이터베이스는 관계형 데이터베이스와 다르게 데이터가 서로 연결되지 않는 개별 형태로 저장하여 복잡하고 구조화되지 않은 데이터 유형에 적합한 데이터베이스임
- 앞서 관계형 데이터베이스가 SQL 언어를 사용했다면 Amazon DynamoDB는 비관계형 데이터베이스로 SQL 문을 사용하지 X
- 키를 데이터의 고유한 식별자로 사용, 값은 유형의 제한이 없어 단순한 개체 뿐 아니라 복잡한 집합계까지 무엇이든 가능한 비정형 데이터를 입력할 수 있음
- 이런 키와 값을 쌍으로 집합해서 저장
- 구조가 단순하여 빠른 처리 가능
- 별도 서버를 구축하지 않고 운영되는 서버리스로 동작하기 때문에 서버에 대한 프로비저닝, 패치, 소프트웨어 설치가 필요 없고 용량에 따라 테이블을 자동으로 확장 및 축소해서 관리 편의성이 높음
Amazon ElastiCache
인-메모리 데이터베이스로 데이터를 메모리에 저장하는 형태로 동작
데이터가 메모리상에 위치하여 데이터를 빠르게 처리할 수 있다는 장점이 있지만 데이터 양이 많다면 데이터 처리가 느려질 수 있기 때문에 대용량 데이터에는 적합하지 X
주로 데이터를 빠르게 자주 접근해야 할 때 사용
Amazon Elatsic for Memcached
- 보편적으로 사용하는 메모리 객체 캐싱 시스템으로 인-메모리 데이터베이스 서비스
- Memcached와 호환하여 자주 접근할 데이터를 메모리에 놓고 빠르게 처리할 수 있음
Amazon ElastiCache
- Redis는 데이터베이스, 캐시, 메시지 브로커 및 대기열 용도로 사용되는 인-메모리 데이터베이스 서비스
- 오픈소스인 Redis 기반으로 구축되고 Redis API와 호환하여 개방형 Redis 데이터 형식으로 저장함
- 실시간 애플리케이션을 지원할 수 있도록 1밀리초 미만의 지연으로 빠른 데이터를 처리할 수 있음
'클라우드' 카테고리의 다른 글
[클라우드] AWS 스토리지 서비스 (1) | 2025.05.21 |
---|---|
[클라우드] AWS 부하분산 서비스 (0) | 2025.05.17 |
[클라우드] AWS 네트워킹 서비스 (0) | 2025.03.27 |
[클라우드] 네트워킹 기초 (0) | 2025.03.27 |
[클라우드] AWS 컴퓨팅 서비스(EC2) (0) | 2025.03.18 |