3주차 - 5) 데이터베이스

변현섭·2023년 6월 8일
1

4th UMC Server-Spring Study

목록 보기
11/30

Ⅲ. 보충 설명

1. NoSQL

NoSQL(비관계형 데이터베이스)도 DBMS의 종류 중 하나이다. SQL의 의미는 알고 있을 것이고, 앞에 붙은 No는 Not Only를 의미한다('관계형이 아니다'라는 뜻의 No라는 말도 있다). 직역하면 "SQL만이 아니다"라는 뜻인데, NoSQL은 단순히 기존의 RDBMS가 가지고 있는 특성뿐만 아니라 다른 부가적인 특성을 지원한다는 것이다. NoSQL은 ACID를 제공하지 않는(완화하는) 대신 확장성과 성능이 매우 뛰어난 분산형 데이터베이스(RDBMS의 경우 하나의 고성능 머신에 데이터를 저장했으나 NoSQL은 수십 대의 서버를 연결해 데이터를 저장 및 처리하는 구조임)이다.

데이터베이스를 구성하는 Entity, 속성, 관계 및 제약조건을 전반적으로 정의하여 데이터베이스가 대략 어떠한 구조를 취하게 될지 나타낸 것을 스키마라 하는데, NoSQL에선 스키마가 정해져 있지 않아 보다 자유로운 데이터 저장이 가능하다. 따라서 RDBMS로 관리할 수 없는 복잡하고 용량이 큰 데이터들을 관리할 수 있다. 아래의 예시를 보자.

데이터간의 관계가 정의되지 않으므로 join의 개념이 사라진다. 또한 복잡도가 낮기 때문에 대용량의 데이터를 관리하기도 수월해질 것이다. 다만, key값에 대한 입출력만 지원하다 보니 복잡한 연산을 수행하기에는 어려움이 있을 수 있다. 최근 들어 데이터의 복잡도와 크기가 증가함에 따라 NoSQL이 빠르게 성장하고는 있지만, RDBMS를 대체하기에는 여전히 부족한 점이 많다. 무조건 뭐가 더 낫다고 이야기할 수 없기 때문에, 상황에 따라 유동적으로 데이터베이스의 유형을 판단하는 것이 중요하다.

2. EERD(Extended ERD)의 슈퍼타입과 서브타입

1) 개념

슈퍼타입과 서브타입은 쉽게 말해 부모 테이블과 자식테이블이다. 아래의 예시를 보자.

공통 속성만 사원 엔티티에 남기고, 기술직과 관리직만의 특별한 속성은 별도의 서브 엔티티로 구성한다.

위에서 사용된 반달모양 기호는 두 서브타입 간의 교집합이 없음을 의미하고, 이를 exclusive 서브 카테고리라 한다. 이를 해석하면 기술직이면 관리직이 아니고 관리직일 경우 기술직이 아니라는 뜻이다. 이 때 사원구분과 같이 구분자 속성을 반드시 지정해주어야 하며, 이러한 속성을 가리켜 설계 속성이라 한다. 반대로 두 서브타입 간의 교집합이 있을 경우에는 inclusive 서브 카테고리라 하며, 아래의 기호로 표시한다.

이를 해석하면, 사원은 기술직이면서 관리직일 수 있다는 뜻이 된다.

2) 슈퍼타입과 서브타입 관계의 변환

① 슈퍼타입 기준 테이블 변환

  • 접수를 처리하는 경우에 있어 방문접수와 인터넷접수의 두가지 방식이 있을 것이다.
  • 이 때, 접수는 슈퍼타입이 되고 방문과 인터넷은 서브타입이 된다.
  • 두 가지의 서브타입을 뭉뚱그려 접수 테이블 하나로 만들어버리는 것을 슈퍼타입 기준 테이블 변환이라 한다.

② 서브타입 기준 테이블 변환

  • 서브타입의 테이블을 각각 나누어 관리하는 것을 서브타입 기준 테이블 변환이라 한다.

③ 개별타입 기준 테이블 변환

  • 슈퍼타입과 서브타입의 테이블을 모두 각각 나누어 관리하는 것을 개별타입 기준 테이블 변화이라 한다.

[이미지 출처]

profile
Java Spring, Android Kotlin, Node.js, ML/DL 개발을 공부하는 인하대학교 정보통신공학과 학생입니다.

0개의 댓글