[데이터베이스 시스템] 데이터베이스의 이해
파일 처리 시스템
- 데이터베이스가 개발되기 전에 데이터 관리에 사용되던 전통적인 방식
- 개별 데이터를 데이터 파일에 저장/관리하는 시스템
- 발생 가능한 문제
- 데이터 종속의 문제
- 데이터 중복의 문제
- 무결성 훼손의 문제
- 동시 접근의 문제
데이터 종속의 문제
- 데이터가 특정 하드웨어 또는 사용자만 사용할 수 있도록 제한되는 문제
- 물리적 데이터 종속
- 논리적 데이터 종속
데이터 중복의 문제
- 아래 세 가지 관점에서 문제 발생
- 일관성 : 하나의 사실을 나타내는 여러 데이터가 모두 논리적으로 같은 값을 유지해야 한다.
- 보안성 : 같은 데이터에 대해 같은 수준의 보안이 유지되어야 한다.
- 경제성 : 데이터에 대해 최소한의 저장 공간만을 점유해야 한다.
무결성 훼손의 문제
- 데이터는 가질 수 있는 가능 범위(제약조건)를 포함해야 한다.
- 데이터의 정확성을 보장해야 한다.
- 파일 시스템은 데이터 무결성을 보장하기 위한 기능을 제공하지 않음
동시 접근의 문제
- 동일 데이터에 다수 사용자 접근을 허용하면 일관성이 훼손된다.
데이터베이스의 특징
- 자기 기술성 : 데이터와 데이터의 정의 및 설명(메타데이터)를 포함한다.
- 데이터 추상화 : 사용자에게 데이터에 대한 개념적인 표현을 제공하여 접근성을 향상한다.
- 다수 사용자 트랜잭션 처리 : 다수의 데이터 조작 요청을 동시성 제어 기능을 통해 데이터의 일관성을 보장하면서 동시에 작업을 수행
- 다중 뷰 : 각 사용자가 관심을 갖는 데이터베이스의 일부만을 표현할 수 있는 기능 제공
데이터베이스 시스템의 구성
내부 단계
- 내부 스키마에 의해 기술
- 원시 수준의 데이터
개념 단계
- 개념 스키마에 의해 기술
- 데이터베이스에 무엇이 저장되어 있는지와 데이터 간의 관계만 기술
외부 단계
- 외부 스키마(=뷰)에 의해 기술
- 사용자가 관심을 갖는 데이터베이스의 일부만 기술하고 다른 부분은 은폐
개념-내부 사상
- 개념 단계의 데이터 스키마가 디스크 내의 내부 필드 간의 대응 관계를 정의
- 물리적 데이터 독립성이 확보된다.
외부-개념 사상
- 외부 스키마(=뷰)와 개념 스키마 간의 대응 관계를 정의
- 논리적 데이터 독립성이 확보된다.
데이터베이스 언어
DDL (Data Definition Language)
- 데이터 정의 언어
- 데이터베이스 객체를 생성, 수정, 삭제하기 위한 언어
- 프로그램이 요구하는 데이터의 논리적 구성이나 특징을 규정
- 데이터가 기억장치에 저장되도록 데이터의 물리적 구성을 규정
- 물리적 구성과 논리적 구성 간의 사상을 규정
DML (Data Manipulation Language)
- 데이터 조작 언어
- 구조화된 데이터에 사용자가 접근 및 조작할 수 있도록 지원하는 언어 (검색, 삽입, 삭제, 수정)
- 요구 조건
- 데이터 조작이 쉽고 간편
- 데이터 조작 기능이 정환하고 완전
- 사용자 요청을 시스템 내부에서 효율적으로 처리 가능
데이터 모델
- 데이터 모델 : 의미, 데이터 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념들의 집합
- 데이터 모델링 : 실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정
사용자 요구사항 분석 단계
- 요구사항 도출 : 요구사항 명세서 도출
- 요구사항 분석 : 요구사항 정의서 도출
- 요구사항 기록 : 프로젝트 종료 때까지 반영 여부 지속적 관리
데이터 모델링 단계
개념적 데이터 모델링
- 요구사항 해석 오류를 방지하기 위해 공통된 표기법을 사용한 추상화 기법 사용
- 실세계의 데이터를 개념적으로 일반화시켜 데이터 타입, 속성, 관계, 제약조건들을 이끌어내는 과정
- ER 모델 사용
논리적 데이터 모델링
- 특정 DBMS에 맞는 구현 데이터 모델(스키마)에 맞춰 데이터를 표현하는 과정
- 관계형 모델 사용
- DDL로 기술된 개념 스키마 생성
물리적 데이터 모델링
- 데이터베이스 파일의 내부 저장구조, 파일 구성, 인덱스, 접근 경로 등을 결정하는 과정
ER 모델
- 개념적 모델링 단계에서 사용되는 데이터 모델
- 개체와 개체 사이의 관계를 정형화시킨 모델
- 구성요소 : 개체 집합, 관계 집합, 속성
속성
단순 속성과 복합 속성
- 단순 속성 : 더 작은 구성요소로 나눌 수 없는 속성 (ex. 이름, 나이)
- 복합 속성 : 더 작은 구성요소로 나눌 수 있는 속성 (ex. 생년월일)
단일값 속성과 다중값 속성
- 단일값 속성 : 한 개체에 대해 단 하나의 값만을 갖는 속성 (ex. 이름, 나이)
- 다중값 속성 : 한 개체에 대해 여러 개의 값을 갖는 속성 (ex. {전화번호})
유도 속성과 저장 속성
- 유도 속성 : 다른 속성의 값으로부터 값이 유추될 수 있는 속성 (ex. 나이)
- 저장 속성 : 유도 속성을 위해 사용될 수 있는 속성 (ex. 생년월일)
제약조건
사상수
관계 집합에 참가한 개체 집합에 대해 한 개체가 다른 개체와 관계를 맺을 수 있는 수량을 명시
참가 제약조건
- 전체적 참가 : 어떤 개체 집합의 모든 개체가 관계 집합에 참여하는 조건, 이중선으로 표시
- 부분적 참가 : 어떤 개체 집합의 일부 개체가 관계 집합에 참여하는 조건, 실선으로 표시
키 속성
- 각 개체를 구별하는데 사용되는 유일한 값을 가지는 속성의 집합
특수 관계
- 약한 개체 집합 : 개체의 존재 유무가 관계를 맺고 있는 개체의 존재에 종속되는 개체 집합
- 강한 개체 집합 : 약한 개체 집합과 연결되어 있는 일반 개체 집합
This post is licensed under CC BY 4.0 by the author.