데이터베이스

Download Report

Transcript 데이터베이스

정보처리 기사 데이터베이스
강사 : 김 진성
굿모닝 컴퓨터 학원
Contents
 데이터베이스 개념
 자료구조
 관계 데이터베이스 모델과 언어
 데이터 모델링 및 설계
 데이터베이스고급 기능
 영어문제
굿모닝 컴퓨터 학원
데이터베이스 개념
 자료 와 정보
00
– 자료 : 현실 세계에 얻어진 가공되지 않은 데이터.
– 정보 : 자료를 처리해서 얻을 수 있는 결과
 데이터베이스
02,01,00
– 다수의 이용자가 서로 다른 목적으로 공유하여 사용할 수 있는 데이
터의 집합체.
– 목적
• 데이터 독립성, 중복의 최소, 데이터 공유, 보안, 무결성 유지
– 특징
• 실시간 접근, 계속적인 변화, 동시 공유, 내용 참조
굿모닝 컴퓨터 학원
3
데이터베이스 개념
 데이터베이스 구성요소
00
– 개체(Entity) : 데이터베이스에서 표현하려고 하는 유형,무형의 객체. (학교 데
이터베이스 : 학생, 교수, 과목, 도서 등)
– 속성(Attribute) : 개체의 특성이나 상태를 나타냄(학생 : 학번, 이름, 학과)
– 관계(Relationship) : 개체와 개체 사이에 존재하는 관계
학번
성명
지도
교수
학번
학년
학생 개체
성명
학과
교수 개체
도메인(Domain) : 속성 값의 범위 ( 성별 : 남, 여)
객체 타입 : 속성의 형태 : 문자형, 숫자형, 날짜형 등
굿모닝 컴퓨터 학원
4
데이터베이스 개념
 스키마
02,01,00,
– 데이터 구조를 표현하는 개체, 관계, 속성에 대한 정의 및 제약조건을 모두 포
함한 명세.
– 구성 : 외부 스키마,개념 스키마, 내부 스키마
– 외부 스키마
사용자
사용자
사용자
외부 스키마
외부 스키마
외부 스키마
• 사용자 관점의 스키마
• 사용자 인터페이스
– 개념 스키마
• P/G 및 사용자가 필요로 하는 자료 통합
개념 스키마
– 내부 스키마
• 자료가 실제로 저장되는 방법을 기술
내부 스키마
DataBase
3단계 스키마 구조
굿모닝 컴퓨터 학원
5
데이터베이스 개념
 데이터베이스 관리 시스템(DBMS) 02,01,00
– 데이터베이스 생성하고 관리(데이터 삽입, 검색, 삭제, 갱신)하는 일종의 소
프트웨어. (오라클, MySQL,MSSQL,인포믹스 등)
– 기능
• 정의(Definition) : 데이터베이스 구조를 정의
• 조작(Manipulation) : 사용자가 요구(삽입, 검색..)하는 자료를 조작
• 제어(Control) : 다수의 사용자가 이용하도록 안전을 관리.(데이터 무결
성 유지, 보안유지 및 권한, 정확성 유지)
– 장점
• 데이터의 중복 최소화
• 데이터 공유
• 데이터 무결성과 일관성 유지
-단점
.
추가적인 시스템 장비의 운영비 가중
. 예비(백업) 과 회복이 파일 시스템 보다 어려움
. 문제 발생시 전산 장애 초래
• 보안 보장
• 데이터 처리 방식의 표준화 지원
굿모닝 컴퓨터 학원
6
데이터베이스 개념
 데이터베이스 언어 02,01
– 데이터 정의어(DDL:Data Definition Language)
• 데이터베이스 구조 정의 및 변경
– 데이터 조작어(DML:Data Manipulation Language)
• 데이터베이스에 대한 검색, 삽입, 삭제, 변경 (쿼리=질의어)
– 데이터 제어어(DCL:Data Control Language)
• 데이터 보안, 데이터 무결성, 데이터 회복 등을 지원
 데이터베이스 관리자(DBA)
01,00
– DB 관리 와 운영을 맡은 총 책임자로 DBMS, 컴퓨터 시스템, 조직내의 전체
적인 지식 보유
 데이터베이스 기계(DBM:Data Base Machine)
– 데이터베이스의 특성에 맞게 지원되기 위한 고성능, 대용량의 컴퓨터 자원을
의미. DBC(Data Base Computer)라고도 함.
굿모닝 컴퓨터 학원
7
자료 구조
 선형 자료 구조 02,01,00
– 스택(Stack) : 후입 선출(LIFO:Last In First Out) 방식
• 복귀 주소를 보관하는데 이용됨
– 큐(Queue) : 선입 선출(FIFO:First In First Out) 방식
• 운영체제의 작업 스케줄링 등에 응용
– 데크(Deque) : 스택과 큐의 복합형
– 배열(Array) : 동일한 크기와 형의 자료를 연속으로 저장하는 구조
• 1차원 배열 (a(10)), 2차원 배열(a(5,10)), 3차원 배열(a(2,3,4))
– 링크드 리스트(Linked List)
• 데이터 부분과 링크부분으로 구성되어 링크의 주소에 의해서 다음 데이
터 영역을 연결하는 구조로 자료처리의 많은 효율성 지원하지만 기억장
소의 낭비를 초래할 수 있음.
• 단순 링크드 리스트, 이중 링크드 리스트, 환형 링크드 리스트
굿모닝 컴퓨터 학원
8
자료 구조
 비 선형 자료 구조 02,01
– 트리(Tree)
• 부모 노드와 자식 노드로 표현되는 자료 구조
– 그래프
• 유한 개의 점과 선으로 구성되는 복잡한 구조의 자료 구조
A
B
1
C
D
노드 수 :
차수:
E
F
G
H
J
3
신장 트리 :
인접 행렬 :
레벨:
근 노드 :
I
2
4
단 노드 :
그래프
트리
굿모닝 컴퓨터 학원
9
자료 구조
 B 트리
03
– 인덱스를 구성하는 방법으로 가장 많이 사용되는 균형화된 인진 트리.
– 트리를 구성하는 각 노드는 왼쪽 키은 자신 노드보다 작고, 오른쪽 노드는 자
신 노드보다 큰 값을 갖는다
– 한 노드 안에 있는 키 값들은 오름차순을 유지
– 탐색, 추가, 삭제는 루트 노드 부터 시작
– 루트 노드가 리프가 아닌 이상 적어도 두 개의 서브 트리를 갖는다.
– 모든 리프 노드는 같은 레벨에 있다.
17 추가 :
69
90 추가 :
128 138
19 43
16
굿모닝 컴퓨터 학원
26 40
60
100
132
145
10
자료 구조
 해싱(Hashing)
02,01,00
– 해싱 함수를 이용하여 레코드가 저장될 또는 저장된 주소를 산정
– 버킷의 크기, 오버플로 해결, 적재율 등을 고려해야 함
– 디스크에 저장된 직접(DAM) 파일에 주로 사용됨
– 해싱 문제
• 충돌(Collision) : 같은 버킷 주소 산출
• 동의어(Synonym) : 동일한 주소로 산출된 서로 다른 레코드들의 집합.
– 해싱 관련 용어
• 버킷 : 자료 저장 공간
• 슬롯 : 하나의 버킷을 여러 개로 쪼개어 사용되는 작은 기억 공간
• 해시 키 : 해싱 함수에서 계산을 위해 선택된 필드
• 오버플로 : 한 버킷에 한 자료만 저장될 수 있도록 구성된 형태에서 해싱
충돌에 의해서 자료를 저장할 수 없는 상황.
굿모닝 컴퓨터 학원
11
자료 구조
 정렬
02,01,00
– 내부 정렬(주기억 장치), 외부 정렬(보조기억장치)
– 내부 정렬 방법 : 삽입법, 교환법, 선택법, 병합법, 분배법
• 삽입 정렬(Insertion Sort) : 입력될 자리를 찾아 삽입
• 셀 정렬(Shell Sort) : 여러 개의 부분으로 나누어 반복하여 정렬
• 선택 정렬(Selection Sort) : 기준이 되는 자료를 정해 놓고 나머지 자료와 비교하여
정렬, 정렬된 자료는 앞쪽에 위치함.
• 인접 정렬(Bubble Sort) :서로 인접한 두 개의 자료를 비교하여 교환하는 방법으로
정렬, 정렬된 자료는 뒤쪽에 위치함.
• 퀵(Quick Sort): 중앙 키를 기점으로 좌우 자료의 자리 순서를 바꾸어 정렬.
• 힙 정렬 (Heap Sort) : 이진 트리 정렬 방식
• 2-Way 병합 정렬:자료를 2n 개씩 묶어서 비교 정렬하는 방식(버블과 유사)
• 기수 정렬(Radix Sort) : 10진 분류와 유사
굿모닝 컴퓨터 학원
12
자료 구조
 검색
02,00
– 선형 검색 : 모든 자료를 처음부터 끝까지 차례로 비교 검색.
– 이진 검색(Binary Search)
• 자료가 정렬되어 있어야 함
• 자료를 이등분하여 검색 영역을 감소시키면서 검색
• 검색 속도가 빠르며, 자료량이 많은 경우 효과적임
• 자료를 이등분할 때 상한 값과 하한 값을 변화하여 중앙값을 계산
– 중앙값 = 상한값 + 하한값 / 2
– 중앙값 보다 앞쪽에 존재한 경우 : 상한값 = 중앙값 –1
– 중앙값 보다 뒤쪽에 존재한 경우 : 하한값 = 중앙값 + 1
–
피보나치 검색
• 피보나치 수열에 의해서 검색하는 방식
–
보간 검색
• 검색 자료가 있을 만한 곳을 키로 선정하여 그 부근에서 자료 검색
–
블록 검색
• 각 블록내의 가장 큰 값의 취치를 인덱스로 지정하여 검색
굿모닝 컴퓨터 학원
13
관계 데이터베이스 모델과 언어

관계 데이터 모델

70년도 E. F. Codd 제안, 관계 데이터 모델은(Relational Data Model) 열(column)
과 행(row)으로 이루어진 테이블(릴레이션)과 수학적으로 정의된 연산들로 구성된다.
릴레이션(테이블)
학생(STUDENT)
키
단순속성
복합속성
생일
(S_BIRTH)
년
월
(YEAR) (MONTH)
1974
5
학번
(S_NO)
이름
(S_NAME)
학과
(DEPT)
학년
(YEAR)
9711001
엄두섭
컴퓨터
3
9812045
한근희
교육
2
1975
10
9
9913051
이동석
국어
1
1976
12
7
9914021
윤재형
미술
1
1976
8
17
INT(1)
INT(2)
INT(2)
INT(6)
INT(2)
INT(7)
CHAR(10) CHAR(6)
릴레이션
스킴
일
(DATE)
8
투
플
릴레이션
인스턴스
어트리뷰트
단순 도메인
복합 도메인
굿모닝 컴퓨터 학원
14
관계 데이터베이스 모델과 언어
 용어 정리
02,01,00
– 릴레이션(Relation) : 행과 열로 구성된 테이블
– 릴레이션 스킴 : 릴레이션 이름(학생)과 어트리뷰트(학번,이름..) 집합
– 릴레이션 인스턴스 : 릴레이션 안에 저장된 동적으로 변화되는 튜플들.
– 튜플 : 릴레이션에서 행을 의미(레코드)
• 기수(Cardinality) : 한 릴레이션에서 튜플의 수(4)
– 어트리뷰트 : 테이블의 열을 의미(필드나 item)
• 차수(Degree) : 한 릴레이션에서 어트리뷰트의 수(7)
– 원자값(Automic Value) : 더 이상 분해할 수 없는 데이터 값
– 도메인(Domain) : 하나의 어트리뷰트가 가질 수 있는 원자 값들의 집합,크기, 범위
등을 나타냄.(단순,복합)
– 키(Key) : 릴레이션안에 있는 튜플을 유일하게 실별 할 수 있는 어트리뷰터(학)
• 후보기 : 유일성과 최소성을 모두 만족하는 하나 이상의 키(학번, 이름)
• 기본키 : 후보키 중에서 현재 작업에 사용되는 키(학번)
굿모닝 컴퓨터 학원
15
관계 데이터베이스 모델과 언어
 관계 데이터 연산
02
– 집합 연산
• 합집합(Union) : 두 릴레이션에서 중복되는 튜플 제거
• 교집합(Intersect) : 두 릴레이션에서 공통된 튜플 추출
• 차집합(Minus) : 원하는 튜플을 빼고 남은 자료로 새 릴레이션 생성
• 교차곱(Cartesian) : 두 릴레이션에 튜플은 곱한 수, 어트리뷰는 더한 수
만큼 생성하여 새 릴레이션 생성.
– 순수 관계 연산
• 셀렉트(Select) : 질의에 대한 결과를 튜플 단위로 산출
• 프로젝트(Project) : 질의에 대한 결과를 어트리뷰트 단위로 산출
• 조인(Join) : 두 개 이상의 릴레이션을 합병 조건에 따랄 결합
• 디비전(Division) : 한 릴레이션을 그룹화하기 위해 분리
굿모닝 컴퓨터 학원
16
관계 데이터베이스 모델과 언어
 SQL(Structured Query Language)
02,01,00
– 정의어(DLL:Data Definition Language)
• CREATE : 데이터베이스,테이블, 뷰(가상테이블), 도메인 등을 생성하
는 명령어.
• DROP : 생성된 데이터베이스 삭제 명령어.
• ALTER : 생성된 데이터베이스의 구조를 변경하는 명령어.
– 제어어(DCL:Data Control Language)
• 데이터 보안, 데이터 무결성, 데이터 회복, 데이터 병행,DBA가 사용
– 조작어(DML:Data Manipulation Language)
• 검색(select), 삽입(insert), 삭제(delete), 갱신(update)명령어
굿모닝 컴퓨터 학원
17
관계 데이터베이스 모델과 언어
 카탈로그
02,01,00
– 시스템에서 필요로하는 여러 가지 객체에 관한 정보를 포함하는 시스템 데
이터 베이스.
– 테이블, 가상 테이블(뷰), 인덱스, 데이터베이스 내용 정보.
– 일반 사용자가 SQL 언어로 검색 가능.
 뷰(View)
02,01,00
– 기본 데이블을 대상으로 카탈로그에 논리적인 정의만 보관하여 테이블 모
양으로 보여주는 가상 테이블.
– 사용자에게 편의 제공, 감출 부분 은닉(보안 유지 용이)
– 기본 테이블에 영향을 주지 않도록 많은 제약성이 따름(수정,삭제 등 유의)
– SQL 정의어로 생성 및 삭제가 가능하며, 정의된 뷰는 변경이 불가능함.
굿모닝 컴퓨터 학원
18
데이터 모델링 및 설계
 데이터베이스 설계 단계
01,00
– 요구 조건 분석 : 요구 사항 분석
– 개념적 설계 : 개념 스키마 설계
모델
스키마
– 논리적 설계 : DBMS에 맞는 스키마 설계
– 물리적 설계 : DBMS에 맞는 물리적 구소 설계
– 구현 : 스키마 생성 및, 실제 데이터베이스 설계 구축
 데이터 모델(Data Model)
인스턴스
데이터모델 과정
02,00
– 현실 세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술하는 개념적
도구.
– 구성 요소
• 데이터 구조 : 개체 타입 과 개체 타입 간의 관계성 명세(정의)
• 연산 : 인스턴스를 처리하는 행위 명세(조작)
• 제약 조건 : 연산 시 제약 조건 명세(제어)
굿모닝 컴퓨터 학원
19
데이터 모델링 및 설계
 E-R(Entity-Relationship) Model
02,01,00
– 개체 관계 모델은 현실 세계를 사람이 보다 잘 이해할 수 있도록 표현한 모
델링 도구.(76년 P.Chen 제안)
굿모닝 컴퓨터 학원
20
데이터 모델링 및 설계
 E-R(Entity-Relationship) Model 예
02,01,00
속성
개체
관계
링크
관계 유형
1:1, 1:n, n:m
굿모닝 컴퓨터 학원
21
데이터 모델링 및 설계
 이상(Anomaly) 현상
02,01
– 릴레이션 조작시 데이터의 중복으로 인해 발생하는 오류 현상
– 종류 : 삽입 이상, 삭제이상, 갱신이상
 함수 종속 : 어트리뷰트 X가 어트리뷰트 Y에 연관된 경우.
 정규화(Normalization)
02,01,00
– 비정상적인 테이블을 정상적인 테이블로 유지하는 작업.
– 함수 조속으로 인해 발생하는 이상 현상을 확인 및 해결
– 종류 : 제1정규형(원자 값), 제2정규형(부분함수 종속 제거), 제3정규
형(이행적 함수 종속 제거),BCNF(강한 제3정규형), 제4정규형,제5
정규형
– 특정 정규형에 의해서 정규화 처리 후 다시 이상현상이 발생하면 다
음 단계으 정규화 진행
굿모닝 컴퓨터 학원
22
데이터 모델링 및 설계
 트랜잭션(Transaction)
00
– 데이터베이스에서 하나의 논리적인 기능을 수행하기 위한 작업 단위를
의미. 데이터베이스 내의 어떤 상태를 변환하는 일.
– 특성
• 원자성(실행시 전부 또는 전무), 일관성(실행 결과), 격리성(접근시),
영속성(실행 결과에 대한 지속 유지)
– 상태
• 활동(실행 중), 부분 완료, 실패(실행할 수 없는 상태), 철회(실행에
실패하여 Rollback 연산 수행), 완료(실행 성공)
 데이터 암호화 기법
– 비밀키(DES), 공개키(RSA)
 회복(Recovery)
01
– Database 사용중 장애가 발생하여 이전상태로 복구하는 작업
– 장애 : 트랙잭션(입력) 장애, 시스템 장애, 미디어 (기억 매체) 장애
굿모닝 컴퓨터 학원
23
데이터 모델링 및 설계
 병행수행(Concurrency)
00
– 여러 트랜잭션을 동시에 수행할 때 처리가 중복되는 것을 의미
– 트랜잭션간의 상호배체를 통해 문제 해결책 : 로킹, 시간 스탬프 기법
– 로킹(Locking) 기법
• Lock과 Unlock을 교대로 하여 트랜잭션 간의 상호배제
• 로킹 단위가 크면 병행성 수준이 낮아짐.
• 로킹 단위가 적으면 병행성 수준은 높아지지만 로크 수가 많아 복잡해짐.
– 시간 스탬프 기법
• 각 트랜잭션에 고유의 식별자를 부여하여 시간 스탬프에 따라 순차적으로
실행을 제어.
 분산 데이터베이스
02,01
– 네트웍을 이용하여 분산된 데이터베이스를 연결하여 사용하는 개념
– 위치 투명성(위치 불 인지)과 중복 투명성(중복 무 신경)을 목표로 함.
– 장점 : 자체 지역에서 데이터 관리 및 제어 가능, 위치 투명성의 잇점, 중앙집중
형 보다 신뢰도와 유용성 증대, 시스템 확장이 용이, 오버헤드 감소.
굿모닝 컴퓨터 학원
24