슬라이드 1

Download Report

Transcript 슬라이드 1

제7장 데이터베이스
목차
 개요
 데이터베이스 관리시스템
 데이터베이스 시스템의 3계층 스키마 구조
 데이터베이스 시스템의 구성요소
 데이터 모델
 데이터베이스 시스템의 활용과 특성
 분산 데이터베이스
 데이터베이스의 발전 모델
데이터베이스 개요
 소개
 모든 응용분야에서 컴퓨터 시스템을 이용하기 위한 주요한 요구 중의
하나는 데이터를 저장하고 액세스, 또한 처리할 수 있는 능력이다.
 데이터 처리방법
 프로그램 언어를 이용하여 파일 단위로 데이터를 직접 처리
 데이터베이스 관리 시스템(DBMS)을 이용하여 처리
 파일(File)
 보조기억장치에 저장됨
 저장되고 처리하기 위한 파일구조
 순차적 파일구조 (Sequential Organization)
 상대적 혹은 직접적 파일구조(Relative or Direct Organization)
 인덱스된 파일구조(Indexed Organization)
 액세스 방법
 순차적 액세스(Sequential Access)
 임의적 액세스(Random Access)
파일(File)
 어떤 목적을 위해서 수집된 데이터의 조직적인 그룹
 수집한 데이터를 체계적으로 정리한 것
 예) 인사파일, 재고파일
 레코드(Record)
 일련의 관련된 데이터의 집합
 데이터 항목(Data Item/Data Field)
 레코드를 구성하는 각각의 항목
파일(File) (Con’t)
 데이터 저장 계층
 보조기억장치의 파일에 저장되는 데이터의 차원으로 구성
 비트, 바이트, 항목, 레코드, 파일, 데이터베이스로 구성
파일(File) (Con’t)
생성 예)
Record
File
Data Item/Data Field
순차 파일 구조




순서적으로 구성된 레코드
저장되는 순서는 레코드의 키(Key)를 기준
자기 테이프 장치가 주로 이용됨
일괄처리 시스템에서 사용
 물리적 구조
상대적 혹은 직접적 파일 구조
 레코드의 논리적인 순서에 관계없이 레코드별 임의의 기억 공간에 저장
 레코드 내에 처리를 위한 특정의 키를 갖지 않을 수 있고,
 파일 내의 레코드들이 어떤 일정한 순서를 유지할 필요가 없고,
 레코드에 접근하려면 반드시 레코드가 저장되어 있는 주소로 접근(계산요구)
 레코드의 키 항목 값을 이용하여 저장된 주소를 계산  해싱 함수
 충돌(Collision) 현상
 서로 다른 키 값을 갖는
레코드들의 주소가
동일하게 계산되면
동일한 주소에 여러
레코드가 저장되려고
하는 현상
인덱스된 파일 구조
 순차 파일의 장점을 유지, 순차적 접근 문제를 해결
 순차 처리와 랜덤 처리를 지원
 레코드 접근 구조
데이터베이스의 정의
 “한 조직의 여러 응용 시스템들을 다수의 사용자에 의해
공용(Shared)되기 위해 통합(Integrated) 저장된(Stored)
운영(Operational) 데이터의 집합”
 데이터 (Data)
 사실 및 개념 또는 명령들을 처리하기에 적절한 형태로 표시한 것
 정보를 작성하기에 필요한 자료
 데이터베이스 관리 시스템 (DBMS)
 응용프로그램과 데이터 간의 독립성을 유지하고, 다수 사용자에
의한 공용을 지원하는 소프트웨어 패키지
데이터베이스관리시스템의 기능






빠른 데이터의 검색을 지원
데이터의 독립성을 유지
데이터의 공유와 다수 사용자의 동시 실행제어를 지원
데이터의 빠르고 안전한 저장과 파손에 따른 회복능력
표준적인 질의언어 사용
잘못된 사용자로부터 데이터의 보안 기능
USER
DBMS
Database
비교
파일과 데이터베이스 시스템
성적처리, 주소관리 등은 각각 성적파일, 주소파일을 보유
반면, DBMS를 이용하는 경우, DBMS가 이들을 관리
데이터와 데이터베이스
데이터베이스 언어

데이터베이스를 정의하고 모든 저장 데이터베이스의 접근을 지원
하는 통신 수단 제공
 데이터베이스

정의어(Data Definition Language)

데이터베이스 스키마 생성,변경,삭제

응용 프로그램과 DBMS 사이에 데이터 표현 인터페이스 기술
데이터베이스 조작어(Data Manipulation Language)


대화식 질의어(Interactive Query Language)

Structure Query Language(SQL)

데이터의 삽입과 갱신, 삭제, 검색 지원
데이터 부속어(Data SubLanguage)

프로그램 언어에서 데이터베이스 접근을 지원하는 언어
DBMS의 인터페이스

메뉴 중심의 인터페이스

그래픽 중심의 인터페이스

자연어 인터페이스

매개변수 사용자의 인터페이스
USER
DBMS
Database
데이터베이스시스템의 3계층 구조
 스키마(Schema)
 데이터베이스 구조를 전반적으로 기술하는 것
 사용자 관점에 따라
 외부 스키마 : 관심 있는 데이터베이스 부분을 기술(이름, 주소 등)
 개념 스키마 : 외부 스키마에 의한 요구 (개체, 데이터 유형, 관계, 제약조
건 등 기술) – DDL로 표현되기 이전의 데이터 모델
 내부 스키마 : 물리적 저장장치의 전체적인 데이터베이스 구조 기술
(DDL로 표현)
사용자 뷰(View)
3 계층
논리적 단계
물리적 단계
스키마(Schema)
 친구들의 주소를 관리한다? 그러면, 필요한 것이?
 아!, 이름, 전화번호, 주소, 생년월일 등이 필요하겠구나…
외부 스키마
 그러면,
개념 스키마
 이름(name)은 문자로 구성되고, 보통 한글 5글자 이내로 하고,
 전화번호(tel)는 숫자문자로 구성되고, 지역번호 포함 10글자로 하
고,
 주소(addr)는 문자한글로 50글자 정도, 생일(birth)은 숫자문자로 8
글자로 …
 이제, 정의하자….!!!
내부 스키마
create table frient (
num int(4) primary key,
name char(5) not null,
tel char(10) not null,
addr char(50) not null,
birth char(8) not null );
데이터베이스시스템의 구성요소
USER
DBMS
Database
데이터 모델
 데이터베이스 구조를 묘사하는 개념도구들의 집합
 데이터베이스의 구조, 연산, 제약사항 등으로 구성
 데이터베이스 구조는 데이터에 대한 자료형, 관계, 제약조건
들로 기술되며,
 데이터베이스 연산 정의는 삽입, 삭제, 갱신, 검색을 포함함
데이터 모델의 종류 (1)
 계층형 데이터 모델(Hierarchical Database)




데이터와 데이터간의 관계가 계층적으로 구성
각각의 레코드는 링크(Link)로 연결
트리(Tree) 구조라고도 함
계층에 따라 자료를 검색
 망형 데이터모델(Network Database)






데이터는 레코드 집합으로 표현
데이터 관계는 링크(Link)로 표현
구조는 그래프(Graph) 형태로서 레코드의 구조, 속성들, 키 등을 표현
자료마다 하나의 파일 생성
병실
의사
포인터를 통해 다른 파일의 레코드 지칭
데이터들의 연관성이 그물망처럼 구성
병실-환자set
의사-환자set
환자
데이터 모델의 종류 (2)

관계형 데이터모델(Relational Database)





데이터들 간의 관계를 테이블(릴레이션) 형태로 기술
릴레이션의 각 행은 레코드(튜플), 각 열은 속성이라고 함
각 레코드는 유일한 값을 가지는 주 키(Primary Key)의 속성에 따라 구별
장점 : 구성이 단순하며, 이해가 쉽다.
단점 : 릴레이션간 조인(join)등의 연산시 속도가 느리다.
Record / Tuple
Attribute / Field / Column
데이터모델의 종류 (3)
 객체지향 데이터모델(Object-Oriented)
 객체 클래스, 복합객체, 상속, 캡슐화 개념 등을 지원
 CAD, 멀티미디어 데이터베이스, 지리정보(GIS), 공
간 데이터베이스, 시공간 데이터베이스 등과 같은 분
야에서 활용
 객체 관계형 데이터모델(Object Relational)
 기존의 관계형 모델에 객체지향 모델의 기능과 장점
을 합한 모델
데이터베이스시스템 활용의 특성

데이터 중복(Data Redundancy)의 최소화

데이터의 독립성(Independence) 보장

스키마에 의해 논리적 및 물리적 데이터 독립성

응용 프로그램과 데이터의 구조간의 관계

데이터의 일관성(Consistency)과 무결성(Integrity) 유지

데이터의 공유(Sharing)

데이터베이스의 사용자 인터페이스 표준화

DDL, DML, SQL 등에 의함
일치성
계속되는 삽입, 삭제, 변경등으로 인해
데이터간의 불일치성 문제가 대두
무결성
데이터베이스에 저장된 데이터와
현실에서 측정된 값과의 일치성을 의미
분산 데이터베이스
분산자료처리(Distributed Data Processing) 개념을
적용한 기술
 자료 처리가 요구되는 곳에서 자료를 처리
 자료를 분산시키는 이유


자료를 중앙 컴퓨터에 보관하고 지역에서 활용
중앙에서 자료를 직접 통제 가능
 통신 비용이 고가


중앙 컴퓨터에 전체 데이터를 두고 각 분산된 컴퓨터에는 일부
분만 복사하여 보관(공유기법)
특정 자료에 대한 접근이 용이성
 갱신 시 일관성 유지가 문제


각 분산된 컴퓨터에 각각의 데이터를 보관

통신과 일관성에 따른 고비용
데이터베이스 발전 모델
 멀티미디어
데이터베이스
숫자, 텍스트, 그래픽, 오디오, 비디오를 포함한 여러 가지 정보를 저장
 용도 : 문서와 기록관리 / 지식보급 / 교육과 훈련 / 마케팅, 광고, 소매, 운반 /
실시간 제어와 모니터링

 웹 데이터베이스
웹 자체를 일종의 데이터 베이스로 간주
 기존 DBMS의 질의처리 및 데이터 관리개념에 웹을 적용
 이질적이고 분산된 웹 데이터 검색 및 관리가 가능


공간 데이터베이스
공간객체를 효율적으로 저장하고 관리해 주는 소프트웨어
 공간 데이터베이스의 이용분야



지도제작, 지리정보시스템(GIS) / 지적도, 토지대장관리, 가스관, 통신선로와 같은 시
설물 관리 / 도로망, 교통정보 관리, 경찰 긴급출동과 소방관리 / 농업, 수산업 등의 자
원관리, 환경오염방지를 위한 데이터 제공
데이터웨어하우스
의사결정에 필요한 정보처리기능을 효율적으로 지원하기 위해,
 통합된 데이터를 가진 양질의 데이터와 정보를 신속하게 지원
 지원되는 응용들


온라인 분석처리(OLAP) / 의사지원시스템(DSS) / 데이터 마이닝
웹 데이터베이스 구조
Internet
Web Server
Ex) apache
Query(검색)
CGI
결과 전달
Ex) php
Query 전달
Database Server
결과 전달
Client(사용자)
Ex) mysql
CGI : Common Gateway Interface