[수업출처] 숙명여자대학교 IT공학전공 박영호 교수님 수업 '데이터베이스'

 

1. 데이터베이스 시스템 개략도

사용자 질의(Query) ↔ DB 컴퓨터 [질의 언어 처리(Query Processor) ↔ DBMS 관리기 ↔ 데이터베이스] → 결과 도출

 

2. 스키마와 인스턴스

- 스키마 schema: 데이터베이스에 저장되는 데이터의 구조 및 유형을 정의하는 것. 데이터베이스의 전체적인 정의

    → 메타데이터

    → DDL로 정의

    → DBMS 관리 하의 디스크 카탈로그에 존재

 

- 인스턴스 instance: 데이터베이스에 저장되는 실제 값

    → 저장데이터

    → 하드 디스크의 DB 내에 존재

 

 

3. 기본 정의

- Database: 연관된 데이터들의 모음

- Data: 기록될 수 있는, 어떤 묵시적인 의미를 가지고 있는 알려진 사실들

- Mini-world: Real-world의 부분. 실제 세상 데이터 중에 특정 일부분을 데이터베이스에 저장하고, 이를 Mini-world라 한다.

- Database Management System(DBMS): 데이터베이스들을 관리하는 소프트웨어 패키지

 

4. 데이터를 저장하는 두가지 방법

1) 파일 시스템에 저장

    - 파일에 데이터 저장

    - 순차적, 비순차적 파일 구조를 가짐

    - 데이터에 대한 정보는 파일 자체에 내장되어 있음. 일단 파일을 읽어야 함.

 

2) 데이터베이스 시스템에 저장

    - 파일에 데이터 저장

    - 파일에 대한 설명서인 '스키마'를 가짐. 스키마는 카탈로그에 존재

    - 스키마를 통해 데이터 구조를 먼저 파악하고 데이터에 접근

 

가장 큰 차이점: 카탈로그의 존재 유무

 

5. 데이터베이스 기술의 주요 특징

1) 자기 기술성 Self-contained nature

    - 카탈로그라는 메타 데이터가 있어 데이터베이스를 설명해줌

    - 메타 데이터는 하나의 DBMS SW를 다른 데이터 환경인 다른 DB들에서도 동작하게 해주는 다리 역할을 함

    - DB가 변경되는 경우 DBMS는 메타 데이터만 바꾸어주면 됨

 

2) 프로그램과 데이터 간의 분리 Insulation 

    - program-data independence

    - 서로 독립적임

    - 데이터의 format을 바꾸어도 프로그램은 바뀌지 않음

 

3) 데이터 추상화 Data Abstraction

    - 일반 사용자는 데이터의 위치 location까지 정확히 알 필요 없음

    - 데이터 모델은 그 detail을 감추고자 할 때 사용되며, 데이터베이스의 'conceptual view'만 사용자들에게 보여주는 기능

 

4) 같은 데이터에 대한 다중 관점 Multiple View 지원

    - 같은 데이터에 대해 얻고자 하는 관점이 모두 다름

    - 각 사용자는 그 DB의 각기 다른 view만을 보고자 함 → 원하는 데이터만 기술해줌

 

5) 추가적인 특징

    - data storage 내의 중복 redundancy를 최대한 없애고, 개발과 유지 보수 노력 줄여줌

    - multiple user간의 데이터 공유

    - 다중 동시 접근에 대한 동시성 제어 concurrency control

    - 데이터의 unauthorized access 막음 -> view

    - 다양한 클래스의 사용자들을 위한 다중 interface 지원

    - 데이터 간의 복잡한 관계성 표현 -> entitiy, relationship

    - 제약사항을 넣어두면 DB는 항상 무결성 integrity constraint를 확인

    - backup, recovery services 제공

    - standards 유지

    - 프로그램에 영향 없이 자료구조 변경 가능

    - 응용 개발 시간 줄여줌

    - 항상 최신 정보를 동시에 얻을 수 있음 (Availability of up-to-date information)

    - 대형 시스템을 만들 때에도 DBMS로 다룰 수 있음 (Economies of scale)

 

6. Database Users

1) Workers on the scene

    - 방대한 데이터베이스를 매일 사용하는 사람들

    - Database administrators (DBAs): 설계된 데이터베이스 관리하는 책임자

    - Database designers: 데이터베이스 설계자

    - System analysts/application programmers: 응용 프로그래머 ('caned transactions' 구현)

    - End users

        - querying, updating, report 생성을 위해 데이터 베이스 사용

        - casual end users데이터베이스를 종종 사용하지만, DB에 접근할 때는 관리자등의 새로운 정보가 필요

        - Parametric end users: DBMS에 대한 지식은 없지만 일상 생활에서 데이터베이스 자주 사용. 'canned transactions' 사용

 

2) Workers behind the scene

    - DBMS SW 패키지를 만들거나 design, development, operation, maintenance하는 프로그램 전문가들

    - DBMS designers and implementers: DBMS SW 패키지 설계 및 구현

    - Tool developers: DBMS SW 사용을 돕는 도구 설계 및 구현 - design tool, performance tool, special interfaces, etc.

    - Operators and maintenance person: 데이터베이스 시스템의 하드웨어 및 소프트웨어 환경 실행 및 유지 관리 작업

  

7. DBMS를 사용하지 않는 경우

    - 초기 구입 비용이 크고, 추가적인 하드웨어가 필요한 경우가 있음

    - generality, security, recovery, integrity, concurrency control을 지원하기 위해 연산 overhead 비용이 들 수 있음

    - 데이터베이스가 간결하고, 잘 정의되어 있으며 자주 구조가 변하는 경우엔 DBMS를 사용할 필요가 없음

    - 혼자 사용하는 경우에도 사용할 필요 없음

'Database > SQL' 카테고리의 다른 글

[SQL] CH01 - 15  (2) 2022.11.17
[Lecture] 2. DBMS 개념과 아키텍쳐  (0) 2022.03.21
[MySQL] SQL 옵티마이저  (0) 2021.01.18
[MySQL] 데이터 제어어 : DCL  (0) 2021.01.18
[MySQL] Titanic 예제  (0) 2021.01.11

+ Recent posts