[수업출처] 숙명여자대학교 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 |