DB
[DB] 데이터베이스 개념
songu1
2023. 1. 30. 17:40
데이터베이스 기본 개념
- Data
- 기록될 수 있고 내포된 의미를 가지는 Known Facts
- fake data는 data가 아님
- Database
- 연관된 데이터의 조직화된 모임
- Database Management System (DBMS)
- DB를 관리하기위한 다양한 tool, 패키지, 프로그램
- 사용자가 데이터베이스를 생성하고 유지하는 것을 가능하게하는 소프트웨어 패키지/시스템
- EX) Oracle, MySQL 등
- Database System
- DB + DBMS (+ DB Applications)
- DB Applications : DB를 활용해서 사용
- DB + DBMS (+ DB Applications)
데이터베이스 접근의 대표적인 특성
(1) DB 시스템의 Self-describing 특성
- 스스로 기술할 수 있는 특성
- DB 시스템은 DB뿐만 아니라 DB Structure, types, constraints의 완전한 정의를 포함
- Catalog
- metadata라고 불리는 특정 DB의 description을 저장
- metadata : 데이터를 기술하는 데이터
- catalog 정보가 깨지면 데이터베이스가 망가짐 → 백업의 중요성
- metadata라고 불리는 특정 DB의 description을 저장
- 또 다른 테이블(relation)의 모음. 실제 데이터, 메타데이터 모두 테이블로 저장
더보기
💡 서로 다른 document 키 정보가 투명한 metadata를 서로 다 가지고 있음
→ 중복이 발생 → catalog안에 넣어놓음(내 record 정보 모두 알 수 있음)
(2-1) 프로그램과 데이터 사이의 Insulation (분리)
- Program-data independence 라고도 함
- 프로그램/데이터의 구조가 바껴도 데이터/프로그램에 영향 최소화
- 프로그램→데이터 / 데이터→프로그램
- DBMS 접근 프로그램을 바꾸는 것 없이 data structures와 storage를 바꿀 수 있음
- File-base System의 단점
- 데이터구조가 바뀌면 파일을 다루는 프로그램도 바꿔어야함
- 프로그램에서 액세스하는 파일의 구조가 변경되면 프로그램을 변경해야함
- →의존성 있음. 성능 낮음
(2-2) Data abstraction 데이터 추상화 = Data Model
- program-data와 program-operation 독립
- Data model의 비형식적 정의 : data abstraction의 종류
- 사용 이유
- storage detail을 숨기기위해
- DB의 conceptual view와 함께 사용자를 나타내기위해
- Application 프로그램은 data storage detail보다 data model 구성을 참조
(3) 데이터의 다중뷰(multiple views) 지원
- 각 사용자들은 DBMS의 서로 다른 view를 봄
- 각 사용자들은 해당 사용자가 관심있는 데이터만 볼 수 있음
- 권한 있는 사람만 볼 수 있도록 → 불필요한 권한 남용 막음
(4) Sharing of data와 multi-user transaction processing
- concurrent users 집합의 DB 검색 및 업데이트 허용(동시 다발적)
- DBMS 내의 **Concurrency control(동시성제어)**은 각 transaction이 정확하게 실행(normal)되거나 중단(abnormal)되는지 보증한다
- Transaction : DB 접근과 관련있는 일련의 statement들로 실행하는 프로그램, 프로세스
- ACID(Atomicity, Consistency, Isolation, Durability)를 충족해야함
- lock : 동일한 isolation에서 lock을 걸음 → 다른 사용자가 떠날 때까지 blocking
- Transaction : DB 접근과 관련있는 일련의 statement들로 실행하는 프로그램, 프로세스