모던지 / 컴퓨터활용능력 / 데이터베이스 일반 1강. 데이터베이스 개요와 테이블

데이터베이스 일반 1강. 데이터베이스 개요와 테이블

엑셀로도 되는 일을 왜 굳이 액세스로 할까요. 같은 값을 두 번 적는 순간 답이 나옵니다.

풀고 시작

문제 1. 테이블에서 각 레코드를 유일하게 구분하기 위해 지정하는 필드를 무엇이라고 부를까요?
기본 키(primary key)는 레코드를 하나로 특정하는 필드이며 중복과 빈 값을 허용하지 않습니다. 후보 키는 기본 키가 될 자격이 있는 필드들이고, 그중 하나를 골라 기본 키로 삼습니다. 외래 키는 다른 테이블의 기본 키를 가리키는 필드입니다.

같은 값을 두 번 적는 순간 문제가 시작됩니다

주문 목록을 엑셀 한 장으로 관리한다고 해 봅시다. 한 행에 고객 이름, 전화번호, 주소, 상품명, 수량이 들어갑니다. 같은 고객이 열 번 주문하면 그 사람의 주소가 열 번 적힙니다.

이사를 가면 어떻게 될까요. 열 곳을 모두 고쳐야 하고, 아홉 곳만 고치면 그 순간부터 이 표는 두 개의 주소를 동시에 주장합니다. 이것이 데이터 중복이 낳는 불일치(inconsistency) 입니다.

이 문제를 푸는 방법은 표를 쪼개는 것입니다. 고객 표와 주문 표를 따로 두고, 주문 표에는 고객 이름 대신 고객 번호만 적습니다. 주소는 고객 표에 한 번만 존재하므로 고칠 곳도 한 곳입니다. 이렇게 표를 나누고 관계로 잇는 것이 관계형 데이터베이스의 핵심이고, 액세스가 하는 일입니다.

엑셀과 액세스의 갈림길은 여기입니다. 엑셀은 계산에 강하고 액세스는 관계에 강합니다. 데이터가 한 장으로 끝나고 계산이 주된 일이면 엑셀이 낫고, 표가 여럿이고 서로를 참조하면 액세스가 낫습니다.

자료형을 정하는 일은 규칙을 정하는 일입니다

테이블을 만들 때 각 필드의 자료형을 정합니다. 자료형은 그 칸에 무엇이 들어올 수 있는지를 정하는 규칙입니다.

자료형 무엇을 담나
짧은 텍스트 이름, 주소처럼 짧은 글입니다. 최대 255자입니다
긴 텍스트 메모나 설명처럼 긴 글입니다
숫자 계산에 쓸 수를 담습니다
날짜와 시간 날짜, 시각을 담습니다
통화 금액을 담으며 반올림 오차를 막습니다
일련 번호 레코드를 추가할 때마다 자동으로 1씩 커집니다
Yes/No 참과 거짓 둘 중 하나입니다

전화번호를 숫자로 두면 안 됩니다. 앞자리 0이 사라지고 하이픈도 넣을 수 없으니까요. 계산할 일이 없는 숫자는 텍스트로 두는 것이 맞습니다. 우편번호와 주민등록번호도 같습니다.

일련 번호는 기본 키로 자주 쓰입니다. 사람이 정하지 않아도 겹치지 않는 값이 자동으로 붙으니까요. 다만 한 번 쓴 번호는 레코드를 지워도 다시 쓰이지 않습니다.

필드에는 조건도 걸 수 있습니다. 필수(required) 는 빈 값을 막고, 유효성 검사 규칙은 들어올 수 있는 값의 범위를 정하며, 입력 마스크는 입력 형식을 강제합니다. 기본값은 새 레코드에 미리 채워 넣을 값이죠. 이런 규칙을 필드에 걸어 두면 사람이 아무리 급해도 잘못된 값이 들어가지 않습니다.

관계를 맺으면 데이터베이스가 스스로를 지킵니다

표를 나눴으면 다시 이어야 합니다. 관계(relationship) 를 맺는다는 것은 한 표의 기본 키와 다른 표의 외래 키를 연결하는 일입니다.

관계에는 세 종류가 있습니다. 일대다(1:N) 가 가장 흔합니다. 고객 하나에 주문이 여럿인 관계죠. 일대일(1:1) 은 드물고, 다대다(M:N) 는 액세스에서 직접 만들 수 없어 연결 테이블을 가운데 두어 일대다 둘로 쪼갭니다. 학생과 과목의 관계가 그렇습니다. 수강 신청 표를 가운데 두는 거죠.

관계를 맺을 때 참조 무결성(referential integrity) 을 켤 수 있습니다. 이것이 데이터베이스가 스스로를 지키는 장치입니다. 켜 두면 존재하지 않는 고객 번호로 주문을 넣을 수 없고, 주문이 남아 있는 고객을 지울 수 없습니다. 실수로 부모를 지워 자식이 미아가 되는 일을 막아 주죠. 여기에 연쇄 삭제를 함께 켜면 고객을 지울 때 그 주문까지 함께 지워집니다. 편리하지만 위험하기도 하니 신중하게 켜야 합니다.

인출 문제

문제 1. 전화번호를 저장할 필드의 자료형으로 가장 알맞은 것은 무엇일까요?
숫자 자료형은 앞자리 0을 버리고 하이픈을 담지 못합니다. 계산할 일이 없는 숫자는 텍스트로 두는 것이 원칙이고, 우편번호와 주민등록번호도 같은 이유로 텍스트를 씁니다.
문제 2. 참조 무결성을 설정했을 때 일어나는 일로 옳은 것은 무엇일까요?
참조 무결성은 관계의 앞뒤가 맞도록 지켜 줍니다. 없는 고객 번호로 주문을 넣거나, 주문이 남은 고객을 지우는 일을 막죠. 연쇄 삭제를 함께 켜면 부모를 지울 때 자식도 함께 지워집니다.
문제 3. 액세스에서 다대다 관계를 구현하는 방법으로 옳은 것은 무엇일까요?
관계형 데이터베이스는 다대다를 직접 표현하지 못합니다. 학생과 과목이라면 수강 신청 같은 연결 테이블을 가운데 두고 각각과 일대다로 잇습니다. 이 연결 테이블에 신청일 같은 정보를 함께 담을 수 있다는 이점도 있습니다.
문제 4. 기본 키에 대한 설명으로 옳지 않은 것은 무엇일까요?
기본 키는 테이블당 하나뿐입니다. 다만 여러 필드를 묶어 하나의 복합 키로 삼는 것은 가능합니다. 기본 키가 될 자격이 있는 필드가 여럿일 때 그것들을 후보 키라 부르고, 그중 하나를 골라 기본 키로 삼습니다.

이전: 스프레드시트 6강 · 다음: 데이터베이스 일반 2강

모던지 · 궁금하면 모던지 GitHub · 2026-09-10