일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- spring security
- Google OAuth
- Volatile
- Spring
- 일급 컬렉션
- lombok
- synchronized
- 일급 객체
- middleware
- OAuth 2.0
- builder
- nestjs
- Dependency Injection
- factory
- java
- Today
- Total
HJW's IT Blog
Database: 1주차 본문
Chapter 1: DB & DB Users
# 기초 개념
- Data: 기록될 수 있는 명시적 정보
- Database: 서로 연관되어 있는 data 의 집합
- Mini-World: DB 에 저장되어 있는 현실의 정보
- Database Management System(DBMS): Database 를 관리하기 위한 sw 시스템
# Database 의 특성
- 현실을 어느정도 반영한다 (Mini World)
- 논리적으로 연과노딘 데이터의 집합
- 특정 목적을 가져 설계된다
# DBMS
- 사용자들이 DB를 생성 및 유지보수할 수 있도록 하는 프로그램들
- Defining, Constructing, Manipulating, Sharing, Protecting, Maintaining
# DB Approach vs. File-processing Approach (DB approach 장점)
- Self - describing
> DB system은 다음을 포함한다
>> DB 그 자체
>> DB 구조와 제약에 대한 정의 (system catalog)
> Catalog 는 DBMS 와 DB users 가 사용
>> 이는 DBMS sw 가 여러 다른 DB에서 작동할 수 있도록
>> Traditional File processing 에서는 data 정의가 appliction program에 포함되었음
- Program, data, data abstraction 사이의 단열재 역할
> Program-Data Independence
>> 데이터 저장 구조와 동작을 DBMS program 을 바꾸지 않고 바꿀 수 있다
> Program-Operation Independence
>> 동작은 객체지향적, 객체연관적 DB에 정의
>>> Interface: 동작 이름 & Data types
>>> Implementation: Interface에 영향을 주지않고 변경 가능
> Data Abstraction
>> Data Model 을 이용해 저장 세부사항을 숨긴다
>> Data Model 은 논리적 concept를 사용하는데, 이는 objects, objects 의 properties, objects 사이의 연관성등
- Support multiple views of data
> 각 사용자는 DB의 다른 view를 가질 수 있다. (각자가 필요한 정보만 제공)
>> subset of DB
>> DB 에서 뽑아온 가상의 data
> Multiuser DBMS는 multiple view에 대한 정의가 필요
- Data 의 공유 & multiuser transaction
> 여러 사용자들이 동시에 DB access
>> Concurrency control
- 몇몇 사용자들이 같은 data를 동시에 update 하려한다면, update 가 올바르도록 control
>> Most important Characteristics
> Transaction
>> DB access를 한개 이상 포함한 프로그램의 실행 (ex. reading / updating DB records)
>> DBMS 는 다음 transaction properties를 포함해야 한다
- isolation & atomicity
# Actors on the Scene
> Database Administrator (DBA)
>> 전체 리소스를 관리
>> 다음 사항에 대한 책임자
>>> DB 접근 권한
>>> 사용에 대한 모니터링
>>> 필요한 SW 와 HW resources
> DB Designers
>> 적절한 DB 구조를 설계
> End Users
> System Analysts and Application Programmers
# Workers Behind the Scene
> DBMS system designers and implementers
>> DBMS 모듈과 인터페이스를 sw 페키지로 design & implement
> Tool Developers
>> DB system design 과 성능 향상을 위한 도구를 설계 / 재작
> Operators and Maintenance personnel
>> 실제로 실행 및 유지보수에 대한 책임자
Chapter 2: DB System Concepts and Architecture
# Data Abstraction : 데이터 저장에 대한 세부사항을 숨기는것# Data Models, Schemas, Interfaces
> Data Model = (S, O, C)
> DB 의 구조화 제한사항을 설명하는 collection of concepts
> Abstraction 에 필요한 방법 제시
> Structure & Operations
>> Structure: Data types, relationships, constraints
>> Set of basic operations
# Categories of Data Models
> 목적에 맞는 역할 및 컨셉으로 분류한다
>> High Level or Conceptual data models
- Entity, Attributes, Relationship
>> Representational Data Models
- Provide Concepts between CDM and PDM
>> Low Level or Physical data models
- How data is stored in computer ( Record formats, access paths)
# Schemas, Instances and Database State
> DB Schema
>> DB 에 대한 설명 : system catalog 에 저장된 meta-data
> Schema Diagram
> Schema Construct
> DB State or Snapshot
>> 특정 시간에 DB 에 저장된 data 의 모습
> >> Current set of occurrences or instances in the DB
# DBMS Architecture and Data Independence
> Three Characteristics
>> Insulation of Programs and Data
>> Support of multiple user views
>> use of a catalog to store the database description
>> Internal level has internal schema -> 물리적 저장 구조에 대한 설명
>> Conceptual level has a conceptual schema
- Community of users 가 사용하는 DB의 전체적인 구조에 대한 설명
>> External or view level includes a number of external schemas
- 특정 그룹이 필요로 하는 DB의 특정 부분에 대한 설명
# Data Independence
> 한 schema를 다른 schema를 변경하지 않고 바꿀 수 있는 capacity
> Logical data independence
>> Capacity to change the conceptual schema (external schema나 application program을 바꾸지 않고)
>> View Definition 이나 Mapping 만 바꾸면 된다
> Physical data independence
>> Capacity to Change Internal Schema ( Conceptual Schema 나 external schema를 바꾸지 않고)
> Data independence 는 한 단계의 schema 가 변경되어도 다른 단계의 schema 가 바뀌지 않는것
# Database Languages and Interfaces
> DBMS는 적절한 언어와 interface 를 각 사용자에게 제공해야 한다
>> DDL (Data Definition Language)
- DBA 와 DB designers 가 사용
- Storage Definition Language (SDL) 과 View Definition Languate (VDL)
>> DML (Data Manipulation Language)
- DB 를 변경 (retrieval, insertion, deletion and modification of data)
- 어떤 data를 어떻게 가져올 지에 대한 정의
- Data Sublanguage: General Purpose PL 에 내장된 DML commands
- Query Language: High Level DMS used in stand-alone interactive manner
- SQL: Comprehensive integrated language, Combination of DDL, VDL, DML
>> Query Languages
# DBMS Component Modules
> Disk 에 대한 접근은 OS 가
> DBMS 들은 각자의 buffer management module을 가지고 있다
> Stored data manager 가 DBMS information 에 대한 접근 제어
> DDL Compiler
>> DDL 에 저장된 schema definition에 대한 동작, schema 에 대한 설명을 DBMS catalog 에 저장
> Runtime Database Processor
>> 런타임에 DB 제어
> Query Compiler
>> High level query들을 제어
>> DB access code 를 생성하여 query 를 처리
>> Runtime processor 를 호출하여 query 처리
> Precompiler
>> DML 명령들을 application program 에서 추출하여 DML compiler 에게 보냄
>> 프로그램의 나머지 부분은 host compiler 에게
'Database' 카테고리의 다른 글
PostgreSQL 격리 수준 제대로 이해하기: MVCC·VACUUM·SSI (2) | 2025.08.24 |
---|---|
[Database Studio] 2주 수업 정리 (0) | 2024.05.26 |
Complex Query 2 (0) | 2023.09.22 |
DB: Chapter 7(Complex Queries) (0) | 2023.09.16 |
DataBase: 3주 (0) | 2023.09.09 |