DBMS - Database Management System

  • 서로 관계 있는 데이터들의 모임
  • 그 데이터에 접근하기 위한 프로그램의 집합
  • 편리하고 효율적인 환경

데이터 모델

  • 관계형 모델
  • 개체-관계 모델
  • 객체 기반 데이터 모델
  • 반 구조형 데이터 모델(XML)
  • 기타 구형 모델(네트워크,계층 척 모델)

관계형 모델 

  • 모든 데이터는 다양한 테이블에 저장
  • 관계형 모델의 테이블 형식 데이터의 예

 


데이터의 관점

  • physical level - 어떻게
  • logical level - 무엇을(고급 언어를 나누는 기준이 됨 how)
  • view level - 사용자에 맞게 제공(맞춤형 제공)

인스턴스와 스키마

  • 논리적 스키마 - 데이터베이스의 전체 논리적 구조

     ex) 데이터베이스는 은행의 고객 및 계좌와 이들 간의 관계에 대한 정보로 구성

  • 물리적 스키마 - 데이터베이스의 전체 물리적 구조
  • 인스턴스 - 특정 시점에서 데이터베이싀 실제 콘텐츠

물리적 데이터 독립성 : 논리적 스키마를 변경하지 않고 물리적 스키마를 수정 할 수 있는 기능

  • 논리적 스키마에 의존하는 애플리케이션
  • 일반적으로 다양한 수준과 구성 요소 간의 인터페이스를 잘 정의하여 일부 부분의 변경이 다른 부분에 심각한 영향을 미치지 않도록 해야 함.

데이터 정의 언어(Data Definition Language(DDL))

  • 데이터베이스 스키마 정의를 위한 표기법
  • DDL 컴파일러는 데이터 사전에 저장된테이블 템플릿 셋트를 생성
  • 데이터 사전에는 메타데이터가 포함됨
  • 무결성 제약(ID,학번 등 고유의 넘버가 있음)

*무결성 :  데이터의 정확성과 일관성을 유지하고, 데이터에 결손과 부정합이 없음을 보증하는 것


데이터 조작 언어(Data Manipulation Language(DML))

  • 적절한 데이터 모델로 구성된 데이터에 접근하거나 조작할 수 있도록 하는 언어(DML-query 언어로 알려짐)
  • 두 가지 유형의 데이터 조작 언어 - 절차식 DML 선언적 DML   
  • 선언적 DML은 일반적으로 절차식 DML 보다 더 쉬움
  • 정보 검색과 관련된 DML 부분을 쿼리 언어 라고 함
절차식 DML 사용자가 필요한 데이터와 해당 데이터를 가져 오는 방법을 지정하도록 요구
선언적 DML(비 절차적 DML) 사용자가 데이터를 가져 오는 방법을 지정하지 않고 필요한 데이터를 지정하도록 요구

 

SQL Query Language

  • SQL 쿼리 언어는 비 절차적
  • 쿼리는 하나 이상의 테이블을 입력 받아 단일 테이블을 반환
  • SQL은 튜링 머신과 동등한 언어가 아님
  • 복잡한 함수를 계산할 수 있도록 SQL은 일부 고급 언어에 포함되어 있음
  • 응용 프로그램은 일반적으로 (Embedded SQL을 허용하는 언어의 확장,SQL 쿼리를 데이터 베이스에 보낼 수 있는 응용 프로그램 인터페이스(ODBC/JDBC)) 중 하나를 통해 데이터 베이스에 엑세스

 


*튜링머신 : youtube.com/watch?v=BOr1waCdv3U


데이터베이스 설계

데이터베이스의 일반적인 구조를 설계하는 과정

  • 논리적 설계  - 데이터 베이스 스키마 결정,
  • 물리적 설계  - 데이터 베이스의 물리적 레이아웃 결정

데이터베이스 엔진

Storage Manager 데이터베이스에 저장된 하위 수준 데이터와 응용 프로그램과 쿼리 간의 인터페이스를 제공하는 프로그램 모듈
OS 파일 관리자와의 상호작용
데이터의 효율적인 저장,검색 및 업데이트
데이터-파일 데이터베이스 자체저장,데이터 사전-데이터베이스 구조,특히 데이터베이스 스키마에 대한 메타 데이터를 저장
인덱스-데이터 항목에 대한 빠른 엑세스를 제공 할 수 있음
특정 값을 보유하는 항목에 대한 포인터 제공
권한 부여 및 무결성 관리자,트랜잭션 관리자,파일 관리자,버퍼 관리자
Query Processor DDL 인터프리터 - DDL 문을 해석하고 데이터 사전에 기록
DML 컴파일러 - 질의어 내의 DML 문을 질의 평가 엔진이 이해할 수 있는 하위 단계 명령어로 구성된 질의 수행계획으로 바꿈
Transaction Management 데이터베이스 애플리케이션 내의 단일 논리 기능을 수행하는 동작들의 모음
트랜잭션 오류(동시에 여러가지의 일을 요구하는 등)에도 불구하고 데이터베이스가 올바른 상태로 유지되도록 함
동시성 제어관리자 :데이터베이스의 일관성을 보장하기 위해 동시 트랜잭션 간의 상효작용을 제어

 

Database Architecture (Centralized/Shared-Memory)


데이터베이스 아키텍처

  • 중앙 집중식 데이터베이스 - 하나에서 몇개의 코어,공유 메모리
  • 클라이언트-서버 - 하나의 서버 시스템이  여러 클라이언트 시스템을 대신하여 작업,실행
  • 병렬 데이터베이스 - 많은 코어 공유 메모리,공유 디스크,아무것도 공유하지않음
  • 분산 데이터베이스 - 지리적 분포,스키마/데이터 이질성

데이터베이스 응용

  • Two-tier 아키텍처: 아키텍처 - 애플리케이션이 클라이언트 시스템에 상주,서버 시스템에서 데이터베이스 시스템 기능을 호출 ( 응용의 확장이 쉬움)
  • Three-tier 아키텍처: 아키텍처 - 클라이언트 시스템은 프런트 엔드 역할을 하며 직접적인 데이터베이스 호출을 포함하지 않음 (보안성이 뛰어남)

2차,3차 차이점

 


데이터베이스 관리자(시스템을 관리하는 작업자)

  • 스키마 정의
  • 저장 구조 및 액세스 방법 정의
  • 스키마 및 물리 구조의 수정
  • 데이터 엑세스 권한의 인정
  • 루틴 유지 및 관리
  • 주기적으로 데이터베이스 백업
  • 정상적인 작업에 충분한 여유 디스크 공간이 있는지 확인하고 필요에 따라 디스크 공간을 확보
  • 데이터베이스에서 실행중인 작업 모니터링

*데이터베이스 시스템의 역사

  • 1950~60 년대 : 저장용 자기 테이프를 사용한 데이터 처리
  • 1960~70 년대 : 데이터에 직접 액세스 할 수 있는 하드 디스크, Ted Codd는 관계형 데이터 모델을 정의
  • 1980 년대 : 연구 관계형 타입이 상용 시스템으로 진화
  • 1900 년대 : 대규모 의사 결정 지원 및 데이터 마이닝 애플리케이션
  • 2000 년대 : 빅 데이터 저장 시스템 > SQL을 넘어서 
  • 2010 년대 : SQL이 다시 도래,대규모 병렬 데이터베이스 시스템,멀티 코어 메인 메모리 데이터베이스

**데이터 마이닝 :많은 데이터 가운데 숨겨져 있는 유용한 상관관계를 발견하여, 미래에 실행 가능한 정보를 추출해 내고 의사 결정에 이용하는 과정

 


 

'프로그래밍 > 데이터베이스' 카테고리의 다른 글

*데이터베이스 #2 | SQL  (0) 2021.03.29
*데이터 베이스 #1 || Relational Model  (0) 2021.03.20

+ Recent posts