DBMS실습(I) 데이터베이스 기본개념 2015년 1학기 동서울대학교 컴퓨터소프트웨어과
데이터 정의 데이터(資料 , data)란? 자료=재료=원료=자재 ▶ 현실세계(real-world)에 존재하는 유·무형의 실체(entity)를 ▷ 관찰하여 얻은 사실이나 측정하여 얻어진 결과 값을 ▶ 수치화, 문자화, 기호화하여 ▷ 문자열(character string)로 표현한 내용으로 ▶ 가공되지 않은 원천 데이터(source data)를 의미 특성 사실이나 값 방 법 명칭 책상 관찰한 내용 재질 나무 용도 사무 가로 170cm 측정한 내용 세로 80cm 높이 관찰 및 측정 대상 실체 데이터의 필요성(중요성) 정보처리(생성)를 위한 자료로 활용 데이터의 성질 →데이터 평가지표 원자성(atomicity) 단 하나의 의미만 포함 정확성(accuracy) 올바르게 관찰하고 측정하여 얻은 값 객관성(objectivity) 사람들이 보편 타당하게 동일한 내용으로 평가 적절성(relevance) 다른 데이터와 상호관련을 통하여 결합 2-18
정보의 정의 정보(情報, information)란? 정보의 필요성(중요성) 정보의 성질올바른 정보의 평가지표 ▶ 예전에 알지 못했던 사실이나 정황이 새롭게 알려진 내용 ▷ 데이터의 유용한 해석이나 상호관계 ▶ 새롭게 의미가 부여된 데이터 ▷ 특정 상황에서 가치가 평가된 데이터 ▶ 목적과 시점이 부여된 데이터 지혜 (응용력 있는 지식) 정보의 필요성(중요성) ▶ 의사결정(decision making)을 위한 판단 자료 -현안문제 해결의 열쇠 -최적의 상황판단을 위한 데이터 ▷ 지식의 습득 ▶ 지혜의 원천 경험, 지식 (목적이 부여된 정보) 정보 (목적.의미.시점 데이터) 데이터 (사실.값) 정보의 성질올바른 정보의 평가지표 현실성 현실상황을 반영한 사실적인 내용 필요성 의사결정에 반드시 필요한 내용 적시성 의사결정 시점에 발생한 내용 유효성 의사결정결과가 유용한 결과로 작용 3-18
데이터베이스의 필요성 데이터베이스의 출현배경 파일시스템 특징 ▶ 정보기술의 급속한 발전 ▷ 독립적인 데이터 관리 필요 (종속적인 데이터 관리 ×) ▶ 복잡하고 대용량화된 데이터의 효율적인 처리 ▷ 업무 통합화 요구 ▶ 데이터의 표준화 필요 ▷ 파일 시스템의 문제점 개선 파일시스템 특징 ▶ 운영체제에 의하여 저장관리 ▷ 사용의 편의성 ▶ 관리비용이 저렴 응용 프로그램1 인사 파일 응용 프로그램2 급여 파일 ▷ 파일시스템의 문제점 응용 프로그램3 판매 파일 - 데이터의 중복성 문제 - 데이터의 종속성 문제 - 데이터 소유자 문제 - 보안 문제 응용프로그램N 기타 파일 파일 시스템 4-18
데이터베이스의 필요성 파일 시스템의 정보처리 측면에 문제점 ▶ 데이터 중복성 문제 ▷ 데이터 종속성 문제 경제성(economics)의 문제 데이터 저장비용과 갱신비용 증가 일관성(一貫性, consistency)의 문제 데이터의 불일치성(모순성) 발생 무결성(無缺性, integrity)의 문제 데이터 부 정확성 발생 보안성(security)의 문제 동일 수준의 보안 유지가 어려움 데이터베이스의 일관성이 보장되면 무결성을 보장할 수 있는가? 무결성이 보장되면 일관성을 보장할 수 있는가? ▷ 데이터 종속성 문제 인사파일 성명: 홍길동 직급: 부장 소속: 영업부 홍길동의 직급은? 홍길동의 직급은 부장이다. 중복 데이터의 저장구조 및 조직이 변경되면 그를 이용하고 있던 응용 프로그램도 함께 수정해야 한다는 성질 -유지보수 비용 증가 -신뢰성 저하 급여파일 성명: 홍길동 직급: 과장 호봉: 10 홍길동의 직급은? 홍길동의 직급은 과장이다. ▶ 데이터 소유자 문제 정보손실 - 파일 동시 공유가 여러 움 - 실시간 정보처리 시스템에 적용이 곤란 응용프로그램 관계 ▷ 보안문제 파일 - 운영체제 측면의 보안 - 파일단위 보안 데이터베이스 5-18
데이터베이스의 정의 데이터베이스의 효시 데이터베이스의 정의 데이터베이스의 기본 요건 ▶ 1963년 GE사의 찰스 바흐만(Charles W. Bachman)이 ▶ IDS(Integrated Data Store)개발 Charles Bachman(1924~) 2012년 사진 데이터베이스의 정의 데이터베이스란 어느 한 조직의 여러 응용시스템들이 공동(shared)으로 사용할 수 있도록 통합(integrated), 저장(stored)된 운영(operational) 데이터의 집합(set) 공용 데이터(shared data)의 집합 실시간 접근성과 계속적인 변화 통합 데이터(integrated data)의 집합 데이터 중복 최소화로 불일치성 감소 저장 데이터(stored data)의 집합 실시간 접근성, 계속적인 변화에 동적으로 대처 운영 데이터(operational data)의 집합 데이터 완전성 데이터베이스의 기본 요건 한 조직에 고유기능을 수행하기 위하여 반드시 필요한 데이터가 저장되어 있어야 한다는 것으로 이것을 완벽화(exhaustion)이라고 함 응용 시스템 1 데이터베이스관리시스템 (DBMS) 인사 데이터 판매 데이터 응용 시스템 2 … 급여 데이터 응용 시스템 N 재고데이터 Edgar F. Codd(1923~2003) /Relational Model of Data 데이터베이스 6-18
데이터베이스의 특성 데이터베이스 특성 실시간 접근성(Real-time Accessibility) 원할 때 바로 접근해서 데이터를 처리 가능 계속적인 변화(Continuous Evolution) 삽입, 삭제, 갱신 작업으로 최신 데이터 유지 동시공유(Concurrent Sharing) 동일한 데이터를 여러 사람이 동시에 사용 내용에 의한 참조(Content Reference) 위치나 주소가 아닌 데이터 내용에 따라 참조 데이터베이스 실시간 접근성 사용자 내용에 의한 참조 계속적인 변화 동시공유 사용자 7-18
데이터베이스의 구성요소 개체(entity) ▶ 다른 것들과 특징적으로 구별되는 개념 ▷ 데이터베이스를 표현하는 유.무형의 정보단위 ▶ 사람이 생각하는 개념이나 정보의 단위 ▷ 하나의 이상의 속성으로 구성 ▶ 속성(attribute)은 개체의 특성(property)이나 상태를 기술 ▷ 속성이 갖는 값의 범위는 도메인(domain) 속성(attribute) →열(column) 개체(entity) →테이블(table) DEPT DEPTNO DNAME LOC 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON 릴레이션 스킴 (relation scheme) 터플(tuple) →행(row) 개체 어커런스 (entity occurrence) 영역(domain) 차수(degree) 하나의 개체(테이블)에 속한 속성(열)의 개수 기수(cardinality) 하나의 개체(테이블)이 가지고 있는 터플(행)의 수 8-18
데이터베이스의 구성요소 관계(relation) ▶ 개체와 개체들 사이에 관계 ▷ 저장된 데이터를 검색하는데 중요한 의미 ▶ 개체내의 속성관계는 묵시적으로 취급 ▷ 개체와 개체 사이의 개체관계는 명시적으로 취급 [EMP] EMPNO(PK) ENAME JOB MGR HIREDATE SAL COMM DEPTNO(FK) [DEPT] DEPTNO(PK) DNAME LOC PRIMARY KEY(PK) 같은 테이블에 속한 모든 컬럼의 값을 유일하게 결정할 수 있는 컬럼으로 개체무결성(entity integrity) 제약 조건이 성립 FOREIGN KEY(FK) 다른 테이블의 PK 컬럼에 존재하는 값만을 입력할 수 있는 컬럼으로 참조무결성(referential integrity) 제약 조건이 성립 9-18
데이터베이스 구조(1) 스키마(schema)? 데이터베이스 3단계 구조 데이터베이스의 전반적인 설계도면으로 그 데이터베이스의 구성요소인 개체(entity)와 개체들 사이에 관계(relation), 개체와 관계에 대한 속성, 그리고 데이터 조작 또는 이들 데이터 값들이 가지는 제약조건을 명세화한 것 데이터베이스의 정보 표현 요소인 개체(Entity) 개체와 개체 사이에 관계(Relation) 개체와 관계의 특성(property)을 나타내는 속성(Attribute) 개체와 관계의 값들의 무결성을 보장하기 위한 각종 제약조건(Constraints) 데이터베이스 3단계 구조 외부 스키마 (external schema) 사용자나 응용 프로그래머가 접근할 수 있는 데이터베이스를 정의하는 것으로 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브스키마(subschema), 혹은 뷰 스키마(view schema)라고도 한다. 개념 스키마 (conceptual Schema) 데이터베이스 전반적인 논리적인 구조를 명세화 하는 것으로 개체간의 관계와 제약조건을 묘사하고 데이터베이스의 접근 권한, 보안 및 무결성 규칙을 명세화 한다. 내부 스키마 (internal schema) 실제 데이터를 저장장치에 저장하는 방법과 규칙을 명세화 하는 것으로 개념스키마의 물리적인 저장구조에 대한 정의를 기술한다. 10-18
데이터베이스 구조(2) 외부/개념 사상 3단계 데이터베이스 구조 (응용 인테페이스) 각 단계 사이의 사상 개념/내부 사상 외부 스키마 1 외부 스키마 2 외부 스키마 N … 외부/개념 사상 3단계 데이터베이스 구조 (응용 인테페이스) 각 단계 사이의 사상 개념 스키마 (Conceptual Schema) 개념/내부 사상 (저장 인테페이스) 내부 스키마 (Internal Schema) 데이터베이스 11-18
데이터베이스 관리시스템(DBMS) (1) DBMS의 기능 DBMS의 장점 및 단점 ○ 데이터베이스관리시스템(database management system: DBMS)의 역할 정의기능 하나의 저장형태로 여러 사용자의 통일된 사용을 지원하기 위하여 데이터 모델, 접근방법, 제약조건을 정의 ◦다양한 응용프로그램과 데이터베이스가 서로 의사소통을 할 수 있는 방법제공 ◦데이터의 논리적인 구조와 물리적인 구조의 사상(mapping)을 명세 조작기능 체계적인 처리를 위한 데이터의 접근지원(검색, 갱신, 삽입, 삭제)으로 사용자와 데이터베이스 사이에 의사소통을 위한 수단 제공 제어기능 데이터의 정확성과 안정성을 유지하는 기능 ◦무결성(integrity):- 데이터가 결함이 없이 정확하게 유지 ◦보안(security):- 불법적인 데이터 접근 차단 ◦병행수행 제어(concurrency control):- 트랜잭션의 병행 수행 ◦회복(recovery):-장애 발생 시 원상 복귀 DBMS의 장점 및 단점 장점 단점 ▶ 데이터의 표준화 실현 ▷ 사용자의 편의성 제공 ▶ 데이터 중복을 최소화 ▷ 데이터 공동 이용 ▶ 데이터 일관성 및 무결성 보장 ▷ 데이터 복구 및 보안 ▶ 일관된 사용방법 제공 ▶ 운영비의 부담 ▷ 자료처리 방법이 복잡 ▶ 데이터 백업 및 복구에 어려움 ▷ 시스템에 취약성 존재 12-18
데이터베이스 관리시스템(DBMS) (2) DBMS의 구성 DBMS의 분류 트랜잭션(transaction: 거래) 응용 프로그램 SQL ▶ 쿼리관리(query management) ▷ 트랜잭션 관리(transaction management) ▶ 고장복구관리(crash recovery management) ▷ 저장관리(storage management) 질의관리 실행계획 질의 파싱 DBMS의 분류 ▶ 데이터 모델에 따라 분류 -계층 데이터 모델 -네트워크 데이터 모델 -관계 데이터 모델 -객체지향형 데이터 모델 ▷ 성능에 따라 분류 ▶ 가격에 따라 분류 연산해석 질의 최적화 트랜잭션 관 리 파일 접근 방법 복구관리 버퍼 관리 저장관리 트랜잭션(transaction: 거래) [DBMS] 데이터베이스로부터 값을 검색하기 위한 읽기 연산과 데이터베이스에 값을 변경하기 위한 쓰기 연산의 집합을 추상화 한 것 데이터사전 인덱스 데이터 데이터베이스 데이터 사전(data dictionary : DD) 데이터베이스 객체(테이블, 뷰, 트리거, 프로시저 등)정보를 기록한 메타 데이터의 집합 13-18
데이터 관리 모델 논리적 데이터 모델의 종류 학번 교과번호 ….. 성명 지도교수 .. 과목명 학점 수 ... 교수 명 전공 관계 데이터 모델(Relational Data Model) 행과 열로 구성된 테이블 구조 네트워크 데이터 모델(Network Data Model) 오너-멤버(owner-member)관계의 그래프 구조 계층 데이터 모델(Hierarchical Data Model) 부자(parent-child)관계의 트리 구조 객체지향 데이터 모델 (Object-Oriented Data Model) 객체, 메서드, 클래스의 계층구조, 복합객체로 구성된 그래프 구조 학번 교과번호 ….. 성명 지도교수 .. 과목명 학점 수 ... 교수 명 전공 학번 성명 교과번호 과목명 학번 교과번호 ... Methods 수강신청 … Attributes: 학번 교과번호 …. Hidden Behaviors [관계 데이터 모델 : 테이블 구조] [계층 데이터 모델 : 트리(tree) 구조] 학번 교과번호 신청일 성명 과목명 ... 교수 명 ….. 전공 지도교수 [겍체지향 데이터 모델 : 그래프(graph) 구조] [네트워크 데이터 모델 : 그래프(graph) 구조] 14-18
데이터 언어(data language) 데이터 언어 종류 SQL(Structured English Query Language) 데이터 정의어, DDL (data definition language) 데이터베이스의 정의 및 수정을 목적으로 사용하는 언어 ◦논리적 데이터 구조 정의 ◦물리적 데이터 구조 정의 ◦논리적 데이터 구조와 물리적인 데이터 구조 간에 사상 정의 데이터 조작어, DML (data manipulation language) 사용자와 DBMS 사이에 인터페이스를 제공하는 것으로 검색, 추가, 삭제, 갱신 등을 위한 언어 ◦절차적 데이터 언어 ◦비절차적 데이터 언어 데이터 제어어, DCL (data control language) 데이터베이스를 공용하기 위한 데이터 제어를 정의하고 기술하는 언어 ◦데이터 보안(GRANT/REVOKE) ◦데이터 무결성(COMMIT/ROLLBACK/SAVEPOINT) ◦데이터 회복(ROLLBACK) ◦데이터 병행수행 SQL(Structured English Query Language) ANSI 국제 표준 데이터베이스 질의어 1970년 초 미 IBM에 의하여 SEQUEL 개발 1992년 SQL2 발표 관계대수 및 관계 해석의 복합형식 15-18
데이터베이스 구조적 질의어 SQL(Structured English Query Language) 명령어 종류 16-18
데이터베이스 시스템 데이터베이스 시스템 구성 데이터베이스 사용자 그룹 ▶ 데이터베이스 ▷ 데이터베이스관리시스템 ▶ 컴퓨터시스템 ▷ 데이터베이스사용자 일반 사용자 응용 프로그래머 데이터베이스 관리자 데이터베이스관리시스템 메터 데이터 저장 데이터 데이터베이스 데이터베이스 사용자 그룹 일반 사용자 비절자적 데이터 조작어(DML)를 통하여 데이터베이스에 접근 응용 프로그래머 호스트 프로그래밍 언어에 데이터 조작어를 삽입시켜 데이터베이스에 접근 데이터베이스관리자 데이터 정의어(DDL)와 데이터 제어어(DCL)을 통해 데이터베이스를 정의하고 제어 17-18
데이터베이스 관리자 데이터베이스 관리자(DBA)의 역할 데이터베이스 설계와 운영 ◦ 데이터베이스의 구성요소를 결정 ◦ 데이터베이스 스키마 정의 ◦ 저장구조와 접근방법 설정 ◦ 새로운 사용자 생성 및 제거 ◦ 보안정책 수립 → 권한부여, 유효성 검사 ◦ 예비조치와 회복(recovery)에 대한 정책수립 ◦ 데이터베이스 무결성(Integrity) 유지 ◦ 성능향상과 새로운 요구에 대응한 재구성 ◦ 데이터사전 유지관리 행정 및 불평 해결 ◦ 데이터의 표현과 시스템의 문서화에 있어서 표준을 설정 ◦ 사용자의 요구 및 불평을 해결 시스템 감시 및 성능분석 ◦ 시스템의 자원 이용도, 병목현상 조사 ◦ 장비 및 시스템 성능을 감시 ◦ 사용자 요구의 변화, 데이터 사용 추세, 각종 통계 등을 분석 18-18