반응형
제1절 데이터 모델의 이해
Key Note_모델링 절차 |
데이터 모델링 단계 요약
|
RDBMS와 NoSQL의 데이터 모델 정의 및 특성 비교
관계형 데이터베이스 관리 시스템(RDBMS)
데이터 모델 정의:
- 스키마 기반 구조: RDBMS는 고정된 스키마를 사용합니다. 즉, 데이터가 삽입되기 전에 데이터 구조가 정의됩니다.
- 테이블: 데이터는 행과 열로 구성된 테이블로 구성됩니다.
- 관계: 테이블은 외래 키를 통해 서로 연결될 수 있으므로 복잡한 쿼리와 데이터 무결성이 가능합니다.
- ACID 트랜잭션: 안정적인 트랜잭션이 필요한 애플리케이션에 중요한 트랜잭션의 원자성, 일관성, 격리 및 내구성을 보장합니다.
특징:
- 구조화된 데이터: 정의된 관계가 있는 구조화된 데이터에 적합합니다.
- 정규화: 중복성을 줄이고 데이터 무결성을 향상시키기 위해 정규화를 사용하는 경우가 많습니다.
- SQL 쿼리 언어: 데이터를 정의하고 조작하기 위해 SQL(구조적 쿼리 언어)을 사용합니다.
- 확장성: 일반적으로 수직으로 확장됩니다(기존 서버에 더 많은 성능 추가).
- 종류: MySQL, PostgreSQL, Oracle 데이터베이스, Microsoft SQL Server.
NoSQL 데이터베이스
데이터 모델 정의:
- 스키마 없는 또는 동적 스키마: NoSQL 데이터베이스에는 사전 정의된 스키마가 필요하지 않은 경우가 많으므로 유연하고 동적인 데이터 구조가 가능합니다.
- 다양한 데이터 모델: 다음과 같은 여러 유형의 데이터베이스를 포함합니다.
- 문서 저장소: 데이터를 문서(예: JSON, BSON)에 저장합니다. 예: MongoDB, CouchDB.
- 키-값 저장소: 데이터를 키-값 쌍으로 저장합니다. 예: Redis, DynamoDB.
- 열군 저장소: 데이터를 행이 아닌 열에 저장합니다. 예: 카산드라, HBase.
- 그래프 데이터베이스: 노드, 간선 및 속성이 포함된 그래프 구조에 데이터를 저장합니다. 예: Neo4j, OrientDB.
- 최종 일관성: 분산 시스템에 적합한 즉각적인 일관성보다 최종 일관성을 사용하는 경우가 많습니다.
특징:
- 비정형 또는 반정형 데이터: JSON 문서 또는 키-값 쌍과 같은 비정형 또는 반정형 데이터에 적합합니다.
- 수평적 확장성: 단일 서버의 성능을 늘리는 대신 더 많은 서버를 추가하여 확장할 수 있도록 설계되었습니다.
- 유연한 데이터 모델: 엄격한 스키마를 정의할 필요 없이 다양한 데이터 유형과 구조를 처리할 수 있습니다.
- CAP 정리: 일반적으로 CAP 정리(Consistency, Availability, Partition Tolerance)를 최적화하지만 세 가지를 모두 동시에 최적화하지는 않습니다. (A와 C 둘중 하나 선택, 필수)
- 사용 사례: 빅 데이터 애플리케이션, 실시간 분석, 콘텐츠 관리 등 고성능, 확장성, 유연성이 필요한 애플리케이션에 적합합니다.
비교 요약:
특징/측면RDBMSNoSQL
스키마 | 고정 스키마 | 동적 스키마 또는 스키마 없는 |
데이터 모델 | 테이블 기반(행 및 열) | 문서, 키-값, 열군, 그래프 |
관계 | 정규화된 관계(외래 키와의 복잡한 관계) | 비정규화된 관계(애플리케이션 수준 처리) |
일관성 | ACID 트랜잭션(즉각적 일관성) | 최종 일관성(종종), BASE(기본적으로 사용 가능, 소프트 상태, 최종 일관성) |
확장성 | 수직(규모 확대) | 수평(확장) |
쿼리 언어 | SQL | 다양함(예: MongoDB 쿼리 언어, Cassandra용 CQL) |
사용 사례 | 구조화된 데이터, 복잡한 쿼리, 트랜잭션 시스템 | 빅 데이터, 실시간 분석, 유연하고 진화하는 데이터 모델 |
예 | MySQL, PostgreSQL, 오라클, SQL 서버 | MongoDB, Redis, 카산드라, Neo4j |
이 비교에서는 RDBMS 및 NoSQL 데이터베이스 중 요구 사항에 따라 올바른 유형의 데이터베이스를 선택 필요함
반응형
'도전기 > SQLP' 카테고리의 다른 글
ch04_라이브러리 캐시 최적화[오라클 성능 고도화 원리와 해법_I] (0) | 2024.08.29 |
---|---|
ch04_라이브러리 캐시 최적화_05[오라클 성능 고도화 원리와 해법_I] (0) | 2024.08.27 |
ch04_라이브러리 캐시 최적화_04[오라클 성능 고도화 원리와 해법_I] (0) | 2024.08.27 |
SQLD_SQLP ANSI 표준 구문 (0) | 2024.05.23 |
SQLD/SQLP_논리연산자 우선순위 (0) | 2024.05.23 |