DB/RDB

DB , MySQL(RDBMS) , SQL

doriver 2021. 11. 4. 11:45
보통의 경우 DB서버라고 한다.

 

데이터를 쌓아두는 역할 외에 클라이언트가 원하는 방식으로 데이터를 저장하거나 
클라이언트가 요청한 데이터를 제공하는 기능도 함께 있기 때문입니다.

 

웹브라우저 ---- 웹서버 --- 디비서버

 

 

DB ( DataBase )

여러 사람에 의해 공유되어 사용될 목적으로 관리되는 데이터의 집합체.

자료를 구조화하여, 효율적인 처리를 할 수 있도록 관리됨.

응용 프로그램과는 다른 별도의 미들웨어에 의해 관리된다.

 

관계형 데이터베이스(relational database)

DB의 한 종류. 테이블(table)로 이루어져 있음. 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체.

테이블은 이름을 가지고 있으며, 행(row)과 열(column) 그리고 거기에 대응하는 값을 갖는다.

테이블에서 행의 식별자로 이용되는 열을 키(key) 또는 기본 키(primary key)라고 한다.

테이블은 키(key)와 값(value)의 관계를 나타냄. 

 

DBMS ( Database Management System,  )

데이터베이스 관리 시스템이라고 부른다.

데이터베이스를 관리하는 미들웨어

DB안에 있는 데이터들은 특정 DBMS마다 정의된 query language를 통해 삽입, 삭제, 수정, 조회등을 수행할수 있다

 

 

 

MySQL

오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)

다중 사용자와 다중 스레드를 지원.  C, C++, JAVA, PHP 등 여러 프로그래밍 언어를 위한 다양한 API를 제공.

오픈 소스 라이센스를 따르기는 하지만, 상업적으로 사용할 때는 상업용 라이센스를 구입해함.

MySQL 접속툴(프론트엔드)로 MySQL Workbench , HeidiSQL 등이 있음.

 

 

 

SQL ( Structured Query Language ) 

관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 프로그래밍 언어이다.

DDL ( Data Definition Language ) CREATE, ALTER, DROP 등
DML ( Data Manipulation Language ) INSERT, UPDATE, DELETE, SELECT 등
DCL ( Data Control Language ) COMMIT, ROLLBACK, GRANT, REVOKE 등

 

 

MySQL의 Storage Engine

- 여러가지가 있지만, 대표적으로 MyISAM 와 InnoDB가 있다.

- InnoDB는 현재 mysql에서 default storage engine으로 채택하고 있고, MyISAM에 비해 최신 엔진이기 때문에 업그레이드된 기능들을 제공한다.

- MyISAM : 읽기 작업에 적합(select속도가 빠름) . 데이터 무결성에 대한 보장이 안됨. Table-level Lock(table 단위의 lock)을 사용하여 쓰기 작업 속도(insert, update)가 느림.

- InnoDB : 트랜잭션을 지원, 트랜잭션-세이프 스토리지 엔진에 해당. Commit, Rollback, 장애복구, 외래키 등 다양한 기능을 지원. row-level locking(행 단위의 lock)을 사용. insert,update,delete 속도가 빨라 변경작업에 유용

 

IBD파일(.ibd)

MySQL InnoDB Database Table 파일 종류. Oracle Corporation이 MySQL용으로 개발.