데이터베이스란
데이터베이스의 개념
데이터베이스(DataBase, DB)란 구조화된 데이터의 집합으로, 방대한 정보를 체계적으로 저장하고 관리하는 데이터 저장소입니다. 다양한 정보를 디지털 형태로 정리하여 보관함으로써, 사용자가 필요한 데이터를 빠르고 효율적으로 조회·활용할 수 있도록 합니다. 데이터베이스는 단순한 저장을 넘어 데이터의 검색, 수정, 삭제, 보안까지 포함하는 핵심 정보 관리 시스템입니다.
DBMS란
DBMS(DataBase Management System)란 데이터베이스를 효율적으로 관리하기 위한 소프트웨어입니다. DBMS는 데이터의 생성(Create), 조회(Read), 수정(Update), 삭제(Delete)와 같은 기본 기능을 제공하여 사용자가 데이터베이스를 쉽게 활용할 수 있도록 합니다. 데이터베이스가 ‘데이터 창고’라면, DBMS는 이를 체계적으로 운영·관리하는 ‘데이터 창고 관리자’에 해당합니다.
대표적인 DBMS로는 MySQL, PostgreSQL, Oracle, Microsoft SQL Server 등이 있습니다.
DBMS의 주요 기능
DBMS는 효율적인 데이터 관리를 통해 대용량 데이터를 안정적으로 처리합니다. 또한 데이터 무결성을 유지하여 잘못된 데이터 입력이나 오류를 방지하고, 여러 사용자가 동시에 접근하더라도 충돌 없이 처리할 수 있도록 동시성 제어 기능을 제공합니다. 이와 함께 접근 권한 관리와 암호화를 통한 보안 기능, 장애 발생 시를 대비한 백업 및 복구 기능을 지원합니다. 사용자는 복잡한 내부 구조를 알지 못하더라도 데이터를 쉽게 다룰 수 있으며, 이는 데이터 추상화 기능을 통해 가능해집니다.
MySQL의 장점
MySQL은 무료로 사용할 수 있는 오픈 소스 DBMS로, 비용 부담 없이 도입할 수 있다는 장점이 있습니다. 전 세계적으로 널리 사용되고 있어 안정성이 검증되었으며, 관련 문서와 커뮤니티가 매우 풍부합니다. 또한 표준 SQL을 지원하여 다른 DBMS와의 호환성이 높고, 웹 서비스와 연동하기에 적합한 데이터베이스 관리 시스템입니다.
SQL이란
SQL(Structured Query Language)은 데이터베이스를 다루기 위해 사용되는 표준화된 질의 언어입니다. 사용자는 SQL 명령을 통해 데이터의 생성(Create), 조회(Read), 수정(Update), 삭제(Delete)와 같은 작업을 수행할 수 있으며, 이러한 명령은 DBMS를 통해 데이터베이스에 전달되어 실행됩니다.
즉, SQL은 사용자와 데이터베이스 사이에서 데이터를 효율적으로 처리하고 관리하기 위한 핵심 도구로, 대부분의 관계형 데이터베이스 관리 시스템에서 공통적으로 사용됩니다.
데이터 저장 형식
데이터베이스 파일
데이터베이스는 여러 종류의 파일로 구성되어 있으며, 각 파일은 서로 다른 역할을 수행합니다. 이러한 구조를 통해 데이터의 안정적인 저장과 효율적인 관리가 가능합니다.
데이터 파일은 실제 데이터가 저장되는 핵심 파일로, 테이블의 행과 열 정보가 기록됩니다.
로그 파일은 데이터 변경 이력을 저장하여 트랜잭션 관리와 장애 발생 시 복구에 사용됩니다.
인덱스 파일은 데이터 검색 속도를 향상시키기 위한 구조로, 특정 컬럼을 기준으로 빠른 조회가 가능하도록 지원합니다.
설정 파일은 DBMS의 동작 방식, 메모리 사용량, 포트 번호 등 시스템 환경 설정 정보를 포함합니다.
메타데이터 파일은 테이블 구조, 컬럼 정보, 제약조건 등 데이터베이스의 구조적 정보를 저장하여 데이터 관리의 기준 역할을 합니다.
테이블
테이블(table)이란 데이터를 열(column)과 행(row) 형태로 구조화하여 저장하는 기본 단위입니다. 각 열은 데이터의 속성이나 특징을 나타내며, 각 행은 여러 속성이 모여 구성된 하나의 데이터 항목을 의미합니다. 가로와 세로 줄로 구성된 표 형태를 떠올리면 이해하기 쉽습니다.
테이블에서 열은 컬럼(column) 또는 속성(attribute) 이라고 하며, 행은 로우(row), 레코드(record), 또는 튜플(tuple) 이라고도 부릅니다. 이러한 구조를 통해 데이터는 체계적으로 관리되며, 효율적인 저장과 검색이 가능해집니다.
- 레코드 : 여러 개의 관련 속성을 포함하는 하나의 데이터 항목을 뜻합니다.
- 튜플 : 수학에서 유래한 용어로, 정해진 순서에 따라 정렬된 몇 개의 요소(열의 값)로 구성된 집합을 의미합니다.
MySQL 실습 환경 설정하기
MySQL은 서버-클라이언트 구조로 동작하는 데이터베이스 관리 시스템입니다. 서버(server)란 특정 서비스를 제공하는 프로그램 또는 컴퓨터를 의미하며, 클라이언트(client)는 서버에 기능을 요청하고 그 결과를 전달받는 프로그램 또는 컴퓨터를 말합니다.
MySQL 실습을 위해서는 서버 프로그램인 MySQL Server와 클라이언트 프로그램인 MySQL Workbench를 설치해야 합니다. 두 프로그램을 함께 설치하면 사용자는 MySQL Workbench를 통해 SQL 명령을 MySQL Server에 전달하고, 서버가 처리한 결과를 다시 응답받아 확인할 수 있습니다. 이러한 구조를 이해하면 MySQL의 동작 방식과 데이터 처리 흐름을 보다 쉽게 파악할 수 있습니다.
윈도우에 MySQL 설치하기
https://dev.mysql.com/downloads/windows/installer/8.0.html

화면에 보이는 버전은 최신 버전이므로 접속할 때마다 바뀝니다.
저는 교재와 똑같이 8.0.39 버전으로 설치하겠습니다.
[Archives] 탭을 클릭해 버전은 8.0.39, 운영체제 Microsoft Windows를 선택하고 파일 크기가 큰 쪽의 [Download] 버튼을 클릭합니다.


MySQL 설치 창이 뜨면 Custom을 선택하고 [Next] 버튼을 클릭합니다.

프로덕트 선택 화면에서 MySQL Server 8.0.39 – X64를 선택하고 오른쪽 화살표를 클릭해 설치할 목록에 추가합니다. 같은 방법으로 MySQL Workbench 8.0.38 – X64를 선택하고 오른쪽 화살표를 클릭해 설치할 목록에 추가한 후 [Next] 버튼을 클릭합니다.
이어서 기본 설정값 그대로 두고 [Next] 버튼을 클릭해서 쭉쭉 진행합니다.

계정과 역할 화면에서 MySQL 관리자(Root)의 비밀번호를 설정합니다. 관리자 비밀번호를 알아야 MySQL서버에 접속할 수 있으니 비밀번호는 꼭 기억해야 합니다.
이어서 [Next] 버튼을 클릭하여 기본 설정값으로 그대로 진행하고 [Execute] 버튼을 클릭해 설정을 적용한 뒤 끝으로 [Finish] 버튼을 클릭해 모든 설정을 마칩니다.
모든 설치가 끝나면 MySQL 워크벤치가 자동으로 실행됩니다.


MySQL 워크벤치로 MySQL 서버에 접속해 봅시다. Local instance MySQL1014을 클릭한 후 설치하 때 입력한 관리자 비밀번호를 입력하고 [OK] 버튼을 클릭합니다.

워크벤치가 잘 동작하는지 간단한 SQL 명령을 입력하고 결과를 확인하겠습니다.
쿼리 편집기(Query 1)에 다음과 같은 명령어를 입력하고 [Ctrl]+[Enter] 키를 누릅니다.
SELECT 'hello world!';

Windows와 macOS 설치 방식 비교
| 구분 | Windows | macOS |
|---|---|---|
| 설치 방식 | 통합 Installer | 개별 설치 |
| 서버 실행 | 서비스로 자동 실행 | 데몬으로 자동 실행 |
| 설정 관리 | Installer에서 통합 관리 | 시스템 환경설정에서 관리 |
| 경로 충돌 | 발생 가능 | 거의 없음 |
MySQL 워크벤치 화면 구성 살펴보기

MySQL Workbench는 SQL 작성과 실행, 결과 확인을 효율적으로 수행할 수 있도록 여러 영역으로 구성되어 있습니다. 각 영역의 역할을 이해하면 실습이 훨씬 수월해집니다.
- 내비게이터(Navigator) : 데이터베이스 객체를 관리하는 영역으로, 스키마(schema), 테이블(table), 뷰(view), 프로시저(procedure) 등을 트리 구조로 확인할 수 있습니다. 데이터베이스 구조를 한눈에 파악할 수 있는 핵심 영역입니다. 관리(Administration) 탭과 스키마(Schemas) 탭으로 구성됩니다.
- 쿼리 편집기(Query Editor) : SQL 문을 작성하는 공간입니다. SELECT, INSERT, UPDATE, DELETE와 같은 SQL 명령을 직접 입력하고 실행할 수 있으며, 실습에서 가장 많이 사용하는 영역입니다.
- 결과 창(Result Grid) : 실행한 SQL 문의 결과가 표 형태로 출력되는 영역입니다. 조회 결과를 확인하거나 데이터를 직접 수정할 수도 있습니다.
- SQL 추가 창(SQL Additions) : 자주 사용하는 SQL 구문이나 템플릿을 빠르게 불러올 수 있는 보조 영역으로, SQL 작성 효율을 높여줍니다.
- 정보 창(Information Panel) : 선택한 객체나 실행한 쿼리에 대한 설명, 메시지, 경고 등을 표시하여 SQL 실행 상태를 파악할 수 있도록 도와줍니다.
- 출력 창(Output Panel) : SQL 실행 결과에 대한 로그, 오류 메시지, 실행 시간 등의 상세 정보를 보여주는 영역으로, 문제 발생 시 원인 분석에 중요한 역할을 합니다.
핵심 개념 정리
데이터베이스(Database)는 구조화된 데이터의 집합으로, 대량의 정보를 체계적으로 저장하고 효율적으로 관리하기 위한 데이터 저장소입니다.
DBMS(DataBase Management System)는 데이터베이스를 관리하는 소프트웨어로, 데이터의 생성·조회·수정·삭제 기능을 제공하며 보안, 무결성, 백업과 같은 관리 기능을 수행합니다.
SQL(Structured Query Language)은 DBMS를 통해 데이터베이스를 제어하기 위해 사용하는 표준 질의 언어로, 데이터 처리와 관리를 위한 핵심 도구입니다.
데이터베이스 파일은 데이터 파일, 로그 파일, 인덱스 파일, 설정 파일, 메타데이터 파일 등으로 구성되며, 각각 데이터 저장과 복구, 성능 향상, 시스템 운영을 담당합니다.
테이블(Table)은 데이터베이스의 기본 저장 단위로, 열(column)과 행(row)으로 구성된 표 형태의 구조를 가지며 데이터를 논리적으로 표현합니다.
MySQL 실습 환경은 서버 역할을 하는 MySQL Server와 클라이언트 역할을 하는 MySQL Workbench로 구성되며, 사용자는 Workbench를 통해 SQL을 작성하고 서버에서 처리된 결과를 확인합니다.