슬라이드 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