데이터베이스(Database)
중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체
데이터베이스 특징
실시간 접근성
사용자의 요구를 즉시 처리할 수 있다.
지속적인 변화
정확한 값을 유지하기위해 삽입, 삭제, 수정 작업 등을 이용해 데이터를 지속적으로 갱신할 수 있음
동시 공유
사용자마다 서로 다른 목적으로 사용하므로 동시에 여러 사람이 동일한 데이터에 접근하고 이용할
수 있다.
내용에 대한 참조
저장한 데이터 레코드의 위치나 주소가 아닌 사용자가 요구하는 데이터의 내용, 즉 데이터 값에
따라 참조할 수 있어야 한다.
데이터베이스 관리 시스템(DBMS)
데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어
데이터베이스 그 자체는 테이블일 뿐이다. 이를 컨트롤하는 소프트웨어가 필요하다.
사용자 또는 다른 프로그램의 요구를 처리하고 응답하여 데이터를 사용할 수 있도록 함
일반적으로 DB라고 함
DBS(Database System) DB + DBMS 등의 전체 시스템
데이터베이스 관리 시스템 장단점
장점
데이터 중복 최소화
데이터 독립성 확보
데이터 동시 공유
데이토 보안 향상
데이터 무결성 유지
장애 발생 시 회복이 가능
데이터 무결성
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성을 의미한다
단점
비용이 많이 발생 -> DBA 직무 및 인원 발생, 별도의 서버비용 발생
DMBS종류에 따른 백업과 회복 방법이 복잡 -> DBMS 별 사용방법이 다름
중앙 집중 관리로 인한 취약점이 존재 -> 랜섬웨어
데이터베이스 관리 시스템 기능
정의
app이 요구하는 데이터 구조를 지원하기 위해 db에 저장 될 데이터 형과 구조에 대한 정의,
이용방식, 제약 조건 등을 명시
조작
데이터 검색, 갱신, 삽입, 삭제 등을 체계적으로 처리하기 위해 사용자와 데이터베이스 사이의
인터페이스 수단을 제공하는 기능
제어
데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지
되도록 제어해야 한다.
데이터베이스 관리 시스템 종류
Postgre SQL
SQL 언어를 사용하는 오픈 소스 객체 관계형 데이터베이스 시스템
MySQL
세계에서 가장 많이 쓰이는 오픈소스 관계형 데이터베이스 시스템
MariaDB
...
ORACLE
대기업에서 주로 사용하며 점유율 1위인 유료 데이터베이스 시스템
SQLite
서버가 아닌 응용프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스 시스템
테이블(Table)
데이터베이스가 생긴 형태
Relation
테이블을 릴레이션이라고도 한다.
관계형 데이터베이스 같은 경우 테이블 간의 관계를 구성할 수 있다.
SQL(Structure Query Language, SQL)
구조적 질의 언어
---------------------------------------------------------------------------
DDL
Data Definition Language, 데이터 정의 언어
각 테이블을 정의하기 위해 사용하는 언어
문법
CREATE, ALTER, DROP
---------------------------------------------------------------------------
DML
Data Manipulation Language, 데이터 조작 언어
데이터를 추가/수정/삭제하기 위한, 즉 데이터 관리를 위한 언어
문법
SELECT, INSERT, UPDATE
---------------------------------------------------------------------------
DCL
Data Control Language, 데이터 제어 언어
사용자 관리 및 사용자별로 테이블 또는 데이터를 관리하고 접근하는 권한을 다루기 위한 언어
문법
GRANT, REVOKE
---------------------------------------------------------------------------