-
다양한 데이터베이스 특징공부하기/데이터베이스 2023. 2. 18. 21:01
데이터베이스의 원칙
- data integrity(무결성) : 정확성, 일관성, 유지성이 유지되는 것
- 개체 무결성 : 모든 테이블은 기본키(pk)를 가져야하며 null값과 중복을 허용하지 않는다.
- 참조 무결성
- 참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 유지해야 한다.
- 외래키 값은 null이거나 참조하고 있는 테이블의 기본키 값과 같아야 한다.
- 도메인 무결성 : 테이블에 존재하는 컬럼의 데이터 타입이 알맞게 저장되어야 한다.
- 고유 무결성 : 테이블 컬럼의 값은 고유해야 한다.
- 키 무결성 : 하나의 테이블에는 적어도 하나의 키가 존재해야 한다.
- data reliability (안전성) : row, column 구조 변경 시 최소화해야 한다.
- scalability (확장성) : 요구사항의 변경등으로 컬럼 추가 또는 테이블 참조를 대비해서 설계를 해야한다.
데이터 베이스 종류
- relational
- 특징
- 데이터를 테이블 형태로 구성한다
- 각 테이블은 여러 개의 열과 행으로 구성된다.
- 각 행은 유일한 식별자를 갖는다
- 테이블 간에 관계를 설정할 수 있다.
- 데이터를 구조화하고 관리하는데 매우 유용
- 종류
- Mysql
- Oracle
- Postgresql
- 특징
- key-value
- 특징
- 키를 고유한 식별자로 사용하는 키-값 쌍의 집합으로 데이터를 저장
- 단순한 객체에서 복잡한 집합체에 이르기까지 무엇이든 키와 값이 될 수 있다
- 파티셔닝이 가능하고 다른 유형의 데이터베이스로는 불가능한 범위까지 수평 확장을 가능
- 캐시와 같이 일시적인 데이터를 저장하는데 사용된다
- 종류
- AWS DynamoDB
- Redis
- 특징
- graph
- 특징
- 데이터를 노드와 간선으로 이루어진 그래프 형태로 저장
- 모든 작업을 그래프와 그래프 이론을 통해 동작한다는 것
- 인덱스를 이용하지 않아도 연결된 노드를 찾는 것이 빠르다는 것
- nosql과 마찬가지로 스키마가 없는 구조
- 종류
- Neo4j
- 특징
- document (nosql)
- 특징
- 데이터간의 관계를 정의하지 않는다.
- 데이터를 JSON, BSON, XML과 같은 문서 형식으로 저장
- 빅데이터, 로그 데이터 및 사용자 데이터와 같은 비정형 데이터를 저장하고 분석하는데 적합
- 스키마가 없는 데이터를 여러 컬렉션과 노드에 저잘할 수 있다
- 종류
- MongoDB
- 특징
RDBMS, NoSQL 비교
RDBMS : 데이터 구조가 명확하며 변경 될 여지가 없으며 명확한 스키마가 중요한 경우 사용
NoSql : 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우에 사용
- 데이터 모델 차이
- RDBMS : 데이터는 정형화된 테이블에 행과 열로 저장
- NoSQL: 다양한 데이터 모델을 사용할 수 있고 document, key-value, graph등의 형태로 데이터를 저장
- 확장성
- RDBMS :
- 수직적 확장( scale-up )은 가능하지만 수평적 확장이 어려울 수 있다.
- 서버 자체의 성능 한계로 확장설이 제한된다.
- NoSQL :
- 수평적 확장이 가능하기 때문에 노드를 추가하면 확장설이 높아진다.
- RDBMS :
- 일관성
- RDBMS : ACID 트랜잭션을 지원하여 일관성이 높다
- NoSQL : BASE(Basically Available, Soft-state, Eventually consistent) 원칙을 따르기 때문에, 일관성은 상대적으로 낮을 수 있다
- 성능
- RDBMS : 복잡한 JOIN 연산이 많은 쿼리에서 성능이 떨어질 수 있다.
- NoSQL : 데이터가 분산되어 있어서 JOIN 연산이 필요하지 않기 때문에 성능이 더 빠를 수 있다.
'공부하기 > 데이터베이스' 카테고리의 다른 글
MySql Isolation Level(격리수준) (0) 2023.02.19 MySql Database Lock (0) 2023.02.19 MySQL UNION 요약 (0) 2023.02.10 MySQL CTE 요약 (0) 2023.02.10 MySQL EXISTS 요약 (0) 2023.02.10 - data integrity(무결성) : 정확성, 일관성, 유지성이 유지되는 것