#1 Database란?
데이터베이스 = 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임 =데이터의 집합
ex) 등산할 때 기반이 되는 기지를 베이스캠프라 하듯이 데이터의 기지라는 뜻에서 데이터베이스 라고 한다(= 데이터를 모아둔 창고)
- 데이터베이스의 종류
관계형 데이터베이스(Relational Database)
데이터를 테이블 형식으로 저장하며, 테이블 간의 관계를 통해 데이터를 구조화
일반적으로 SQL을 사용하여 데이터를 조작한다. ex) MySQL, PostgreSQL, Oracle, SQL Server.
비관계형 데이터베이스(NoSQL Database)
관계형 모델 이외의 다양한 데이터 모델을 사용하여 데이터를 저장
문서, 키-값, 그래프, 칼럼 패밀리 등의 다양한 형식을 지원한다. ex) MongoDB, Cassandra, Redis, Neo4j.
#1-2 DBMS
데이터베이스를 ‘데이터의 집합’이라고 정의한다면, 데이터베이스를 관리하고 운영하는 소프트웨어를 DBMS(Database Management System)라고 한다.
데이터베이스는 여러 명의 사용자나 응용 프로그램과 공유하고 동시에 접근이 가능해야 하는데, 이때 DBMS가 데이터베이스와 사용자 또는 응용 프로그램 간의 인터페이스 역할을 하며, 데이터를 효율적으로 관리하고 보호한다.
- 주요 기능
데이터 정의: 테이블, 인덱스, 뷰 등 데이터베이스 구조를 정의하고 관리합니다.
데이터 조작: 데이터를 삽입, 수정, 삭제, 조회하는 기능을 제공합니다.
데이터 보안: 접근 권한 관리, 인증, 데이터 암호화 등을 통해 데이터의 보안을 유지합니다.
데이터 무결성: 데이터의 일관성과 정확성을 보장하기 위한 제약 조건(예: 키 제약 조건)을 제공합니다.
트랜잭션 관리: 여러 데이터베이스 작업을 하나의 단위로 처리하여 데이터의 일관성을 유지합니다.
백업 및 복구: 데이터베이스의 백업을 수행하고, 장애 발생 시 데이터를 복구할 수 있도록 지원합니다.
- DBMS의 종류
관계형 DBMS (RDBMS): MySQL, PostgreSQL, Oracle, SQL Server 등
비관계형 DBMS (NoSQL DBMS): MongoDB, Cassandra, Redis, CouchDB 등
#2 SQL이란?
SQL(Structured Query Language) = 데이터베이스에서 데이터를 추출하고 조작하는데에 사용하는 데이터 처리 언어
⇒ 데이터베이스에 저장된 정보를 쉽게 찾고 정리
- 주요 구성 요소
데이터 정의 언어(DDL: Data Definition Language)
데이터베이스 객체(테이블, 인덱스, 뷰 등)를 정의하고 수정하는 명령어 ex) CREATE, ALTER, DROP
데이터 조작 언어(DML: Data Manipulation Language)
데이터를 조작하는 명령어 ex) SELECT, INSERT, UPDATE, DELETE
데이터 제어 언어(DCL: Data Control Language)
데이터베이스의 접근 권한을 제어하는 명령어 ex) GRANT, REVOKE
트랜잭션 제어 언어(TCL: Transaction Control Language)
트랜잭션을 제어하는 명령어 ex) COMMIT, ROLLBACK, SAVEPOINT.
- 표준 SQL
SQL은 특정 회사에서 만드는 것이 아니라 국제표준화기구에서 SQL에 대한 표준을 정해서 발표한다. 이를 표준 SQL이라고 한다.
문제는 SQL을 사용하는 DBMS를 만드는 회사가 여러 곳이기 때문에 표준 SQL이 각 회사 제품의 특성을 모두 포용하지 못한다는 점이다. 그래서 DBMS를 만드는 회사에서는 되도록 표준 SQL을 준수하되, 각 제품의 특성을 반영한 SQL을 사용한다.
'Backend 🖥️' 카테고리의 다른 글
Docker에 대해 알아보자 (0) | 2024.07.24 |
---|---|
ORM이란? (0) | 2024.07.24 |
Swagger와 Postman (0) | 2024.07.24 |
프레임워크(Framework)란? (0) | 2024.07.24 |
웹통신이란? (0) | 2024.07.24 |