[0230045] Database HW 1

[0230045] Database HW 1 - YONSEI UNIVERSITY Database HW #1...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: YONSEI UNIVERSITY Database HW #1 Chapter 1 & 2 Summary 과 목 명 : 데이터베이스 담당교수님: 이 원 석 분 반: 학 과 : 수학 학 년:4 학번: 0230045 이 름: 박진형 Chapter 1. Databases and Database Users 1. Chapter 1에서 알아야 하는 용어 정리 • Data :: 데이터란 기록되고 의미를 갖는 알려진 사실들을 의미한다. (예: 사람 이름, 전화번호 숫 자들, 내가 알고 있는 사람들의 주소록 등) (참고) Data는 모두 단수/복수로도 쓰이지만 일반적 인 영어에서 Datum이 단수이고 Data는 복수로 사용된다. • Database :: 데이터베이스란 연관된 데이터들의 모임을 의미한다. 또한 데이터베이스는 3가지 의 내재된 특성들을 가지고 있다 - 1) miniworld 혹은 universe of discourse(UoD)라 불리기도 하는, 현실 세계를 나타낸다. 2) 고유한 의미를 갖는 데이터들을 논리적으로 결합한 것이다. 3) 특정한 목적을 위해 설계, 구현되었다. • DBMS :: 여러 사용자들과 애플리케이션들 사이에서 데이터베이스를 정의(defining)하고, 생성 (constructing)하고, 조작(manipulating)하고, 공유(sharing)하는 과정들을 용이하게 해주는 일 반 목적 소프트웨어 시스템(general-purpose software system)을 말한다. • Database System :: 데이터베이스와 DBMS를 함께 묶어서 데이터베이스 시스템이라 한다. Users / Programmers Database System DBMS Software Application Programs/Queries Software to Process Queries/Programs Software to Access Stored Data Stored Database Definition (Meta-Data) Stored Database • Database Catalog :: 메타-데이터(Meta-data)로 불리는 데이터베이스 정의 혹은 데이터베이스 를 설명하는 정보가 저장된 데이터베이스를 데이터베이스 카타로그(Database Catalog)라고 한 다. • Program-data Independence :: 파일 처리에서는 데이터 파일들의 구조가 애플리케이션 안에 서 정의가 되어있었다. 그래서 이러한 데이터 구조가 변경이 되면 해당 파일을 이용하는 모든 애 플리케이션들도 같이 변경이 되어야만 했다. 이와 반대로 DBMS에서는 DBMS 카타로그에 이러 한 데이터 구조가 정의되어 있기 때문에 이를 접근하는 프로그램들과 독립적으로 이루어져 있 다. 따라서 데이터구조가 바뀌더라도 프로그램을 변경할 필요가 없다. 이를 프로그램-데이터 독 립성(Program-data Independence)라고 한다. • Program-operation independence :: Object-oriented 데이터베이스 등에서는 사용자는 데 이터베이스 정의의 일부분으로 데이터 위에 Operation을 정의할 수 있다. 이 Operation은 두 부분, Interface(혹은 signature)와 Arguments(혹은 parameters)로 이루어져 있다. 이를 통해 데이터베이스 안에 저장된 데이터를 다룰 수 있는데, 데이터베이스 안에 데이터를 다루는 연산 까지 넣음으로써 애플리케이션에서는 데이터를 단순히 요청만 하면 되고 특정 데이터를 다루는 연산 부분에 대해서도 독립적으로 처리함을 의미한다. • User View :: 데이터베이스에는 일반적으로 많은 사람들이 동시에 이용하는데, 각각의 사용자가 원하는 정보가 다르다. 따라서 데이터베이스의 부분 또는 데이터베이스에서 각 사용자가 원하는 내용만 추려서 보여주는 가상 데이터를 뷰(View)라 하는데, 각 사용자가 원하는 뷰를 사용자 뷰 (User View)라고 한다. • DBA :: Database Administrator의 약자로 데이터베이스의 보안 유지, 성능 관리, S/W 및 H/W 를 관리하는 사람을 말한다. 보안 유지에는 데이터베이스의 사용 허가 등을 승인하고 성능 관리 에는 현재 데이터베이스 사용 현황과 성능 등을 감시하여 안정적으로 데이터베이스가 운용되도 록 한다. • End User :: 데이터베이스에 쿼리하고, 정보를 업데이트하고, 데이터베이스에 저장된 데이터들 에서 자료를 뽑아내는 행위를 하는 사람들을 말한다. 데이터베이스의 가장 큰 존재 목적으로, 이 들이 원하는 정보를 제공하기 위해 데이터베이스는 존재한다. End User에는 Casual End User, Naive(or parametric) End User, Sophisticated End User, Standalone User 등 4가지 분류로 구분된다. • Canned Transaction :: Naive End User가 수행하는 작업으로, 미리 프로그래밍되어있고 잘 테 스트된 동일한 쿼리와 업데이트를 지속적으로 수행하는 트랜잭션을 의미한다. 예로 은행 직원에 입출금과 관련된 쿼리와 업데이트를 지속적으로 한다던지 혹은 비행기 표 예약 작업 등을 수행 하는 것이 있다. • Deductive Database System :: 기존에 저장된 데이터베이스에서 참조하는 새로운 정보에 대해 삭제 규칙을 정의할 수 있는 기능을 제공하는 데이터베이스 시스템을 말한다. • Meta-data :: 데이터 형, 구조, 제약 조건등을 정의하여 데이터베이스 카타로그에 저장된 정보. 2. DBMS가 제공하는 기능 a. 데이터베이스의 정의 - 데이터베이스에 저장되는 데이터 형, 구조, 제약조건 등을 정의 b. 데이터베이스의 구축 - DBMS가 제어하는 스토리지에 저장된 데이터의 처리 c. 데이터베이스의 조작 - 특정 데이터를 가져오는 쿼리, 미니월드의 변화를 업데이트, 데이터로 부터 결과를 리포팅하는 기능 등 d. 데이터베이스의 공유 - 여러 사용자들과 여러 애플리케이션들이 동시에 데이터에 접근 가능토 록 한다. e. 데이터베이스의 보호와 유지 - 하드웨어나 소프트웨어적인 문제로 시스템에 문제가 생겼을 때 DBMS는 데이터를 보호를 하고 오랜 기간동안 데이터가 안전하도록 유지하는 기능. 3. 데이터베이스 방법의 특징 • 파일 프로세싱 - 애플리케이션별로 파일 구조를 기억해야하고 구조가 변경되면 관련된 모든 애 플리케이션을 다시 작성해야한다. • 데이터베이스는 파일 프로세싱과 비교하여 다음과 같은 특성을 갖는다. a. 스스로를 설명하는 데이터베이스 시스템의 특성 (Self-Describing Nature) • 데이터베이스 카타로그에 저장된 Meta-Data에 데이터에 대한 각종 정보를 모두 기록해 둔다. 따라서 데이터베이스 하나만 보고도 어떠한 내용인지 다 알 수 있다. b. 프로그램과 데이터, 데이터 추상화 사이의 분리 • Program-data Independence • Program-operation Independence c. 데이터의 다양한 뷰를 제공 • 사용자가 원하는 쿼리를 넣으면 그에 맞도록 데이터를 보여준다. d. 다중 사용자 트랜잭션 처리와 데이터 공유가 가능 • DBMS는 동시사용 제어 소프트웨어(Concurrency Control Software)를 포함해야만 한 다. 이를 통해 여러 사용자가 동시에 작업을 수행할 수 있고 데이터 공유도 가능하다. 4. 데이터베이스 사용자들 a. Database Administrators => 용어 설명에... b. Database Designers => 데이터 정의 및 저장 구조 설계 c. End Users => 용어 설명에... d. 시스템 분석가 및 응용프로그램 개발자 => 시스템 분석가는 사용자의 요구사항을 분석하고 canned transaction을 설계한다. 응용프로그램 개발자는 canned transaction을 프로그래밍 하고 디버깅하고 시험한다. 5. DBMS 사용 목적 a. Redundancy => 저장공간 절약 / 데이터의 일치 / 복사 및 관리노력의 감소 b. Security => 데이터의 접근 허가 및 행태 관리 (read/write/privileged) c. Multiple User Interface => 다양한 사용자 유형 및 숙련도 지원 d. Enforcing Integrity Constraint => 제약조건을 강제화할 수 있다. 예를 들어 학점을 입력할 경우 A,B,C,D,F 중에서만 입력하도록 할 수 있다. e. Backup & Recovery => H/W 또는 S/W 고장으로 데이터에 이상이 생겼 때 이를 자동으로 복구하고 또 기존에 데이터가 다 날라갔더라도 DBMS의 백업 기능을 이용해 복구가 가능하다. 6. DBMS 사용의 장점 a. 표준화 - 여러 애플리케이션들에게 통일된 데이터 규격을 전달할 수 있다. b. 애플리케이션 개발 시간 단축 c. 유동성 - 새로운 대처에 용이. 이는 Program-Data Independence로, 학생 데이터에 애인 항 목이 추가되었다고 하더라도 학생 데이터를 이용하는 모든 애플리케이션을 다시 컴파일할 필 요가 없음을 의미한다. d. 최신 데이터 이용 가능 - 다중 사용자 환경에서 항상 최근에 업데이트된 데이터를 접근하게 된 다. e. 경제성 7. DBMS를 사용하지 않는 경우 1. 단순하고 잘 정의되고 변화가 거의 없는 경우 2. 실시간 반응이 필요한 경우 DBMS의 오버헤드때문에 사용하지 않음 3. 다중 사용자 환경이 필요하지 않을 때 Chapter 2. Database System Concepts and Architecture 1. Data Models, Schemas, Instances a. 데이터 모델 - 데이터베이스의 구조를 설명하는데 사용될 수 있는 개념의 집합. 데이터 모델에 는 High-level 데이터 모델과 Low-level 데이터 모델, 그리고 이 둘 사이의 중간에 위치한 Representational 데이터 모델이 있다. High-level 데이터 모델은 개념적 데이터 모델로 DB 사용자가 이해하는 데이터 베이스의 구조를 말한다. 이는 개체, 속성, 관계로 이루어져 있다. Low-level 데이터 모델은 물리적 데이터 모델로 말 그대로 데이터의 저장 방법을 기술하고 레 코드 포맷/순서 등을 정의하며 데이터 접근 경로 등을 정의한다. 마지막으로 Representational 데이터 모델은 구현 데이터 모델로 DBMS에서 사용하는 모델이다. 물리적인 상세한 정보를 추 상화 하면서 데이터 구조를 표현한다. b. 데이터베이스에 대한 설명을 데이터베이스 스키마라고 하는데, 이는 데이터베이스가 디자인 될 때 한 번 정의되면 거의 바뀌지 않는다. 실제 저장된 데이터는 아니다. c. Instance는 저장된 실제 데이터를 의미한다. d. Database State는 특정 시점에 데이터베이스에 저장된 데이터들의 집합으로 데이터베이스의 상태 변이(레코드의 첨가, 삭제 등)를 말한다. 2. Three-Schema Architecture and Data Independence a. Three-schema Architecture라 불리는 것으로 데이터베이스는 3단계의 독립적인 스키마로 나 누어져 있다. i. Internal Level - Internal schema를 가지고 있고 데이터베이스의 물리 저장 구조에 대해 서술한다. ii. conceptual level - Conceptual Schema를 가지고 있고 사용자들을 위해 전체 데이터베이 스의 구조를 서술하고 있다. 여기에 개념적 데이터 모델, 구현 데이터 모델이 사용되고, 엔 티티, 데이터 형, 관계, 제약 조건등이 기술되어 있다. iii. external schema - External Schema나 혹은 사용자 뷰가 여기에 포함된다. 각각의 External Schema는 특정 사용자 층이 관심있어 하는 데이터베이스의 부분을 설명한다. b. Three-schema Architecture는 데이터 독립성을 설명할 수 있다. i. Logical Data Independence - 논리적 데이터 독립성으로 응용프로그램이나 외부 스키마 에 영향을 주지 않으면서 개념적 스키마를 독립적으로 변경 가능하다. ii. Physical Data Independence - 물리적 데이터 독립성으로 외부/개념적 스키마에 영향을 주지 않으면서 내부 스키마를 독립적으로 고칠 수 있다. 외부 스키마를 사용하는 응용프로 그램도 영향이 없다. 3. Database Languages a. 스키마 정의 언어 i. DDL - Data Definition Language로 개념적 스키마 및 매핑을 정의한다. 설계된 DB 구조 를 DBMS 카타로그에 입력한다. ii. SDL - Storage Definition Language로 내부 스키마 및 매핑을 정의한다. 이는 내부와 개 념 스키마의 확한 구분이 있을 때 가능하다. iii. VDL - View Definition Language로 외부 스키마(View) 및 매핑을 정의한다. b. 검색, 삽입, 삭제, 갱신 언어 -> 대부분 SQL을 이용해 처리! c. SQL - Structured Query Language i. DDL, VDL, DML, SDL 4. The Database System Environment a. Stored Data Manager i. 디스크 접근 제어 ii. 데이터베이스 & 카탈로그 - 디스크에 저장. iii. OS I/O 서비스 사용 - 메모리 버퍼, 데이터 전송 조절 b. DDL 컴파일러 - 스키마 정의를 처리하여 DBMS 카타로그에 저장한다. c. Run-Time Database Processor i. 데이터베이스 접근을 처리한다. ii. 데이터를 가져와서 보여줘야 할때 Stored Data Manager에게 저장된 데이터를 요청한다. d. Query Compiler i. 인터렉티브하게 SQL로 이루어진 쿼리문들을 처리한다. ii. 실시간으로 실행 중에 바로바로 수행. e. Pre-Compiler i. 응용프로그램 개발자가 DBMS에 접근할 때 응용프로그램에 포함될 DML 명령어를 컴파일 한다. f. Database System Utilities i. Loading / Backup / Reorganization / Performance Monitoring g. Communication Facilities i. 통신 H/W & S/W + DB 시스템 / 분산 데이터베이스 시스템 / 클라이언트-서버 구조 h. 중요사항!! 왜 Query Compiler 와 DML Compiler가 따로 있나? 바로 최적화 문제 때문에 그러 함. 애플리케이션의 경우 한 번 컴파일 해두고 오래 쓰는 것이라 미리 최대한 최적화를 거친 결 과로 컴파일을 하고 Query Compiler의 경우는 사용자에게 바로 반응을 해줘야하므로 최적화 를 조금만 하도록 한다. 따라서 컴파일러가 따로 있다. 5. Classification of Database Management Systems a. 데이터 모델 분류 - 관계형(이번 학기에 주로 공부할 내용) , 네트워크형 및 계층형(이는 70년대 에 컴퓨터의 제약때문에 나왔던 모델) b. 사용자 수 - 단일 사용자 시스템 / 다중 사용자 시스템(일반적인 DBMS) c. 사이트 수 - 중앙집중식 / 분산 DBMS d. 목적 - 일반 목적의 DBMS (우리가 흔히 보는 Oracle, MySQL 등이 여기에 포함된다.) / 특수 목 적의 DBMS (실시간 DBMS나 객체 지향형 DBMS등 특정한 목적을 위한 DBMS등) ...
View Full Document

This note was uploaded on 09/28/2009 for the course CS CSI3105 taught by Professor Kim during the Fall '09 term at Yonsei University.

Ask a homework question - tutors are online