Databases and Database Users CHAPTER 1 Databases and Database Users
OUTLINE Types of Databases and Database Applications Basic Definitions Typical DBMS Functionality Example of a Database (UNIVERSITY) Main Characteristics of the Database Approach Types of Database Users Advantages of Using the Database Approach Historical Development of Database Technology Extending Database Capabilities When Not to Use Databases
데이터베이스와 데이터베이스 응용들의 종류 전통적인 응용분야: 최신 응용 분야: 책의 앞부분에는 전통적인 응용에 집중 Numeric and Textual Databases 최신 응용 분야: Multimedia Databases Geographic Information Systems (GIS) Biological and Genome Databases Data Warehouses Mobile databases Real-time and Active Databases 책의 앞부분에는 전통적인 응용에 집중 책의 후반부에서 최신 응용 분야에 대해 설명 (for example, Chapters 24,25,26,27,28,29)
최신 기술 (1) 소셜 네트워크들이 사람들 사이의 정보와 사람들의 게시글, 트위트, 사진, 동영상 등의 많은 정보를 제공하고 있음: - 페이스북 - 트위터 - 링크드인 이 소셜 네트워크들은 모두 데이터로 구성됨 검색 엔진 - Google, Bing, Yahoo : 검색 서비스를 위해 웹 페이지들에 대한 자신들의 데이터를 수집함
최신 기술 (2) 최신 기술들은 웹에서 생성된 방대한 양의 데이터를 관리하기 위해 소위 데이터베이스 소프트웨어 업체가 아닌 업체들에서 개발 분산 컴퓨터들의 대용량 클러스터를 포함하는 빅데이터 저장 시스템 (Chapter 25) NOSQL (Not Only SQL) systems (Chapter 24) “클라우드“ 상에서 저장된 많은 양의 데이터가 있음, “클라우드"는 수천개의 컴퓨터를 사용하는 거대한 데이터 센터임.
Basic Definitions Database: 관련있는 데이터들의 모임. Data: 묵시적 의미를 갖는 기록된 알려진 사실. Mini-world: 데이터가 데이터베이스에 저장된 실세계의 일부분. 예, 대학교에서 학생 학년과 성적표. Database Management System (DBMS): 컴퓨터에서 데이터베이스의 생성과 관리를 지원하는 소프트웨어 패키지/시스템. Database System: 데이터와 이를 관리하는 DBMS 소프트웨어를 합쳐서 부르는 용어. 종종 응용 (프로그램)도 포함됨.
데이터베이스와 데이터베이스 기술의 영향 (응용 분야) 업무용 Businesses: Banking, Insurance, Retail, Transportation, Healthcare, Manufacturing 서비스 분야: Financial, Real-estate, Legal, Electronic Commerce, Small businesses 교육 : Resources for content and Delivery 최신 응용: Social Networks, Environmental and Scientific Applications, Medicine and Genetics 개인화된 응용: based on smart mobile devices
데이터베이스 시스템 환경 개요
핵심 DBMS 기능 특정 데이터베이스의 데이터 타입, 구조, 제약조건을 정의하기 특정 데이터베이스의 데이터 타입, 구조, 제약조건을 정의하기 보조기억장치에 초기 데이터베이스 내용을 구축 또는 적재하기 데이터베이스를 조작하기: 검색: 질의/조회, 보고서 생성 수정: Insertions, deletions and updates to its content 웹 응용을 통해 데이터베이스를 접근(이용) 여러 동시 사용자와 응용 프로그램들이 데이터의 정당성과 일관성을 보장하면서 처리 및 공유하기 에 의해 처리 및 공유하기
데이터베이스에 대한 응용의 동작들 응용들은 아래 동작을 생성하여 데이터베이스와 상호 작용함 - 질의: 데이터의 여러 부분을 접근하고 해당 요청의 결과를 구성함 - 트랜잭션: 어떤 데이터를 읽고, 데이터를 “갱신"하거나 새로운 데이터를 생성하고 이를 데이터베이스에 저장함 응용은 권한이 없는 사용자들이 데이터를 접근하지 않도록 해야 함 응용은 데이터베이스에 대한 사용자 요구 사항의 변화를 반영해야 함
추가적인 DBMS 기능 DBMS는 아래 추가적인 기능을 제공할 수 있음: 권한없는 접근을 방지하는 보호 또는 보안 기법 데이터에 대한 내부 동작을 처리하는 “능동적인” 처리 데이터의 표현 및 시각화 데이터베이스 응용의 생명주기 동안에 데이터베이스와 관련 프로그램들의 유지보수 데이터베이스, 소프트웨어, 및 시스템 유지보수라 불림
예제 데이터베이스 (with a Conceptual Data Model) Mini-world for the example: Part of a UNIVERSITY environment. Some mini-world entities (엔터티/개체): 학생 STUDENTs 과목 COURSEs 강좌 SECTIONs (of COURSEs) 학과 (academic) DEPARTMENTs 강사 INSTRUCTORs
예제 데이터베이스 (with a Conceptual Data Model) Some mini-world relationships(관계): 강좌 SECTION는 특정 과목 COUSE에 속한다 학생 STUDENT은 강좌 SECTION를 수강한다 과목 COURSE은 선수 과목을 갖는다 강사 INSTRUCTOR는 강좌 SECTION를 강의한다 과목 COURSE은 학과 DEPARTMENT 에서 제공한다 학생 STUDENT은 학과 DEPARTMENT를 전공한다 Note: 위 엔터티와 관계들은 개체-관계(ENTITY-RELATIONSHIP 데이터 모델 (see Chapters 3, 4)이라는 개념적 데이터 모델에서 표현한 것이다.
간단한 예제 데이터베이스
데이터베이스의 주요 특징 데이터베이스 시스템의 자기 기술성(Self-describing) 프로그램과 데이터의 분리: DBMS catalog는 특정 데이터베이스에 대한 설명(예, 자료 구조, 타입, 제약조건 등)을 저장함 이 설명을 메타 데이터 meta-data*라고 부름. 이 카탈로그는 DBMS 소프트웨어가 여러 다른 데이터베이스 응용들과 동작하도록 지원함. 프로그램과 데이터의 분리: 프로그램-데이터 독립성이라 부름. DBMS를 접근하는 프로그램을 바꾸지 않고 자료 구조와 저장 방식을 변경할 수 있음. ----------------------------------------------------------------------------- * 일부 NOSQL 시스템과 같은 일부 최신 시스템들은 메타 데이터를 필요로 하지 않음: 데이터 정의를 데이터 안에 저장하여 자기 기술성을 제공함
간단한 데이터베이스 카탈로그 예제
데이터베이스의 주요 특징 (continued) 데이터 추상화 Data Abstraction: 데이터 모델 data model은 저장의 상세 사항을 숨기고 사용자들에게 데이터베이스의 개념적인 뷰를 제공하는데 사용됨. 프로그램들은 저장 구조의 상세 사항 대신에 데이터 모델의 구조물들을 사용함. 데이터에 대한 다중 뷰 지원: 각 사용자들은 자신이 관심있는 데이터만 설명하는 데이터베이스의 서로 다른 뷰를 볼 수 있음.
데이터베이스의 주요 특징 (continued) 데이터의 공유와 다중 사용자 트랜잭션 처리: 여러 동시 사용자들 concurrent users 이 데이터베이스를 검색하고 갱신할 수 있음. 각 트랜잭션 transaction이 정확하게 실행되거나 중지되도록 보장하는 동시성 제어 기능이 DBMS내에 제공됨 완료된 트랜잭션이 그 결과가 데이터베이스내에 영구적으로 저장되도록 보장하는 회복 Recovery 부시스템이 제공됨 온라인거래처리 OLTP (Online Transaction Processing)는 주요 데이터베이스 응용 분야임. 이것은 초당 수백개의 동시 트랜잭션을 실행함.
데이터베이스 사용자 사용자 분류 데이터베이스 내용을 실제로 사용하고 제어하는 사람들, 또 데이터베이스 응용을 설계하고, 개발하고, 유지보수 하는 사람들 (“무대위의 배우들”이라 부름) DBMS 소프트웨어와 관련 도구들을 설계하고 개발하는 사람, 또 컴퓨터 시스템 작동자들 (“무대 뒤의 작업자들”이라 부름).
데이터베이스 사용자 – 무대위의 배우들 무대위의 배우들 데이터베이스 관리자 Database administrators: 데이터베이스 접근 권한 관리, 데이터베이스 사용의 조정 및 관찰, 소프트웨어와 하드웨어 구입, 데이터베이스 사용의 조정 및 동작의 효율을 관찰 데이터베이스 설계자 Database Designers: 데이터베이스의 구조, 제약조건, 함수 또는 트랜잭션들을 정의. 최종 사용자와 대화하고 이들의 요구를 이해해야 함.
데이터베이스 최종 사용자 무대위의 배우들 (continued) 최종 사용자 End-users: 데이터에 대한 검색, 보고서 작성, 데이터베이스 내용을 갱신함. 최종 사용자는 다음과 같은 종류로 분류됨: 캐쥬얼(자유식) Casual: 데이터베이스를 필요할 때마다 비정기적으로 접근함 초보 Naïve 또는 파라메트식(고정식) Parametric: 많은 최종 사용자들이 여기에 해당됨. 데이터베이스에 대한 “포장된 트랜잭션“ 형태로 미리 잘 정의된 함수를 사용함. 모바일 앱 사용자들이 주로 이 유형에 속함 은행원 또는 예약 담당자는 자신의 고정된 작업을 수행하는 파라메트식 사용자들임 소셜 미디어 사용자들은 웹사이트에서 정보를 올리거나 읽는 (정리 제공된 기능을 사용하여) 작업을 수행함
데이터베이스 최종 사용자(continued) 정교한 Sophisticated: 비즈니스 분석가, 과학자, 엔지니어 및 시스템 기능을 잘 할고있는 사람들이 해당됨. 많은 경우, 저장된 데이터베이스와 밀접하게 작동하는 소프트웨어 패키지 형태의 도구를 사용함. 독립형 Stand-alone: 주로, 즉시 사용가능한 패키지 응용 프로그램을 사용하여 개인용 데이터베이스를 유지 관리함. 자신의 내부 데이터베이스를 생성하는 세금 프로그램을 사용하는 사용자가 이 예에 해당함. 개인 사진이나 비디오를 유지 관리하는 사용자도 이 예에 해당함.
데이터베이스 사용자 – 무대위의 배우들 (continued) 시스템 분석가 및 응용 프로그램 개발자 System Analysts and Application Developers 시스템 분석가 System Analysts: 초보 naïve 및 정교한 사용자들의 요구사항을 이해하고, 이들 요구 사항을 처리할 포장된 트랜잭션을 포함한 응용 프로그램을 설계함. 응용 프로그램 개발자 Application Programmers: Implement 분석가들이 개발한 명세를 구현하고, 테스트 및 디버깅을 실행함. 비즈니스 분석가 Business Analysts: 계획, 광고, 마케팅 등과 관련된 의사결정을 개선하기 위해 방대한 양의 비즈니스 데이터 및 실시간 데이터 (“빅데이터“)를 분석함.
데이터베이스 사용자 – 무대뒤의 작업자들 시스템 설계자 및 개발자 System Designers and Implementors: 모듈 및 인터페이스 형식으로 DBMS 패키지를 설계 및 구현하고 테스트 및 디버깅 함. DBMS는 응용 프로그램, 컴파일러, 운영체제 구성요소 등과 상호 인터페이스해야 함. 도구 개발자 Tool Developers: Design 데이터베이스 모델링 및 설계, 성능 모니터링, 프로토타이핑, 테스트 데이터 생성, 사용자 인터페이스 생성, 시뮬레이션등과 같이 응용 프로그램을 개발하거나 데이터베이스를 효율적으로 사용하도록 도와주는 도구들을 개발함. 운영자 및 유지보수 인력 Operators and Maintenance Personnel: They 데이터베이스 시스템 하드웨어 및 소프트웨어 환경을 실제로 운영하고 유지 관리함.
데이터베이스 사용의 장점 데이터 저장 및 개발과 유지보수 노력의 중복을 제어함. 다중 사용자들 간에 데이터 공유. 데이터에 대한 무단 접근을 방지(보안). DBA 요원만 권한 관리 명령과 기능을 사용함. 프로그램 객체에 대한 영구적인 저장을 제공함. E.g., 객체지향 DBMS는 프로그램 객체를 영구적으로 저장함 – 12장 참조. 효율적인 질의 처리를 위한 저장 구조들 (예. 인덱스)을 제공함 – 17장 참조
데이터베이스 사용의 장점 (continued) 효율적인 처리를 위한 질의 최적화 기능 제공. 백업과 회복 기능 제공. 서로 다른 사용자 계층들에 여러 인터페이스 제공. 데이터들 사이의 복잡한 관계를 표현. 데이터베이스에 대한 무결성 제약조건 integrity constraints 시행. 연역적이고 능동적인 규칙 및 트리거를 사용하여 저장 데이터에 대한 추론 및 동작 실행.
데이터베이스 사용의 추가적인 효과 표준화 추진 가능: 응용 프로그램 개발 시간 단축: 대규모 조직에서 데이터베이스 응용 프로그램의 성공에 매우 중요한 요소임. 표준화는 데이터 항목 이름, 표시 형식, 화면, 보고서 구조, 메타 데이터(데이터의 설명), 웹페이지 레이아웃 등을 대상으로 함. 응용 프로그램 개발 시간 단축: 새로운 응용 프로그램을 추가하는 시간이 줄어듬.
데이터베이스 사용의 추가적인 효과 (continued) 데이터 구조를 변경하는 융통성: 새로운 요구 사항의 정의에 맞게 데이터베이스 구조를 자유롭게 변경할 수 있음. 정보를 동시에 이용: 온라인 쇼핑 또는 항공, 호텔, 및 자동차 예약과 같은 온라인 트랜잭션에 매우 중요한 기능임. 규모의 경제성: 전체 부서들에 걸쳐 데이터와 응용 프로그램을 통합함으로써 자원과 인력의 낭비를 줄일 수 있음.
데이터베이스 기술의 개발 역사 Early Database Applications: The Hierarchical and Network Models were introduced in mid 1960s and dominated during the seventies. A bulk of the worldwide database processing still occurs using these models, particularly, the hierarchical model using IBM’s IMS system. Relational Model based Systems: Relational model was originally introduced in 1970, was heavily researched and experimented within IBM Research and several universities. Relational DBMS Products emerged in the early 1980s.
데이터베이스 기술의 개발 역사 (continued) Object-oriented and emerging applications: Object-Oriented Database Management Systems (OODBMSs) were introduced in late 1980s and early 1990s to cater to the need of complex data processing in CAD and other applications. Their use has not taken off much. Many relational DBMSs have incorporated object database concepts, leading to a new category called object-relational DBMSs (ORDBMSs) Extended relational systems add further capabilities (e.g. for multimedia data, text, XML, and other data types)
데이터베이스 기술의 개발 역사 (continued) Data on the Web and E-commerce Applications: Web contains data in HTML (Hypertext markup language) with links among pages. This has given rise to a new set of applications and E-commerce is using new standards like XML (eXtended Markup Language). (see Ch. 13). Script programming languages such as PHP and JavaScript allow generation of dynamic Web pages that are partially generated from a database (see Ch. 11). Also allow database updates through Web pages
데이터베이스 기능의 확장 (1) New functionality is being added to DBMSs in the following areas: Scientific Applications – Physics, Chemistry, Biology - Genetics Earth and Atmospheric Sciences and Astronomy XML (eXtensible Markup Language) Image Storage and Management Audio and Video Data Management Data Warehousing and Data Mining – a very major area for future development using new technologies (see Chapters 28-29) Spatial Data Management and Location Based Services Time Series and Historical Data Management The above gives rise to new research and development in incorporating new data types, complex data structures, new operations and storage and indexing schemes in database systems.
데이터베이스 기능의 확장 (2) Background since the advent of the 21st Century: First decade of the 21st century has seen tremendous growth in user generated data and automatically collected data from applications and search engines. Social Media platforms such as Facebook and Twitter are generating millions of transactions a day and businesses are interested to tap into this data to “understand” the users Cloud Storage and Backup is making unlimited amount of storage available to users and applications
데이터베이스 기능의 확장 (3) Emergence of Big Data Technologies and NOSQL databases New data storage, management and analysis technology was necessary to deal with the onslaught of data in petabytes a day (10**15 bytes or 1000 terabytes) in some applications – this started being commonly called as “Big Data”. Hadoop (which originated from Yahoo) and Mapreduce Programming approach to distributed data processing (which originated from Google) as well as the Google file system have given rise to Big Data technologies (Chapter 25). Further enhancements are taking place in the form of Spark based technology. NOSQL (Not Only SQL- where SQL is the de facto standard language for relational DBMSs) systems have been designed for rapid search and retrieval from documents, processing of huge graphs occurring on social networks, and other forms of unstructured data with flexible models of transaction processing (Chapter 24).
DBMS를 사용할 필요가 없는 경우 DBMS 초기 도입 비용 (부담): DBMS가 필요없는 경우: 초기 투자 비용이 높고 추가 하드웨어가 필요함. 범용성, 보안, 동시성 제어, 회복, 및 무결성 기능을 제공하기 위한 오버헤드. DBMS가 필요없는 경우: 데이터베이스와 응용 프로그램이 단순하고 잘 정의되어 있으며 변경이 없는 경우. 여러 사용자들이 데이터를 접근하지 않는 경우. DBMS 사용이 불가능한 경우: 내장 시스템과 같이, 범용 DBMS를 설치할 충분한 저장공간이 없는 경우.
DBMS를 사용할 필요가 없는 경우 DBMS로 만족시키기 어려운 경우: 모델링의 한계로 복잡한 데이터 (예. 복잡한 게놈 및 단백질 데이터베이스)를 처리할 수 없는 경우. 데이터베이스 사용자가 DBMS에서 지원하지 않는 특수한 연산 (예. GIS 및 위치 기반 서비스)을 필요로 하는 경우.
Chapter Summary Types of Databases and Database Applications Basic Definitions Typical DBMS Functionality Example of a Database (UNIVERSITY) Main Characteristics of the Database Approach Types of Database Users Advantages of Using the Database Approach Historical Development of Database Technology Extending Database Capabilities When Not to Use Databases