데이터베이스(Database, DB)란?: 데이터의 저장소(데이터의 집합)
다수가 공유하고 사용할 목적으로, 지속적으로 유지 관리해야할 데이터의 집합으로 데이터를 관리하는 SQL과 NOSQL 이 있다
DBMS(Database Management System, 데이터베이스 관리 시스템): 데이터베이스를 운영하고 관리하는 소프트웨어
계층형, 망형, 관계형 DBMS 중 대부분의 DBMS가 테이블로 구성된 관계형 DBMS(RDMBS) 형태로 사용된다
사진 처럼 계좌주인, 은행원, 인터넷 뱅킹, ATM 등에서 모두가 접근이 가능한 이유는 DBMS가 있기 때문이다
대표적인 DBMS
데이터들의 정보를 저장하고 처리하기 위한 프로그래밍 언어
대표적인 SQL
MySQL Oracle, PostgreSQL등이 있다
대표적인 NoSQL
몽고DB, Redis 등이 있다
● 유연성
데이터베이스 시스템이 다양한 종류의 데이터 모델을 지원하기 때문에 데이터를 저장하고 검색하는데 매우 유연하다
● ACID준수
SQL은 ACID(원자성, 일관성, 고립성, 지속성)를 준수하는 관계형 데이터베이스 시스템의 특성을 가지고 있어 데이터 일관성과 무결성을 보장한다
● 보안
SQL은 권한 기반 액세스 제어 및 데이터 암호화 기술 등을 다양한 보안 기능을 제공해서 데이터를 안전하게 저장하고 보호할 수 있다
● 확장성
SQL은 수직 확장(하드웨어 업그레이드)에 적합해서 수평 확장(데이터베이스 서버추가)을 지원하지 않아 대규모 애플리케이션에는 한계가 있다
● 스키마 변경
스키마를 변경하려면 데이터베이스에 있는 모든 데이터 구성을 다시 해야한다 이는 불필요한 복잡성과 에러 가능성을 야기할 수 있다
● 확장성
NoSQL은 수평 확장(데이터베이스 서버 추가)을 지원하므로 대규모 어플리케이션에서 더 적합하고 이는 클라우드 기술의 발전과 더불어 NoSQL의 인기를 높인 요인 중 하나이다
● 유연성
NoSQL은 스키마를 지원하지 않아 데이터를 보다 유연하게 저장할 수 있고 이는 데이터 모델이 변경될 가능성이 높은 경우에 적합하다
● 성능
NoSQL은 일반적으로 적은 자원으로 많은 양의 데이터를 처리할 수있어 빠른 속도와 높은 확장성을 제공한다
● 일관성
NoSQL 데이터베이스는 분산 시스템을 기반으로 하기 때문에 일관성을 보장하기 어렵다
● 제한된 도구 지원
NoSQL 데이터베이스는 RDBMS에 비해 상대 적으로 지원하는 도구가 적다
● 스키마의 부재
스키마가 미리 정의되어 있지 않기 때문에 데이터의 무결성을 보장하기 어렵다
데이터의 타입, 필드 이름, 제약 조건 등을 정의하며, 이를 통해 데이터의 일관성과 무결성을 보장하는 것
MySQL에서는 table과 schema가 동의어이지만
schema는 tables의 집합이고 database는 schemas의 집합이다
데이터를 조회 하거나 검색하기 위한 명령어: select
데이터 삽입: insert
데이터 수정: update
데이터 삭제: delete 가 있다
데이터 구조를 정의하는데 사용하는 멸령어들로
create, alter, drop, rename, truncate 등이 있다
데이터 베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어로
grant(승인), revoke(취소) 가 있다
논리적인 작업의 단위를 묶어서 DML(insert, update, delete)문이 실행되어 이 실행되어
DBMS에 저장 되거나 되돌리기 위해서 실행하는 명령어로
commit, rollback, savepoint 가 있다
https://velog.io/@zlfmaodtod77/MySQL-%EC%82%AC%EC%9A%A9
(MySQL 정리)
ORM(객체 - 관계 - 매핑) 의 약자
사용이유
장점
단점