Notice
Recent Posts
Recent Comments
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

02 데이터베이스 종류 본문

MSSQL/데이터베이스와 SQL의 기초

02 데이터베이스 종류

빌드이너프 2024. 9. 28. 10:25

계층형 데이터베이스

데이터가 부모와 자식 관계를 이루는 트리 구조.

부모 레코드가 여러 자식 레코드를 가진다.

 

데이터 중복이 발생하기 쉬우며, 데이터는 상하 종속 관계로 이루어지므로 초기에 이 방식을 채택하면 이후 프로세스 변경이 어려워 현재는 거의 사용되지 않는다.

 

네트워크형 데이터베이스

데이터를 노드로 표현한 모델.

노드는 네트워크 상에 있으면 서로 대등한 관계이다.

네트워크형 데이터베이스는 계층형 데이터베이스의 단점인 데이터 중복 문제, 상하 종속 관계를 해결했다.

레코드 간의 관계를 일대다 또는 다대다로 표현할 수 있지만, 종속성 문제가 생기기 쉬워 데이터베이스 구조를 변경하기 어렵다.

 

키-값 데이터베이스

NoSQL의 한 종류로 키-값을 일대일 대응해 데이터를 저장한다.

데이터 중복이 발생하며 비정형 데이터 저장에 유리하다.

키와 값을 한 쌍으로 데이터를 저장하는 비관계형 데이터베이스 유형.

키-값 데이터베이스는 고유한 식별자로 사용하며 단순한 객체에서 복잡한 집합체에 이르기까지 무엇이든 키와 값이 될 수 있다.

K1 AAA, BBB, CCC
K2 AAA, BBB
K3 AAA, DDD
K4 AAA, 2, 01/01/2015
K5 3, ZZZ, 5623

키-값 데이터베이스의 특징은 스키마 없이 자동한다는 점이다.

따라서 데이터 구조를 미리 정의할 필요가 없으며 시간이 지나더라도 언제든지 바꿀 수 있으므로 비정형 데이터를 쉽게 저장할 수 있다.

(스키마: 데이터베이스의 구조와 제약 조건에 대하여 전반적인 명세를 기술한 것)

 

관계형 데이터베이스

실무에서 많이 사용하는 데이터베이스 종류의 하나.

데이터를 테이블 형태로 저장한다.

행(row)와 열(column)으로 구성한 테이블로 정리하며 고유키(PK)가 각 행을 식별한다.

데이터는 행 단위로 저장되며, 각 항목의 속성은 열이라고 표현한다.

각 열은 고유한 이름을 가지며 자신만의 타입을 가진다.
Field 또는 Attribute라고도 한다.
관계된 데이터의 묶음을 의미하며 한 테이블의 모든 행은 같은 수의 열을 가진다.
Tuple 또는 Record라고도 한다.
테이블 행과 열 값들의 모음.
도메인 특성에 따라 데이터를 논리적으로 그룹화해 놓은 것.

 

ERD로 이해하는 테이블 관계

ERD(Entity Relationship Diagram)

논리 모델: 데이터 모델의 첫 단계로 고객의 요구 사항을 수집, 분석해 데이터베이스의 전체 모양을 구성하는 것

물리 모델: 논리 모델을 바탕으로 실제 데이터를 저장할 수 있는 모델을 표현한 것

 

테이블로 알아보는 관계형 데이터베이스의 필요성

주문 테이블

주문 번호 회원 이름 회원 주소 주문 상품 배송 주소
100 이지스 서울 SQL 서울
101 퍼블리싱 대전 SQL 대전
102 이지스 서울 Python 서울

만약 이지스 고객의 회원 주소가 '서울'에서 '부산'으로 바뀐다면 어떻게 될까?

: 주문 테이블에서 회원 이름이 '이지스'인 데이터를 모두 찾아 회원 주소를 '서울'에서 '부산'으로 수정해야 한다.

 

지금은 '주문 테이블' 하나만 수정하면 되므로 수정 자체가 큰 문제는 아니지만,

다른 테이블도 회원 주소를 포함한 다면 해당 테이블을 모두 찾아 수정해야 한다.

 

관계형 데이터베이스는 테이블을 분리하고 각 테이블 목적에 맞는 데이터만 저장한 후, 테이블을 참조 관계로 연결해 이러한 문제를 해결한다.

관계형 데이터베이스는 데이터의 중복과 관리 효율성을 추구한다.

 

주문 테이블 재구성

주문 테이블을 '회원 테이블'과 '주문 테이블'로 나눈 후, 회원 번호로 회원 테이블과 주문 테이블을 연결한다.

회원 테이블

회원 번호 회원 이름 회원 주소
1000 이지스 서울
1001 퍼블리싱 대전
1002 주식회사 제주도

 

주문 테이블

주문 번호 회원 번호 주문 상품 배송 주소
100 1000 SQL 서울
101 1001 SQL 대전
102 1000 Python 서울

이렇게 테이블을 구성하면 '회원 주소'가 변경되는 경우에는 '회원 테이블만' 수정하면 된다.

 

관계형 데이터베이스의 종류

데이터베이스 상용 유무 특징
SQL Server 상용 마이크로소프트에서 개발한 RDBMS
Oracle 상용 오라클에서 개발한 RDBMS
DB2 상용 IBM에서 개발한 RDBMS
PostgreSQL 오픈 소스 버클리 대학교에서 개발한 RDBMS
MySQL 오픈 소스 오픈 소스 커뮤니티에서 개발한 RDBMS
SQLite 오픈 소스 오픈 소스 커뮤니티에서 개발한 RDBMS로 임베디드 시스템에 주로 사용

'MSSQL > 데이터베이스와 SQL의 기초' 카테고리의 다른 글

04 SQL을 배워야 하는 이유  (2) 2024.09.28
03 SQL이란 무엇인가  (0) 2024.09.28
01 데이터베이스의 기본 개념  (0) 2024.09.27