02 - 데이터베이스 시스템 개념과 구조

JeonghwanKim·2023년 8월 19일
0

데이터베이스

목록 보기
2/8

Data Model

  • 데이터 추상화를 실현하는 도구

Structure(구조), Operation(연산), Constraints(제약조건)를 함유

여기서 구조는 데이터형식(data type), 관계(relationship), 제약조건(constraints)를 명시한다.

연산은 데이터의 수집, 업데이트에 사용되며 '기본 연산'과 '사용자 정의'연산이 있다.

데이터모델의 구조와 제약조건

Constructs - Elements (entity + record) + relationship

제약조건은 유효한 데이터들에 대해 반드시 지켜져야 하는 것 들이다.

Instance

: 구조에 속해있는 데이터값들 (ex. Student table의 데이터 A)

Schema

: 쉽게 말해서 데이터베이스의 구조를 설명하는 것(Ex. University DB의 5가지 속성)

Schema는 밖에서 보이지 않는다, DBMS의 Catalog에 저장되어있다. 데이터 베이스의 구조, 타입, 제약 조건 등을 저장하고 있음.

Database State

: 특정한 시간에 따라 다른 것. Schema와 다르게 '특정' 순간으로 정해져있다.

즉, Instance는 특정한 Database State를 만족하는 자료들이다.

Database = Schema를 따르는 Instance의 모임 (즉 Valid 하다)

Three-Schema Architecture

1. External Level

: 외부에서 바라보는 View들. View에서는 Mapping된 정보를 관리함.

Mapping이란 External과 Conceptual 사이의 간극을 맞춰주는 작업이라고 이해하면 됩니다.

2. Conceptual Level (Logical)

: 물리 저장 구조를 숨김. DB 구조, 제약 조건 등을 다룬다.

Conceptual/Internal 단계의 Mapping이 이루어짐

3. Internal Level

: 물리적 저장 구조를 다룬다.

Three-Schema Architecture의 예시

Web페이지와 Mobile페이지는 보는 View가 다르지만, 같은 정보 (DB) 내용을 다루고 있음.

또는, 관리자 페이지와 일반 회원 페이지가 보는 View는 다르지만 해당 정보는 동일한 DB로 부터 비롯됨.

Mapping에 대해서

실제 데이터는 물리단계의 저장공간에만 위치해있습니다. 각각의 단계에 Request(요구)를 전달하기 위해서 Mapping이 이루어짐.

Data Independence (데이터 독립)

Mapping된 데이터들은 각각 독립적이므로, 연결된 (External-Conceptual, Conceptual-Internal) 구조끼리 영향을 미치지 않는다.

타 계층의 정보가 변경되면 오직 Schema 사이의 'Mapping'만 바뀌면 된다.

DBMS Language

DDL (Data Definition Language)

  • DB의 구조를 정의하는 명령어 (Ex. Create ... )

ㄴ Schemas와 Mapping을 정의하는 명령문

DML (Data Manipulation Language)

  • 검색, 업데이트 등 DB 조정을 하는 명령어 (Ex. Select, Insert)

DML은 Host Language(C, Java...) 에 Embedded될 수 있음.

DML의 High, Low Level Language

1. High

선언적임, 비절차적임, '어떻게' 보단 '무엇을' 꺼내올지에 집중

독립적으로는 Query언어로 쓰이고, host Language에 Embedded 되어서 쓰임.

2. Low

한번에 하나의 Record에만 접근, Loop이용

무조건 Embedded 되어서 사용되어야 함.

DBMS Interface

Embedded Approach : Embedded SQL

Procedur Call Approach : JDBC for Java...

Database Programming Language Approach : Programming Language based on SQL.

Scripting Language : PHP (client-side scripting ) and Python.

The Database System Environment

DBA Staff (DB관리자)

ㄴ DDL Statement (DDL 명령어) -> DDL 컴파일러 -> DDL로 Catalog에 Schema 저장.

ㄴ 권한부여 (Privileged Commands)

Casual Users (일반사용자)

profile
제대로 한번 해보겠습니다.

0개의 댓글