728x90
계층형 데이터베이스
- 데이터가 부모와 자식 관계를 이루는 트리 구조이다.
단점 : 계층형 데이터베이스는 데이터 중복이 발생하기 쉬우며, 데이터는 상하 종속 관계로 이루어지므로 초기에 이 방식을 채택하면 이후 프로세스 변경이 어려워 현재는 거의 사용되지 않는다.
네트워크형 데이터베이스
- 데이터를 노드로 표현한 모델이다.
- 노드는 네트워크상에 있으며 서로 대등한 관계이다.
- 계층형 데이터베이스의 단점인 데이터 중복 문제, 상하 종속 관계를 해결했다.
멤버 노드를 살펴보면 여러 주인 노드를 가지는데, 멤버 노드는 반드시 주인 노드와 연결되어야 하며 멤버 노드는 주인 노드에 있는 레코드와 연관되어야 한다. 이처럼 네트워크형 데이터베이스는 레코드 간의 관계를 일대다 또는 다대다로 표현할 수 있지만, 종속성 문제가 생기기 쉬워 데이터베이스 구조를 변경하기 어렵다.
키 - 값 데이터베이스
NoSQL의 한종류로 키 - 값을 일대일 대응해 데이터를 저장한다. 데이터 중복이 발생하며 비정형 데이터 저장에 유리하다.
비정형데이터(unstructured data) | 형식이 없는 데이터로 흔히 텍스트, 음성, 영상과 같은 데이터가 비정형 데이터 범위에 속한다. |
정형데이터(structured data) | 정형 데이터는 데이터베이스의 정해진 규칙에 맞게 데이터를 저장하며, 각 데이터는 열 이름으로 의미를 쉽게 파악할 수 있다. |
NoSQL | 비관계형 데이터베이스를 가리킬 때 사용한다. 기존 관계형 데이터베이스의 한계를 극복하는 데이터 저장소로 도큐먼트, 그래프, 키 - 값, 검색 등 다양한 데이터 모델을 사용한다. |
NoSQL 데이터베이스의 종류와 특징
NoSQL 유형 | 특징 | 종류 |
키 - 값 데이터베이스 (Key - Value Database) |
키 - 값 형태로 저장하며 수평으로 확장하기 쉽다. 값의 내용으로 쿼리할 수 없다. | Memcached, Redis, LevelDB 등 |
도큐먼트 데이터베이스 (Document Database) |
키 - 값 모델이 진화한 형태로 키 - 도큐먼트 형태로 저장된다. 값이 계층적인 형태로 저장된다. | MongoDB, CouchDB, MarkLogic 등 |
컬럼 데이터베이스 (Column Database) |
키에 해당하는 값에 각기 다른 스키마를 가질 수 있다. 대용량 데이터 압축, 분산 처리, 집계 처리 등에 뛰어나다. | HBase, Cassandra, Hypertable 등 |
그래프 데이터베이스 (Graph Database) |
데이터를 노드로 표현하며 노드 사이의 관계를 엣지로 표현한다. 소셜미디어나 네트워크 다이어그램 등에서 사용할 수 있다. | Neo4j, Blazegraph, OrientDB 등 |
관계형 데이터베이스
- 실무에서 많이 사용하는 데이터베이스 종류 중 하나이다.
- 관계형 데이터베이스에서는 데이터를 테이블 형태로 저장한다.
용어 | 설명 |
열 | 각 열은 고유한 이름을 가지며 자신만의 타입을 가진다. 열은 필드 또는 애트리뷰트라고도 한다. |
행 | 관계된 데이터의 묶음을 의미하며 한 테이블의 모든 행은 같은 수의 열을 가진다. 행은 튜블 또는 레코드라고도 한다. |
테이블 | 행과 열 값들의 모음을 나타내며, 도메인 특성에 따라 데이터를 논리적으로 그룹화해 놓은 것이다. |
ERD
- 테이블 간의 관계를 표현한 그림을 말한다.
- 논리 모델 : 데이터 모델의 첫 단계로 고객의 요구 사항을 수집, 분석해 데이터베이스의 전체 모양을 구성하는 것을 말한다.
- 물리 모델 : 논리 모델을 바탕으로 실제 데이터를 저장할 수 있는 모델을 표현한 것을 말한다.
대중적으로 잘 알려진 데이터베이스
데이터베이스 | 상용 유무 | 특징 |
SQL Server | 상용 | 마이크로소프트에서 개발한 RDBMS |
Oracle | 상용 | 오라클에서 개발한 RDBMS |
DB2 | 상용 | IBM에서 개발한 RDBMS |
PostgreSQL | 오픈 소스 | 버클리 대학교에서 개발한 RDBMS |
MySQL | 오픈 소스 | 오픈 소스 커뮤니티에서 개발한 RDBMS |
SQLite | 오픈 소스 | 오픈 소스 커뮤니티에서 개발한 RDBMS로 임베디드 시스템에 주로 사용 |
728x90
'DBMS > MySQL 정리' 카테고리의 다른 글
[MySQL] 와일드카드로 문자열 검색하기 (0) | 2023.06.19 |
---|---|
[MySQL] ORDER BY문으로 데이터 정렬하기 (0) | 2023.06.15 |
[MySQL] SQL이란 무엇인가 ? (2) | 2023.06.14 |
[MySQL] 데이터베이스의 기본 개념 (4) | 2023.06.10 |
[MySQL] SELECT문, WHERE 문 (2) | 2023.06.07 |