Chapter 01 데이터베이스 시스템.

Slides:



Advertisements
Similar presentations
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
Advertisements

1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
SQLite 소개 및 안드로이드에서의 사용법
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
SQL 언어 SQL.
DB Injection과 대응방안 nwkim.
소리가 작으면 이어폰 사용 권장!.
DRIMS-Cloud 소개.
데이터베이스 시스템.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
C#에서 데이터베이스 연동 방법.
제 5 장 인덱스 생성 및 관리.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
APM 실습 (MySQL).
JDBC 프로그래밍 이수지 이동주 1.
DBMS실습(I) 데이터베이스 기본개념 2015년 1학기 동서울대학교 컴퓨터소프트웨어과.
You YoungSEok 고급 SQL You YoungSEok
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
Chapter 02. 시스템 보안 : 건강한 시스템이 챙겨야 할 기본
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
Information Technology
Toad for Oracle 설치 방법.
 DBMS의 발전 배경(1) 화일 중심 자료처리(DP)시스템의 한계 ☞ Note
12. 데이터베이스 설계.
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
DB2.
11장. 데이터베이스 서버 구축과 운영.
2007. Database Term Project Team 2 윤형석, 김희용, 최현대 우경남, 이상제
롯데마트 CRM 데이터 분석 교육 2014년 12월 > RE::VISION 전용준 리비젼컨설팅 대표
기초 T-SQL.
3. 데이터베이스 시스템의 구성.
트랜잭션과 잠금 트랜잭션 처리 메커니즘을 자세히 이해한다. 트랜잭션의 종류를 파악한다.
Chapter 05 데이터베이스 프로그래밍.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
ER-Win 사용 방법.
소프트웨어시스템 실험 Software Systems Lab. 데이터베이스 기초
제 2 장 데이터베이스 시스템 개념과 아키텍처 Fundamentals of Database Systems
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
1장. 데이터베이스 시스템 컴퓨터를 사용하여 정보를 수집하고 분석하는데 데이터베이스 기술이 활용되고 있음
시스템 보안 정보 보안 개론 9장.
YOU Youngseok 트랜잭션(Transaction) YOU Youngseok
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
SQL (structured query language)
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
정보처리기사 8조 신원철 양진원 유민호 이기목 김다연 윤현경 임수빈 조현진.
JSP 게시판 구현.
제 8 장 객체지향 데이타베이스와 데이타베이스의 새로운 응용 분야
View(뷰) 1 가상 테이블(Virtual Relation)
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
1조 김성수 백현기 석광우 김지원 박광연.
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
01. 데이터베이스와 SQL 개요.
SQL INJECTION MADE BY 김 현중.
15 사용자 권한 제어 데이터베이스 보안 권한 롤 동의어.
06. SQL 명지대학교 ICT 융합대학 김정호.
제 8장 데이터베이스.
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
1. 관계 데이터 모델 (1) 관계 데이터 모델 정의 ① 논리적인 데이터 모델에서 데이터간의 관계를 기본키(primary key) 와 이를 참조하는 외래키(foreign key)로 표현하는 데이터 모델 ② 개체 집합에 대한 속성 관계를 표현하기 위해 개체를 테이블(table)
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
1장. 서 론 데이터베이스의 개요 모델의 종류 관계형 모델과 객체 지향형 데이터베이스 SQL이란 무엇인가?
1. 정보처리시스템과 데이터베이스의 개념 (1) 정보 시스템 1) 정보 시스템의 정의
4. 데이타베이스 시스템의 구성.
1. 데이터베이스 환경.
Stored program 장종원
제 2 장 데이타베이스 시스템 개념과 아키텍처 Fundamentals of Database Systems
3장. 데이터베이스 시스템 데이터베이스 시스템의 정의 데이터베이스의 구조 데이터베이스 사용자 데이터 언어
Presentation transcript:

Chapter 01 데이터베이스 시스템

데이터베이스와 데이터베이스 시스템 데이터베이스 시스템의 발전 파일 시스템과 DBMS 데이터베이스 시스템의 구성

데이터베이스의 유형을 알아보고 개념 및 특징을 이해한다. 데이터베이스 시스템을 중심으로 한 정보 시스템의 발전 과정을 알아본다. 프로그램과 데이터가 컴퓨터에 어떻게 저장되는지 이해한다. 데이터베이스 시스템의 구성요소를 알아본다.

01. 데이터베이스와 데이터베이스 시스템 데이터, 정보, 지식 일상생활의 데이터베이스 데이터베이스의 개념 및 특징 데이터베이스 시스템의 구성

1. 데이터, 정보, 지식 데이터 : 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값 정보 : 데이터에 의미를 부여한 것 지식 : 사물이나 현상에 대한 이해 그림 1-1 데이터, 정보, 지식

2. 일상생활의 데이터베이스 데이터베이스란? 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것 그림 1-2 일상생활에서 생성되는 데이터베이스

2. 일상생활의 데이터베이스 그림 1-3 패스트푸드 체인점과 철도청의 데이터베이스 : 간단한 거래도 많은 데이터가 포함된다

2. 일상생활의 데이터베이스 표 1-1 데이터베이스의 활용 분야 종류 특징 생활과 문화 기상정보 : 날씨 정보를 제공 교통정보 : 교통상황 정보를 제공 문화예술정보 : 공연이나 인물에 관한 정보를 제공 비즈니스 금융정보 : 금융, 증권, 신용에 관한 정보를 제공 취업정보 : 노동부와 기업의 채용 정보를 제공 부동산정보 : 공공기관이나 민간의 토지, 매물, 세금 정보를 제공 학술정보 연구학술정보 : 논문, 서적, 저작물에 관한 정보를 제공 특허정보 : 특허청의 정보를 기업과 연구자에게 제공 법률정보 : 법제처와 대법원의 법률 정보를 제공 통계정보 : 국가기관의 통계 정보를 제공

2. 일상생활의 데이터베이스 데이터베이스 시스템은 데이터의 검색과 변경 작업을 주로 수행함(삽입,삭제,수정) 변경이란 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정 등의 작업을 말함 표 1-2 검색과 변경 빈도에 따른 데이터베이스 유형 유형 검색 빈도 변경 빈도 데이터베이스 예 특징 유형1 적다 공룡 데이터베이스 검색이 많지 않아 데이터베이스를 구축할 필요 없음 보존가치가 있는 경우에 구축 유형2 많다 도서 사용자 수 보통 검색은 많지만 데이터에 대한 변경은 적음 유형3 비행기 예약 예약 변경/취소 등 데이터 변경은 많지만 검색은 적음, 검색은 변경을 위하여 먼저 시도됨 실시간 검색 및 변경이 중요함 유형4 증권 사용자 수 많음 검색도 많고 거래로 인한 변경도 많음 구축이 쉬움 구축이 어려움

3. 데이터베이스의 개념 통합된 데이터(integrated data) 데이터를 통합하는 개념으로, 각자 사용하던 데이터의 중복을 최소화하여 중복으로 인한 데이터 불일치 현상을 제거 저장된 데이터(stored data) 문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터를 의미 운영 데이터(operational data) 조직의 목적을 위해 사용되는 데이터를 의미한다. 즉 업무를 위한 검색을 할 목적으로 저장된 데이터 공용 데이터(shared data) 한 사람 또는 한 업무를 위해 사용되는 데이터가 아니라 공동으로 사용되는 데이터를 의미

3. 데이터베이스의 개념 그림 1-4 데이터베이스의 개념 : 데이터베이스는 운영 데이터를 통합하여 저장하며 공용으로 사용된다

3. 데이터베이스의 특징 실시간 접근성(real time accessibility) 데이터베이스는 실시간으로 서비스된다. 사용자가 데이터를 요청하면 몇 시간이나 몇 일 뒤에 결과를 전송하는 것이 아니라 수 초 내에 결과를 서비스한다. 계속적인 변화(continuous change) 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라 항상 바뀐다. 데이터베이스는 삽입(insert), 삭제(delete), 수정(update) 등의 작업을 통하여 바뀐 데이터 값을 저장한다. 동시 공유(concurrent sharing) 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다. 동시(concurrent)는 병행이라고도 하며, 데이터베이스에 접근하는 프로그램이 여러 개 있다는 의미다. 내용에 따른 참조(reference by content) 데이터베이스에 저장된 데이터는 데이터의 물리적인 위치가 아니라 데이터 값에 따라 참조된다.

4. 데이터베이스 시스템의 구성 그림 1-5 데이터베이스 시스템의 구성 요소와 물리적인 위치

02. 데이터베이스 시스템의 발전 마당서점과 데이터베이스 시스템 정보 시스템의 발전

[1단계] 마당서점의 시작 • 도서 : 100권 • 고객 : 근처 학교의 학생, 지역 주민 • 고객 서비스 : 사장이 직접 도서 안내(인터넷없음/오프라인/직접구매) • 업무 : 회계업무(계산기 사용), 장부에 기록 그림 1-6 마당서점 초기

[2단계] 컴퓨터의 도입 • 도서 : 1000권 • 고객 : 근처 학교의 학생, 지역 주민 • 고객 서비스 : 컴퓨터를 이용하여 도서 검색, 직원 고용 • 업무 : 회계업무(컴퓨터 사용), 파일 시스템 그림 1-7 마당서점 전산화

[3단계] 지점 개설 및 데이터베이스 구축 • 도서 : 10,000권 • 고객 : 서울 지역 고객 • 고객 서비스 : 클라이언트/서버 시스템으로 지점을 연결하여 도서 검색 서비스 제공 • 업무 : 회계업무(컴퓨터 사용), 데이터베이스 시스템 그림 1-8 마당서점 DBMS 도입

[4단계] 홈페이지 구축 • 도서 : 100,000권 • 고객 : 국민(전국으로 배송) • 고객 서비스 : 인터넷으로 도서 검색 및 주문 • 업무 : 회계/인사업무(컴퓨터와 인터넷 사용), 웹 DB 시스템으로 지점 간 연계 그림 1-9 마당서점 인터넷 서비스 실시

[5단계] 인터넷 쇼핑몰 운영 • 도서 : 1,000,000권 • 고객 : 국민(전국으로 배송) • 고객 서비스 : 인터넷 종합 쇼핑 서비스 제공(쇼핑몰/도서, 음반, 문구,액세서리 등) • 업무 : 회계/인사업무(컴퓨터와 인터넷 사용), DB 서버 여러 개 구축 그림 1-10 마당서점 인터넷 쇼핑몰 운영

1. 마당서점과 데이터베이스 시스템 표 1-3 정보통신기술의 발전과 마당서점의 성장 단계 시기 주요 특징 정보기술 1단계 1970년대 사장이 모든 도서의 제목과 가격을 기억 매출과 판매가 컴퓨터 없이 관리됨 매출에 대한 내용이 정확하지 않음 컴퓨터 없음 2단계 초기전산화 1980년대 컴퓨터를 이용한 초기 응용 프로그램으로 업무 처리 파일 시스템 사용 한 대의 컴퓨터에서만 판매 및 매출 관리 컴퓨터 3단계 데이터베이스 1990년대 지점 간 클라이언트/서버 시스템을 도입하여 업무 처리 데이터베이스 관리 시스템(DBMS)을 도입 컴퓨터+원격통신 4단계 홈페이지 구축 2000년대 인터넷을 이용하여 도서 검색 및 주문 웹 DB 시스템으로 불특정 다수 고객 유치 고객이 지리적으로 넓게 분산됨 컴퓨터+인터넷 5단계 인터넷 쇼핑몰 2010년대 도서뿐만 아니라 음반, 액세서리, 문구, 공연 티켓까지 판매하는 인터넷 쇼핑몰로 확대 도서 외 상품의 매출 비중이 50% 이상으로 늘어남

2. 정보 시스템의 발전 파일 시스템 그림 1-11 파일 시스템 데이터를 파일 단위로 파일 서버에 저장 각 컴퓨터는 LAN을 통하여 파일 서버에 연결되어 있고, 파일 서버에 저장된 데이터를 사용하기 위해 각 컴퓨터의 응용 프로그램에서 열기/닫기(open/close)를 요청 각 응용 프로그램이 독립적으로 파일을 다루기 때문에 데이터가 중복 저장될 가능성이 있음 동시에 파일을 다루기 때문에 데이터의 일관성이 훼손될 수 있음 그림 1-11 파일 시스템

2. 정보 시스템의 발전 데이터베이스 시스템 그림 1-12 데이터베이스 시스템 DBMS를 도입하여 데이터를 통합 관리하는 시스템 DBMS가 설치되어 데이터를 가진 쪽을 서버(server), 외부에서 데이터 요청하는 쪽을 클라이언트(client)라고 함 DBMS 서버가 파일을 다루며 데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행 데이터의 중복을 줄이고 데이터를 표준화하며 무결성(integrity)을 유지함(일관성) 일관성이 없는 경우의 예? - 하나의 테이블에서(학생테이블), - 데이타베이스 필드에 값이 없는 경우 - 데이타베이스 필드에 동일한 값을 입력하는 경우 - 두개의 테이블에서(학생테이블과 수강과목테이블) - 학생테이블에 존재하는 학번이 수강과목테이블에 없는 경우 - 데이타베이스 필드에 데이타타입, 길이, 빈값의 허용여부 등을 지키는 것 - 성별 필드에 F, M 만을 약속하고 다른 문자를 쓰는 경우 등 그림 1-12 데이터베이스 시스템

2. 정보 시스템의 발전 웹 데이터베이스 시스템 그림 1-13 웹 데이터베이스 시스템 데이터베이스를 웹 브라우저에서 사용할 수 있도록 서비스하는 시스템 불특정 다수 고객을 상대로 하는 온라인 상거래나 공공 민원 서비스 등에 사용됨 그림 1-13 웹 데이터베이스 시스템

2. 정보 시스템의 발전 분산 데이터베이스 시스템 그림 1-14 분산 데이터베이스 시스템 여러 곳에 분산된 DBMS 서버를 연결하여 운영하는 시스템 대규모의 응용 시스템에 사용됨 그림 1-14 분산 데이터베이스 시스템

2. 정보 시스템의 발전 소매상(실체 시스템) 소기업(파일 시스템) 중견기업(데이터베이스) 대기업(인터넷 통신) 1970년대 정보 시스템 없음 수작업으로 회계 업무 소매상(실체 시스템) 1980년대 파일 시스템 사용 파일을 이용한 응용 프로그램으로 업무 처리 소기업(파일 시스템) 1990년대 정보 시스템, 데이터베이스 시스템 사용 DBMS를 이용하여 업무 처리 정보 공유, 실시간 서비스, LAN 기술 중견기업(데이터베이스) 2000년대 정보 시스템, 웹 데이터베이스 시스템, 인터넷 사용 인터넷 쇼핑몰을 개설하여 온라인 상거래 실시 실시간 서비스, 웹 브라우저 기술 대기업(인터넷 통신) 2010년대 정보 시스템, 분산 데이터베이스 시스템, 인터넷 사용 고객 서비스 및 내부 업무를 인터넷으로 처리 대규모 응용 시스템에 사용 종합그룹(인터넷 통신) 그림 1-15 정보 시스템의 발전과 기업의 업무 환경 변화

03. 파일 시스템과 DBMS 마당서점 데이터를 저장하는 방법 마당서점 데이터의 저장 방법 비교 파일 시스템과 DBMS의 비교

1. 마당서점 데이터를 저장하는 방법 (예) 도서 검색 프로그램(도서제목, 출판사, 가격 등) 데이터를 프로그램 내부에 저장하는 방법 파일 시스템을 사용하는 방법 DBMS를 사용하는 방법 그림 1-16 고객 서비스를 온라인 정보 서비스로 전환 그림 1-17 도서 검색 프로그램

1.1 데이터를 프로그램 내부에 저장하는 방법 [프로그램 1] C 언어의 구조체 BOOK을 먼저 선언하고 main( ) 프로그램에서 구조체 배열 변수 BOOKS[ ]에 데이터를 저장 도서 데이터는 프로그램 내 구조체 변수에 저장됨 문제점 : 새로운 데이터가 생길 때마다 프로그램을 수정(삽입,삭제,변경)한 후 다시 컴파일해야 함 /* BOOK 데이터 구조 정의 */ typedef struct { int bookid[5]; char bookname[20]; char publisher[20]; int price; } BOOK; int main() { BOOK BOOKS[10]; /* 구조체 배열 변수에 데이터 저장 */ /* 첫 번째 도서 저장 */ BOOKS[1].bookid=1; strcpy(BOOKS[1].bookname, "축구의 역사"); strcpy(BOOKS[1].publisher, "굿스포츠"); BOOKS[1].price=7000; /* 두 번째 도서 저장 */ BOOKS[2].bookid=2; strcpy(BOOKS[2].bookname, "축구 아는 여자"); strcpy(BOOKS[2].publisher, "나무수"); BOOKS[2].price=13000; /* 나머지 다른 도서 저장(생략) */ ..... /* 모든 도서보기 프로그램 호출 */ search_all(); }

1.2 파일 시스템을 사용하는 방법 [프로그램 2] 그림 1-18 도서 검색 프로그램에서 도서를 등록하는 화면 BOOK 데이터 구조를 먼저 선언하고 main( ) 프로그램에서 파일로부터 데이터를 불러와 구조체 배열 변수 BOOKS[ ]에 저장 새로운 데이터가 추가되어도 프로그램을 수정할 필요 없음 문제점 : - 같은 파일을 두 개의 프로그램이 공유하는 것이 운영체제의 도움 없이 불가능 - 구조체 정보를 변경할 필요가 발생할 수 있다.(재컴파일 필요) 그림 1-18 도서 검색 프로그램에서 도서를 등록하는 화면

1.2 파일 시스템을 사용하는 방법 [프로그램 2] /* BOOK 데이터 구조 정의 */ typedef struct { int bookid[5]; char bookname[20]; char publisher[20]; int price; } BOOK; int main( ) BOOK BOOKS[10]; int i=1; /* 도서 입력 함수 */ insert( ); /* 파일에 저장된 데이터를 배열 BOOKS[ ]에 저장 */ fp=fopen("book.dat","rb"); bp=(BOOK *)calloc(1,sizeof(BOOK)); /* 파일에서 책을 읽는다 */ while(fread(bp,sizeof(BOOK),1,fp) != 0) BOOKS[i].bookid =bp->bookid; strcpy(BOOKS[i].bookname, bp ->bookname); strcpy(BOOKS[i].publisher, bp ->publisher); BOOKS[i].price =bp ->price; i++; } /* 모든 도서보기 프로그램 호출 */ search_all( ); .....

1.3 DBMS를 사용하는 방법 [프로그램 3] 그림 1-19 오라클(SQL Developer)의 데이터베이스 관리 화면 프로그램에 데이터 정의나 데이터 값을 포함하지 않기 때문에 데이터 구조가 바뀌어도 다시 컴파일할 필요가 없음 그림 1-19 오라클(SQL Developer)의 데이터베이스 관리 화면

1.3 DBMS를 사용하는 방법 [프로그램 3] 소스코드 int main( ) { /* 반환된 행의 수 */ int num_ret; /* DBMS에 디폴트 id와 패스워드로 접속 */ EXEC SQL CONNECT :username IDENTIFIED BY :password; /* SQL 문 실행(질의가 복수 결과 리턴 또는 몇 개의 행이 리턴될지 모를 경우는 반드시 커서(작업영역)를 사용함 */ EXEC SQL DECLARE c1 CURSOR FOR SELECT bookname, publisher, price FROM BOOK; EXEC SQL OPEN c1; /* 모든 도서보기 프로그램 호출 */ search_all( ); /* SQL 문 실행 결과 출력 */ for (;;) { EXEC SQL FETCH c1 INTO :BOOK_rec; print_rows(num_ret); } EXEC SQL CLOSE c1; /* 접속 해제(log off) */ EXEC SQL COMMIT WORK RELEASE;

2. 마당서점 데이터의 저장 방법 비교 [프로그램 1] 프로그램에 데이터 정의와 데이터 값을 모두 포함하는 방식 { Book 데이터 타입 선언; 프로그램 내에서 BOOKS[ ] 배열에 데이터 저장; … 검색 및 데이터 변경 프로그램 수행; } 프로그램에 데이터 정의와 데이터 값을 모두 포함하는 방식 프로그램에 BOOK 데이터 구조를 정의하고 데이터 값도 직접 변수에 저장함 데이터 구조 혹은 데이터 값이 바뀌면 프로그램을 다시 컴파일해야 함 BOOK 데이터 구조 BOOK 데이터

2. 마당서점 데이터의 저장 방법 비교 [프로그램 2] 파일에 데이터 값, 프로그램에 데이터 정의를 포함하는 방식 { Book 데이터 타입 선언; 파일로부터 데이터를 불러와 BOOKS[ ] 배열에 저장; … 검색 및 데이터 변경 프로그램 수행; } 파일에 데이터 값, 프로그램에 데이터 정의를 포함하는 방식 프로그램에 BOOK 데이터 구조만 정의하고, 데이터 값은 book.dat라는 파일에 저장됨 데이터 값이 바뀌면 프로그램에 변경이 없지만, 데이터 구조가 바뀌면 프로그램을 다시 컴파일해야 함 BOOK 데이터 구조 BOOK 데이터 파일

(DataBase Management System) 2. 마당서점 데이터의 저장 방법 비교 [프로그램 3] { /* BOOK 데이터 타입 선언 필요 없음 */ SQL 문을 실행하여 결과를 가져옴; … SQL 문으로 데이터 변경 ; } DBMS가 데이터 정의와 데이터 값을 관리하는 방식 BOOK 데이터 구조는 DBMS가 돤리하고, 데이터 값은 데이터베이스에 저장됨 데이터 값이 바뀌거나 데이터 값이 바뀌어도 프로그램을 다시 컴파일할 필요 없음 DBMS (DataBase Management System) Book 데이터 구조 Book 데이터 파일

3. 파일 시스템과 DBMS의 비교 표 1-5 파일 시스템과 DBMS의 비교 구분 파일 시스템 DBMS 데이터 정의 및 저장 데이터 정의 : 응용 프로그램 데이터 저장 : 파일 시스템 데이터 정의 : DBMS 데이터 저장 : 데이터베이스 데이터 접근 방법 응용 프로그램이 파일에 직접 접근 응용 프로그램이 DBMS에 파일 접근을 요청 사용 언어 자바, C++, C 등 자바, C++, C 등과 SQL CPU/주기억장치 사용 적음 많음

3. 파일 시스템과 DBMS의 비교 그림 1-20 파일 시스템으로 구축된 구매 및 판매 응용 프로그램

3. 파일 시스템과 DBMS의 비교 표 1-6 DBMS의 장점 구분 파일 시스템 DBMS 데이터 중복 데이터를 파일 단위로 저장하므로 중복 가능 DBMS를 이용하여 데이터를 공유하기 때문에 중복 가능성 낮음 데이터 일관성 데이터의 중복 저장으로 일관성이 결여됨 중복 제거로 데이터의 일관성이 유지됨 데이터 독립성 데이터 정의와 프로그램의 독립성 유지 불가능 데이터 정의와 프로그램의 독립성 유지 가능 관리 기능 보통 데이터 복구, 보안, 동시성 제어, 데이터 관리 기능 등을 수행 프로그램 개발 생산성 나쁨 짧은 시간에 큰 프로그램을 개발할 수 있음 기타 장점 데이터 무결성 유지, 데이터 표준 준수 용이

04. 데이터베이스 시스템의 구성 데이터베이스 언어 데이터베이스 사용자 DBMS 데이터 모델 데이터베이스의 개념적 구조

04. 데이터베이스 시스템의 구성 그림 1-22 데이터베이스 시스템의 구성 응용 프로그래머 사용자 일반 사용자 SQL 사용자 DBA 응용 프로그램 화면 응용 프로그램 개발 SQL 질의 데이터베이스 스키마 인터페이스 Embedded DML DML 컴파일러 DDL 컴파일러 오브젝트 코드 질의처리기 DBMS 주기억장치 트랜잭션 관리자 파일 관리자 버퍼 관리자 하드디스크 데이터베이스 데이터 파일 인덱스 데이터 통계 데이터 사전 그림 1-22 데이터베이스 시스템의 구성

1. 데이터베이스 언어 SQL 데이터 정의어(DDL, Data Definition Language) / CREATE, ALTER, DROP 등 데이터 조작어(DML, Data Manipulation Language) / SELECT, INSERT, DELETE, UPDATE 등 데이터 제어어(DCL, Data Control Language) / GRANT, REVOKE 등 질의 1-1 Book 테이블에서 모든 도서이름(bookname)과 출판사(publisher)를 검색하시오. bookname publisher 축구의 역사 굿스포츠 축구아는 여자 나무수 축구의 이해 대한미디어 골프 바이블 피겨 교본 SELECT bookname, publisher FROM Book; Book 테이블 bookid bookname publisher price 1 축구의 역사 굿스포츠 7000 2 축구아는 여자 나무수 13000 3 축구의 이해 대한미디어 22000 4 골프 바이블 35000 5 피겨 교본 8000

1. 데이터베이스 언어 질의 1-2 가격(price)이 10,000원 이상인 도서이름(bookname)과 출판사(publisher)를 검색하시오. SELECT bookname, publisher FROM Book Where price >= 10000; bookname publisher 축구아는 여자 나무수 축구의 이해 대한미디어 골프 바이블 Book 테이블 bookid bookname publisher price 1 축구의 역사 굿스포츠 7000 2 축구아는 여자 나무수 13000 3 축구의 이해 대한미디어 22000 4 골프 바이블 35000 5 피겨 교본 8000

2. 데이터베이스 사용자 일반사용자 응용프로그래머 SQL 사용자 은행의 창구 혹은 관공서의 민원 접수처 등에서 데이터를 다루는 업무를 하는 사람 프로그래머가 개발한 프로그램을 이용하여 데이터베이스에 접근 일반인 응용프로그래머 일반 사용자가 사용할 수 있도록 프로그램을 만드는 사람 자바, C, JSP 등의 프로그래밍 언어와 SQL을 사용하여 일반 사용자를 위한 사용자 인터페이스와 데이터를 관리하는 응용 로직을 개발 SQL 사용자 SQL을 사용하여 업무를 처리하는 IT 부서의 담당자 응용 프로그램으로 구현되어 있지 않은 업무를 SQL을 사용하여 처리 데이터베이스 관리자(DBA, Database Administrator) 데이터베이스 운영 조직의 데이터베이스 시스템을 총괄하는 사람 데이터 설계, 구현, 유지보수의 전 과정을 담당 데이터베이스 사용자 통제, 보안, 성능 모니터링, 데이터 전체 파악 및 관리, 데이터 이동 및 복사 등 제반 업무를 함

2. 데이터베이스 사용자 표 1-7 데이터베이스 사용자 별로 갖추어야 할 지식 수준(× : 없음,  : 보통, ◎ : 높음) SQL 언어 프로그래밍 능력 DBMS 지식 데이터 구성 일반 사용자 × SQL 사용자 ◎  응용 프로그래머 데이터베이스 관리자

3. DBMS 표 1-8 DBMS의 기능 데이터 정의(Definition) 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행함 데이터 조작(manipulation) 데이터를 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터의 삽입, 수정, 삭제 작업을 지원함 데이터 추출(Retrieval) 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출함 데이터 제어(Control) 데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어함. 백업과 회복, 동시성 제어 등의 기능을 지원함

4. 데이터 모델 데이타베이스 시스템에서 데이터를 저장하는 이론적인 방법 데이터 모델 → 가장 많이 쓰인다 계층 데이터 모델(hierarchical data model) 네트워크 데이터 모델(network data model) 객체 데이터 모델(object data model) 관계 데이터 모델(relational data model) 객체-관계 데이터 모델(object-relational data model) → 가장 많이 쓰인다 → 관계 데이터 모델과 객체 데이터 모델의 장점을 결합한 모델 데이타베이스 시스템에서 데이터를 저장하는 이론적인 방법 데이터 모델

4. 데이터 모델 포인터 사용 : 계층 데이터 모델, 네트워크 데이터 모델 그림 1-23 관계 표현을 위한 예시 학생(학번, 이름) 강좌(강좌번호, 강좌이름) 101 데이터베이스 501 박지성 230 스포츠경영학 502 김연아 102 자료구조 그림 1-23 관계 표현을 위한 예시 학생(학번, 이름, 강좌포인터) 강좌(강좌번호, 강좌이름) 101 데이터베이스 501 박지성 P 230 스포츠경영학 502 김연아 P 102 자료구조 그림 1-24 포인터를 사용하여 관계 표현

4. 데이터 모델 속성 값 사용 : 관계 데이터 모델 그림 1-23 관계 표현을 위한 예시 학생(학번, 이름) 강좌(강좌번호, 강좌이름) 101 데이터베이스 501 박지성 230 스포츠경영학 502 김연아 102 자료구조 그림 1-23 관계 표현을 위한 예시 학생(학번, 이름, 강좌번호) 강좌(강좌번호, 강좌이름) 101 데이터베이스 501 박지성 102 230 스포츠경영학 401 김연아 101 102 자료구조 그림 1-25 속성 값을 사용하여 관계 표현

4. 데이터 모델 객체식별자 사용 : 객체 데이터 모델 그림 1-23 관계 표현을 위한 예시 학생(학번, 이름) 강좌(강좌번호, 강좌이름) 101 데이터베이스 501 박지성 230 스포츠경영학 502 김연아 102 자료구조 그림 1-23 관계 표현을 위한 예시 학생(학번, 이름, objectid) 강좌(강좌번호, 강좌이름) 101 데이터베이스 501 박지성 oid 230 스포츠경영학 401 김연아 oid 102 자료구조 그림 1-26 객체식별자를 사용하여 관계 표현

4. 데이터 모델 p p 표 1-9 데이터 모델과 각 모델에서 관계의 표현 방법 데이터 모델 관계의 표현 데이터 구성 계층 데이터 모델 (포인터 사용) 네트워크 데이터 모델 학생 p 강좌 학생 p 강좌

4. 데이터 모델 X oid 표 1-9 데이터 모델과 각 모델에서 관계의 표현 방법 데이터 모델 관계의 표현 데이터 구성 관계 데이터 모델 (속성 값 사용) 객체 데이터 모델 (객체식별자 사용) 학생 X 강좌 X 학생 oid 강좌 객체 번호 oid

4. 데이터 모델 ⇒ 표 1-10 데이터 모델의 역사 데이터 모델 1970년대 1980년대 1990년대 2000년대 2010년대 제품 종류 계층 데이터 모델 IMS(IBM) ⇒ 네트워크 데이터 모델 IDS(GE) 관계 데이터 모델 Oracle(Oracle), System R(IBM) 객체 데이터 모델 GemStone, ObejectStore 객체-관계 데이터 모델 UniSQL - 위 표에는 해당 데이터 모델이 주로 사용되던 시기를 표시한 것이다. - 계층 데이터 모델과 네트워크 데이터 모델은 1960년대에, 관계 데이터 모델은 1970년대에 처음 사용되기 시작하였다.

5.1 3단계 데이터베이스 구조(ANSI) 외부 스키마 1 외부 스키마 2 외부 스키마 3 외부/개념 매핑 개념 스키마 사용자가 보는 데이터 외부/개념 매핑 개념 스키마 전체 데이터 개념/내부 매핑 내부 스키마 DBMS가 보는 데이터 데이터베이스 (물리적인 데이터 구조) 그림 1-27 ANSI의 3단계 데이터베이스 구조

5.1 3단계 데이터베이스 구조 외부 스키마 개념 스키마 내부 스키마 일반 사용자나 응용 프로그래머가 접근하는 계층으로 전체 데이터베이스 중에서 하나의 논리적인 부분을 의미 여러 개의 외부 스키마(external schema)가 있을 수 있음 서브 스키마(sub schema)라고도 하며, 뷰(view)의 개념임 (예)대학 데이타베이스  학생처의 학생정보, 교무처 수강정보, 취업처 취업정보 등 개념 스키마 전체 데이터베이스의 정의를 의미 통합 조직별로 하나만 존재하며 DBA가 관리함 하나의 데이터베이스에는 하나의 개념 스키마(conceptual schema)가 있음 내부 스키마 물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법의 표현 내부 스키마(intenal schema)는 하나 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함됨

5.1 3단계 데이터베이스 구조 외부/개념 매핑 개념/내부 매핑 사용자의 외부 스키마와 개념 스키마 간의 매핑(사상) 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시킴 개념/내부 매핑 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응시킴

5.1 3단계 데이터베이스 구조 보통 하나의 테이블로 저장됨 key relationship 그림 1-28 수강신청 데이터베이스의 개념 스키마(전체 데이터) / ER 다이어그램

5.1 3단계 데이터베이스 구조 그림 1-29 수강등록 담당 부서에서 필요한 데이터베이스(외부 스키마1)

5.1 3단계 데이터베이스 구조 그림 1-30 시간표 담당 부서에서 필요한 데이터베이스(외부 스키마2)

5.1 3단계 데이터베이스 구조 그림 1-31 수강신청 데이터베이스의 내부 스키마

5.1 3단계 데이터베이스 구조 그림 1-32 수강신청 데이터베이스의 3단계 구조

5.2 데이터 독립성 논리적 데이터 독립성(logical data independence) 외부 단계(외부 스키마)와 개념 단계(개념 스키마) 사이의 독립성 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원 논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 하는 개념 개념 스키마의 테이블을 생성하거나 변경하여도 외부 스키마가 직접 다루는 테이블이 아니면 영향이 없음 물리적 데이터 독립성(physical data independence) 개념 단계(개념 스키마)와 내부 단계(내부 스키마) 사이의 독립성 저장장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원 성능 개선을 위하여 물리적 저장 장치를 재구성할 경우 개념 스키마나 응용 프로그램 같은 외부 스키마에 영향이 없음 물리적 독립성은 논리적 독립성보다 구현하기 쉬움

요약 데이터베이스 데이터베이스의 개념 데이터베이스의 특징 데이터베이스 시스템의 구성 정보 시스템의 발전 DBMS의 장점 SQL 데이터베이스 관리자(DBA) 데이터 모델 3단계 데이터베이스 구조 데이터 독립성