////
Search
Duplicate

관계형 데이터베이스 - 용운

RDBMS

행과 열을 가지는 표 형식의 데이터를 저장하는 형태의 데이터베이스를 가리키며 SQL이라는 언어를 써서 조작한다.

특징

데이터의 분류, 정렬, 탐색 속도가 빠릅니다.
오랫동안 사용된 만큼 신뢰성이 높고, 어떤 상황에서도 데이터의 무결성을 보장해 줍니다.
기존에 작성된 스키마를 수정하기가 어렵습니다.
데이터베이스의 부하를 분석하는 것이 어렵습니다.

용어

열(column) : 각각의 열은 유일한 이름을 가지고 있으며, 자신만의 타입을 가지고 있습니다. 이러한 열은 필드(field) 또는 속성(attribute)이라고도 불립니다.
행(row) : 행은 관계된 데이터의 묶음을 의미합니다. 한 테이블의 모든 행은 같은 수의 열을 가지고 있습니다. 이러한 행은 튜플(tuple) 또는 레코드(record)라고도 불립니다.
값(value) : 테이블은 각각의 행과 열에 대응하는 값을 가지고 있습니다.이러한 값은 열의 타입에 맞는 값이어야 합니다.
키(key) : 테이블에서 행의 식별자로 이용되는 열을 키(key) 또는 기본 키(primary key)라고 합니다. 즉, 테이블에 저장된 레코드를 고유하게 식별하는 후보 키(candidate key) 중에서 데이터베이스 설계자가 지정한 속성을 의미합니다.
관계(relationship) : 테이블 간의 관계는 관계를 맺는 테이블의 수에 따라 일대일(one-to-one) 관계,일대다(one-to-many), 관계다대다(many-to-many) 관계로 나눌 수 있습니다.
스키마(schema) : 스키마는 테이블을 디자인하기 위한 청사진이라고 할 수 있습니다. 이러한 스키마는 테이블의 각 열에 대한 항목과 타입뿐만 아니라 기본 키와 외래 키도 나타내야 합니다.

MySQL

대부분의 운영체제와 호환되며 현재 가장 많이 사용되는 데이터베이스로 대용량 데이터베이스를 위해 설계되어 있고 롤백, 커밋, 이중 암호 지원 보안 등의 기능을 제공하며 많은 서비스에 사용됩니다.
MySQL을 사용하여 데이터를 관리하고 저장할 때 다음과 같은 여러 가지 이점이 있습니다.
고가용성 : 실패 없이 오랜 시간 동안 작동할 수 있는 데이터베이스 엔진의 기능을 의미
보안 : 데이터 중복 메커니즘과 일반적인 보안 프로세스(예: 비밀번호 및 권한, 액세스 제어, 네트워크 보안)를 통해 데이터를 손상으로부터 보호하는 등 데이터를 보호
백업 및 복원 : mysqldump 유틸리티, 바이너리 로그를 사용한 백업 및 복제
유연성 : 전체 데이터베이스 구조를 변경하거나 기존 애플리케이션에 영향을 주지 않고 필요할 때마다 간편하게 테이블, 관계를 추가, 업데이트 또는 삭제하고 데이터를 변경
사용 편의성 : SQL을 사용하여 복잡한 쿼리를 쉽게 실행할 수 있으므로 초보 사용자가 데이터베이스와 직관적으로 상호작용할 수 있다.
성능 : 성능 최적화는 모든 데이터베이스 관리에서 중요한 측면으로 MySQL을 사용하면 다양한 기능과 조정 옵션을 제공받아 고성능 애플리케이션을 쉽게 개발할 수 있다.

PostgreSQL

디스크 조각이 차지하는 영역을 회수할수 있는 장치인 VACUUM이 특징으로 최대 테이블의 크기는 32TB이며 SQL 뿐만 아니라 JSON을 이용해서 데이터에 접근이 가능하다. 지정시간에 복구하는 기능, 로킹, 접근제어, 중첩된 트랜잭션, 백업 등을 할수 있다.
성능 및 확장성
동시성 지원 : 여러 사용자가 동시에 데이터에 액세스하는 경우, 기존의 데이터베이스 시스템은 일반적으로 읽기/쓰기 충돌을 방지하기 위해 레코드에 대한 액세스를 차단합니다
100% 오픈 소스
JSON을 이용해서 데이터에 접근이 가능하다?