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 |