DB 2주차

이다연·2023년 3월 24일

DB

목록 보기
2/7

1. Model

-1. Model이란

  • 핵심 특성을 담은 모형을 통해 실체를 설명하기 위한 것

-2. DataModel

  • 어떤 데이터에 대한 개념적, 형식적 표현
  • tabel형태로 이루어져 있음
  • key를 이용하여 reference
  • 구조(structure) + 연산(operation) + 제약 조건(constraint)
    -> model설명 O

-3, 구조, 연산, 제약 조건

    1. 구조(structure)
    • tabel형태의 schema + instance
    • 현실 세계 -> 개념 세계로 추상화했을 때 어떤 요소로 이루어져 있는지를 표현한 구조
    • 데이터를 어떤 모습으로 저장할 것인지 표현
    • 구조에 따라 연산, 제약 조건이 변함
    1. 연산(operation)
    • 구조를 운용하기 위한 연산
    • instance에 부여, 적용 ( not schema)
    • DB로부터 데이터를 추출, 삽입, 갱신하기 위한 연산
    • ex) insert select delete update -> relational data model의 연산
    1. 제약 조건(constraint)
    • DB가 지켜야 하는 제약조건
    • key로만 상대방의 data 를 access/reference 할 수 있음
    • schema는 구조, 제약 조건 / instance는 연산

-4. Conceptual Data Models

  • Conceptual Data Model을 통해 Database Schema표현
  • 상위적인 data 설명 model
  • 데이터를 높은 수준이나 의미적 수준으로 표현하는 데이터 모델
  • ex) '학생' data 표현 -> '학생' tabel의 구성 요소인 '나이' , '주소' 등을 정함
    = schema의 이름에 따라 attributes를 정함

-5. Physical Data Models

  • 데이터를 낮은 수준이나 물리적 수준으로 표현하는 데이터 모델
  • 데이터가 디스크에 저장될 때 저장/구현 수준에서의 실질적인 데이터 모델
  • ex) '학생' data에서 '나이' -> 4bytes정수, 여기서 B-Tree Index구축 -> 나중에 해당 Index를 reference해서 빠르게 찾을 수 있게함

2. 스키마와 인스턴스

-1. Schema

  • DB는 schema에 따라 data를 저장함
  • schema 덕분에 DB의 구조(structure)와 bytes수 도 정해짐 (+ 구조 정해졌으니까 -> 연산, 제약 조건도 정해짐)
  • schema를 통해 records에서 원하는 data를 핀셋으로 뽑아올 수 있음
    = 원하는 data로 계산을 통해 원하는 번지로 jump
  • schema는 여러 개의 tabels로 이루어져 있음
  • 각 tabels는 attributes를 가지고 있으며
  • attributes는 instance(record)를 가지고 있음

-2. Schema(= intention) vs Instance(=extension)

1. DataBase Schema

  • 데이터베이스에 대한 설명서
  • 데이터베이스 모델 설명한 결과물 -> 데이터베이스 구조, 제약 조건 포함
  • 데이터베이스 카탈로그에 존재
  • Schema Diagram -> DB Schema 의 tabels 구성하는 attributes를 그림으로 표현한 데이터 설계 도면
  • Schema Construct : 스키마의 구성 요소 or 스키마 안의 객체들

2. Instance

  • Database State
  • 실제 데이터
  • DB에서 collection of all data, individual database component
  • = occurrence = snapshot

3. Schema vs Instance

  • Schema
    • 상태 자주 변화x
    • 구조 포함 -> intention
    • catalog , type , rule , structure , intention, a sequence of attributes
  • Instance
    • DB갱신될 때마다 변화 ( state가 변화 )
    • extension
    • 실체
    • record , state , snapshot , extension , a sequence of values

4. 예시

3. DB설계

-1. 데이터베이스 관리 시스템을 이용한 DB접근

  • 모든 record -> 동일한 type
  • 원하는 record 확인하는 방법?
    • 주민번호 | 학번 | 이름 | 주소
      -> record안에서 원하는 번지로 jump(key사용)
      => 이것이 가능한 이유: 디스크 카탈로그 덕분

-2. DBMS

  • 응용 프로그램 <--> 데이터베이스 관리 시스템 <-->데이터베이스
    => 이런 형식으로 접근하도록 설계

4. 3단계 데이터베이스 구조

  • 데이터 독립성(Program-data independence)을 제공하기 위해
  • 데이터에 multiple view를 제공하기 위해
    => Three - Schema Architecture가 만들어짐
  • 3단계 구조로 나누고 단계별로 스키마를 유지하며 스키마 사이의 mapping을 정의하는 궁극적인 목족 => 데이터 독립성을 실현하기 위함
  • 데이터 독립성: 하위 스키마 변경하더라도 상위 스키마가 영향을 받지 않는 특성

-1. 구조

  • DBMS schema를 3level로 구분하여 정의

1.External schemas(제일 바깥)

  • 다양한 사용자들의 관점(view)에서 DB를 이해, 표현
    => 사용자마다 DB의 구조가 다름
  • 권한에 따라 data를 볼 수 있음
  • 1개의 DB에는 external schema가 여러 개 존재도 o, 사용자들끼리 공유도 o

2. Conceptual schema

  • 전체 데이터베이스에 대한 데이터의 구조 + 해당 데이터에 부여되는 제약 조건 기술하는 스키마
  • 현재까지 우리가 배웠던 스키마임
  • 시스템이나 관리자의 관점에서 모든 사용자에게 필요한 데이터 통합
    -> 전체 데이터베이스의 논리적 구조 정의
  • 1 DB 1 Conceptual schema

3. Internal schema

  • Physical data model을 표현
  • Data storage의 관점에서 이해,표현
    -> 전체 DB가 실제로 저장 장치에 저장되는 방법 정의
    = low-level schema
  • user에게 record를 전달하려면?
    : 상위 level view가 Conceptual schema로 옴 -> Internal schema에 mapping -> 하드디스크의 위치/구조 매칭 -> 핀셋으로 data집어서 유저에게 record 전달
    -> external schema(=user/사용자)가 해당 정보 볼 수 o

-2. mapping

mapping 이란

  • external schema(고수준)참조하는 프로그램이
    -> internal schema(저수준)를 참조하는 프로그램으로 변경되는 것

mapping의 용도

  • user가 보는 view를 기반으로 한 질의 -> computer가 보는 view의 관점으로 변환 => 각 level간에 mapping = query변환 필요함
  • 프로그램들이 external schema참조할 때 필요함
  • DBMS가 internal schema에 map하기 위해 필요함

5. 데이터 독립성

-1. mapping

mapping 이란

  • external schema(고수준)참조하는 프로그램이
    -> internal schema(저수준)를 참조하는 프로그램으로 변경되는 것

mapping의 용도

  • user가 보는 view를 기반으로 한 질의 -> computer가 보는 view의 관점으로 변환 => 각 level간에 mapping = query변환 필요함
  • 프로그램들이 external schema참조할 때 필요함
  • DBMS가 internal schema에 map하기 위해 필요함
  • 하위 레벨로부터 독립하기 위해 상위 레벨 직접 안바꾸고 mapping만 바꿈
    -> 독립성

-2. 데이터 독립성

  • 1개의 DB -> 3가지 유형의 스키마 -> 이 스키마들은 모두 같은 DB를 표현
    -> 실제 data는 물리적 저장 장치에 저장된 DB에만 존재 -> user가 자신의 external schema를 통해 원하는 data얻으려면 internal schema에 따라 저장된 DB에 접근해야 함 -> 3가지 level 의 schema 사이에 유기적인 대응 관계 (=mapping)가 성립해야 함
  • 이렇게 DB를 3가지 구조로 나누고 단계별로 schema를 유지하며 스키마 사이에 mapping정의하는 궁극적인 목적 =>데이터 독립성
  • 데이터 독립성이란 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 것 -> 스키마를 바꾸는 것이 아니라 mapping만을 변경
    -> 응용 프로그램들은 external schema(상위 스키마) 참조만 함( 변경 x )
  • 가능한 상위 레벨의 program은 바꾸지 않음

논리적 데이터 독립성

  • external schema나 이용하는 응용 프로그램 바꾸지 않고도 conceptual schema가 변경될 수 있도록 DBMS가 지원하는 특성
  • 하위 스키마에 새로운 내용 추가/변경 되어도 상위 스키마는 영향받지 x

물리적 데이터 독립성

  • conceptual schema를 바꾸지 않고도 internal schema(디스크 내 record위치 정보 등)만 변경해도 되도록 지원하는 특성

6.DBMS 언어

-1. DDL

  • schema정의 언어
  • 관리자와 database designer들이 conceptual schema 표현하기 위해 DDL 사용
  • DDL -> internal schema(tables, index 등 conceptual schema)
    -> external schemas(사용자 views) 정의하기 위해 사용

-2. DML

  • instance 정의 언어
  • Data Manipulation Language -> 이때 query = SQL
  • 고급 언어 내재 방식 -> ESQL
    • 프로그램 안 -> 범용 프로그래밍 언어 안 -> query넣음
    • 언어 실행 -> SQL만남 -> DB로 감 -> 커서/data가져옴
      -> query끝 + loop 계속 돔
    • 참고) 범용 프로그래밍 언어: C, C++, C#, JAVA, Phython 등
  • 문답식 방식
    • DBMS가 제공하는 질의 창을 통해 query를 직접 작성하여 질의

0개의 댓글