ㅇTL

DB 02 본문

2-2/데베시

DB 02

정노르레기 2021. 9. 28. 12:49

*용어정리

1. Data models

=데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형데이터 모델은 데이터 구조(Data Structure)를 결정

: 디비의 구조를 잘 나타내는 개념의 집함 (ex. data types, relations, constraints)
(디비 구조 잘 설명해주는 개념들. 디비 특성 잘 보여주기 위한 것들. 잘 표현하기 위한 것들. 패션 보여주기 위한 패션 모델 처럼)

- 데이터의 대략적인 것들만 보여줌. (데이터 추상화)

- 데이터 모델은 레벨별로 분류됨 ( physical models, conceptual models, representation models)

이렇게 여러가지 데이터 모델이 있다

 

-> 모델의 세가지 관점

a. physical data models

: 데이터가 어떻게 저장되는가에 대한 걸 디테일하게 설명해줌

-물리적으로 어캐저장되는지

- low-level data model

-> 데이터 타입, index, access path이런걸 제공 (몇 바이트.. integer..)

 

b. conceptual data models

: 일반 사용자가 인식하는 데이터

- 유저가 데이터를 보는 관점과 비슷

- high-level data model

 

c. representational data models  (거의 채택)

:physical과 conceptual 데이터 모델의 중간정도

-> 사람이 이해하기도 쉬운데, physical과도 가깝(기계와도 친숙)

= implementation data models  이렇게도 부름

* DBMS는 이걸 전제로 개발이 됨!! ex) 오라클, SQL... 각각 모두 모델 가지고 있는데 그게 이 레프레젠테이셔널 데모!!

Ex) relational model(지금은 얘가 평정), network model, hierarchical model ...

 

 


* db의 구조를 나타내기 위한 것 = 데이터 모델. 

모델로 데이터 구조를 결정하게 된다.

그리고 이 표현된 구조를 schema라고 한다.

2. Schemas and instances

a. schema ( = meta-data / intension )

: 데이터 구조를 (모델을 통해서 나타내진) 말합니다. (=DB 구조와 제약조건에 대한 전반적인 명세를 기술한 것이다. )

- db 디자인할 때 정의 (디비 디자인 by db 디자이너~ 디비 유저 구분 시험 가능!!)

- 거의 잘 안바뀜

-schema diagram = 스키마를 그림으로 표현한 것 (다이어그램으로 표현한 것)

-예) 학생 테이블의 경우
Course( CourseNo : string, CourseName : string, Instructor : string )

b. database instance

: 스키마에 대한 실제 데이터. (테이블의 각 행을 의미)

- (인스턴스의 집합) = database state / snapshot / occurence / extension

- 자주 변경됨 (당연)

 

3. Three-Schema Architecture

* 만든 동기 : 프로그램이 데이터의 구조에 독립적이게 만들기 위함. 데이터 독립성을 위함!!

(데이터베이스 스키마를 내부단계, 논리단계, 외부단계로 구분하여 사용자에게 하부 스키마의 세부 사항을 감추고 해당 스키마의 구조에만 관심을 갖도록 한다.)

 

* database 디자이너  ( = 디비 구조를 결정하는 사람 = 스키마, 메타 데이터를 결정하는 사람)

- 디비에 저장될 데이터를 고름

- 구조와, 디비의 특성을 정의

 

  • 레벨별 구분

- internal level: 전체 디비의 물리적 구조 기술, 피지컬 모델로 나타내짐

- conceptual level: 전체 디비의 개념적인(logical) 구조 기술 ( 엔티티, 데이터 타입, relation, user operation ...)

   물리적 구조는감춤, conceptual/representational(대부분 이거) 모델로 표현됨

- external or view levelc : 로지컬 디비 구조의 일부분 나타냄 (유저가 보고 싶어 하는거) 즉 컨셉츄얼 레벨의 일부

   conceptual과 같은 모델 사용. (가능한 모델은 당근 두가지), 유저는 여기로 접근

 

  • Mapping

* DBMS가 알아서 큐리를 바꿔가며 사용자 요청을 처리한다

1. 유저가 external level에 데이터 달라고 큐리 보냄 query

2. external level 큐리->  conceptual level 스키마에 맵핑 (컨셉츄얼에 대한 큐리로 바꿈)

3. 컨셉츄얼 큐리-> inernal 레벨 스키마에 맵핑 (인터널에 대한 큐리로 바꿈) 

4. 저장된 디비로부터 결과 가져옴

5. 결과를 external view로 맵핑 

 

  • Data independence

이 방식은 데이터 인디펜던스를 실현해주기 때문에 중요함!, 이는 DBMS의 중요한 특징

-> maintenance overhead를 줄여준다.

- 정의 : 한 레벨의 스키마를 변경했을 때, 높은 레벨의 스키마를 변경하지 않아도 되는 것 (밑은 바뀔 수 ㅇ)

(상위 단계의 스키마 정의에 영향을 주지 않고 해당 스키마 정의를 변경할 수 있는 능력)

   ex) concep level schema 바꾸면 메타(밑에 레벨 스키마)는 바뀔수 있는데, 위는 안바뀜

- 종류 : logical data independence / physical level independence

 

1. logical Data independence

= conceptual 스키마를 바꿀 때

-> external 스키마 바꿀 필요 x 

-> 어플리케이션 프로그램 변경 필요 x

 

2. physical level independence

= internal schema 바꿀 때

-> conceptual, external 스키마 바꿀 필요 x

-> 어플리케이션 프로그램 변경 필요 x


*데이터베이스를 구축하기 위해서 사용자는 먼저 데이터베이스 스키마를 정의한 후에 DBMS에서 제공하는 연산자들을 사용하여 데이터를 저장, 검색, 수정, 삭제하게 됨. 이러한 기능은 DBMS가 제공하는 언어로 만들게 됨

4. DBMS Language

  • DBMS에 의해 제공됨, DBMS는 이것만 이해할 수 있음
  • 디비를 통제하고 관리하는데 사용되는 언어
  • 가장 대표적인것 = SQL

(이 네 언어는 모두 sql에 포함되는거)

a. data definition language (DDL)

: external, conceptial 스키마를 정의하는 언어

데이터리를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정하는 역할을 하는 언어

 

b. data manipulation language (DML)

: 데이터를 조작하는데 쓰임. retrive, insert, delete, modify ...

사용자가 데이터를 조작할 수 있게 해줌

- procedural DML

: 유저의 큐리(db에서 이것 좀 찾아줘 하는 요청)를 절차적으로 procedurally 정의한다. 

*컴 언어는 procedural lan/non-p 이두개로 나뉨

절차적 = 데이터를 얻기 위해서 어떻게 해야하는지 절차적으로 디테일하게 설명해줌.

(한줄한줄. c, python, java 코드 처럼)

-Non=procedural DML

: 유저의 큐리를 선언적으로 정의한다. declaratively

어떤 데이터를 원하는지만 설명한다.

(ex. 팩스 보내라 -> 끝. 절차얘기 x. 어캐 키고 끄는지.. 설명x. 원하는게 무엇인지만 얘기함! 그리고 절차는 언어 개발자가 알아서 정의..)

 

c. Storage definition language (SDL)

: internal 스키마를 관리하는 언어

 

d. view definition language (VDL)

: external view를 명시할 때 사용되는 언어. 사용자 인터페이스를 지정함.


5. DBMS Interfaces

-> 언어를 사용하지 않고 좀 더 쉽게 만든 interface가 존재함 !! 바로 아랫것들~

 

a. Menu-based interfaces

: 메뉴에 있는 아이템들에서 큐리를 골라 디비에 접근하는 것 (걍 메뉴에서 골라서 클릭 뚝딱)

ex) 웹 어플리케이션

 

 b. graphical user interfaces

: 디비 스키마의 graphical representation을 조작하여 디비에 접근하는 것

ex) atm머신

 

c. Forms-based interfaces

d. natural language interfaces

: 자연어 방식의 인터페이스로 디비 접근

(~해라 -> 알아서 시행하는 것)

 

d. interfaces for DBAs (adminiseter. 모니터링 하는 사람)

: DBMS 관리 환경을 위해 제공 ?

 


6. DBMS Component Modules

 

  •  stored data manager : 저장되어있는 모든 데이터에 대한 접근을 control 함 (user data, meta data in system catalog)
  • DDL comiler (DDL : 스키마를 다루는 랭기지) : 스키마를 다루는 랭기지(DDL)의 컴파일러~ (system catalog에 이 메타데이터 저장함. 시스템 카탈로그는 메타데이터를 저장하는 테이블)
  • runtime database processor : 

'2-2 > 데베시' 카테고리의 다른 글

DB 03 - ER model -> conceptual modeling  (0) 2021.10.12
DB 01  (0) 2021.09.27