일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CSS
- react hook
- 컴퓨터네트워크
- 비동기함수
- 원격저장소 연결
- featured-sliced-design
- 세로모드끄기
- react-router-dom
- react fsd
- 블로그업로드확인
- GridItem
- react modal
- zustand란
- modal 관리
- @observedobject 프로퍼티 래퍼
- BFS
- 반응형 css
- zustand
- 가로모드끄기
- @published 프로퍼티 래퍼
- @environmentobject 프로퍼티 래퍼
- react상태관리라이브러리
- C++
- 동기 함수 내에서 비동기 함수 호출
- 페이지전환
- 리렌더링최적화
- git
- gitbub desktop
- 리액트최적화
- 페이지이동함수
- Today
- Total
leebaek
[데이터베이스] C1_2 | Introduction to Databases 본문
1-4. DBMS Language
□ DDL ( Date Definition Language )
- 사용자는 DDL을 사용하여 데이터베이스 schema를 정의한다.
- DDL에서 지정한 문장이 입력되면, DBMS는 system catalog(=data dictionary)안에 사용자가 정의한 schema를 저장한다.
▶ DDL의 기본 기능
- 데이터 모델이 지원하는 데이터 구조 만들기
ex. SQL에서 테이블 create
- 데이터 구조 변경하기
ex. SQL에서 테이블 alert
- 데이터 구조 삭제하기
ex. SQL에서 테이블 drop
- 데이터 액세스를 위해 특정 속성에 대한 인덱스 정의
ex. SQL에서 인덱스 생성
□ DML ( Data Manipulation Language )
- 사용자는 DML을 사용하여 데이터베이스에서 원하는 데이터를 검색, 수정, 삭제, 삽입한다.
- 절차적 언어와 비절차적 언어이다.
- SQL은 관계형 DBMS를 사용한 대표적인 비절차적(논프로시저) 언어이다.
- 대부분의 DML에는 SUM, COUNT, AVG와 같은 내장 함수가 있다.
- 터미널을 통해 대화식으로 입력되거나 C, C++, COBOL과 같은 고급 언어로 작성된 프로그램으로 구축되어 사용되는 방식으로 수행된다.
▶ DML의 기본 기능
- 데이터 검색 : SQL에서 SELECT
- 데이터 수정 : SQL에서 UPDATE
- 데이터 삭제 : SQL에서 DELETE
- 데이터 삽입 : SQL에서 INSERT
□ DCL ( Data Control Language )
- 사용자는 DCL을 사용하여 데이터베이스에 트랜잭션을 지정하고, 권한을 부여하거나 취소한다.
1-5. DBMS Users
□ DBA ( Database Administrator ) | 데이터베이스 관리자
- 일관된 데이터베이스 Schema를 생성하고, 조직 내 다양한 부분의 다양한 요구사항을 만족하기 위해 그것을 유지한다.
▶ DBA의 역할
- 데이터베이스 Schema 생성 및 변경
- 무결성 제약 조건 지정
- 사용자 권한을 허용 또는 취소하고, 사용자의 역할을 관리한다.
- 저장 구조 및 접근 방식(물리적 schema)을 정의한다.
- 백업 및 복구
- 표준화 실시
□ Application programmer
- 특정 어플리케이션(ex. 고객관리, 사람 자원 관리, 재고 관리 등) 구현 또는 데이터베이스 인터페이스
- C, C++, COBOL과 같은 고급 프로그래밍 언어를 사용하는 어플리케이션을 개발하는 동안 데이터베이스 액세스를 위해 내장된 DML을 사용한다.
- 어플리케이션 프로그래머가 작성한 프로그램은 최종 사용자가 반복 사용하기 때문에 "canned transactions"이라고 부른다.
cf ) canned transactions : 데이터베이스 시스템에서 사전 프로그래밍되고 사전 정의된 작업 또는 단계 집합 transaction은 task 하나라고 보면 됨 |
□ End user | 최종 사용자
- 데이터베이스를 사용하여 쿼리, 업데이트 또는 보고서를 생성한다.
- 쿼리 언어를 사용하여 각자의 시간에 서로 다른 정보를 검색하는 사람들을 '일반 사용자(casual users)'라고 한다.
- canned transactions(미리 준비된 거래)을 반복적으로 하는 사람들을 '초보 사용자(novice users)'라고 한다.
□ Database desinger
- ERwin과 같은 CASE tool을 사용하여 데이터베이스를 설계한다.
- 데이터베이스 일관성을 유지하기 위해 정규화를 수행한다.
□ Operator | 운영자
- DBMS를 운영하는 전산 시스템 및 센터를 관리한다.
1-6. ANSI/SPARC Architecture and Data Independence | 아키텍처 및 데이터 독립성
□ ANSI/SPARC 아키텍쳐
- 최신 상업용 개발에 사용되는 일반적인 아키텍쳐는 1987년에 제안된 ANSI/SPARC 아키텍쳐이다.
- 세가지 레벨로 구성된다
▷ External Level : 각 사용자의 뷰
▷ Conceptual Level : 커뮤니티 사용자 뷰
▷ Internal Level : 물리적 또는 저장소 뷰
□ External Level
- 데이터베이스의 각 사용자에 대한 보기
- 다양한 종류의 사용자를 위한 동일한 개념에서 여러가지 다른 뷰를 제공할 수 있다.
- 일반적으로 최종 사용자와 어플리케이션 프로그램은 오직 데이터베이스의 일부에만 관심을 가진다.
- 동일한 데이터에 대해 다른 표현을 제공할 수 있다.
사용자/프로그램은 전체 데이터에 관심 X -> 필요한 일부분에만 관심 O |
□ Conceptual Level
- 물리적 구현을 고려하는 것 없이, 조직 전체에 대한 schema를 포함하는 조직의 정보 모델을 말한다.
- 어떤 데이터가 저장되어있는지, 데이터 간의 관계가 어떤지, 어떤 무결성 제약 조건이 지정되어 있는지 설명한다.
- 데이터베이스 구조 전체의 논리적 구조를 설명한다.
- 각각의 데이터베이스에 대해 하나의 개념적 schema만 존재한다.
- 데이터베이스에 대한 사용자 커뮤니티 뷰를 나타낸다.
- 저장 구조로부터 독립성을 가진다.
□ Internal Level
- 실제 물리적 데이터 구조를 설명하는 Schema이다.
- 데이터가 데이터베이스에 저장되는 내용과 방법을 설명한다.
- 인덱스 및 해싱, 데이터 압축 등의 접근 경로에 대해 설명한다.
- conceptual schema에 영향을 주지 않고, 성능 향상을 위해 internal schema 변경이 가능하다. (독립성)
- 물리적 저장 장치를 직접 운영하지 않는다.
- physical level은 internal level보다 아래에 있다.
- physical level은 DBMS의 지시에 따라 OS에 의해 운영된다.
□ Mapping between schemas
- DBMS는 세가지 유형의 Schema간의 맵핑을 담당한다.
▷ External / Conceptual mapping
- External level의 View에 입력된 사용자 쿼리를 Conceptual level의 Schema를 사용한 쿼리로 변형시킨다.
▷Conceptual / Internal mapping
- Conceptual schema를 다시 internal level의 schema로 변형시켜 디스크의 데이터베이스에 접근한다.
□ 데이터 독립성
: 특정 수준의 schema 정의를 상위 수준의 schema 정의에 영향을 주지않고 변경 가능한 것을 의미한다.
- Logical data independence | 논리적 데이터 독립성
- Physical data independence | 물리적 데이터 독립성
▶ Logical data independence | 논리적 데이터 독립성
- conceptual schema를 변경해도 external schema는 아무런 영향을 받지 않는다.
- 어플리케이션 및 이전 external schema를 재작성하지 않고 conceptual schema를 변경할 수 있어야 한다.
▶ Physical data independence | 물리적 데이터 독립성
- internal schema를 변경해도 conceptual schema은 아무런 영향을 받지 않는다. 따라서 external schema도 영향을 받지 않는다.
ex. 변경예시 ) 저장소 구조 변경, 파일 생성, 인덱스 생성 및 삭제
1-7. Database system Architecture
□ DDL Compiler module
- DDL을 사용하여 table 생성을 요청하는 경우,
이 모듈은 데이터베이스에서 테이블을 파일로 만들고 테이블 사양을 system catalog에 저장한다.
□ Query processor module
- DML을 수행하기 위한 최적화 방법을 찾는 모듈을 통해 쿼리를 기계어로 변환시킨다.
□ Run-time database manager module
- 디스크에 저장된 데이터베이스에 액세스합니다.
□ Transaction management module
- 동시성 제어
- 복규 모듈
□ Application Program Interface ( API ) | 응용 프로그램 인터페이스
- ODBC ( Open Database Connectivity )는 마이크로 소프트에서 개발된 database API이다.
- ODBC를 지원하는 DBMS간에는 상대방의 데이터베이스 액세스가 가능하다.
□ Centralized database system | 중앙 집중식 데이터베이스 시스템
- 데이터베이스 시스템은 하나의 컴퓨터 시스템에서 운영된다.
□ Distributed database system | 분산 데이터베이스 시스템
- 데이터베이스는 네트워크를 통해 연결된 여러 사이트에 분산되어있고, 여러 컴퓨터 시스템에서 운영된다.
- 사용자는 다른 사이트에 저장된 데이터베이스에 액세스 할 수 있다.
□ Client - Server database system | 클라이언트 - 서버 데이터베이스 시스템
- PC 또는 워크스테이션과 같은 자체 컴퓨팅 기능을 가진 클라이언트를 통해 데이터베이스 서버에 액세스한다.
- 데이터베이스는 하나의 데이터베이스 서버에 저장된다.
- 데이터베이스 서버의 기능은 서버와 클라이언트에 분산되어 있다.
- 서버는 데이터베이스 저장, DBMS 운영, 클라이언트로부터 쿼리를 최적화, 권한 검사 수행, 동시성 제어 및 복구 수행, 데이터베이스 무결성 유지, 데이터베이스 액세스 관리 기능을 가진다.
- 클라이언트는 사용자 인터페이스를 관리하고 어플리케이션을 수행한다.
□ 2 - tier model
- 클라이언트와 데이터베이스 서버는 직접 연결된다.
□ 3 - tier model
- 클라이언트와 데이터베이스 서버 사이에 어플리케이션 서버가 추가되었다.
▷ 장점
- 더 넓은 영역에서 데이터베이스에 접근 가능
- 하드웨어 비용 절감
- 다양한 컴퓨터 시스템을 사용할 수 있다.
▷ 단점
- 보안에 다소 취약하다.
'수업 정리 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 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_1 | Introduction to Databases (0) | 2024.03.19 |