관계형 데이터베이스 기초 — 완전 쉬운 데이터베이스 입문
데이터베이스란 무엇인가?
우리 주변에는 수많은 정보가 있습니다. 쇼핑몰에선 상품정보, 학교에선 학생정보, 은행에선 계좌정보가 있죠.
이처럼 서로 연관된 대량의 데이터를 체계적으로 모아두고, 필요할 때 쉽게 꺼내 쓸 수 있게 정리해둔 저장소를 바로 데이터베이스(Database)라고 부릅니다.
데이터베이스 관리 시스템(DBMS)
단순히 정보를 모아두는 것만으론 부족합니다. 빠르게 찾고, 수정하고, 오류 없이 관리하려면 전문 프로그램이 필요해요.
이걸 DBMS(Database Management System)라 부르는데, 데이터베이스를 편리하고 효율적으로 관리할 수 있게 도와주는 소프트웨어입니다.
예시)
-
Oracle
-
MySQL
-
SQL Server
-
SQLite
데이터베이스의 역사
데이터를 저장하는 방법도 세월 따라 발전했습니다.
1️⃣ 파일 시스템 →
2️⃣ 계층형 데이터베이스 →
3️⃣ 망형 데이터베이스 →
4️⃣ 관계형 데이터베이스(Relational Database)
1970년대 말, 관계형 데이터베이스 모델이 등장하면서 지금 우리가 배우는 RDB 시스템이 표준이 됐습니다.
관계형 데이터 모델 (Relational Data Model)
데이터 모델이란?
현실에 존재하는 정보(사람, 제품, 거래 등)를 데이터로 표현하고 관리하는 체계적인 설계도입니다.
-
학생이라는 현실 대상 → 학생 테이블
-
상품이라는 현실 대상 → 상품 테이블
이렇게 현실의 정보를 테이블로 표현하는 게 바로 데이터 모델의 핵심.
데이터 추상화란?
데이터를 효과적으로 다루려면 중요한 정보만 보고, 불필요한 건 숨기는 것이 좋습니다.
이걸 데이터 추상화(data abstraction)라고 합니다.
예를 들어 학생의 개인정보에서 이름, 학번, 학과만 보여주고, 주소나 키는 감추는 거죠.
관계형 데이터 모델 구성요소 3가지
1️⃣ 데이터 표현 (Data Type)
2️⃣ 무결성 규칙 (Integrity Constraint)
3️⃣ 연산자 집합 (Operator Set)
데이터 표현 — 데이터 타입(Data Type)
용어 정리
-
개체(Entity) : 학생, 교수 같은 현실의 대상
-
속성(Attribute) : 이름, 학번, 학과 같은 정보 항목
-
관계(Relationship) : 학생이 수강하는 과목처럼 서로 연결된 상태
관계 테이블의 구조
-
테이블 이름 (예: 학생)
-
속성(Attribute) : 학번, 이름, 학과
-
레코드(Tuple) : 각 행에 저장된 데이터
공식 표현:
: 테이블의 구조(스키마)
: 각 데이터 행
관계의 종류
-
내부관계성(Intra-relationship) : 같은 테이블 안에서 속성들 간의 관계
-
외부관계성(Inter-relationship) : 서로 다른 테이블 간의 관계
무결성 규칙 (데이터 정확성 보장)
키(Key)의 종류
-
슈퍼키(Super Key) : 테이블의 레코드를 유일하게 식별할 수 있는 속성 집합
-
기본키(Primary Key) : 슈퍼키 중에서 가장 중요한 키
-
후보키(Candidate Key) : 기본키로 쓸 수 있는 후보들
-
대체키(Alternate Key) : 후보키 중 기본키로 선택되지 않은 것
-
외래키(Foreign Key) : 다른 테이블의 기본키를 참조하는 키
관계형 무결성 규칙
1️⃣ 개체무결성(Entity Integrity)
기본키는 반드시 값이 존재해야 하고 중복될 수 없음.
2️⃣ 참조무결성(Referential Integrity)
외래키는 참조하는 테이블의 기본키 값과 같거나, 아니면 NULL이어야 함.
관계형 연산자 (Relational Operators)
관계형 데이터베이스에서 데이터를 다룰 때 사용하는 연산자 집합.
주요 연산
1. 선택 (Selection)
조건에 맞는 행만 선택
2. 투영 (Projection)
특정 열만 추출
3. 카티션 곱 (Cartesian Product)
모든 가능한 조합
4. 자연 조인 (Natural Join)
같은 속성 기준으로 연결
SQL 예제 설명
관계대수 → SQL 변환 예시
-
선택(Selection)
-
카티션 곱(Cartesian Product)
SQL문법 설명
-
SELECT
: 조회할 열 지정 -
FROM
: 테이블 지정 -
WHERE
: 조건절 -
NATURAL JOIN
: 같은 이름의 속성을 기준으로 조인
중요 내용 정리
구분 | 내용 |
---|---|
데이터베이스 | 서로 연관된 데이터를 체계적으로 저장, 관리 |
관계형 데이터베이스 | 테이블 형태로 데이터 표현 |
데이터 모델 | 데이터 표현, 무결성 규칙, 연산자 집합 |
키 | 슈퍼키, 기본키, 후보키, 외래키 |
무결성 규칙 | 개체무결성, 참조무결성 |
관계대수 연산자 | 선택, 투영, 카티션 곱, 자연조인 |
SQL 변환 | 관계대수 연산자를 SQL로 구현 가능 |
객관식 3문제 + 정답과 해설
Q1. 데이터베이스의 정의로 옳지 않은 것은?
① 방대한 양의 데이터를 저장한다
② 연관되지 않은 개별 데이터를 다룬다
③ 데이터를 체계적으로 관리한다
④ 변화하는 데이터를 저장한다
정답: ②
해설: 데이터베이스는 연관된 데이터를 저장하는 시스템
Q2. 관계형 데이터베이스에서 외래키(Foreign Key)의 역할은?
① 다른 테이블의 기본키를 참조
② 중복을 허용하지 않음
③ 테이블의 유일성을 보장
④ NULL 값을 허용하지 않음
정답: ①
해설: 외래키는 참조 테이블의 기본키와 연결
Q3. 관계대수 연산자가 아닌 것은?
① 선택
② 투영
③ 카티션 곱
④ 그룹핑
정답: ④
해설: 그룹핑은 SQL의 그룹 함수로 관계대수 연산자 아님