본문 바로가기
Database/Database

관계형 모델

by curious week 2025. 3. 14.

데이터베이스 모델링 및 관계형 모델

1. 데이터베이스 모델링 과정

데이터베이스 모델링은 사용자의 요구 사항을 분석하여 데이터를 구조화하고 최적화된 데이터베이스를 설계하는 과정이다.

1.1 데이터베이스 모델링 과정 단계

  1. 사용자 요구 분석 (데이터 및 업무 분석)
    • 데이터와 관련된 업무 흐름을 분석하여 데이터 요구사항을 파악
    • 데이터베이스 모델링을 위한 기초 자료 수집
  2. 개념적 데이터 모델링 (Conceptual Data Modeling)
    • ER 모델(Entity-Relationship Model)을 이용하여 데이터의 개념적인 구조를 표현
    • 개체(Entity), 속성(Attribute), 관계(Relationship) 정의
    • 데이터의 일반적인 개념을 다루며, DBMS에 독립적
  3. 논리적 데이터 모델링 (Logical Data Modeling)
    • **관계형 모델(Relational Model)**을 기반으로 개념적 모델을 논리적으로 변환
    • 테이블(릴레이션), 키(Key), 제약조건(Constraints) 정의
    • 특정 DBMS에 맞는 논리적인 스키마 설계
  4. 물리적 데이터 모델링 (Physical Data Modeling)
    • 데이터 저장 구조, 인덱스, 파일 구성, 접근 경로 등을 결정
    • DBMS에서 데이터의 저장 및 관리 방식을 최적화
    • 내부 스키마를 정의하여 성능을 고려한 데이터베이스 구조 설계

2. 관계형 모델 (Relational Model)

관계형 모델은 릴레이션(테이블)으로 데이터를 표현하는 모델로, 현재 대부분의 DBMS에서 사용된다.

2.1 관계형 모델의 특징

  • 데이터 표현이 단순하고 직관적인 구조
  • 현재 대부분의 관계형 DBMS(RDBMS)의 기초

2.2 릴레이션(테이블)의 특성

레코드(행)의 유일성 동일한 레코드(튜플)는 존재할 수 없음
레코드(행)의 무순서성 행의 순서는 의미가 없음
컬럼(속성)의 무순서성 컬럼(속성)의 순서는 중요하지 않음
컬럼값의 원자성 하나의 컬럼 값은 더 이상 나눌 수 없는 단일한 값(Atomic Value)

3. 키(Key)와 참조

키는 테이블에서 레코드를 구분하기 위해 사용되는 속성이다.

3.1 키의 역할

키의 속성:

  • 유일성(Unique): 테이블 내에서 레코드를 고유하게 식별
  • 최소성(Minimality): 꼭 필요한 속성만 포함

키의 종류:

슈퍼키(Super Key) 유일성은 만족하지만 최소성을 만족하지 않는 키
후보키(Candidate Key) 유일성과 최소성을 만족하는 키
기본키(Primary Key, PK) 후보키 중에서 선택된 주요 키
외래키(Foreign Key, FK) 다른 테이블의 기본키를 참조하는 키

키의 참조 관계:

  • 두 개의 릴레이션 사이에서 기본키를 참조하여 외래키로 설정
  • 테이블 간의 관계를 형성하고 데이터의 무결성을 유지

4. 관계형 모델의 제약조건

제약조건은 데이터의 일관성과 무결성을 유지하기 위해 설정하는 규칙이다.

영역 제약조건 (Domain Constraint) 컬럼 값은 정의된 영역 내의 값만 가질 수 있음
키 제약조건 (Key Constraint) 기본키 값은 중복될 수 없으며, 유일해야 함
개체 무결성 제약조건 (Entity Integrity Constraint) 기본키는 반드시 값이 있어야 하며, NULL이 될 수 없음
참조 무결성 제약조건 (Referential Integrity Constraint) 외래키 값은 반드시 존재하는 기본키만 참조 가능

널(NULL)의 개념

  • ‘없음’ 또는 ‘0’이 아닌 미지의 값, 입력된 적이 없는 값, 적용 불가능한 값

5. 논리적 데이터 모델링의 수행

5.1 ER 다이어그램 변환 규칙

ER 모델을 관계형 데이터 모델로 변환할 때 적용되는 규칙이다.

개체 집합(Entity Set) 개체 집합은 릴레이션(테이블)으로 변환
약한 개체 집합(Weak Entity Set) 강한 개체 집합의 기본키를 약한 개체 집합의 릴레이션에 포함
1:1 관계(One-to-One) 한 릴레이션의 기본키를 다른 릴레이션에서 외래키로 참조
1:N 관계(One-to-Many) ‘1’쪽의 기본키를 ‘N’쪽 릴레이션에서 외래키로 참조
M:N 관계(Many-to-Many) 별도의 관계 릴레이션을 생성하여 두 개체의 기본키를 복합키로 설정
다중값 속성(Multivalued Attribute) 별도의 릴레이션을 생성하여 기본키와 다중값 속성을 포함
관계 집합의 속성(Relationship Attribute) 외래키가 위치한 릴레이션의 컬럼으로 삽입

6. 관계형 데이터 연산

관계형 모델에서는 데이터를 조작하기 위해 **관계 대수(Relational Algebra)**를 사용한다.

6.1 셀렉트 연산 (SELECT)

조건을 만족하는 튜플(행)을 선택하는 연산

SELECT * FROM 학생 WHERE 학년 = 3;

6.2 프로젝션 연산 (PROJECTION)

특정 컬럼(속성)만을 선택하는 연산

SELECT 이름, 학년 FROM 학생;

6.3 관계 대수 (Relational Algebra)

릴레이션에서 데이터를 검색하고 조작하는 연산

  • 셀렉트(σ): 조건에 맞는 행을 선택
  • 프로젝션(π): 특정 속성을 선택
  • 조인(⨝): 두 테이블을 연결
  • 디비전(÷): 특정 관계를 찾음

6.4 집합 연산자 (Set Operators)

SQL에서 두 개의 릴레이션을 조작하는 연산

  • UNION: 두 테이블의 합집합 (중복 제거)
  • INTERSECT: 두 테이블의 교집합
  • EXCEPT: 한 테이블에서 다른 테이블을 제외한 차집합

6.5 카티시언 프로덕트 연산 (Cartesian Product)

두 테이블의 모든 가능한 조합을 생성

SELECT * FROM 학생, 과목;

6.6 그룹화를 이용한 집계 함수 (Aggregation with Grouping)

데이터를 그룹화하여 집계 함수(AVG, SUM, COUNT 등)를 적용

SELECT 학년, COUNT(*) AS 학생수 FROM 학생 GROUP BY 학년;

7. ER 다이어그램 변환 예제

ER 다이어그램

  • 학생(학번, 이름, 학년)
  • 과목(과목코드, 과목명)
  • 수강(학번, 과목코드, 성적) (학생과 과목의 M:N 관계)

릴레이션 변환

CREATE TABLE 학생 (
    학번 INT PRIMARY KEY,
    이름 VARCHAR(50),
    학년 INT
);

CREATE TABLE 과목 (
    과목코드 INT PRIMARY KEY,
    과목명 VARCHAR(100)
);

CREATE TABLE 수강 (
    학번 INT,
    과목코드 INT,
    성적 CHAR(2),
    PRIMARY KEY (학번, 과목코드),
    FOREIGN KEY (학번) REFERENCES 학생(학번),
    FOREIGN KEY (과목코드) REFERENCES 과목(과목코드)
);

  1. 관계형 모델은 표와 매우 유사한 구조인 릴레이션에 기초한다. 레코드는 릴레이션의 각 행을 의미하며, 컬럼은 각 열을 의미한다. 이 때 릴레이션 스키마란 어떠한 테이블에서 사용되는 컬럼과, 컬럼이 지니는 데이터 타입을 정의한 것을 의미한다.
  2. 릴레이션은 일반 표와는 달리, 레코드의 유일성, 레코드의 무순서성, 컬럼의 무순서성, 컬럼값의 유일성이라는 특징을 갖는다.
  3. 기본키는 한 데이터베이스 내에서 레코드를 유일하게 판별할 수 있는 컬럼을 말하며, 카디널리티는 레코드의 개수를 의미한다. 키의 종류로는 기본키, 후보키, 수퍼키 등이 있다.
  4. 관계형 모델은 영역 제약조건, 키 제약조건, 개체 무결성 제약조건, 참조 무결성 제약조건이 항상 만족되도록 모든 데이터의 삽입, 수정, 삭제 시 데이터를 검증하며, 이를 통해 데이터의 무결성과 일관성을 유지시킨다.
  5. ER 모델링의 결과를 토대로 실제 상용 DBMS상의 데이터베이스를 만들기 위해서는 각 DBMS에 맞는 구현 데이터 모델로의 변환이 필요하다. 이러한 변환 과정을 논리적 데이터 모델링이라고 한다.
  6. ER 모델에서 관계 데이터 모델로의 변환 시 보통 개체는 릴레이션으로, 약한 개체 집합의 경우 강한 개체의 키를 약한 개체의 부분키와 합쳐서 기본키로 갖는 릴레이션으로 변환 가능하다.
  7. ER 모델에서 관계 데이터 모델로의 변환 시 사상수에 따라 테이블 간 레코드의 연관성을 외래키와 기본키의 참조 관계로 표현한다.
  8. 관계 데이터베이스에서는 관계 대수라는 절차적 질의 언어를 사용할 수 있다. 관계 대수 연산에서 릴레이션에 대한 집합 연산으로는 셀렉트, 프로젝트, 합집합, 교집합, 차집합, 카티션 프로덕트 연산 등이 있다.
  9. 관계 대수의 또 다른 연산은 자연 조인, 할당 연산자 및 프로젝트 연산과 SUM, AVG, MAX, MIN, COUNT와 같은 집계 함수가 있다.

'Database > Database' 카테고리의 다른 글

SQL(3)  (0) 2025.03.28
SQL(2)  (0) 2025.03.28
SQL(1)  (1) 2025.03.28
데이터 베이스 모델링  (0) 2025.03.14
데이터베이스 개요  (1) 2025.03.05