Access에서 데이터베이스 생성과 데이터 중심 애플리케이션을 본격적으로 다루기 전에, 기본적인 데이터베이스 및 관계형 데이터베이스 관리 시스템(RDBMS)의 핵심 개념을 먼저 짚고 넘어가는 것이 좋습니다. 이러한 배경 지식은 실용적이고 유용한 데이터베이스를 만들기 위해 반드시 필요하며, 데이터베이스 관련 서적, 튜토리얼, 온라인 자료에서도 자주 접하게 되는 용어들입니다.
관계형 데이터베이스 관리 시스템(RDBMS)의 기본 개념
데이터베이스란 무엇일까요?

데이터베이스란 간단히 말해, 필요할 때 언제든 접근하고 조작하고 검색할 수 있는 저장소에 체계적으로 정리된 전자식 데이터 모음입니다. 데이터베이스에는 여러 종류가 있으며, 현재 가장 널리 사용되는 것은 관계형 데이터베이스입니다. 이 외에도 NoSQL이라 불리는 비관계형 데이터베이스를 만들 수도 있습니다.
관계형 데이터베이스란 무엇인가?

데이터베이스의 핵심 구조 단위는 테이블(table)입니다. 관계형 데이터베이스에서 테이블들은 키(key)를 통해 서로 연결되며, 이 키가 관계(relationship) 형성을 가능하게 합니다. 즉, 관계형 데이터베이스란 서로 연관된 테이블들의 집합이라고 할 수 있습니다.
관계형 데이터베이스에서 테이블은 어떻게 구성되는가?

관계형 데이터베이스의 테이블은 레코드(record, 행)와 필드(field, 열)로 구성됩니다. 모든 테이블에는 반드시 기본 키(primary key) 필드가 있어야 하며, 이를 통해 각 행을 고유하게 식별할 수 있습니다. 테이블은 하나의 주제나 개념에 대한 정보만 저장합니다. 예를 들어 빵집 정보를 담는 데이터베이스라면 제품(Products), 주문(Orders), 고객(Customers) 테이블 등으로 나눌 수 있고, 고객 테이블에는 고객 이름, 주소, 선호 결제 수단 같은 정보가 필드(열 제목)로 저장됩니다.
그런 다음 이 테이블들 사이에 관계가 설정됩니다. 많은 분들이 엑셀에서 표를 만드는 데 익숙하지만, 행과 열이 레코드와 필드라는 유사한 개념을 가지고 있더라도 관계형 데이터베이스는 훨씬 엄격합니다. 데이터 타입을 명확히 지정해야 하고, 테이블 생성 규칙도 엑셀보다 훨씬 엄격합니다. 또한 엑셀의 표는 통합 문서 내에서 다른 표와 연결될 필요 없이 독립적으로 존재하는 경우가 많습니다.
테이블 간 관계는 어떻게 만들어지는가?

테이블 간 관계는 키를 통해 만들어집니다. 기본 키(primary key)는 테이블의 각 행을 고유하게 식별하는 필드입니다. 예를 들어 동물병원에서 치료하는 동물의 예방접종 정보를 관리하는 소규모 데이터베이스를 만든다고 가정해 보겠습니다. 소유자(Owners) 테이블에는 OwnerID, 성명, 결제 정보 등의 필드가 있고, 애완동물(Pets/Animals) 테이블에는 동물 종류, 이름 등이 저장됩니다. 한 사람이 여러 마리의 반려동물을 가질 수 있지만, 데이터베이스에서는 단순화를 위해 각 반려동물의 소유자는 결제 책임자인 한 명으로 간주합니다. Owners 테이블의 OwnerID 열은 해당 테이블의 모든 소유자를 고유하게 식별합니다.
관계를 만들려면 이 기본 키를 다른 테이블에 배치하는데, 이때 다른 테이블에 놓인 키를 외래 키(foreign key)라고 부릅니다. OwnerID가 Pets/Animals 테이블에 들어가면 그곳에서는 외래 키가 되는 것이죠. Pets/Animals 테이블 역시 자체적으로 PetID 또는 AnimalID라는 기본 키 열을 가져 각 반려동물을 고유하게 식별합니다.
두 테이블 간 관계를 만들 때는 두 테이블이 어떻게 연결되는지 파악한 후, Owners 테이블의 OwnerID 기본 키 필드와 Pets/Animals 테이블의 OwnerID 외래 키 필드를 연결함으로써 관계를 설정합니다.
가장 흔하게 접하는 관계 유형은 일대다(one-to-many) 관계입니다. 예를 들어 직원(Employees) 테이블과 고객(Customers) 테이블의 관계에서, 한 명의 직원이 여러 고객을 담당할 수 있지만 각 고객에게는 자신의 문제를 처리하는 직원이 한 명만 배정되는 경우입니다.
간혹 일대일(one-to-one) 관계도 있습니다. 이는 한 테이블의 레코드 하나가 다른 테이블의 레코드 하나와 연결되는 형태로, 비교적 드문 유형입니다. 특별한 산업적 요구 사항이 없다면 데이터베이스 설계자는 보통 두 테이블을 하나로 통합합니다.
또한 다대다(many-to-many) 관계도 있습니다. 한 테이블의 여러 레코드가 다른 테이블의 여러 레코드와 연결되는 상황인데, 일반적으로 세 번째 테이블을 만들어 두 테이블을 일대다 관계로 연결하는 방식으로 처리합니다.
참조 무결성(referential integrity)이란 무엇인가?

참조 무결성은 두 테이블 간에 관계가 설정되었을 때, 한 테이블의 모든 레코드가 다른 테이블의 올바른 레코드와 정확히 매칭되는 상태를 의미합니다. 다시 말해, 기본 키 테이블에 없는 값이 관련 테이블의 외래 키로 존재해서는 안 됩니다. 예를 들어 EmployeeID를 통해 Employees 테이블과 Customers 테이블 간 참조 무결성을 적용했다면, Customers 테이블에 Employees 테이블에 존재하지 않는 EmployeeID를 입력할 수 없습니다. 참조 무결성을 지정하면 테이블 간 관계의 유효성 검증에 큰 도움이 됩니다.
엔터티-관계 다이어그램(ERD)이란 무엇인가?

데이터베이스 이론을 공부하다 보면 엔터티-관계 다이어그램(entity-relationship diagram)이라는 용어를 접하게 됩니다. 데이터베이스를 계획할 때 설계자는 필요한 테이블, 즉 엔터티(entity)들을 검토합니다. 각 엔터티는 그 자체로 하나의 주제를 나타내며, 엔터티 간 관계는 데이터베이스 내 테이블 간의 관계를 설명합니다. 엔터티에는 속성(attribute)도 있는데, 이는 테이블을 구성하는 필드를 말합니다. 예를 들어 Employees 테이블에는 EmployeeID, 직원 성명, 직급, 직무 설명 등의 속성이 있을 수 있습니다.
엔터티-관계 다이어그램은 종이에 그릴 수도 있고 소프트웨어로 작성할 수도 있습니다. 체계적으로 시각화할 때는 엔터티를 사각형으로, 관계를 선으로 표현하며, 기본 키·외래 키·기타 열도 함께 표기하는 것이 좋습니다. 초기 계획 단계에서는 간소화된 다이어그램을 작성하고, 주요 엔터티와 관계가 확정된 후 속성과 키까지 포함한 더 상세한 다이어그램을 설계하면 됩니다.
데이터베이스 관리 시스템(DBMS)이란 무엇인가?

데이터베이스 관리 시스템(DBMS)은 데이터베이스 관리자가 데이터베이스와 그 안의 데이터를 생성, 업데이트, 조작할 수 있게 해주는 프로그램입니다. 시장에는 상용 제품과 오픈소스 제품 등 다양한 DBMS가 존재하며, 대부분은 엔터프라이즈급 트랜잭션 처리나 데이터베이스 아키텍트를 목표로 공부하는 경우가 아니라면 굳이 고려할 필요가 없는 산업용 패키지들입니다.
SQL이란 무엇인가?

SQL(Structured Query Language, 구조화 질의 언어)은 관계형 데이터베이스에서 데이터를 생성, 업데이트, 조작하기 위해 사용되는 언어입니다. 배우기 비교적 쉬운 편이며, CREATE, SELECT, INSERT, JOIN, UPDATE, WHERE, DELETE 같은 문장을 활용하면 관계형 데이터베이스 객체를 만들고 조작하는 대부분의 표준 작업을 수행할 수 있습니다. 벤더마다 SQL 버전이 조금씩 다르지만, 한 가지 버전을 익히면 다른 버전도 쉽게 습득할 수 있습니다.
쿼리(query)란 무엇인가?

쿼리란 데이터베이스에 던지는 질문 또는 데이터베이스에 내리는 명령입니다. 간단한 쿼리의 예로 '특정 지역의 모든 고객 조회'가 있고, 좀 더 복잡한 쿼리로 '특정 직원에게 배정된 모든 고객 조회'가 있습니다. 후자의 경우 데이터베이스 내 테이블 간에 설정된 관계에 의존하게 됩니다. 제대로 설계된 데이터베이스라면 쿼리가 요청하는 답이나 정보를 정확히 검색하거나 명령을 실행할 수 있어야 합니다.
추천 글: Excel VBA로 간단한 데이터베이스 만드는 방법
폼(form)이란 무엇인가?

폼은 프런트엔드 사용자와 백엔드 테이블을 분리하기 위해 만드는 데이터베이스 객체입니다. 즉, 사용자가 쉽게 데이터를 입력할 수 있도록 하는 것이 폼의 주된 목적입니다. 폼을 활용하면 데이터베이스 관리자는 프런트엔드 사용자를 위한 그래픽 사용자 인터페이스(GUI)를 만들어 데이터 입력을 간소화하는 동시에, 백엔드 테이블이 임의로 변경되는 것을 막을 수 있습니다. 백엔드 테이블이나 관계가 노출되면 사용자가 관계를 수정해 쿼리가 작동하지 않을 수 있으므로, 폼이 이러한 문제를 해결해 줍니다. 이 외에도 데이터베이스나 생성한 폼들을 손쉽게 탐색할 수 있게 해주는 탐색(navigation) 폼 같은 다양한 형태의 폼을 만들 수 있습니다.
추천 글: Excel에서 폼을 활용해 데이터베이스 만드는 방법
보고서(report)란 무엇인가?

보고서는 테이블의 특정 필드와 계산 결과를 인쇄 가능한 형식으로 담아낸 것입니다. 하나의 테이블에서 필드나 계산값만 가져올 수도 있고, 여러 테이블에서 원하는 필드를 조합해 담을 수도 있습니다. 평균, 최대값, 최소값 같은 계산 요약을 추가하거나 데이터를 그룹화하여 보여줄 수도 있습니다.
Access는 어떤 역할을 하는가?

Microsoft Access는 마이크로소프트가 제공하는 관계형 데이터베이스 관리 시스템으로, 현재 가장 인기 있는 데스크톱 데이터베이스 소프트웨어입니다. 널리 쓰이는 스프레드시트 애플리케이션인 Microsoft Excel과 엔터프라이즈급 RDBMS인 Microsoft SQL Server 사이에서 훌륭한 중간 다리 역할을 합니다. 엑셀에서 테이블이 올바르게 구성되어 있다면 Access로 가져와 추가로 다룰 수 있으며, Access를 SQL Server에 연결해 SQL Server 테이블의 프런트엔드로 활용할 수도 있습니다.
또한 Access에서는 SQL 문을 전혀 사용하지 않고도 테이블, 쿼리, 폼, 보고서를 만들어 매우 포괄적이고 유용한 데이터베이스를 구축할 수 있습니다. 익숙한 리본 인터페이스를 통해 이러한 객체들을 생성할 수 있고, 디자인 보기에서 쿼리를 만들면 Access가 자동으로 SQL을 생성해 줍니다. SQL 보기를 통해 이 SQL 문을 확인하고 편집할 수도 있습니다. 물론 SQL을 몰라도 충분히 기능적인 데이터베이스를 만들 수 있지만, 전문적인 요구 사항을 위한 고급 데이터 중심 애플리케이션을 개발하려면 SQL 쿼리를 직접 작성하는 능력이 매우 유용합니다.
VBA(Visual Basic for Applications)를 활용해 데이터베이스를 한층 강화할 수도 있으며, Access 프로그래밍은 고급·전문 용도나 조직 환경에서 유용한 스킬입니다.
다만 기본적인 관계형 데이터베이스 이론과 관련된 개념은 반드시 이해하고 숙달해야 합니다. 궁극적으로 데이터베이스 구축의 목표는 데이터를 효율적으로 저장하고, 쿼리 시 필요한 정확한 정보를 반환하는 중앙 저장소를 만드는 것입니다.
이상으로 핵심 개념 정리를 마치겠습니다.
결론
Microsoft Access든 다른 어떤 관계형 데이터베이스든 학습을 시작할 때는 정확한 설계를 위해 반드시 익혀야 할 몇 가지 개념과 용어가 있습니다. 서적, 튜토리얼, 학습 매뉴얼에서 이러한 용어들을 자주 접하게 되고, 데이터베이스 객체를 만들기 시작하면 관계 설정 같은 방법론을 반복적으로 적용하게 됩니다. 따라서 혼란 없이 관계형 데이터베이스 관리 시스템의 강력한 기능을 최대한 활용하려면 관계형 데이터베이스 이론에 대한 기본적인 이해가 필요합니다. 기본기를 다진 후에는 실무 적용에 전력 질주할 수 있습니다.
현재 Access를 사용 중이거나 Access 또는 다른 관계형 데이터베이스 관리 시스템을 시작하려는 분이라면, 댓글로 경험과 생각을 공유해 주세요.
관련 글
- Excel로 학생 데이터베이스 만드는 방법 (쉬운 단계별 가이드)
- Excel로 고객사 데이터베이스 만드는 방법 (쉬운 단계별 가이드)
- Excel로 직원 데이터베이스 만드는 방법 (쉬운 단계별 가이드)
- Excel에서 고객 데이터베이스 유지·관리하기
- Excel로 재고 데이터베이스 만드는 방법 (3가지 쉬운 방법)
- Excel에서 검색 가능한 데이터베이스 만드는 방법 (2가지 빠른 팁)