Meiren

[데이터베이스] 관계형 데이터베이스(RDB)란? 본문

카테고리 없음

[데이터베이스] 관계형 데이터베이스(RDB)란?

meiren 2023. 7. 30. 17:41

정의

데이터를 테이블 형태로 저장함 (엑셀표에 데이터를 저장하는 것과 동일)

데이터 항목 간에 사전 정의된 관계가 있을 때 그러한 데이터 항목드르이 모음을 가리킴.

테이블 집합으로 구성됨. 테이블은 데이터베이스에 표시할 해당 객체들에 관한 정보를 수록하는데 사용함

 

각 테이블의 행과 행이 연결되는 관계를 맺을 수 있기에 '관계형 데이터베에스'라고 부른다.

 

구성

열 = column = field : 항목의 속성 명칭, 필드마다 각각 정수, 텍스트 같은 데이터 유형을 정할 수 있음

행 = row = record : 한 객체 또는 엔터티와 관련된 값들의 모음

스키마 = schema : 필드는 데이터 유형뿐만 아니라 제약 사항도 지정할 수 있는데, 이러한 제약사항을 스키마라고 부름

예를 들어 필드는 중복값을 해당 행에 저장할 수 없다거나, 반드시 값을 가져야 한다(not null)는 조건 등을 걸 수 있다

 

 

관계

출처 : https://cloud.google.com/learn/what-is-a-relational-database?hl=ko

각 행은 기본키라고 부르는 고유 식별자로 표시할 수도 있고 여러 테이블에 있는 행들은 외래 키를 사용하여 상호 연결될 수 있다

이 데이터는 데이터베이스 테이블 자체를 재구성하지 않고로 여러가지 방법으로 액세스 할 수 있다.

 

기본 키(primary key) : 고유한 ID 필드. 예시 : 고객 번호 필드(중복된 값 X)

외래 키(foreign key) : 기본 키를 참조하는 필드로 그림에서는 주문 테이블의 고객 번호 필드이고, 각 테이블의 행을 연결시켜주는 역할

>> 기본키와 외래키로 테이블을 분리하고 관계를 형성해 데이터를 효율적으로 관리할 수 있음

     *정규화 : 테이블을 분리하고 중복 데이터를 제거하는 과정

 

 

주요 특징

SQL

관계형 데이터베이스와 통신하는데 사용되는 기본 인터페이스. (구조화 질의어)

RDBMS에서 사용하는 프로그래밍 언어로, RDBMS에서 데이터를 검색/추가/업데이트/삭제하는 작업 등의 데이터 관리

모든 관계형 데이터베이스 엔진에서 표준 ANSI SQL을 지원하며 이러한 엔진 중 일부는 해당 엔진의 고유 기능을 지원하는 확장된 ANSI SQL을 보유하고 있습니다. SQL은 데이터의 행을 추가, 업데이트 또는 삭제하고, 트랜잭션 처리 및 분석 애플리케이션용 데이터의 하위 집합을 검색하며, 데이터베이스의 모든 측면을 관리하는 데 사용됨

 

데이터 무결성

데이터의 전체적인 완전성, 정확성 및 일관성을 의미함

일련의 제약 조건을 사용하여 데이터 베이스 내에서 데이터 무결성을 적용함

이러한 제약 조건들은 기본키, 외래 키, 'Not NULL' 제약조건, 'Unique' 제약 조건, 'Default' 제약 조건 및 'Check' 제약 조건을 포함함

이러한 무결성 제약 조건들은 데이터의 정확성과 안전성을 보장하기 위해 테이블의 데이터에 비즈니스 규칙을 적용할 때 도움이 됨

대부분의 관계 데이터베이스에서는 데이터베이스의 작업을 기바능로 하여 실행되는 트리거에 사용자 지정 코드를 포함시킬 수도 있음

 

트랜잭션

하나의 논리적인 작업 단위를 구성하는 일련의 데이터베이스 작업으로 실행되는 하나 이상의 SQL문

트랜잭션은 '전부 아니면 무' 명제를 제송함. 즉, 전체 트랜잭션이 하나의 단위로 완료되어 데이터베이스에 기록되거나 아니면 어떠한 트랜잭션의 개별 구성 요소도 통과하지 않아야 함

관계 데이터베이스 용어상 트랜잭션은 commit 또는 rooback을 초래함

트랜잭션은 다른 트랜잭션과 상관없이 일관적임녀서도 안정적인 방식으로 처리됨

 

ACID 규정 준수

모든 데이터베이스 트랜잭션은 데이터 무결성을 보장하기 위해 ACID 규정을 준수하거나 원자성, 일관성, 격리성 및 내구성을 자춰야함

원자성(atomicity): 트랜잭션이 모두 성공적으로 실행되거나 트랜잭션 일부가 실패할 떄 전체 트랜잭션이 무효화되어야함

일관성(cosistency): 트랜잭션의 일부로서 데이터베이스에 작성된 데이터가 모든 정의된 규칙 및 젯잔 하상(제약 조건, 캐스케이드 및 트리거를 포함)을 준수해야함

격리성(isolation) : 동시성 제어를 실현하는 데 있어 중요한 관건이 되며 각 트랜잭션이 독립적인지 확인함

지속성(내구성) : 트랜잭션이 성공적으로 완료된 상태에서 데이터베이스에 대한 모든 변경 사항을 영구적으로 보존

 

 

Amazon RDS에서 관계형 데이터베이스 엔진

Amazon Aurora

고성능 상용 데이터베이스의 속도와 가용성에 오픈 소스 데이터베이스의 간편성과 비용 효율성을 결함한 MySQL 및 PostgreSQL 호환 관계형 데이터 베이스 엔진이다.

MySQL보다 5배 뛰어난 성능과 상용 데이터베이스의 보안성, 가용성 및 안전성을 1/10의 비용으로 제공함

 

Oracle

Amazon RDS에서는 비용 효율적이면서 크기 조정이 가능한 하드웨어 용량을 갖춘 여러 버전의 Oracle 데이터 베이스를 몇 분 만에 배포할 수 있음

기존의 Oracle 라이선스를 가져오거나 1시간 단위로 라이선스 사용료를 지불할 수 있음

RDS를 사용하면 프로비저닝, 백업, 패치, 적용 , 모니터링, 하드웨어 확장 등 복잡한 데이터베이스 관리 작업을 관리함으로서 애플리케이션 개발에 집중할 수 있음

 

Microsoft SQL Server, MySQL , POstgreSQL, MariaDB 등... 이 있음