what database
DBMS (database management system)
- 데이터베이스 관리 시스템
- 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합
- DB Server(제공), DB Client(사용)
참고: 위키독스
데이터베이스 DataBase(DB)
데이터베이스의 특징
- 실시간 접근성
- 지속적인 변화
- 동시 공유
- 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합
데이터베이스 장점
- 데이터 중복 최소화
- 데이터 공유
- 일관성, 무결성, 보안성 유지
- 용이한 데이터 접근
데이터베이스 단점
- 데이터베이스 전문가 필요(DBA)
- 많은 비용 부담
- 데이터 백업과 복구가 어려움(DBMS 필요)
- 대용량 디스크로 엑세스가 집중되면 과부하 발생
참고: 위키독스
DBMS 종류
관계형 데이터베이스 RDBMS
- 관계 대수(relational algebra)라는 것에 착안하여 만들어진 데이터베이스
- 관계 대수 형태란, 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스
- 가로 방향으로는 '열'을', 세로 방향으로는 '행'을 나열
- 각각의 표에 이름을 붙여 관리하고, 이 때, 데이터베이스 안의 데이터는 SQL 명령어로 조작
NoSQL
- 키와 그에 대응하는 값(밸류)이라는 단순한 형태의 데이터를 저장하는 데이터베이스
- 키와 밸류의 조합은 연상배열이나 해시 테이블(hash table)
- 연상배열(associative array)은 자료구조의 하나로, 키 하나와 값 하나가 연관되어 있으며 키를 통해 연관되는 값을 얻으며 연상 배열, 결합성 배열, 맵(map), 딕셔너리(dictionary)로 불려짐
참고 블로그 :https://velog.io/@jacoblee19/%EB%8B%A4%EC%96%91%ED%95%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4
RDBMS 데이터베이스 제품
Oracle
- 오라클에서 개발한 RDBMS
- 현재 가장 많이 쓰이는 RDBMS 중 하나로, RDBMS의 사실상 표준
DB2
- IBM이 개발한 데이터베이스로 오라클만큼 역사가 오래된 RDBMS
SQL Server
- 마이크로소프트가 개발한 RDBMS로, 윈도우 플랫폼에서만 동작
PostgreSQL
- PostgreSQL은 오픈 소스 커뮤니티가 개발한 RDBMS
MySQL
- 마찬가지로 오픈소스 커뮤니티에서 태어난 RDBMS
- 오픈소스 중 가장 많잉 사용하는 RDBMS
MariaDB
- MySQL과 동일한 소스 코드를 기반의 오픈소스 RDBMS
- 오라클 소유의 현재 불확실한 MySQL의 라이선스 상태에 반발하여 만들어짐
SQLite
오픈소스 커뮤니티에서 태어났고, 임베디드 시스템에 자주 쓰이는 작은 RDBMS
NoSQL 종류
DB 사용 순위
https://db-engines.com/en/ranking
SQL
- 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어
- 많은 수의 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택
명령어 종류
- 데이터 정의 언어 (DDL : Data Definition Language)
- 데이터 조작 언어 (DML : Data Manipulation Language)
- 데이터 제어 언어 (DCL : Data Control Language)
데이터 정의 언어 DDL
- CREATE (데이터베이스 개체 (테이블, 인덱스, 제약조건 등)의 정의)
- DROP (데이터베이스 개체 삭제)
- ALTER (데이터베이스 개체 정의 변경)
데이터 조작 언어 DML
- INSERT INTO (행 데이터 또는 테이블 데이터의 삽입)
- UPDATE ~ SET (표 업데이트)
- DELETE FROM (테이블에서 특정 행 삭제)
- SELECT ~ FROM ~ WHERE (테이블 데이터의 검색 결과 집합의 취득)
데이터 제어 언어 DCL
- GRANT (특정 데이터베이스 사용자에게 특정 작업을 수행 권한을 부여)
- REVOKE (특정 데이터베이스 이용자로부터 이미 준 권한을 박탈 함.)
- TRANSACTION ( 트랜잭션 처리)
커서 CURSOR
- SELECT 문장 등에 의한 데이터베이스 검색에 의한 검색 실행 결과를 한 줄씩 검색하고, 처리하기 위해 데이터베이스 서버 측의 결과 집합과 행 획득 위치를 나타내는 개념