Database
관계형 데이터베이스
특징
- 데이터를 행과 열로 구성된 테이블 형태로 저장
- 고정된 스키마를 사용하며, 변경이 어렵다는 특징이 있음
- SQL(구조화된 쿼리 언어)을 사용하여 데이터 관리 및 조회
- 테이블 간 관계를 설정하여 데이터 무결성을 보장
- ACID(Atomicity, Consistency, Isolation, Durability) 속성을 통해 데이터 일관성을 유지
장점
- 데이터 무결성(정확성과 일관성을 유지하는 성질)
- 복잡한 쿼리 처리 가능
- 데이터 관계 관리에 강함
단점
- 수평적 확장이 어려움
수평적 확장이란? 데이터를 여러 서버에 나누어 각 서버가 일부 데이터들을 담당하도록 설정하는 것을 뜻한다. - 정해진 스키마 변경이 복잡하여 유연성이 부족함
- 대규모 비정형 데이터 처리에 비효율적
대표 DBMS
- MySQL
- PostgreSQL
- Oracle DB
- Microsoft SQL Server
비관계형 데이터베이스
특징
- 정해진 스키마가 없어 데이터의 구조 변경이 쉬움
- 다양한 구조의 데이터를 저장 가능
- 분산 시스템을 통해 대량의 데이터 처리 가능
- 읽기/쓰기 성능 최적화
장점
- 대규모 데이터 처리 가능 및 늪은 확장성
- 다양한 데이터 구조 처리
- 스키마 유연성
단점
- 데이터 일관성 보장에 약할 수 있음
- 관계 데이터 및 복잡한 쿼리 처리에 비효율적
- 트랜잭션 기능이 제한적일 수 있음
대표 DBMS
- MongoDB (문서기반)
- Redis (키-값 저장소)
- Cassandra (열 기반)
- Neo4j (그래프 DB)
데이터 모델링
실제 요구사항을 데이터간의 관계로 표현하는 과정
데이터 모델링 과정
개념적 데이터 모델링
데이터 구조에 대해 추상적으로 설계하는 단계
데이터 타입, 속성, 관계, 제약 조건 등을 파악하여 ERD를 작성한다.논리적 데이터 모델링
개념적 데이터 모델링의 결과를 DBMS에 맞게 변환하는 단계
ERD를 SQL 언어로 변환하는 과정을 말한다.물리적 데이터 모델링
실제 하드웨어에 데이터를 저장 방식을 결정하는 단계
엔터티 Entity
현실 세계에서 관리하고자 하는 대상으로, 데이터베이스 내의 하나의 테이블에 해당한다.
인스턴스 Instance
엔터티에 속하는 개별 데이터로, 하나의 집합에 속한 특정 개체를 가리키며, 데이터베이스 내의 하나의 행에 해당한다.
속성 Attribute
엔터티가 가지는 특성이나 정보를 나타내는 항목을 가리키며, 데이터베이스 내의 하나의 열에 해당한다.
SQL 데이터 타입
문자열
문자열 타입 지정하기
PostgreSQL MySQL 설명 CHAR(1) CHAR(1) 글자 하나 저장 가능 VARCHAR(x) VARCHAR(x) 최대 길이 x만큼 글자 저장 가능 TEXT TEXT 매우 긴 문자열 저장 가능 문자열 작성 시, 작은따옴표로 감싸 작성한다.
Boolean
불리언 타입 지정하기
PostgreSQL MySQL 설명 BOOLEAN tinyint 참, 거짓을 표현 불리언 작성 시,
TRUE또는FALSE로 작성한다.
ENUM
ENUM 타입 지정하기
PostgreSQL MySQL 설명 ENUM('bad','good') ENUM('bad','good') 지정한 값만 넣을 수 있는 데이터 타입 ENUM 작성 시, 괄호 안에 지정할 데이터 값을 작성한다.
숫자
숫자 타입 지정하기
이름 사이즈 설명 integer 4 bytes 정수(-2147483648 ~ 2147483647) decimal, numeric variable 소수점 앞 최대 131072자리; 소수점 뒤 최대 16383자리 double precision 8 bytes 소수 15자리 정밀도 serial 4 bytes 순차적으로 숫자를 늘려 저장, 정수, auto-increment(1 ~ 2137383647)
DateTime
DateTime 타입 지정하기
PostgreSQL MySQL 설명 timestamp(0) DATETIME(0) 2024-07-23 12:34:56 timestamp(3) DATETIME(3) 2024-07-23 12:34:56.789 timestamp(6) DATETIME(6) 2024-07-23 12:34:56.789123
CRUD란?
Create 생성
Read 조회
Update 갱신
Delete 삭제
'Notes > Database' 카테고리의 다른 글
| Database Chapter. 9 (2) | 2024.11.27 |
|---|---|
| Database Chapter. 4~7 (1) | 2024.11.21 |