슬라이드 1 - PsWorld

Download Report

Transcript 슬라이드 1 - PsWorld

9장
데이터베이스
• 데이터베이스의 개요
• 관계형 데이터베이스
• SQL
한빛미디어(주)
학습목표
IT CookBook
데이터베이스와 데이터베이스 관리 시스템 개념에 대에 살펴본다.
대표적인 데이터베이스인 관계 형 데이터베이스에 대해 살펴본다.
데이터베이스를 구축하고 활용할 때 사용하는 언어인 SQL에 대해
살펴본다.
2
Section 01
데이터베이스의 개요
IT CookBook
데이터베이스
개별적인 파일을 이용하는 응용 프로그램들
 파일에는 많은 정보가 중복되어 저장되어 있기 때문에 중복된 정보가 수정되면
관련된 모든 파일을 수정해야 하는 불편함이 있음
[그림 9-1] 개별적인 파일을 이용하는 응용 프로그램들
3
Section 01
데이터베이스의 개요
IT CookBook
데이터베이스(DB : DataBase)
 어느 한 조직의 여러 응용 프로그램들이 공유하는 관련 데이터들의 모임
[그림 9-2] 하나의 데이터베이스를 공유하는 응용 프로그램들
4
Section 01
데이터베이스의 개요
IT CookBook
데이터베이스 관리 시스템
 데이터베이스를 관리하며 응용 프로그램들이 데이터베이스를 공유하며 사용할
수 있는 환경을 제공하는 소프트웨어
[그림 9-3] 데이터베이스 관리 시스템의 역할
5
Section 01
데이터베이스의 개요
IT CookBook
데이터베이스 관리 시스템
 데이터베이스를 구축하는 틀 제공
 효율적으로 데이터를 검색하고 저장하는 기능 제공
 응용 프로그램들이 데이터베이스에 접근할 수 있는 인터페이스 제공
 장애에 대한 복구 기능, 사용자 권한에 따른 보안성 유지 기능 제공
 대표적인 데이터베이스 관리 시스템 : 오라클, 인포믹스, 액세스 등
데이터 모델
 데이터베이스 구조를 명시하기 위한 개념들의 집합
 데이터베이스의 구조 + 이런 구조에서 허용되는 연산 + 이런 구조와 연산에
대한 제약 조건
 계층적 데이터 모델, 네트워크 형 데이터 모델, 관계 형 데이터 모델, 객체 지
향형 데이터 모델 존재
6
Section 02
관계형 데이터베이스
관계형 데이터 모델
 테이블 형식을 이용하여 데이터를 정의하고 설명한 모델
[표 9-1] 테이블로 표현한 학생 정보
7
IT CookBook
Section 02
관계형 데이터베이스
IT CookBook
관련용어
① 속성 : 각 열에는 부여된 이름
 학번, 이름, 학과명, 성별, 성적이 속성에 해당된다.
② 도메인 : 입력 가능한 값들의 범위
 성별 속성의 도메인은 ‘남’ 또는 ‘여’가 된다.
③ 차수 : 속성의 수
 표에는 5개의 속성이 있으므로 차수는 5가 된다.
④ 튜플 : 각 행
 하나의 튜플은 각 속성에서 정의된 값들을 이용해서 구성된다. <20051201, 김철수, 컴퓨
터, 남, 85>가 하나의 튜플이 된다.
⑤ 카디널리티 : 튜플의 수
 표에는 5개의 튜플이 있으므로 카디널리티는 5가 된다.
8
Section 02
관계형 데이터베이스
IT CookBook
관련용어
⑥ 릴레이션 : 테이블을 말함
 튜플이나 속성이 중복되면 안 된다.
⑦ 키: 릴레이션에서 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합
 후보 키, 기본 키 등이 있다.
⑧ 후보 키 : 튜플을 구분할 수 있는 최소한의 속성만으로 구성된 키
 (학번), (이름, 학과) 등이 후보 키에 해당된다. 후보 키에서 어떤 속성이라도 제외하면
후보 키가 될 수 없는데, (이름, 학과)의 경우 하나의 속성이라도 빼면 튜플을 구분할 수
없게 된다.
⑨ 기본 키 : 후보 키가 두 개 이상인 경우에 그 중 하나로 선택된 키
 표의 경우 후보 키는 (학번), (이름, 학과) 등이 되는데, (학번)을 기본키로 결정할 수 있다
. 후보 키 중에서 기본 키를 결정하는 특별한 규칙은 없다.
9
Section 02
관계형 데이터베이스
연산
[표 9-2] 학생 릴레이션
[표 9-3] 학과 릴레이션
[표 9-4] 교수 릴레이션
10
IT CookBook
Section 02
관계형 데이터베이스
IT CookBook
선택
 하나의 릴레이션에서 주어진 조건을 만족하는 튜플을 검색하는 연산
[표 9-5] ‘σ성별 = "여" (학생)’의 결과
 AND(∧), OR(∨), NOT
 교수 릴레이션에서 성별이 ‘남’이면서 직위가 ‘부교수’인 튜플을 선택
[표 9-6] ‘σ성별 = "남" ∧ 직위="부교수" (교수)’의 결과
11
Section 02
관계형 데이터베이스
IT CookBook
추출
 하나의 릴레이션에서 원하는 속성만 선택하는
연산
[표 9-7] ‘π학번, 이름 (학생)’의 결과
 학생 릴레이션에서 학번과 이름 속성만을 추출
하는 연산
[표 9-8] ‘π이름, 학과 명 (σ성별 = "남" (교수))’
의 결과
 교수 릴레이션에서 성별이 ‘남’인 튜플의 이름
과 학과 명을 추출하는 연산
12
Section 02
관계형 데이터베이스
IT CookBook
합집합
 두 릴레이션에서 어느 한 쪽에 있거나 양쪽에 있는 모든 튜플을 찾는 연산
 학생과 교수 릴레이션에서 이름과 학과 명을 모두 찾는 연산
[표 9-9] ‘(π이름, 학과 명 (학생)) ∪ (π이름, 학과 명 (교수))’의 결과
[표 9-10] ‘(π이름 (σ학과 명 = " 컴퓨터" (학생))) ∪
(π이름 (σ학과 명 = " 컴퓨터" (교수)))’의 결과
13
Section 02
관계형 데이터베이스
IT CookBook
합집합
 학생과 교수 릴레이션에서 학과 명이 ‘컴퓨터’인 튜플의 이름을 모두 찾는 연산
① 학생 릴레이션에서 학과 명이 ‘컴퓨터’인 튜플을 다음과 같이 찾게 된다.
② 여기에서 다음과 같이 이름 속성을 추출해보자.
③ 마찬가지로 교수 릴레이션에서 학과가 컴퓨터인 튜플을 찾고 이름 속성을 추출해보자.
④ 이 두 가지에 합집합을 적용하면 위와 같은 결과를 얻게 된다.
14
Section 02
관계형 데이터베이스
IT CookBook
교집합
 두 릴레이션에 공통적으로 포함된 튜플을 찾는 연산
 학생과 교수 릴레이션에서 공통된 학과 명을 찾는 연산
 교수 릴레이션에서 성별이 ‘남’인 튜플의 이름과 학과 명을 추출하는 연산
[표 9-11] ‘(π학과 명 (학생)) ∩ (π학과 명 (교수))’의 결과
차집합
 한 릴레이션에는 있지만, 다음 한 릴레이션에는 없는 튜플을 찾는 연산
 학생 릴레이션에는 있지만 교수 릴레이션에는 없는 학과 명을 찾는 연산
[표 9-12] ‘(π학과 명 (학생)) - (π학과 명 (교수))’의 결과
15
Section 02
관계형 데이터베이스
카티션 곱
 두 릴레이션의 튜플 간에 모든 조합을
취하는 연산
[표 9-13] 릴레이션 예
[표 9-14] ‘R1 × R2’의 결과
 릴레이션 R1과 R2에 대한
카티션 곱을 하는 연산
16
IT CookBook
Section 02
관계형 데이터베이스
IT CookBook
조인
 두 릴레이션에서 특정 조건을 만족하는 튜플들을 결합해 하나의 튜플로 만드는
연산
 학생과 학과 릴레이션에서 학생이 속한 학과 명에 대한 정보를 결합해서 하나의
튜플로 만드는 연산
[표 9-15] ‘학생 ▷◁학생.학과 명 = 학과.학과 명 학과’의 결과
 결과를 이용해서 컴퓨터과에 다니는 학생의 이름과 학과 사무실 전화번호 찾기
[표 9-16] ‘π이름, 전화번호 (σ학생.학과 명 = "컴퓨터“
(학생 ▷◁학생.학과 명 = 학과.학과 명 학과))’의 결과
17
Section 03
SQL
IT CookBook
SQL 개요
 데이터베이스를 구축하고 활용하기 위해 사용되는 언어
 IBM에 의해 개발되었으며 관계형 데이터 모델로 표현되는 데이터베이스를 다루
는 언어로 가장 널리 사용
 데이터 정의 언어(DDL : Data Definition Language)와 데이터 조작 언어(DML : Data
Manipulation Language)로 분류
[표 9-17] SQL 언어의 분류
18
Section 03
SQL
IT CookBook
릴레이션 생성
 속성의 대표적인 자료 형
[표 9-18] 속성의 자료 형
 대학생 릴레이션을 생성하는 명령
[그림 9-4] 대학생 릴레이션 구조
19
Section 03
SQL
IT CookBook
릴레이션 삭제
 릴레이션을 삭제할 때의 명령문은 DROP
TABLE인데, 사용 형식은 다음과 같다.
 대학생 릴레이션을 삭제하는 명령
릴레이션 변경
 기존 릴레이션의 속성을 추가, 삭제하거나 변경
하는 명령문
 대학생 릴레이션에 성적 속성을 추가하는 명령
 속성 삭제
 대학생 릴레이션의 학년 속성을 삭제
20
Section 03
SQL
IT CookBook
검색
 검색 명령의 기본 형식
 학생 릴레이션에서 모든 ‘이름’과 ‘학과 명’을 검색
 학생 릴레이션에서 학과 명이 ‘컴퓨터’인 튜플을 찾아 학번과 이름 검색
21
Section 03
SQL
IT CookBook
검색
 [표 9-2]와 [표 9-4]에 적용
[표 9-19] 실행 결과
 학생.학과 명에 ‘컴퓨터’인 조건을 더 추가
[표 9-20] 실행 결과
22
Section 03
SQL
IT CookBook
삽입
 형식
 대학생 릴레이션에 튜플 하나를 삽입
 릴레이션에 정의된 속성 순서와 다르게 속성값을 입력
 사용 예
 여러 튜플을 한번에 삽입
23
Section 03
SQL
IT CookBook
삭제
 형식
 학생 릴레이션에서 학과명이 ‘수학’인 튜플을 삭제
 교수 릴레이션에서의 모든 튜플을 삭제하는 명령
24
Section 03
SQL
IT CookBook
갱신
 튜플의 속성값을 갱신
 대학생 릴레이션에서 모든 튜플의 학년을 하나씩 증가시키는 명령
 교수 릴레이션에서 이름이 '박현경'인 튜플의 직위를 ‘부교수’로 변경하는 명령
25
IT CookBook
Thank you