All
파일 처리 시스템
데이터베이스가 개발되기 전 데이터 관리에 사용
업무별 애플리케이션에서 사용하는 데이터를 개별 데이터 파일에 저장하고 관리하는 시스템
•
데이터 종속 문제
◦
저장된 특정 하드웨어 또는 소프트웨어에서만 사용될 수 있도록 제한되는 문제
•
데이터 중복 문제
◦
서로 다른 파일에 중복 데이터가 있을때 처리 불가
◦
중복은 일관성, 보안성, 경제성 측면에서 문제 발생
•
무결성 훼손 문제
◦
실세계의 데이터는 데이터가 가질 수 있는 가능 범위(제약조건)을 포함
◦
데이터가 정확하고 일관되며 신뢰할 수 있는 상태를 유지해야함
•
동시 접근 문제
◦
동일 데이터에 다수 사용자의 접근 허용시 일관성이 훼손
이와 같은 문제를 해결하기 위해 데이터를 사용하는 영역과 데이터를 관리하는 영역을 분리하여 데이터베이스 시스템이라는 중간 브로커를 둬서 데이터 요청이 오면 관리영역에서 데이터를 전달해주는 역할을 하게됨
데이터베이스의 특징
•
자기 기술성 : 데이터와 데이터의 정의 및 메타데이터 포함
•
프로그램과 데이터의 격리 및 추상화 : 사용자에게 데이터에 대한 개념적인 표현을 제공하여 접근성 향상
•
다중 뷰 제공 : 각 사용자가 관심을 갖는 데이터베이스의 일부만은 표현할 수 있는 기능 제공
•
데이터 공유와 다수 사용자 트랜잭션 처리 : 다수 데이터 조작 요청을 동시성 제어 기능을 통해 일관성을 보장하면서 작업 수행
DBMS 3단계 구조
•
외부 단계
◦
외부 스키마 : 사용자가 보는 뷰
•
개념단계
◦
개념 스키마: 데이터베이스의 전체 구조와 각각의 관계
•
내부단계
◦
내부 스키마 물리적으로 어떻게 저장되어 있는지
데이터베이스 관련 용어
•
데이터 : 어떤 사실에 대한 정량적, 정성적 특징으르 나타낼 수 있는 값과 값에 대한 설명
•
데이터베이스 : 특정 기관 애플리케이션 시스템에서 사용되는 데이터의 집합
•
데이터베이스 관리 시스템 : 데이터베이스에 저장된 데이터의 구성, 저장, 관리, 사용을 위한 소프트웨어 패키지
•
데이터베이스 시스템 : 정보를 데이터베이스에 저장관리하여 사용자에게 요구된 형태의 정보로 제공하는 컴퓨터 기반 시스템
데이터베이스 시스템의 구성요소
데이터베이스 언어
•
데이터 정의 언어(DDL) : 데이터베이스 객체를 생성, 수정, 삭제하기 위한 언어
•
데이터 조작 언어(DML) : 구조화된 데이터에 사용자가 접근 및 조작할 수 있도록 지원하는 언어(검색, 삽입, 삭제, 수정)
데이터베이스 시스템의 아키텍처
•
중앙집중 방식
◦
단일 서버가 모든 데이터 저장 및 처리를 담당
◦
클라이언트는 단순한 터미널 역할 수행
◦
보안 및 관리 용이하지만 단일 서버에 부하 집중
•
클라이언트 - 서버(분산처리) 방식
◦
클라이언트와 서버(DBMS)분리되어 처리
◦
부하를 여러 서버에 분산하여 성능 향상
◦
네트워크를 통해 클라이언트와 서버가 통신
◦
2계층 구조 : 클라이언트 > 서버(DBMS)
▪
클라이언트가 직접 SQL실행하고 서버가 응답(JDBC 등..)
▪
간단하지만 클라이언트 부하가 큼
◦
3계층 구조: 클라이언트 > 애플리케이션 서버 > DBMS
▪
애플리케이션 서버가 비즈니스 로직을 처리한 후 DB와 통신
▪
부하 분산 가능, 보안 강화, 확장성 좋음
▪
예) 웹 서비스 (브라우저 > 웹서버 > DB서버)
데이터베이스 모델링
어떤 데이터를 어떻게 저장할 것인지 ?
데이터 모델
데이터의 의미, 타입, 연산 등을 명시하기 위해 사용할 수 있는 개념(표기법)의 집합
데이터베이스 모델링
•
데이터에 대한 요구사항을 분석해 추상화하는 과정
•
실세계의 일부분을 DBMS가 지원하는 데이터 모델의 형태로 나타내는 과정
•
사용자 요구사항 분석 > 개념적 데이터 모델링 > 논리적 데이터 모델링 > 물리적 데이터 모델링 > 내부 스키마
개념적 데이터 모델링
•
요구사항을 바탕으로 추상화하고 해석 오류를 방지
•
실시계의 데이터를 개념적으로 일반화시켜 데이터 타입, 속성, 관계, 제약조건등 이끌어내는 과정
논리적 데이터 모델링
•
DBMS의 구현 모델에 맞춰 데이터 구조를 표현
•
데이터 정의 언어로 기술된 스키마 생성
물리적 데이터 모델링
•
데이터베이스 파일의 내부 저장구조, 파일 구성, 인덱스, 접근 경로 등을 결정하는 과정
사용자 요구사항 분석
•
데이터에 대한 충분한 사전 분석없이 적절한 설계 불가능
•
필요한 데이터를 저장 및 운용할 수 있는 구조 개발
•
도출 > 분석 > 기록 단계로 수행
ER 모델(Entity-Relationship Model)
•
실세계의 속성들로 이루어진 개체(entity)와 개체 사이의 관계(relationship)를 정형화시킨 모델
•
개념적 데이터 모델링 단계에서 사용되는 모델
•
데이터 구조와 관계를 ER 다이어그램(ERD)로 시각화
ER 모델의 구성요소
개체 집합 (Entity Set)
•
개체(entity) : 실세계에 존재하는 다른 객체와 구별되는 유무형의 사물로 개체를 설명하는 여러 속성들로 구성(ex. 학생, 제품)
•
개체 집합 : 같은 속성을 공유하는 개체들의 모임(ex. 학생 개체 집합에는 학번, 이름, 전공 등 속성을 가진 여러 개체가 포함됨)
관계 집합 (Relationship Set)
•
관계 : 개체와 개체 사이의 연관성(ex. 학생이 강의를 수강한다)
•
관계 집합 : 개체 집합 간의 연결 관계 (ex. 학생 개제 집합과 강의 개체 집합 간의 수강 관계 집합)
속성(Attributes)
•
개체를 구체적으로 설명하는 특성으로 개체 집합은 여러 속성의 집합으로 이루어짐
•
속성 값의 특성에 따라 여러 종류로 구분
속성의 종류
•
단순 속성 : 더 작은 구성 요소로 나눌 수 없는 속성(학번 이름 등)
•
복합 속성 : 더 작은 요소로 나눌 수 있는 속성 (생년월일 > 년, 월, 일)
•
단일값 속성 : 한 개체에 대해 단 하나의 속성 값만을 갖는 속성(주민등록번호)
•
다중값 속성 : 한 개체에 대해 여러개의 속성 값을 갖는 속성(전화번호)
•
유도 속성 : 다른 속성의 값으로부터 값이 유추될 수 있는 속성(생년월일 > 나이)
•
저장 속성 : 실제 값을 저장해야하는 속성, 유도 속성을 위해 사용
ER 모델의 제약조건(constraints)
ER 모델을 개체와 관계를 정확하게 표현하기 위해 데이터가 준수해야하는 제약 조건이 존재
제약조건의 종류
사상수(mapping cardinality)
•
관계 집합에 참가한 개체 집합에 대해 한 개체 집합의 개체가 다른 개체 집합의 개체와 관계를 맺을 수 있는 수량
•
1:1 (일대일, One-to-One)
◦
한 개체가 다른 개체 하나와만 관계를 맺음(ex. 한 사람은 하나의 주민등록번호를 가짐)
•
1:N (일대다, One-to-Many)
◦
한 개체가 여러 개의 다른 개체와 관계를 맺을 수 있음(ex. 한 교수가 여러 개의 강의를 담당)
•
N:1 (다대일, Many-to-One)
◦
여러 개의 개체가 하나의 개체와 관계를 맺음(ex. 여러 학생이 한 명의 지도 교수에게 배정)
•
M:N (다대다, Many-to-Many)
◦
여러 개의 개체가 여러 개의 다른 개체와 관계를 맺음(ex. 학생과 강의 관계 - 한 학생이 여러 강의를 수강할 수 있고, 하나의 강의를 여러 학생이 들을 수 있음)
참가 제약조건
•
전체적 참가
◦
한개체 집합의 모든 개체가 관계 집합에 참여하는 조건
◦
(ex. 주민등록번호는 모든 사람에게 있어야함)
•
부분적 참가
◦
한 개체 집합의 일부 개체만 관계 집합에 참여하는 조건
◦
(ex. 운전면허증은 일부 사람만 소유)
키 속성
•
개체를 유일하게 구별하는 속성의 집합
•
기본키 (Primary key): 개체를 식별하는 유일한 속성 (ex.학생 개체의 학번, 상품 개체의 상품 ID)
특수 속성과 특수 관계
•
관계 집합의 속성
◦
두 개제 집합의 관계에서 생성되는 값을 저장하는 속성
◦
(ex. 학생과 강의 개체 집합이 수강 관계를 맺으면, 관계 속성으로 성적을 저장 가능)
•
재귀적 관계
◦
한 개체 집합이 자기 자신과 관계를 맺는 경우
◦
(ex. 직원 개체에서 부하직원과 상사 관계)