AD JB Toolbox 01

MariaDB 강좌 / MariaDB란? 데이터베이스·SQL·MySQL과의 관계

MariaDB는 데이터를 표 형태로 저장하고 SQL로 조회·변경하는 관계형 데이터베이스 관리 시스템입니다. 데이터베이스를 실행하는 서버와 여기에 명령을 보내는 클라이언트가 나뉘며, 한 컴퓨터에서 두 프로그램을 함께 사용해도 이 역할은 다릅니다.

데이터베이스와 MariaDB는 무엇이 다른가

데이터베이스는 관련 데이터를 정리해 보관하는 공간입니다. 데이터베이스 관리 시스템(Database Management System, DBMS)은 데이터를 저장하고 읽는 방법, 사용자 권한, 동시 작업과 장애 시 처리 등을 관리하는 소프트웨어입니다. MariaDB Server는 이 관리 시스템의 한 종류이며, 서버 안에 여러 데이터베이스를 만들 수 있습니다.

관계형이라는 말은 데이터를 행과 열로 구성한 테이블에 나누어 담고, 식별값으로 테이블 사이의 관계를 표현한다는 뜻입니다. 예를 들어 고객 이름을 모든 주문 행에 반복해서 적는 대신 고객 테이블에 보관하고 주문에는 고객 번호를 저장할 수 있습니다. 관계를 정의했다는 사실만으로 오류가 자동으로 없어지는 것은 아니며 기본키·외래키 같은 제약 조건도 설계해야 합니다.

프로젝트의 개발 배경과 공개 소프트웨어 운영 방식은 MariaDB Foundation 소개에서 확인할 수 있습니다.

데이터베이스·테이블·행·열의 관계

이 강좌의 실습 데이터베이스 이름은 shopcourse입니다. 처음에는 상품 테이블 products 하나를 만들고, 이후 고객·주문·주문 상세 테이블로 확장합니다. 데이터베이스 이름과 테이블 이름은 소문자로 통일해 운영체제별 이름 처리 차이로 혼동하지 않도록 합니다.

MariaDB 서버 안에 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과 데이터 구조의 기본 동작을 배울 수 있습니다.

같은 카테고리의 다른 글
MariaDB 강좌 / Ubuntu에 MariaDB 설치하고 서버 실행하기

MariaDB 강좌 / Ubuntu에 MariaDB 설치하고 서버 실행하기

Ubuntu APT 설치 후 서버 실행·자동 시작·관리자 소켓 인증을 확인합니다. 로컬 TCP 학습 계정을 만들고 패키지 버전, 인증 오류와 서비스 로그를 확인하는 절차를 설명합니다.

MariaDB 강좌 / 첫 실습: 상품 테이블을 만들고 데이터를 넣어 조회하기

MariaDB 강좌 / 첫 실습: 상품 테이블을 만들고 데이터를 넣어 조회하기

상품 세 건을 저장하는 전체 SQL로 테이블 생성·입력·조회 과정을 실습합니다. 구조와 행 수, 가격·재고 조건의 예상 결과를 확인하고 반복 입력 오류와 실습 테이블 초기화 범위를 구분합니다.

MariaDB / VIEW

MariaDB / VIEW

VIEW는 가상의 테이블입니다. 실제로 데이터를 저장하지 않고, 기존의 하나 이상의 테이블을 기반으로 한 쿼리 결과를 테이블처럼 사용할 수 있게 해줍니다. 뷰는 복잡한 쿼리를 단순화하고, 보안 및 데이터 관리에 유용하게 사용됩니다.

MariaDB 강좌 / CREATE TABLE로 테이블 구조 정의하기

MariaDB 강좌 / CREATE TABLE로 테이블 구조 정의하기

상품 테이블을 예로 열·타입·기본값·기본키·저장 엔진을 정의하고 실제 생성 결과를 확인합니다. 기존 테이블 처리, IF NOT EXISTS의 한계와 안전한 반복 실습 방법도 설명합니다.

MariaDB 강좌 / 명령줄 클라이언트로 접속하고 SQL 파일 실행하기

MariaDB 강좌 / 명령줄 클라이언트로 접속하고 SQL 파일 실행하기

터미널 명령과 SQL 입력 위치를 구분하고 학습 계정으로 접속합니다. UTF-8 SQL 파일의 SOURCE 실행, 예상 결과, 오류 중단·한글 표시·경로 문제를 함께 확인합니다.

MariaDB 강좌 / 데이터베이스 만들기: CREATE DATABASE·USE·문자 집합

MariaDB 강좌 / 데이터베이스 만들기: CREATE DATABASE·USE·문자 집합

shopcourse 데이터베이스를 만들고 현재 연결의 작업 대상으로 선택합니다. utf8mb4와 collation, 기존 DB에서 IF NOT EXISTS의 한계, 권한·문자 설정 확인을 예제로 설명합니다.

MariaDB 강좌 / NULL·기본값·NOT NULL·CHECK로 입력 조건 정하기

MariaDB 강좌 / NULL·기본값·NOT NULL·CHECK로 입력 조건 정하기

NULL·빈 문자열·0·입력 생략을 구분하고 DEFAULT·NOT NULL·CHECK의 역할을 실습합니다. nullable 열의 CHECK 예외, 실패 입력, 제약 이름과 설정 복원 방법을 설명합니다.

MariaDB / Query / LEFT JOIN, RIGHT JOIN, INNER JOIN

MariaDB / Query / LEFT JOIN, RIGHT JOIN, INNER JOIN

SQL의 JOIN은 여러 테이블을 한 번에 나타낼 때 사용합니다. 대표적인 JOIN 방식은 LEFT JOIN, RIGHT JOIN, INNER JOIN이 있습니다. 다음은 세 가지 JOIN의 차이를 알아보기 위한 간단한 예제 테이블입니다.

MariaDB / 사용자 관리하는 방법

MariaDB / 사용자 관리하는 방법

MariaDB에서 사용자를 만드는 방법, 수정하는 방법, 삭제하는 방법, 권한을 부여하고 제거하는 방법을 알아봅니다.

MariaDB 강좌 / 날짜와 시간 저장하기: DATE·DATETIME·TIMESTAMP

MariaDB 강좌 / 날짜와 시간 저장하기: DATE·DATETIME·TIMESTAMP

DATE·DATETIME·TIMESTAMP의 저장 의미와 시간대 처리를 비교합니다. 동일 입력의 한국 시간·UTC 조회 결과, 버전별 TIMESTAMP 범위, 날짜 오류와 설정 복원을 실습합니다.