티스토리 뷰

728x90

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

데이터 모델, 스키마, 인스턴스

1. 데이터 모델

모델(model)

  • 시스템, 프로세스, 현상에 대한 추상적인 표현이다.
  • 모델은 복잡한 시스템을 단순화하여 더 관리하기 쉬운 형태로 만들어 시뮬레이션하고 분석하며 이해하는 데 사용된다.

ex1) UML “Model” class diagram

ex2) Mathematical “Model” of motion

ex3) Simulink state space “Model”

데이터 모델

  • 데이터베이스에서 데이터들이 어떻게 구조화되고, 저장되고, 조작되는지를 정의하는 개념과 방법의 집합
  • 데이터 모델링 : 현실세계에 존재하는 정보를 컴퓨터의 데이터베이스로 옮기는 과정

데이터베이스를 위한 데이터 모델

1. 개념적(고수준) 데이터모델

: 사용자들이 데이터를 인식하는 방식에 대한 개념을 제공

: 하드웨어에 독립적, 일반인의 이해가 쉬움

: Entity Relationship Diagram: 개체, 속성, 관계 → 모델 자체의 구현은 어려움개념적(고수준) 데이터 모델

 

2. 표현(구현) 데이터 모델

: 고수준 모델과 저수준 모델 사이에 존재

: 데이터 저장 구조의 세부 사항을 은폐하지만, 컴퓨터 상에서 직접 구현 가능함

: 상용 DBMS에서 많이 사용함

 

대표적인 모델 : 관계(relational) 모델, XML 모델

ex1) 관계(relational) 데이터 모델: 데이터를 관계(테이블)들의 집합으로 표현: XML, JSON, YAML

ex2) 계층적(hierarchical) 데이터 모델

: 우리가 사용하는 대부분의 관계형 데이터베이스(ex. Oracle DBMS)는 관계 데이터 모델을 사용

: 현재 데이터베이스에서 가장 많이 사용됨ex3) 객체 데이터 모델

: 데이터를 트리 형태의 계층으로 표현

ex4) 네트워크(netword) 데이터 모델

 

3. 물리적(저수준) 데이터 모델

데이터가 컴퓨터에 어떻게 저장되는지 세부 사항을 명시하는 개념을 제공

하드웨어에 의존적, 일반인의 이해가 어려움

레코드 형식, 레코드 순서, 접근경로 정의 ( 인덱스, 물리적 배치 등 )

스키마, 인스턴스, 데이터베이스 사태

데이터베이스 스키마 (Schema)

  • 데이터모델의 방법론에 따라 데이터베이스 구조를 구체적으로 기술함
  • 데이터베이스를 위한 설계도

스키마 다이어그램

  • 데이터베이스 스키마를 도식화한 것(그림으로 나타낸 것)
  • 레코드 타입의 이름, 데이터 항목의 이름, 일부 제약 조건 유형들과 같은 스키마의 일부 관점만을 나타냄
  • → 여러 다른 관점(항목의 데이터타입, 파일간 관계, 제약 조건)은 표현되지 않음

인스턴스(instance) 또는 어커런스(occurrence)

  • 데이터베이스에 들어있는 데이터들

데이터베이스 상태 또는 스냅샷(Snapshot)

  • 어떤 특정 시점에 데이터베이스에 들어있는 데이터(들의 집합)
  • 갱신 연산이 수행될 때마다 새로운 다른 데이터베이스 상태를 가짐
  • DBMS는 데이터베이스 상태가 스키마에 명시된 구조와 제약조건을 만족하는 유효한 상태임을 보장

스키마 진화(schema evolution)

  • 새로운 필드를 추가하거나, 필요없는 필드를 삭제하는 과정
  • 대부분 DBMS는 시스템 운영 중에 스키마 진화가 허용되도록 지원함

3단계 스키마 아키텍쳐

→ 데이터베이스 세 가지 특징(프로그램과 데이터의 분리, 다중 뷰의 지원, 카탈로그에 메타 데이터 관리)를 잘 반영하기 위한 아키텍쳐

사용자에게 데이터베이스가 보여지는 구조 기술

데이터베이스 구조 기술

물리적 저장 구조 지술

목적

  • 데이터의 독립성 (data independence)
    • 하위 단계의 내용을 추상화하여 상위 단계에 그 세부사항을 감춤으로써, 한 단계 내의 변경이 다른 단계에 영향을 주지 않도록 하는 것
    • 논리적 데이터 독립성
    • : 외부 뷰와 개념 스키마 간의 독립성을 의미
    • 물리적 데이터 독립성
    • : 개념 스키마와 내부 스키마 간의 독립성
    ⇒ 데이터베이스 구조가 변경되더라도 상위 단계의 사용자가 영향을 받지 않도록 해준다.

데이터베이스 언어와 인터페이스

DDL : Data Definition Language, 데이터 정의어

스키마(내부,개념,외부 스키마)를 정의

ex) CREATE TABLE, CREATE INDEX/DROP INDEX, CREATE VIEW

DML : Data Manipulation Languag, 데이터 조작어

데이터를 검색(Select), 삽입(Insert), 삭제(Delete), 수정(Update)하기 위한 조작언어

DML 명령어는 C/Java/Python과 같은 범용 프로그래밍 언어에 삽입되어 사용될 수 있다.

DCL : Data Control Language

데이터베이스의 권한을 관리하는 명령어

ex) GRANK, REVOKE

TCL

트랜잭션을 관리하는 명령어

ex) COMMIT, ROLLBACK

SQL과의 차이

  • DDL,DML
    • 데이터베이스의 구조와 데이터를 관리하기 위한 명령어 그룹
  • SQL
    • 모든 명령어를 포함하는 완전한 쿼리 언어
    • DDL,DML,DCL,TCL을 모두 포함하는 데이터베이스 쿼리 언어

DBMS를 위한 중앙집중식과 클라이언트/서버 아키텍쳐

중앙집중식 DBMS 아키텍처

  • 메인 프레임(서버)와 터미널을 사용
    • 모든 작업은 메인 프레임에서 진행되고, 데이터를 입력하고 필요한 정보를 출력하여 표시해주는 일만을 터미널이 수행
  • 초기/과거의 DBMS 아키텍처는 중앙집중식 구조를 가짐
  • 현재는 컴퓨터의 대중화로 터미널이 PC/워크스테이션으로 대치됨

클라이언트/서버 아키텍처

  • 기존 터미널의 단순 화면표시/입력의 역할에서 벗어나서 응용 프로그램 일부 기능을 클라이언트에서 수행
  • 클라이언트 : 응용프로그램 수행
  • 서버 : 질의와 트랜잭션 처리
  • 서버와 클라이언트가 통신하기 위한 API
    • ODBC(Open Database Connectivity): C,C++ 언어에서 주로 사용
    • JDBC : Java 언어를 위한 DB 인터페이스
  • MySQL과 같은 데이터베이스는 Connector/C, Connector/Python, Connector/Net과 같은 여러 언어에서 데이터베이스를 접근하기 위한 클라이언트 인터페이스를 제공

웹 응용을 위한 3층 클라이언트/서버 아키텍처

응용 프로그램(client)는 웹(http) 프로토콜을 처리하는 웹/어플리케이션 서버를 통해서 데이터베이스 서버를 접근

내장형(임베디드) 데이터베이스

데이터베이스가 응용프로그램에 라이브러리 형태로 내장됨

ex) SQLite 아키텍쳐

중앙집중식 DBMS 아키텍처

  • 메인 프레임(서버)와 터미널을 사용
    • 모든 작업은 메인 프레임에서 진행되고, 데이터를 입력하고 필요한 정보를 출력하여 표시해주는 일만을 터미널이 수행
  • 초기/과거의 DBMS 아키텍처는 중앙집중식 구조를 가짐
  • 현재는 컴퓨터의 대중화로 터미널이 PC/워크스테이션으로 대치됨

클라이언트/서버 아키텍처

  • 기존 터미널의 단순 화면표시/입력의 역할에서 벗어나서 응용 프로그램 일부 기능을 클라이언트에서 수행
  • 클라이언트 : 응용프로그램 수행
  • 서버 : 질의와 트랜잭션 처리
  • 서버와 클라이언트가 통신하기 위한 API
    • ODBC(Open Database Connectivity): C,C++ 언어에서 주로 사용
    • JDBC : Java 언어를 위한 DB 인터페이스
  • MySQL과 같은 데이터베이스는 Connector/C, Connector/Python, Connector/Net과 같은 여러 언어에서 데이터베이스를 접근하기 위한 클라이언트 인터페이스를 제공

웹 응용을 위한 3층 클라이언트/서버 아키텍처

응용 프로그램(client)는 웹(http) 프로토콜을 처리하는 웹/어플리케이션 서버를 통해서 데이터베이스 서버를 접근

내장형(임베디드) 데이터베이스

데이터베이스가 응용프로그램에 라이브러리 형태로 내장됨

ex) SQLite

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
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
글 보관함