데이터베이스란?
2021.05.27 - [IT/CS] - [DB] 데이터베이스 기초
[DB] 데이터베이스 기초
데이터베이스(DataBase)란? 통합하여 관리되는 데이터의 집합체 중복된 데이터 최소화, 자료 구조화, 효율적인 처리를 할 수 있도록 관리 데이터베이스 정의 및 특징 정의 - 통합된 데이터(Integrated
honeywater97.tistory.com
계층형 데이터베이스(HDBMS)
폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식
- 데이터의 관계를 트리 구조로 정의, 부모-자식 형태를 가짐
종류
하드디스크, DVD 파일 시스템 등
장점
- 데이터의 액세스 속도가 빠름
- 데이터의 사용량 쉽게 예측
단점
- 상하 종속적인 관계로 구성되어 초기 세팅 후 프로세스 수용이 어려움
네트워크형 데이터베이스(NDBMS)
데이터 구조를 네트워크상의 노드 형태로 논리적이게 표현한 데이터 모델, 각각의 노드를 서로 대등한 관계로 구성한 시스템
장점
- 계층형 데이터베이스의 데이터 중복 문제 해결, 상하 종속적 관계 해결
단점
- 추후 변경 시 복잡한 구조로 인해 변경이 어려움
- 데이터 종속성을 해결하지 못함
관계형 데이터베이스(RDBMS)
행(Column)과 열(Row)을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스
- SQL을 이용하여 관리 및 접근
- 관계 대수(Realtional Algebra)에서 착안하여 만들어 짐
종류
Oracle
- 오라클에서 개발, 가장 많이 사용하는 RDBMS
- 중앙 집중 방식, Administration Monitoring 가능
- Multiple Databases 튜닝 가능
- 다른 Admin User들과 공유 가능
- 다양한 핸들링 지원
DB2
- IBM이 개발, 한동안 IBM 컴퓨터에서만 구동이 가능했음
SQL Server
- 마이크로소프트에서 개발, 윈도우 플랫폼에서만 동작
PostgreSQL
- 오픈 소스 커뮤니티에서 개발
MySQL
- 오픈소스 커뮤니티에서 개발
- 경량 데이터 베이스 ▶️ 기능이 확장되면서 다른 RDBMS와 비슷
2021.04.12 - [IT/CS] - [DB] MariaDB vs MySQL 차이점
[DB] MariaDB vs MySQL 차이점
MariaDB - MySQL이 오라클에 인수되면서 만들어진 오픈소스 RDBMS - MySQL과 완벽 호환 - 라이센스와 오라클로부터 자유로움 MySQL - 오라클에 인수되면서 라이센스 유료화 (학생 및 비상업용은 무료) 결
honeywater97.tistory.com
- 매우 적은 오버헤드 사용 ▶️ 오라클 128mb, MySql 1mb
장점
- 다양한 용도로 사용 가능(범용성), 높은 성능
- 데이터 무결성 보장, 높은 신뢰성
- 명확한(= 엄격한) 스키마 정의
- 정규화에 따른 갱신 비용 최소화
- 데이터의 분류, 정렬, 탐색 속도가 빠름
- 관계를 통해 각 데이터를 중복없이 한 번만 저장
단점
- 대량의 데이터 입력 처리
- 갱신이 발생한 테이블의 인덱스 생성 및 스키마 변경
- 컬럼 확장 어려움 ▶️ 유연성 부족
- 데이터베이스 부하 분석이 어려움
- 수평 확장의 어려움 ▶️ 데이터베이스 저장 방식으로 인해 수직 확장만 지원
수직 확장
데이터베이스 서버의 성능을 향상시키는 것 ex) CPU 업그레이드
수평 확장
서버를 추가하여 데이터베이스를 분산시키는 것. 여러 호스트에서 하나의 데이터베이스가 작동
객체지향 데이터베이스(ODBMS)
객체 그대로를 데이터베이스의 데이터에 저장하는 것
- 멀티미디어 데이터의 원활한 처리
- RDBMS의 비지니스형 데이터 타입만 처리되는 제한적 극복
NoSQL(Not Only SQL)
키(Key) - 값(Value)의 형태로 저장되는 데이터베이스, 키를 사용해 데이터 관리 및 접근
- 스키마 없음, 관계 없음
- Join이 존재하지 않고 데이터를 가져올 때, 컬렉션에 있는 데이터를 복제하여 필요한 데이터의 일부만 가져옴
- 정확한 데이터 요구 사항을 알 수 없거나 관계를 맺는 데이터가 자주 변경될 때 사용
- 읽기를 자주 하지만 데이터를 자주 변경하지 않는 경우 사용
- RDB와 NoSQL의 차이점
- NoSQL은 비정형 데이터(메신저 텍스트, 음성, 이미지 등)를 다룰 수 있음
- 수평 확장이 가능하여 분산형 컴퓨팅(클라우드)에 적합
종류
https://bestpractice80.tistory.com/66
Document Database
- 레코드마다 각각 다른 스키마를 가짐(유동적인 스키마)
- XML, JSON과 같은 Document를 이용해 레코드 저장
- 트리형 구조 ▶️ 레코드 저장 및 검색에 용이
- MongoDB(가장 유명), Azure Cosmos DB, CouchDB, MarkLogic, OrientDB 등
Wide Column Database
- 행마다 키와 값을 저장할 때 각각 다른 값의 다른 수의 스키마를 가짐
- Key 값의 스키마가 각각 다르다는 것을 사용자가 알 수 있음
- 대량의 데이터 압축, 분산처리, 집계 처리, 쿼리 동작속도, 확장성이 뛰어남
- Cassandra, HBase, Google BigTable 등
Key Value Database
- 기본적인 패턴, Key와 Value가 하나의 묶음으로 저장되는 단순한 구조
- 빠른 속도, 분산 저장 용이
- Scan에 용이하지 않음
- Redis, Oracle NoSQL Database 등
Graph Database
- 데이터를 노드로 표현하여 노드 사이의 관계를 엣지로 표현
- RDBMS보다 Performance가 좋고 유연
- 유지보수에 용이
- Social Network, Network diagrams 등에 사용
- Neo4j, OrientDB 등
장점
- 높은 유연성(스키마X) ▶️ 저장된 데이터를 조정하고 새로운 필드 추가 가능
- 애플리케이션에 필요한 형식으로 저장 ▶️ 데이터를 가져오는 속도가 빠름
- 수직 및 수평 확장 가능
단점
- 데이터 구조 결정이 늦어짐
- 복사된 데이터가 변경되면 모든 콜렉션과 문서 수정 필요
'IT > CS' 카테고리의 다른 글
[DB] 데이터 모델링2 - 데이터 독립성 (0) | 2021.08.02 |
---|---|
[DB] 데이터 모델링1 (0) | 2021.07.24 |
[알고리즘] 네트워크 플로우 (0) | 2021.07.08 |
[알고리즘] 백트래킹 (0) | 2021.07.08 |
[알고리즘] 위상 정렬 (0) | 2021.07.07 |