황진호

황진호

공부한걸 요약해서 기록해놓는 블로그

[DataBase] DBS

1 분 소요


참고서적: 데이터베이스 개론 2판



정의


DBS란, 데이터베이스에 데이터를 저장(Create)하고, 저장된데이터를 관리(Read,Update,Delete)하여 조직에 필요한 정보를 생성해주는 시스템이다.

DBS는 사용자,데이터언어,DBMS,DB,컴퓨터 로 구성된다.


Schema와 Instance


  • Schema: DB에 저장되는 데이터구조와 제약조건을 정의한것
  • Instance: Schema에 따라 DB에 저장되는 실제값


DB의 구조


구조는 크게 3가지로 구분한다.

  • 외부단계 : 개별사용자의 관점에서 바라보는 단계 ( 이단계에서의 스키마를 외부스키마 라고함)
  • 개념단계 : 조직전체의 관점에서 바라보는 단계( 이단계에서의 스키마를 개념스키마 라고함)
  • 내부단계 : 물리적 저장관치의 관점에서 바라보는 단계( 이단계에서의 스키마를 내부스키마 라고함)


데이터 독립성


DB에서의 3가지구조들에 대해 독립성이 실현되지 않는다면, 한 스키마구조에 대해 변동이 생겼을때, 다른스키마들에게도 영향을 미칠수 밖에 없다.

그렇게되면 한 스키마의 변동때문에 다른스키마들까지 통째로 수정을해서 매우 유지&관리에 불편함을 겪게된다.

따라서 각각의 스키마에 대한 변동이 생겼을때, Mapping (사상)작업을 두어, 각각의 Mapping 부분만 수정하여 유지&관리하기 쉽게 하여야 한다. 이를 데이터 독립성을 실현했다고 한다.

  • 논리적 데이터 독립성(외부/개념 Mapping) : 개념스키마에 변동이 생겼을때, 외부스키마에 영향을 주지않는다.
  • 물리적 데이터 독립성(개념/내부 Mapping) : 개념스키마에 변동이 생겼을때, 내부스키마에 영향을 주지않는다.


데이터 사전(System Catalog)


데이터를 관리하기위해 저장되는 데이터(Schema,Mapping정보,Constraint 정보 등)에관한 정보(Meta Data)를 저장하는곳 이며, System DataBase 라고도 불린다.


데이터언어


user와 DBMS 간의 통신수단으로 크게 3가지로 구분한다.

  • 데이터 정의어(DDL = Data Definition Language) : Schema를 정의,수정,삭제(Create,Alter,Delete) 하기위해 사용
  • 데이터 조작어(DML = Data Manipulation Language) : 데이터의 CRUD 처리를위해 사용
  • 데이터 제어어(DCL = Data Control Language) : 동시공유,무결성,보안,회복을위해 내부적으로 필요한 규칙이나 기법 들을 정의하기위해 사용


사용자


데이터베이스를 이용하는 사용자는 크게 3가지로 나눈다.

  • 최종사용자: 데이터베이스에 접근하여 데이터를 조작(CRUD = DML사용)한다.
  • 데이터베이스 관리자(DataBase Administartor) : 주로 DDL 과 DCL을 사용하여 DB를 관리/운영 한다.
  • 응용 프로그래머: 데이터언어를 삽입하여 응용프로그램을 구축한다.


DBMS (DataBase Management System)


DB를 관리하고 데이터처리 요구에 대한 수행을함. 크게 2가지로 구분

  • 질의처리기 : 사용자의 데이터 처리요구(Query) 를 해석하여 처리
  • 저장 데이터 관리자 : 디스크에 저장된 DB와 데이터사전을 관리하고 실제접근함


태그:

카테고리:

업데이트:

공유하기

Twitter Facebook LinkedIn

댓글남기기

참고

[Kotlin] Annotation 생성 및 활용 방법

6 분 소요

보통 어떤 기능을 만들기 위해 클래스나 인터페이스를 생성하고, 프로퍼티와 함수를 구현하고 이용합니다. 이렇게 생성된 클래스의 프로퍼티나 함수를 이용하여 캡슐화된 특정 기능을 호출 및 참조할 수 있습니다.

[Kotlin] Coroutine - 예외처리

17 분 소요

코루틴을 생성하기 위해서는 간단하게 Coroutine Builder 함수인 launch() 와 async() 를 이용하여 새로운 코루틴을 생성할 수 있습니다. 코루틴 빌더는 CoroutineScope 의 확장함수로써 기본적으로 상위 CoroutineScope 의 CoroutineC...

[Kotlin] 동시성 문제와 해결방법

10 분 소요

소프트웨어를 개발하는 데 있어서, 성능을 높이기 위해 가장 흔하게 사용할 수 있는 방법은 병렬로 실행하는 것 입니다. 병렬 실행은 하드웨어의 특성을 이용하여 성능을 높이는 가장 좋은 방법이지만, 병렬로 여러 프로세스나 스레드에서 같은 데이터를 접근하여 읽고 쓰는 과정이 수행될 때,...

[Compose] Compose Compiler

17 분 소요

최근들어 Compose 를 UI toolkit 으로 많이 사용하고 있습니다. 저 역시 마찬가지로 기존의 xml 기반의 뷰 작업들을 모두 Compose 로 migration 한 뒤로, 새로운 기능을 개발할 때 Compose 로 개발하고 있습니다. Compose 를 사용하고는 있지만...