일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자바스크립트
- Next
- ccw 알고리즘
- HTTP
- Github
- Express.js
- 데이터베이스 사전
- html5
- Prisma
- 트라이
- 데이터베이스 추상화
- gcd(n. k) = 1
- 데이터베이스의 역사
- PROJECT
- string
- JavaScript
- router
- 게임 서버 아키텍처
- 이분 탐색
- pm2
- 그래프 탐색
- trie
- map
- branch
- MongoDB
- ERD
- MySQL
- insomnia
- localstorage
- 그리디
Archives
- Today
- Total
dh_0e
[Database] Database 소개 (1장) 본문
데이터베이스(DB, database)
- 서로 연관 있는 데이터의 모임을 의미
- 컴퓨터에 데이터베이스가 저장되어 있으면, 이를 관리하는 소프트웨어가 필요
- 이를 데이터베이스 관리 시스템(DBMS, database management sys-tem)이라 함
- DB, DBMS, DBS(database system, = DB + DBMS) 용어가 상호 대체적으로 사용됨
DBMSs의 advantages
- Data abstraction - 데이터 추상화 제공
- Easy accessing data - 데이터 접근의 용의성 제공
- Controlled data redundancy and inconsistency - 데이터 중복 및 불일치성에 대한 제어 용이
- 불일치성 - 데이터 간에 값이 서로 일치하지 않은 현상
- file system 사용 시 데이터 중복이 발생하기 쉬우며, 이는 데이터 불일치를 유발함
- Integrity constraint(IC) enforcement - 데이터 무결성 제약조건(IC) 유지 용이
- ex) 학생의 학점 데이터는 0.0 ~ 4.5 범위 내의 실수 값이어야 한다
- Atomicty of updates - 갱신 원자성 제공
- ex) 계좌이체의 transaction 과정 (all or nothing property)
- Concurrent access by multiple users - 다수 사용자의 동시성 제어
- Uncontrolled concurrent는 불일치성(inconsistencies)을 유발함
- Data security - 데이터 보호
- Data backup and recovery - 데이터 백업 및 회복
File Systems
- 일반적인 운영체제의 기능 중 하나
- 데이터베이스 관리 시스템은 운영체제가 관리하는 사용자 프로세스 중 하나
- 이론적으론 이를 사용하여 데이터베이스 관리가 가능하나 여러가지 제약사항으로 효율적이지 않음
Instances and Schemas
Schema
- db의 physical(물리적) or logical(논리적) 구조를 의미
- 프로그래밍에서 변수의 type과 analogous(유사함)
- 인스턴스에 비해 시간의 흐름에 따라 변경이 적음
Instance
- db에 저장되는 실제 content
- 프로그래밍에서 변수의 값과 analougous
Abstradction(추상화)
- 어떤 사물에 대한 세세한 instance(r개체)로부터 중요한 개념을 분리하는 프로세스를 의미
- 중요하지 않은 사항을 제거하여 문제 핵심 속성에 집중하게 해줌
- 추상화 레벨에 따라 사용자에게 보이는 상세한 정도가 달라짐
- 사물을 보는 높이에 따라 description(수준)에 차이가 나므로, 추상화를 언급할 땐 레벨도 함께 고려해야 함
Levels of Data Abstraction
- 추상화를 위한 관점(high, level)은 Physical level, Logical level, View level로 나뉨
- 이 3가지 추상화가 성립되면 3단계 스키마 구조가 생성되며, 일명 ANSI/SPARC 구조라고도 함
Physical level
- 실제 데이터 record(column)가 어떻게 물질적으로 저장되어 있는 지를 추상화
- 데이터 필드 길이, 필드 간의 간격 길이, 레코드의 전체 길이 등이 포함됨
Logical level
- 저장된 데이터 간의 관계를 추상화
- 개체, 관계 및 제약조건 등의 데이터 객체 정보나 이들의 효율적 관리를 위한 필수 정보인 접근 권한, 보안 정책, 무결성 규칙에 대한 명세
View level
- 특정 사용자가 관심 있는 일부 db만을 추상화
- ex) 위 logical level에서의 추상화에서 salary 필드가 개인 정보 보안상의 이유로 숨김
- 동일 logical level에서의 추상화에 대하여 다수 개의 서로 다른 view level 추상화가 가능
- 뷰 스키마는 최종 사용자가 보는 데이터베이스 스키마이며, 사용자는 이를 기반으로 db 응용 및 개발
데이터 Independence(독립성)
- 데이터 독립성은 physical data 독립성과 logical data 독립성으로 구성됨
- 물질적 데이터 독립성 - 논리적 스키마 변화 없이 물리적 스키마를 변화할 수 있는 기능을 의미
- 논리적 데이터 독립성 - View 스키마 변화 없이 논리적 스키마를 변화할 수 있는 기능
데이터 모델
- 데이터, 데이터 relationships(관계성), 데이터 semantics(의미), 데이터 constraints and so on(제약 조건) 등을 기술하는 specification(명세) 또는 conceptual tool(개념적인 도구)
Relational data model (관계형 데이터 모델)
- 우리가 일반적으로 인지하고 있는 테이블 형식으로 RDBMS라 주로 불림
Object-relational data model (객체 관계형 데이터 모델)
- 관계형 데이터 모델을 기반으로 객체지향 요소를 부분적으로 도입한 것
- 현재 상용 데이터베이스 시장에서 가장 흔하게 볼 수 있는 인기 있는 모델
Object-oriented data model (객체 지향 데이터 모델)
Entity-Relationship data model (개체-관계 데이터 모델) - for database design
XML data model (for semi-structured data)
- 관계형 데이터 모델과 비관계형 모델의 사이
- 웹 관련 기술로서 국제 표준 기술임
- 문서 마크업 언어로 개발되었으며, 문서 교환을 위한 표준 기술로 널리 사용되는 중
Hierarchical data model (계층 데이터 모델), Network data model (네트워크 데이터 모델)
현대 사회에서는 더 이상 사용되지 않으며, 이를 지원하는 구 시스템을 legacy system이라 함
Entity-Relationship data model
- 가장 널리 사용되는 데이터베이스 설계 방식
데이터베이스 언어
- SQL, QUEL, relational algebra(관계 대수), query-by-example(예제 질의), LDL 등이 있음
- SQL이 현대 가장 많이 사용되는 중
DBMS(Database Mangement System) 구성 요소
- 개념적 관점에서는 크게 두 가지 구성요소를 가짐
- Query processor(질의어 처리기) - 질의어 처리, 권한 부여 및 철회, 인증 등의 기능 담당
- Storage manager(저장 관리자) - 데이터 사전 관리, 데이터 저장, 검색, 파일 구조, 색인, 트랜잭션 관리를 담당
Data dictionary
- Meta data(data about data)를 저장하는 장소
- Database schema, Integrity constraints(제약 조건), Authorization(접근 권한), Statistical data(통계적 데이터)를 관리
Transaction Management (트랜잭션 관리)
- Concurrency control manager(동시성 제어 기능) - interaction among the concurrent transactions(동시 거래 간 상호작용)를 관리함(to ensure the consistency(일관성) of the DB)
- Recovery manager(복구 기능) - despite of failures(실패에도 불구하고), DB가 in a consistent state (일관된, 정확한 상태)를 유지하도록 보장해 줌
DB Users
- Naive users(일반 사용자) - DB 응용을 이용하여 데이터를 접근/관리하며 주어진 화면 형식에 의거하여 주어진 절차대로 DBMS를 사용
- Application programmers
- Database designers - 스키마 구성
- Database analysts - 데이터 분석 도구를 가지고 DB를 분석
- Database administrator(DBA, 관리자)
- DB에 대한모든 권한을 가진 super user
- 스키마 definition, storage structure(저장 공간) 및 access method definition(접근 방법 정의), 스키마 및 physical organization modification(물리 구조 변경), DB Authorization to access(접근 권한) 관리, Specifying integrity constraints(무결성 제약 조건 지정), 시스템 성능 관리 등을 담당
DBMS 구조
- 데이터 위치에 의거하여, Centralized(중앙 집중식), Distributed(분산), 중간 형태를 보이는 Client-Server(고객/서버) DB로 구분 가능
- 컴퓨터 병렬 처리 기술을 적용한 Parallel(병렬) DBMS도 있음
DB의 역사
- 1950/60 - DB 이전 단계인 file system 사용
- 1970 - 네트워크 데이터 모델, 계층 데이터 모델(legacy systems) 사용, E.Codd가 관계형 데이터 모델 제안
- 1980 초반 - Oracle이 관계형 모델을 지원하는 상용 DBMS 출시
- 1980 중후반 - 객체지향 DBMS 개념이 정립
- 1990 중후반 - 데이터 웨어하우스 및 마이닝 연구가 활발했으며, 객체 관계형 데이터 모델 정립
- 2000 - XML 기술 출현
- 2010 - 빅 데이터 시대로 Not only SQL(NOSQL), BigTable, Hadoop, pNuts, Amazon 등 여러 DBMS 출현