일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- @published 프로퍼티 래퍼
- git
- zustand
- zustand란
- 페이지전환
- react hook
- 반응형 css
- 리액트최적화
- BFS
- finddomnode경고
- react-router-dom
- modal 관리
- 동기 함수 내에서 비동기 함수 호출
- gitbub desktop
- react-quill 경고메세지
- 비동기함수
- CSS
- 원격저장소 연결
- 블로그업로드확인
- 페이지이동함수
- 컴퓨터네트워크
- @environmentobject 프로퍼티 래퍼
- 리렌더링최적화
- react modal
- featured-sliced-design
- C++
- react상태관리라이브러리
- react-quill
- react fsd
- @observedobject 프로퍼티 래퍼
- Today
- Total
leebaek
[데이터베이스] C1_1 | Introduction to Databases 본문
1. Database System
□ 데이터베이스 기술은 정보를 수집하고 분석하는데 사용된다.
□ 정보와 데이터는 서로 다르다.
□ 데이터 베이스의 정의
: 구조적으로 통합된 공유될 수 있는 운영 데이터로, 조직의 응용 프로그램 시스템에서 사용된다.
데이터 베이스 구조는 적용된 데이터 모델에 따라 결정된다.
□ 데이터 베이스의 특징
- 대규모 저장소가 다수의 다중 사용자로부터 동시에 사용된다.
- 중복을 최소화하면서 모든 데이터를 통합한다.
- 조직의 운영 데이터 뿐만 아니라 설명 데이터 ( database schema | metadata )도 포함한다
- 프로그램과 데이터 사이의 독립성을 제공한다.
- 효율적으로 액세스하고 쿼리를 수행할 수 있다.
□ DBMS ( Database Management System )
: 데이터베이스를 정의하고, 쿼리 언어를 지원하고, 보고서를 생성하는 소프트웨어
1-1. Introduction
□ Database Schema
- 데이터 베이스의 구조를 가리키고, 자주 변경되지 않는다.
- 데이터 베이스의 가능한 모든 상태를 사전 정의 한다.
- 내포(intension)이라고 부른다.
□ Database State
- 특정 시간에서의 데이터 베이스의 내용을 나타내고, 이러한 내용은 시간이 지날 때마다 계속해서 바뀐다.
- 외연(extension)이라고 부른다.
□ DBS 구성 요소 | 데이터베이스, DBMS, 사용자, 하드웨어
□ 데이터 베이스
- 운영 데이터를 구조적으로 통합하여 공유하고, 조직의 응용 프로그램 시스템에서 사용
- 저장된 Database와 System catalog(=Data dictionary)로 구성된다.
- System catalog는 저장된 database의 schema 정보이다.
□ DBMS
- 새로운 데이터베이스를 생성하고, 이것의 구조를 구체화하며, 데이터를 효율적으로 수정하고 쿼리하는 능력을 사용자에게 부여한다. 여러 사용자에 의한 동시 엑세스 접근이나 시스템 장애 및 무단 사용으로부터 데이터를 안전하게 보호한다.
- 두개 이상의 데이터베이스 특수 프로그래밍 언어를 제공한다.
- SQL은 많은 DBMS에서 제공하는 표준 데이터베이스 프로그래밍 언어이다.
□ 사용자
- 데이터베이스 사용자는 여러 범주로 분류될 수 있다.
□ 하드웨어
- 데이터베이스는 디스크 같은 보조기억장치에 저장되고, DBMS에서 원하는 정보를 찾기 위해서 주메모리에서 디스크 블록을 읽어온다.
- CPU는 연산이나 비교 작업을 할 때 사용된다.
- DBMS가 수행되기 위해 주메모리에 로드되어야 한다.
□ Database 요구사항
- 데이터 독립성
- 효율적인 데이터 액세스
- 데이터에 동시 액세스
- 백업 및 복구
- 중복을 줄이거나 제어하여 일관성 유지
- 데이터 무결성
- 데이터 보안
- 쉬운 커리 언어
- 다양한 사용자 인터페이스
1-2. File system VS DBMS
□ 파일 시스템을 이용한 이전의 데이터 관리법
- 파일 시스템은 DBMS가 없던 1960년대부터 사용되어 왔다.
- 파일의 기본 구성 요소는 순차적 레코드의 집합이다.
- 레코드는 연관된 필드들의 집합이다.
- 파일 액세스 접근 방식은 애플리케이션에 상세히 설명되어 있어서, 데이터에 대한 애플리케이션의 의존도가 높다.
□ File system의 단점
- 다수의 사용자들에 대한 동시성 제어가 불가능하다.
- 쿼리 언어를 제공하지 않는다.
- 보안이 부족하다.
- 백업 기능이 없다.
- 프로그램과 데이터 간의 독립성이 없기 때문에 유지비용이 높다.
- 파일 검색이나 업데이트 절차가 상대적으로 복잡하여 프로그래머의 생산성이 낮다.
- 데이터의 공유 및 유연성이 부족하다.
□ DBMS를 이용한 데이터베이스 관리
- 많은 사용자와 데이터베이스를 공유한다.
- DBMS는 인덱스와 같이 쿼리를 빠르게 실행할 수 있는 경로를 자동으로 선택하여 사용자 쿼리를 수행한다.
- 허용되지 않은 사용자로부터 데이터베이스를 보호한다.
- 많은 사용자에게 적절하게 다양한 인터페이스를 제공한다.
- 데이터 간의 복잡한 관계를 나타내며, DBMS는 무결성 제약을 자동으로 유지한다.
- 시스템이 고장나도 이전의 일관된 상태로 데이터베이스를 복구한다.
- 프로그램과 데이터의 독립성 : 데이터베이스의 구조를 변경해도 프로그램에는 영향을 주지 않는다.
□ DBMS의 장점
- 중복성과 불일치를 줄인다.
- 시스템을 개발하고 유지하는 비용을 줄인다.
- 표준화가 용이하다.
- 보안이 좋다.
- 무결성이 강화된다.
- 조직의 요구사항을 식별할 수 있다.
- 다양한 실패로부터 데이터베이스를 복구할 수 있다.
- 데이터베이스를 공유할 수 있고, 동시 액세스가 가능하다.
□ DBMS의 단점
- DBMS 비용도 비싸고, 하드웨어 구매 비용도 추가된다.
- 직원 교육을 위한 비용이 든다.
□ DBMS 선택시 고려사항
- 기술적 요인 : DBMS에서 사용되는 데이터 모델, 인터페이스, 프로그래밍 언어, 애플리케이션 개발 도구, 저장소 구조, 성능, 액세스 접근 방식 등
- 재정적 요인 : 소프트웨어 및 하드웨어 구입 비용, 유지 관리 비용, 임직원교육지원 등
1-3. Evolution of DBMS
□ Data Model
- set 개념의 구조(데이터 유형 및 관계)로 구성되며, 데이터 베이스 구조나 구조에서 실행되는 연산자, 무결성 제약 조건을 설명하는데 사용된다.
- 사용자간의 맵핑 뿐만 아니라 사용자로부터 내부 저장 방식을 숨기면서 데이터에 대한 직관적인 보기를 제공한다.
□ Data Model 종류
▶ Conceptual data model(=High level) | 개념적 데이터 모델
- 인간이 인식하는 것과 유사하게 데이터베이스의 전체적인 논리적 구조를 지정한다.
ex. ER(entitiy-relationship) data model, 객체 지향 데이터 모델
▶ Representation(implementation) data model | 표현/구현 데이터 모델
- 사용자가 이해하는 개념으로, 컴퓨터에서 데이터를 정리하는 방법과 크게 다르지 않다.
ex. 계층적 데이터 모델, 네트워크 데이터 모델, 관계형 데이터 모델 ( relationship data model )
cf) 그래프와 트리의 차이 루트 노드의 유무, 부모-자식 관계, 간선수 - 그래프는 트리이다 (X) - 트리는 그래프이다 (O) |
▶ Physical data model(=Low level) | 물리적 데이터 모델
- 데이터가 데이터베이스에 저장되는 방법을 설명한다.
ex. Unifying, ISAM, VSAM 등
□ Hierarchical DBMS | 계층적 DBMS
- 최초의 계층적 DBMS는 1960년대 후반에 등장하였다.
( IBM 회사의 IMS : 트랜잭션 처리를 지원하는 계층적 데이터베이스 및 정보 관리 시스템 )
- 트리 구조를 기반으로 계층적 데이터 모델을 사용한 DBMS이다.
- 네트워크 데이터 모델의 특별한 경우이다.
▶ 장점
- 어떤 종류의 어플리케이션에 관하여 빠른 속도와 높은 효율성을 제공한다.
▶ 단점
- 어플리케이션에 데이터를 액세스하는 방법을 미리 정의해야 한다.
- 데이터베이스가 생성되면 각 관계를 명시적으로 정의해야 한다.
- 레코드는 링크를 통해 연결되기 때문에 레코드 구조를 변경하기 어렵다.
□ Network DBMS
- 1960년 대 초, Charles Bachman이 개발한 IDS로 하니웰의 첫번째 네트워크 DBMS이다.
- 그래프 구조 기반의 네트워크 모델을 사용하기에, 레코드와 관계는 각각 노드와 엣지로 표현된다.
- 계층적 모델과 마찬가지로 레코드는 링크로 연결되어있기 때문에 레코드 구조를 변경하는 것은 어렵다.
□ Relational DBMS ( RDB )
- 1970년에 IBM 연구센터의 E.F Codd가 관계형 데이터 모델을 제안했다.
- IBM 연구 센터의 System R은 버클리에 있는 캘리포니아 대학교의 프로젝트 Igres
▶ 장점
- 단순한 모델이기 때문에 이해하기 쉽다.
- 사용자가 원하는 것을 지정하면, DBMS는 데이터가 있는 위치와 데이터에 액세스 하는 방법을 결정한다. -> 논프로시저
ex. MS SQL Server, Oracle, Sybase, DB2, Informix 등
□ Object-oriented DBMS | 객체 지향 DBMS
- 1980년 대 후반 새로운 데이터 모델인 객체지향 데이터 모델이 등장했다.
- 객체지향 프로그래밍 패러다임을 기반으로 한 데이터 모델
▶ 장점
- 데이터와 프로그램 그룹, 이해하기 쉬운 복잡한 객체, 유지 및 수정이 간단하다.
ex. ONTOS, OpenODB, GemStone, ObjectStore, Versant, O2 등
□ Object relational DBMS ( ORDB )
- 1990년대 후반에 제안되었고, 관계형 DBMS와 객체 지향 개념이 통합되었다.
ex. Infomix, Universal Server, Oracle 등
□ 새로운 데이터베이스 어플리케이션
- CAD database, software engineering database, genome database, data warehouse, data mining, OLAP, mutimedia database, web database 등
cf) data mining : 데이터베이스에 저장된 숨겨진 의미있는 데이터를 찾는 것 warehouse: 업데이트와 삭제가 거의 이루어지지 않고 삽입만 하는 변경이 적은 쌓여지는 데이터를 3차원 형태로 저장함 ( 역사 데이터 같은 ) |
□ 현대 관계형 DBMS의 기능
- 높은 수준의 사용자 인터페이스를 제공한다. ( ex. SQL, 자연어 )
- 트랜잭션 개념 지원 : 동시에 많은 트랜잭션을 실행하고, 백업 및 복구를 실행한다.
- 객체 지향 개념을 지원한다.
- 웹 인터페이스와 XML을 지원한다.
- 데이터 수집 운영을 지원한다.
- OLAP 및 data warehouse를 지원한다.
- 효율적인 쿼리 처리를 지원한다. ( 쿼리 최적화, 인덱싱 )
'수업 정리 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] C4_4 | Relational algebra & SQL (0) | 2024.04.18 |
---|---|
[데이터베이스] C4_2 - 3 | Relational algebra &SQL (0) | 2024.04.09 |
[데이터베이스] C4_1 | Relational algebra & SQL (0) | 2024.04.03 |
[데이터베이스] C2 | Relational data model and relational database constraints (0) | 2024.03.27 |
[데이터베이스] C1_2 | Introduction to Databases (0) | 2024.03.21 |