MariaDB 강좌 / MariaDB란? 데이터베이스·SQL·MySQL과의 관계
MariaDB는 데이터를 표 형태로 저장하고 SQL로 조회·변경하는 관계형 데이터베이스 관리 시스템입니다. 데이터베이스를 실행하는 서버와 여기에 명령을 보내는 클라이언트가 나뉘며, 한 컴퓨터에서 두 프로그램을 함께 사용해도 이 역할은 다릅니다.
데이터베이스와 MariaDB는 무엇이 다른가
데이터베이스는 관련 데이터를 정리해 보관하는 공간입니다. 데이터베이스 관리 시스템(Database Management System, DBMS)은 데이터를 저장하고 읽는 방법, 사용자 권한, 동시 작업과 장애 시 처리 등을 관리하는 소프트웨어입니다. MariaDB Server는 이 관리 시스템의 한 종류이며, 서버 안에 여러 데이터베이스를 만들 수 있습니다.
관계형이라는 말은 데이터를 행과 열로 구성한 테이블에 나누어 담고, 식별값으로 테이블 사이의 관계를 표현한다는 뜻입니다. 예를 들어 고객 이름을 모든 주문 행에 반복해서 적는 대신 고객 테이블에 보관하고 주문에는 고객 번호를 저장할 수 있습니다. 관계를 정의했다는 사실만으로 오류가 자동으로 없어지는 것은 아니며 기본키·외래키 같은 제약 조건도 설계해야 합니다.
프로젝트의 개발 배경과 공개 소프트웨어 운영 방식은 MariaDB Foundation 소개에서 확인할 수 있습니다.
데이터베이스·테이블·행·열의 관계
이 강좌의 실습 데이터베이스 이름은 shopcourse입니다. 처음에는 상품 테이블 products 하나를 만들고, 이후 고객·주문·주문 상세 테이블로 확장합니다. 데이터베이스 이름과 테이블 이름은 소문자로 통일해 운영체제별 이름 처리 차이로 혼동하지 않도록 합니다.
| 구분 | 상품 예제로 이해하기 |
|---|---|
| 데이터베이스 | shopcourse: 강좌의 테이블을 묶어 보관하는 작업 공간 |
| 테이블 | products: 상품 정보를 같은 구조로 저장하는 표 |
| 열(column) | product_name·price·stock: 어떤 종류의 값을 저장하는지 정의 |
| 행(row) | 노트라는 상품 한 건: 이름·가격·재고 값이 함께 들어감 |
| 기본키(primary key) | product_id: 서로 다른 상품 행을 구분하는 식별값 |
열은 데이터 타입과 입력 조건을 가지므로 단순히 글자를 담는 칸이 아닙니다. 가격에는 계산에 적합한 숫자 타입을, 상품 이름에는 문자열 타입을 선택합니다. 같은 이름의 상품이 두 개 있어도 기본키가 다르면 서로 다른 행으로 관리할 수 있습니다.
서버와 클라이언트는 어떤 일을 하는가
서버 프로그램은 실제 데이터를 관리하며 클라이언트의 요청을 처리합니다. 명령줄 클라이언트 mariadb는 접속 정보를 받아 서버에 SQL을 전송하고 결과를 보여 줍니다. GUI 도구도 같은 목적의 클라이언트이며, 클라이언트만 설치했다고 서버가 생기지는 않습니다.
| 상황 | 서버 | 클라이언트 |
|---|---|---|
| 내 컴퓨터에서 학습 | 내 컴퓨터의 MariaDB 서비스 또는 프로세스 | 같은 컴퓨터의 mariadb 프로그램 |
| 별도 서버에 접속 | 원격 컴퓨터의 MariaDB 서버 | 내 컴퓨터의 클라이언트 |
| 서버가 중지된 경우 | 요청을 처리할 수 없음 | 실행되어도 서버 접속은 실패할 수 있음 |
운영체제 계정, MariaDB 계정, 데이터베이스 이름도 별개입니다. Windows에 로그인한 이름이 데이터베이스 사용자명으로 자동 등록되는 것은 아닙니다. Ubuntu의 일부 관리자 접속은 운영체제 사용자 확인을 이용하므로 Ubuntu 설치 강좌의 소켓 인증 설명과 함께 구분해서 보세요.
SQL로 무엇을 요청하는가
SQL은 Structured Query Language의 약자로, 데이터의 구조와 작업을 표현하는 언어입니다. 조회에는 SELECT, 행 추가에는 INSERT, 값 변경에는 UPDATE, 행 삭제에는 DELETE를 사용합니다. 테이블 정의에는 CREATE TABLE을 사용하며 각 명령의 목적과 적용 범위를 구분해야 합니다.
접속까지 마쳤다면 클라이언트 안에서 다음을 실행해 보세요. 데이터베이스나 테이블 없이도 계산과 문자열을 조회할 수 있습니다. 세미콜론은 명령의 끝을 표시하고 AS 뒤 이름은 결과 열의 제목입니다.
SELECT 1 + 1 AS result, 'MariaDB 학습' AS message;
| result | message |
|---|---|
| 2 | MariaDB 학습 |
이 결과는 서버가 반환한 조회 결과이지 저장된 상품 행이 아닙니다. 계산 결과를 한 번 조회하는 것과 테이블에 데이터를 저장하는 INSERT는 서로 다른 작업입니다. 기본 명령의 역할은 MariaDB 기본 사용 안내에서도 확인할 수 있습니다.
MySQL과 같은 제품인가
MariaDB는 MySQL을 기반으로 출발했지만 현재는 별도 제품으로 개발됩니다. 많은 기본 SQL과 접속 방식이 비슷해 기존 지식을 활용할 수 있어도, 모든 버전의 기능·인증·설정·데이터 파일이 그대로 호환된다고 가정하면 안 됩니다.
따라서 “MySQL에서 작동했으니 MariaDB에서도 같은 결과”라는 판단보다 실제 서버 버전과 해당 기능의 문서를 확인해야 합니다. 데이터베이스 파일을 서로 바꾸어 끼우거나 제품을 교체하는 작업은 입문 설치 실습과 구분합니다. 이 과정에서는 MariaDB Server와 MariaDB 클라이언트를 기준으로 명령을 작성합니다.
이 강좌에서 사용할 환경과 실습 범위
Windows 사용자는 Windows 설치 강좌, Ubuntu 사용자는 Ubuntu 설치 강좌를 따라 설치한 뒤 공통 SQL 실습으로 합류합니다. Windows 예시는 MariaDB 12.3 계열의 설치 경로를 사용하고 Ubuntu 예시는 Ubuntu 24.04 LTS의 기본 APT 패키지를 사용합니다. 배포판 패키지와 공식 배포본의 버전이 다를 수 있으므로 숫자가 같아야 한다는 조건은 두지 않습니다.
서버 버전은 SQL SELECT VERSION();으로, 클라이언트 버전은 접속 밖에서 mariadb --version으로 확인합니다. 두 결과는 같은 정보를 뜻하지 않습니다. 지원되는 안정판 선택은 공식 다운로드 페이지에서 확인하고, 실습 기록에는 실제 설치한 버전을 남깁니다.
첫 단계의 목표는 상품 세 건을 정확히 저장하고 원하는 조건으로 읽는 것입니다. 웹 프로그램 연결, 다중 서버 운영이나 복제 설정 없이도 SQL과 데이터 구조의 기본 동작을 배울 수 있습니다.










