1 장. 데이터베이스와 데이터베이스 사용자 1.1 개요 1.2 데이터베이스의 예 1.3 데이터베이스의 특징 1 장. 데이터베이스와 데이터베이스 사용자 1.1 개요 1.2 데이터베이스의 예 1.3 데이터베이스의 특징 1.4 데이터베이스 사용자의 분류 1.6 DBMS의 장점 1.7 데이터베이스 응용의 간략한 역사 1.8 데이터베이스를 사용하지 않아도 좋은 경우
1.1 개요 데이터베이스 시스템: 데이터베이스 + 데이터베이스 관리 시스템 (DBMS) 1.1 개요 데이터베이스 시스템: 데이터베이스 + 데이터베이스 관리 시스템 (DBMS) 데이터베이스(database)는 실세계의 일부분에 대한 데이터의 모임으로 특정한 목적을 위해 설계, 구축, 운용 됨.
데이터베이스 관리 시스템 (DBMS): 데이터베이스를 정의, 생성, 조작할 수 있도록 편리한 기능을 제공하는 범용 소프트웨어 시스템 데이터베이스 정의: 데이터 타입, 구조, 제약 조건들을 명세하는 과정 데이터베이스생성(구축): 데이터를 저장하는 과정 데이터베이스조작: 데이터의 검색, 갱신, 리포트의 생성 등
단순화된 데이터베이스 시스템 환경(그림 1.1) 사용자/프로그래머 데이터베이스 시스템 응용 프로그램/질의 DBMS 소프트웨어 질의/프로그램을 수행하는 소프트웨어 저장된 데이터를 접근하는 소프트웨어 저장된 데이터베이스 정의 (메타데이터) 저장된 데이터베이스
대학교 내의 작은 세계를 데이터베이스화한 예제 [그림 1.2] 1.2 데이터베이스의 예 STUDENT Name Smith Brown StudentNumber 17 18 Class 1 2 Major CS COURSE CourseName Intro to Computer Science Data Structures Discrete Mathematics Database Course Number CS1310 CS3320 MATH2410 CS3380 CreditHours 4 3 Department CS MATH SECTION SectionIdentifier 85 92 102 112 119 135 Course Number MATH2410 CS1310 CS3320 CS3380 Semester Fall Spring Year 04 05 Instructor King Anderson Knuth Chang Stone 대학교 내의 작은 세계를 데이터베이스화한 예제 [그림 1.2]
GRADE_REPORT StudentNumber 17 18 SectionIdentifier 112 119 85 92 102 135 Grade B C A PREREQUISITE CourseNumber CS3380 CS3320 PrerequisiteNumber CS3320 MATH2410 CS1310
1.3 데이터베이스의 특징 데이터베이스 시스템의 자기 기술성(self-describing) 1.3 데이터베이스의 특징 데이터베이스 시스템의 자기 기술성(self-describing) DBMS 카탈로그(catalog)에는 메타데이터(meta-data), 즉 데이터베이스에 대한 설명(description)이 저장되어 있음 => 여러 가지 다른 데이터베이스 관리 가능 프로그램과 데이터의 분리 데이터의 저장 구조가 변경되어도 DBMS 액세스 프로그램이 변경될 필요 없음. 프로그램-데이터 독립성(program-data independence)이라고 함.
데이터 추상화 데이터 모델(data model)을 사용함으로써 저장 구조의 자세한 내용은 사용자로부터 은닉시키고 개념적인 표현만을 제공 데이터에 대한 다양한 뷰를 제공 각 사용자에게 자신이 관심을 가지는 데이터베이스의 일부만을 표현하는 뷰를 제공한다.
Student Section Grade_Report PREREQUISITES CourseName Database Data Structures Prerequisites CS3320 MATH2410 CS1310 CourseNumber CS3380 (b) TRANSCRIPT StudentNAME Smith Brown Course Number Grade C B A Semester Fall Spring Year 05 04 SectionId 119 112 85 92 102 135 (a) Student Section Grade_Report Course Prerequiste [그림 1.5] 그림 1.2의 대학교 데이터베이스에 대한 두 가지 뷰 : (a) 학생의 성적 뷰 (b) 과목의 선수과목 뷰
1.4 데이터베이스 사용자의 분류 데이터베이스 관리자(database administrator, DBA): 데이터베이스 시스템의 관리를 책임진 사람 데이터베이스 설계자: 데이터베이스의 설계를 책임진 사람 최종 사용자: 데이터베이스에 대하여 질의, 갱신, 보고서 작성 등을 담당하는 사람 시스템 분석가 및 응용 프로그래머: 사용자를 위하여 잘 정의된 기능의 트랜잭션을 설계 하고 구현하는 사람들
1.6 DBMS의 기능 데이터 중복의 최소화 및 통제된 데이터 중복성 제공 - 데이터 일치성(consistency) 보장 및 메모리 낭비 방지 다 사용자 간의 데이터의 공유 및 동시 접근 보장 권한 없는 사용자의 데이터 접근을 통제 다양한 사용자 인터페이스 제공 데이터 사이에 존재하는 복잡한 관련성을 표현 데이터베이스의 무결성을 보장 벡업과 복구 기능을 제공
[그림 1.6] 여러 화일에 데이터를 중복하여 저장하는 경우와 데이터 불일치 GRADE_REPORT StudentNumber 17 8 SectionIdentifier 112 119 85 92 102 135 Grade B C A StudentName Smith Brown CourseNumber MATH2410 CS1310 CS3320 CS3380 (a) GRADE_REPORT StudentNumber 17 SectionIdentifier 112 Grade B StudentName Brown CourseNumber MATH2410 (b) [그림 1.6] 여러 화일에 데이터를 중복하여 저장하는 경우와 데이터 불일치 제어된 중복성: 성능을 위하여 GRADE_REPORT 화일에 StudentName과 CourseNumber를 포함시키고, 두 속성의 값이 Student에서의 두 속성값과 일치하도록 DBMS가 보장함 (b) 비제어된 중복성: 그림 1.2의 STUDENT 레코드와 불일치하는 GRADE_REPORT 레코드의 예 (17번 학생은 Brown이 아니라 Smith 임)
데이터베이스 사용의 효과 표준화된 데이터 관리 조직 내 모든 부서에서 표준화된 문서 관리로 업무 효율성 증대 데이터 구조 변경에 융통성 부여 데이터베이스 내의 자료 구조가 어떠한 이유로 변경되어도 사용자에 대한 영향은 거의 없음 응용 프로그램의 개발 시간 단축 응용 프로그램의 상당한 부분을 DBMS가 처리함
항상 최신의 정보를 제공 사용자 중에서 한 사람의 갱신으로 나머지 사람은 즉시 변경된 값을 접근가능 규모의 경제성 (economics of scale) 부서마다 다른 방식으로 자료를 관리하는 것보다 통합 DB로 관리하는 것이 전체적인 관점에서 저 비용임
1.7 데이터베이스 응용의 간략한 역사 데이터베이스를 사용한 응용개발 시작 1.7 데이터베이스 응용의 간략한 역사 데이터베이스를 사용한 응용개발 시작 계층 모델과 망 모델 등은 60년대 중반부터 80년대까지 주류를 이루었고, 현재에도 종종 사용됨 관계형 데이터베이스를 통하여 응용 유연성 확대 관계형 모델은 70년대 소개 이후, IBM과 세계 각 대학에서 연구되고 검증되어 왔으며, 80년대에 들어서 상용 DBMS가 등장함 객체 지향 응용 요구 등장 OODBMS는 80년대에 소개되어 CAD와 같은 복잡한 데이터 처리 응용에 사용됨
전자 상거래(E-Commerce)를 위한 웹 상의 데이터 교환 필요성 등장 HTML을 이용한 새 응용이 등장했으며, 최근에는 XML이 전자상거래를 위한 데이터 저장 및 자료 교환의 새로운 표준으로 자리잡고 있음 최근, 새로운 응용을 위한 데이터베이스 능력 확장 요구 과학 응용, 이미지, 오디오, 비디오 저장 관리, 시공간 데이터 관리 기술 등
1.8 데이터베이스를 사용하지 않아도 좋은 경우 DBMS를 사용하면 비용이 높아짐 언제 DBMS가 불필요한가? 1.8 데이터베이스를 사용하지 않아도 좋은 경우 DBMS를 사용하면 비용이 높아짐 높은 초기 투자 비용과 추가적인 하드웨어 필요함 데이터의 보안, 동시성 제어, 회복, 무결성 조건 등의 기능이 필요하지 않은 응용 – 오버헤드가 됨 언제 DBMS가 불필요한가? 데이터베이스와 응용이 단순하고 잘 정의되어 있으며, 변경될 가능성이 적을 경우 DBMS 오버헤드로 인하여 엄격한 실시간 데이터 처리 요구사항을 만족시키기 힘든 경우 다 사용자 데이터 접근이 필요하지 않은 경우