1. DBMS
(1) Data (데이터)
- 현실 세계에 있는 가공되지 않은 단순한 형태의 사실, 값(이름, 나이, 날씨정보 등)
- 의미 있는 정보가 되기 위해서는 임의의 처리 과정이 필요
(2) Information (정보)
- 데이터를 체계적으로 처리, 가공하여 의미있는 실체로 만든 결과
(3) Database (데이터베이스)
- 데이터를 체계적으로 모아 놓은 논리적인 집합
(4)DBMS (DataBase Mangement System)
- 데이터베이스를 운영하고 관리하는 컴퓨터 프로그램(소프트웨어), 시스템
- 1960년대에 처음 소개
- DBMS의 유형은 계층형(Hierarchical), 네트워크형(Network), 관계형(Relational), 객체지향형(Object Oriented), 객체관계형(Object Relational), NoSQL 등으로 분류
- 관계형 DBMS가 오랫동안 널리 사용되고 있음
2. RDBMS (Relational Database Management System)
(1) 개요
- 관계형 데이터베이스 관리 시스템
- 1970년대 초 E.F.Codd 박사의 논문 발표
- 당시 하드웨어 성능도 낮고 값도 비싸 데이터의 효율적 처리와 저장이 큰 이슈
- 중복 데이터를 제거한 데이터의 효율적 저장 방식 제안
- 관계형 모델에 기반한 상용 DBMS인 RDBMS 출시 시작
(2) 특징
데이터 중복 최소화
- RDBMS는 2차원 형태의 테이블이라는 객체에 데이터 저장
- 데이터 성격에 따라 여러 테이블에 분할해 데이터를 저장
- 중복 데이터 저장을 최소화 → 데이터 스토리지 비용 절감
- 관련된 여러 테이블에 분산된 데이터를 연결해 데이터 추출
SQL 이용한 손 쉬운 데이터 처리
- 데이터의 저장, 삭제, 변경, 추출을 SQL로 수행
- SQL은 사람과 RDBMS 간 데이터 처리를 위한 의사소통 언어
- SQL은 직관적이며 배우고 사용하기 용이
트랜잭션 처리
- Transaction, 거래라는 뜻으로 RDBMS에서는 하나의 그룹으로 처리되어야 하는 명령문들을 모아놓은 논리적 작업 단위
- 여러 개의 명령어 집합이 정상적으로 처리되면 종료, 하나라도 잘못되면 전체 취소
- 오류 발생 시 거래 자체가 없었던 것으로 처리하고 입금 계좌에 돈이 확인된 다음에야 거래를 성사시킴
데이터 무결성(Integrity)
- 데이터베이스에 저장된 데이터의 일관성, 정확성, 신뢰성 즉, 데이터의 품질 보장
- 잘못된 형태의 데이터는 입력 자체가 되지 않도록 하여 데이터 무결성 보장
(3) RDBMS 종류
이름 | 회사 | 설명 |
오라클 | 오라클(1979) | SQL을 사용한 최초의 상용 RDBMS |
MySQL | 오라클(1995) | 무료 버전과 상용 버전 |
SQL Server(MSSQL) | 마이크로소프트(1989) | Sybase를 기반으로 만든 RDBMS |
PostgreSQL | The PostgreSQL Global Development Group(1996) | 오픈소스 |
DB2 | IBM(1983) | 금융권에서 많이 사용 |
MariaDB | MariaDB 재단(2010) | 오픈소스 |
3. MySQL 구조
(1) MySQL 서버
- MySQL 서버를 줄여 MySQL
- MySQL에 접속하여 SQL 문장을 실행하면 MySQL이 결과 송출
(2) 사용자
- MySQL을 사용하기 위한 계정
- 설치 시 관리자 계정인 root 계정 자동 생성
- root 계정으로 접속하여 다른 사용자를 생성 및 사용
(3) 데이터베이스와 스키마
- 테이블을 포함하여 각종 데이터베이스 객체를 담아 놓는 논리적인 저장 공간
- MySQL에서 스키마와 데이터베이스는 같은 개념
(4) 데이터베이스
- 데이터베이스 안에 생성해 사용할 수 있는 다양한 객체
- 테이블, 뷰, 인덱스 등
4. SQL (Structured Query Language)
- 데이터 관리에 사용되는 컴퓨터 언어
- 데이터 관리 : 입력, 조회, 수정, 삭제
- 배우고 사용하기 용이
- 집합적 언어
- SQL 표준이 존재
: 표준이 있다 → 특정 RDBMS에서 SQL을 익히면 다른 RDBMS 에서도 사용 가능(조금씩 차이가 있음)
- 데이터 정의어, 데이터 조작어, 트랜잭션 제어어, 데이터 제어어 등
(1) 데이터 정의어 (DDL : Data Definition Lanaguage)
- 테이블, 뷰 등의 데이터베이스 객체를 생성
종류 | 설명 |
CREATE | 데이터베이스 객체를 생성할 때 사용 |
ALTER | 기존 객체를 수정할 때 사용 |
DROP | 기존 객체를 삭제할 때 사용 |
TRUNCATE TABLE | 테이블에 있는 데이터 전체를 삭제할 때 사용 |
RENAME TABLE | 테이블의 이름을 변경할 때 사용 |
(2) 데이터 조작어 (DML : Data Manipulation Language)
- 테이블의 데이터를 조회, 입력, 수정, 삭제하는 데 사용 (CRUD)
종류 | 설명 |
SELECT | 테이블에 있는 데이터 조회 DML 전체에서 SELECT 문이 대부분 |
INSERT | 테이블에 신규 데이터 입력 |
UPDATE | 테이블에 있는 데이터를 수정 |
DELETE | 테이블에 있는 데이터를 삭제 |
(3) 트랜잭션 제어어 (TCL : Transaction Control Language)
- 트랜잭션 처리
종류 | 설명 |
COMMIT | 데이터 가공 후 변경사항을 DB에 반영 |
ROLLBACK | 데이터 가공 후 변경사항을 취소 |
START TRANSACTION |
트랜잭션 명시적 선언 START TRANSACTION 후 COMMIT 이나 ROLLBACK 문을 만날 때까지가 하나의 트랜잭션 |
SAVEPOINT | 트랜잭션에 이름 부여 |
SET autocommit | MySQL에서 자동 커밋 모드 활성/비활성화 |
(4) 데이터 제어어(DCL : Data Control Language)
- 권한 부여 및 회수
종류 | 설명 |
GRANT | 특정 사용자에게 특정 작업을 수행할 수 있는 권한을 부여 |
REVOKE | 부여된 권한을 회수 |
'Mysql' 카테고리의 다른 글
[MySQL] 테이블 및 데이터 타입 (0) | 2022.08.16 |
---|---|
[SQL] CRUD 사용 (0) | 2022.08.11 |
MAC 에서의 <MYSQL ERROR CODE: 1055> (2) | 2022.08.10 |