CS/데이터베이스

데이터베이스 개요 & MariaDB

hyomee2 2024. 7. 11. 18:30

1. Data와 Information

(1) Data

 : 정량적/정성적인 실제 값

(2) Information

 : 데이터를 기반으로 의미를 부여한 것

 

2. Database

: 데이터를 구조적으로 통합/저장해놓은 것. 컴퓨터에서 쉽게 접근/관리/업데이트 가능

(1) Database의 변천 과정

- 데이터 모델에도 객체 개념을 도입해보았으나, 성공하지 못했다.

 

 

3. DBMS(Database Management System)

: 데이터베이스에서 데이터를 추출, 조작, 정의, 제어 등을 할 수 있게 해주는 데이터베이스 전용 관리 프로그램

(1) DBMS의 종류와 특징

  SQL Server Oracle MySQL MariaDB DB2 SQLite
제조사 MS Oracle Oracle MariaDB재단 IBM D.Richard Hipp
(오픈소스)
기반 운영체제 윈도우 윈도우
유닉스
리눅스
윈도우
유닉스
리눅스
윈도우
유닉스
리눅스
유닉스 모바일OS
(안드로이드,
IOS 등)
용도 윈도우기반
기업용
대용량
데이터베이스
소용량
데이터베이스
소용량
데이터베이스
대용량
데이터베이스
모바일전용
데이터베이스

 

(2) DBMS의 사용 이점

- 데이터 중복 최소화: 데이터와 응용 프로그램을 분리시킴으로써 상호 영향 정도를 줄일 수 있다.

- 쿼리 언어: DBMS는 SQL과 같은 쿼리 언어를 제공하여, 복잡한 검색과 분석 작업을 손쉽게 할 수 있다.

- 데이터 무결성: DBMS는 데이터 무결성 보장을 위한 다양한 제약 조건/규칙을 설정할 수 있어 데이터의 품질과 정확성이 보장된다.

- 데이터 백업 및 복구:DBMS는 데이터의 백업과 복구를 지원한다.

- 표준화: DBMS는 표준화된 방법을 통해 데이터를 관리하므로, 데이터의 구조와 접근 방법이 일관적이고, 따라서 어플리케이션 개발 및 유지보수가 용이하다.

 

4. MariaDB

: 오픈 소스의 관계형 데이터베이스(RDBMS)로,

  MySQL를 fork한 것으로 시작하여 MySQL과 호환성을 유지하면서도 독자적인 기능과 개선사항을 추가해 나가고 있다.

(1) MySQL 아키텍쳐와 MariaDB 아키텍쳐

1) MySQL 아키텍쳐

2) MariaDB 아키텍쳐

- MariaDB가 MySQL을 fork 해왔기에, 둘의 아키텍쳐는 거의 같다. (NDB는 없어도 된다는 판단 하에 삭제)

 

(2) MariaDB 동작원리

1. 클라이언트/서버 통신

- 클라이언트(HeidSQL, 커맨드 라인, 인터페이스, 프로그래밍 언어 API 등)에서 SQL 쿼리를 MariaDB 서버로 전송한다.

2. 쿼리 파싱

- 쿼리를 받으면 먼저 쿼리를 파싱한다.

  Parser는 SQL 문장을 이해할 수 있는 단위로 나누고,

 이 때 문장의 문법이 유효한지, 키워드가 올바로 사용되었는지, 사용된 컬럼과 테이블이 실제로 존재하는지 등을 확인하고

 문법에 오류가 있으면 parser는 오류 메세지를 반환하고 프로세스를 중단한다.

3. 최적화 및 실행 계획 작성

- 파싱이 성공적으로 완료되면,

  쿼리 최적화기(optimizer)가 작동하여 파싱된 쿼리를 가능한 효율적으로 실행할 수 있는 방법을 결정한다.

  사용할 인덱스 결정, 조인 순서, 데이터를 읽는 방법 등을 포함하여 "실행 계획"이라는 형태로 생성된다.

4. 쿼리 실행

- 실행 계획에 따라,

  MariaDB 서버는 스토리지 엔진을 통해 필요한 데이터를 불러오거나 변경하고,

  실제 데이터베이스 파일 또는 인덱스에 접근한다.

5. 결과 반환

- 쿼리 실행이 완료되면 MariaDB 서버는 결과 세트를 클라이언트에게 반환한다.

  SELECT의 경우 검색된 행들, INSERT, UPDATE, DELETE의 경우 영향을 받는 행의 수가 된다.

 

 

 

'CS > 데이터베이스' 카테고리의 다른 글

SQL 실습 (2)  (0) 2024.07.17
SQL 실습(1)  (1) 2024.07.17
SQL(2) JOIN, GROUPING, ROLL UP, SUBQUERIES, SET OPERATORS  (0) 2024.07.16
SQL (1) SELECT, ORDER BY, WHERE, DISTINCT, LIMIT  (1) 2024.07.12
MariaDB 설치 및 기본 설정  (0) 2024.07.11