데이터와 응용 프로그램의 독립 물리적 데이터 독립

Download Report

Transcript 데이터와 응용 프로그램의 독립 물리적 데이터 독립

chapter 01.
데이터베이스 개요
학습목표
 데이터베이스의 필요성 및 목적에 대해 알아보자.
 데이터베이스 시스템에 대해 알아보자.
 데이터의 독립성에 대해 알아보자.
데이터베이스 개요
데이터베이스란?
- 특정 조직의 응용 업무에 공동으로 사용하기 위하여 운영상 필요한 데이터를
중복을 최소화하여 컴퓨터 기억 장치 내에 모아 놓은 집합체
- 데이터의 중복 없이 서로 관련되어 있어 관련된 모든 응용환경에서 사용될
수 있는 데이터들의 집합
- 자료를 획득하여 체계적으로 분류하고 정리한 다음, 컴퓨터에서 처리가 가능
하도록 전자적 형태로 저장한 것
- 하나의 주제와 관련된 의미있는 데이터(Data)들의 모음
데이터베이스 개요
데이터베이스의 목적
데이터 독립 유지-데이터와 응용 프로그램의 독립
물리적 데이터 독립(physical data independence)
논리적 데이터 독립(logical data independence)
데이터 중복의 최소화
데이터의 공유
데이터의 보안 유지
데이터 무결성(Integrity)의 유지
데이터베이스 개요
파일 관리 시스템
정의
데이터를 파일에 저장하거나 파일에서 정보를 읽어 데이터를 추가, 삭제, 수정,
검색 등의 기능을 통해 사용자가 원하는 정보를 손쉽게 이용하도록 해주는
프로그램
특징
데이터와 응용 프로그램간의 밀접한 연관성
응용 프로그램마다 독립적인 파일 관리
데이터베이스 개요
단점
데이터의 중복성(data redundancy)
저장 공간의 낭비, 갱신 및 유지보수의 어려움, 데이터간의 불일치 등을 유발
데이터의 불일치(data inconsistency)
여러 파일에 중복 저장되어 있는 데이터에 대한 변동이나 갱신이 불완전하게 처리될
경우 파일 간에 동일한 데이터의 내용이 서로 상이할 수 있음
프로그램 데이터간의 종속성(program data dependence)
데이터에 대한 새로운 요구사항이 있을 때마다 새로운 요구에 맞는 프로그램과 데이터
파일을 개발해야 함
제한적인 정보 제공
응용 프로그램이 독립적인 파일을 갖고 있고, 각각의 파일에 대한 정보만 제공
보안문제(security problem)
데이터베이스 개요
데이터베이스
데이터베이스를 이용한 데이터베이스 관리 시스템은 파일 관리 시스템이 갖
는
구조적인 한계를 극복하기 위해 고안
데이터와 응용 프로그램의 종속성을 최소화
파일 관리 시스템의 가장 큰 문제인 데이터와 프로그램의 밀접한 관계를 제거하
기
위해 고안
데이터를 저장하거나 검색하는 등의 기능을 데이터베이스 관리 시스템이 전담하
도록 함으로써 파일 관리 시스템이 지닌 데이터와 응용 프로그램의 종속성을 최
소
화, 데이터 변경으로 인해 생기는 프로그램의 수정, 관리를 최소화.
데이터의 중복으로 인한 비일관성 최소화
공통된 데이터 저장 공간을 사용하기 때문에 데이터의 중복에서 발생하는
비일관성을 최소화
데이터베이스 개요
데이터베이스 역사
연도
역사
1963
데이터베이스라는 용어가 ‘Development and Management of
Computer - Center Data Bases’라는 심포지움에서 처음 사용
1963
최초의 범용 DBMS인 설계 : GE에서 개발한 ‘Integrated DataStore
1970
E. F. Codd는 관계형 데이터베이스 모델 제안
1976
Chen이 개체 관계(ER) 모델 제안
1980
개인용 컴퓨터를 위한 DBMS 개발(dBASE, PARADOX 등)
1983
상용 관계 DBMS 등장(DB2, ORACLE, SYBASE 등)
1986
데이터베이스를 다루는 언어인 SQL이 관계형 데이터베이스 관리
시스템의 표준 언어로 채택
1990 ~
상용 객체 지향 DBMS 등장
데이터베이스 개요
데이터베이스 기술의 발전 과정
데이터베이스 개요
데이터 모델이란?
데이터베이스 내에 존재하는 데이터를 정의하고 데이터들간의 관계를 규정하
며 데이터의 의미와 데이터에 가해진 제약 조건을 나타내는 개념적인 도구
데이터 모델의 종류
개념적 데이터 모델
데이터 표현의 논리적 성격에 초점을 맞추어 데이터를 개념적 단계와 뷰
단계에서 기술
논리적 데이터 모델
데이터를 개념적 단계와 뷰 단계에서 기술하는 데 사용하며, 데이터베이스의
전체적인 논리적 구조를 기술
데이터베이스 개요
개념적 데이터 모델
개체관계 모델(E-R : Entity-Relationship Model)
개체 집합과 관계 집합을 이용해 현실 세계를 개념적으로 표현
E-R 다이어그램에 의해 그래픽 방식으로 표현
시멘틱 네트워크 데이터 모델(Semantic Network Data Model)
인공 지능 분야에서 지식을 표현하기 위해 개발된 방법으로 노드와 아크(arc)로
구조를 표현
일반화, 부품, 인스턴스, 단정 관계 등 더 많은 관계를 표현
의미 객체 모델(semantic object model)
의미 객체란 고유한 실체를 충분히 기술해주는 속성의 이름을 가진 모임을 의미
의미적 객체 모델에서의 속성 유형은 단순값 속성, 다중값 속성, 그룹 속성, 객체
속성이 있다
OMT 모델
객체지향 소프트웨어 공학의 객체 모델링 기법으로 제안된 것으로, 관계 데이터
베이스에 적합한 E-R 모델을 객체지향 데이터베이스를 위해 확장한 형태
OMT 다이어그램에 의해 그래픽 방식으로 표현
데이터베이스 개요
논리적 데이터 모델
계층 데이터 모델(hierarchical data model)
데이터베이스의 논리적 구조가 트리(tree) 형태로 표현되며 E-R 모델의 개체를
레코드 타입으로 표현
장점 : 계층형 모델은 1:n의 관계를 가지는 대용량의 데이터베이스 처리에 매우
강력한 방법으로, 주어진 기능 내에서 찾고자 하는 데이터 항목을 빠르게 찾을 수
있다.
단점 : 계층형 데이터 모델은 사용자의 측면에서 볼 때 데이터가 저장된 물리적
구조에 대한 지식을 가지고 있어야 하고, 접근에 유연성이 부족하다, 데이터간의
모든 관계는 데이터베이스가 처음에 설계될 때 정해져야만 한다. 또한 계층형 모
델은 1:n의 기준에 맞지 않는 일반적인 관계는 구현하기가 매우 어렵다.
데이터베이스 개요
네트워크 데이터 모델(network data model)
데이터를 표현하는 데 있어 제한적인 트리 구조가 아닌 그래프 형태를 기반으로
하여, 현실세계의 데이터 구조를 표현하기 위한 필요성에 의해 만들어짐.
데이터 구조는 관계(relatioship)를 나타내는 집합(set)을 기반으로 하며, 집합을
구성하는 요소들은 명시적 링크를 사용하여 오너(owner)와 멤버(member) 레코
드 형으로 관계 표현
장점 : 한 멤버가 여러 개의 집합에 속할 수 있기 때문에 다대다(N:M)의 관계가
계층형에 비해 쉽게 쉽게 구현 가능, 데이터에 대한 접근 용이
단점 : 사용자가 데이터가 저장된 물리적인 구조에 대한 정보를 가지고 있어야
하고, 원하는 데이터를 얻기 위해서는 접근 경로를 항해해야 하는 항해 시스템.
또한 데이터베이스의 구조를 변경하면 이 구조를 참조한 모든 응용 프로그램에
대해 수정해야 한다.
데이터베이스 개요
관계 데이터 모형(relational data model)
1970년 E.F.Codd에 의해 소개된 모델로, 단순하고 균일한 데이터 구조를
가지고 있어 많이 사용되고 있는 모델
개체의 모든 데이터와 데이터 사이의 관계를 2차원의 테이블(table) 형태로
기술
테이블의 각 행(Row)은 하나의 개체를 나타내고,
테이블의 각 열(Column)은 개체의 각 속성을 표시
데이터베이스 개요
장점
① 데이터 모델 구조가 탄력적이어서 필요할 때 테이블 사이의 연결을 통해 데이
터를 생성 및 처리할 수 있다.
② 데이터 정의 언어와 데이터 조작언어가 간단하여 비전산요원도 쉽게 사용할
수 있다.
③ 데이터들 간의 복잡한 관계를 개념적으로 분명하고 간단하게 표현하며, 강력
한 데이터 조작능력을 제공한다.
④ 데이터의 첨가, 삭제, 수정이 쉽고, 미래의 정보요구에 신축성 있게 대응할 수
있다.
단점
① 기억용량이 많이 필요하다.
② 정보추출에 시간이 많이 소요된다.
③ 각 표마다 인덱스가 수반되므로 번거로울 수 있다.
데이터베이스 개요
저장구조
논리적 구조
사용자가 생각하는 데이터베이스의 논리적 표현
데이터를 이용하는 응용 프로그래머나 일반 사용자의 입장에서 본 구조로서
데이터의 논리적 배치를 의미
물리적 구조
디스크나 테이프와 같은 저장 장치 위에 물리적으로 저장되어 있는 데이터의
실제 구조
저장 장치의 입장에서 본 데이터의 구조로서 저장 데이터의 물리적 배치를 표현
데이터베이스 개요
3단계 데이터베이스 구조
데이터베이스 개요
외부 계층
외부 계층은 여러 사용자의 다양한 외부 스키마(external schema)나 사용자
뷰(view)에 의해 정의
외부 스키마는 특정 사용자 그룹에서 관심 있는 데이터베이스 부분의 기술로,
응용 프로그램에서 정의되는 외부 스키마나 일시적인 사용자 관점에서 생성
하는 다양한 사용자 뷰를 가리킨다.
개념 계층
개념 계층은 외부 사용자 그룹으로부터 요구되는 전체적인 데이터베이스
구조를 기술하는 개념 스키마(conceptual schema)를 갖는다.
개념 스키마는 데이터베이스의 물리적 저장구조 기술을 피하고 개체(entity),
데이터 유형, 관계, 사용자 연산, 제약조건 등의 기술.
개념 스키마는 데이터베이스 정의의(DDL)에 의해 기술되는 데이터베이스
스키마 표현을 위한 고급 수준의 데이터 모델의 표현
데이터베이스 개요
내부 계층
내부 계층은 데이터베이스의 물리적 저장 구조를 기술하는 내부 스키마
물리적 저장장치에서의 전체적인 데이터베이스 구조 기술로, 데이터베이스
정의어(DDL)에 의한 실질적인 데이터베이스의 자료 저장구조(자료구조와
크기)이자 접근 경로의 완전하고 상세한 표현
데이터베이스 정의어로 작성된 개념 스키마는 데이터베이스 컴파일 과정을
거쳐 내부의 물리적 저장구조 생성