충분히 쌓여가는
02 데이터베이스 종류 본문
계층형 데이터베이스
데이터가 부모와 자식 관계를 이루는 트리 구조.
부모 레코드가 여러 자식 레코드를 가진다.
데이터 중복이 발생하기 쉬우며, 데이터는 상하 종속 관계로 이루어지므로 초기에 이 방식을 채택하면 이후 프로세스 변경이 어려워 현재는 거의 사용되지 않는다.
네트워크형 데이터베이스
데이터를 노드로 표현한 모델.
노드는 네트워크 상에 있으면 서로 대등한 관계이다.
네트워크형 데이터베이스는 계층형 데이터베이스의 단점인 데이터 중복 문제, 상하 종속 관계를 해결했다.
레코드 간의 관계를 일대다 또는 다대다로 표현할 수 있지만, 종속성 문제가 생기기 쉬워 데이터베이스 구조를 변경하기 어렵다.
키-값 데이터베이스
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 |