본문 바로가기
Engineering WIKI/Database

데이터베이스 시스템

by wonos 2019. 1. 19.

[데이터베이스의 특징]

* 실시간 접근성 : 데이터베이스는 실시간으로 서비스된다. 사용자가 데이터를 요청하면 수 초 내에 결과를 서비스한다

* 계속적인 변화 : 데이터베이스에 저장된 내용은 한 순간의 상태이지만, 데이터 값은 시간에 따라 항상 바뀐다.

*동시공유 : 데이터베이스는 서로 다른 업무, 여러 사용자에게 동시에 공유된다. (병행 = parallel)

* 내용에 따른 참조 : 데이터베이스에 저장된 데이터는 물리적인 위치가 아니라 값에 따라 참조된다.


[데이터베이스 시스템의 구성]

* DBMS : 사용자와 데이터베이스를 연결시켜주는 소프트웨어

* 데이터베이스 : 데이터를 모아둔 토대

* 데이터 모델 : 데이터가 저장되는 기법에 관한 내용


일반적으로 데이터들은 데이터베이스에 저자오디어 있습니다. 그런데 그러한 데이터를 어떻게 저장할 것인가를 의미하는 것이 데이터 모델이고, 개발자가 데이터베이스로부터 데이터를 꺼내오기 위해서 데이터베이스와 연결을 시켜주는 소프트웨어가 DBMS(DataBaseManagementSystem)이다.


[파일 시스템과 비교한 DBMS의 장점]




[DBMS의 기능]

* 데이터 정의(Definition) : 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행함

* 데이터 조작(Manipulation) : 데이터를 조작하는 프로그램이 요청하는 데이터의 삽입, 수정, 삭제 작업을 지원함

* 데이터 추출(Retrieval) : 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출함

* 데이터 제어(Control) : 데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어함, 백업과 회복, 동시제어성 등을 지원


데이터 정의 와 데이터 조작의 차이

* 데이터 정의는 데이터 구조(Table)에 대해서 작업을 하는 것이고 데이터 조작은 Table에 들어있는 혹은 Table에 넣을 데이터에 대해서 작업을 하는 것.



[데이터 모델(Data Model)]

* 계층 데이터 모델(hierarchial data model)

* 네트워크 데이터 모델(network data model)

* 관계 데이터 모델(relation data model)

* 객체 데이터 모델(object data model)

* 객체-관계 데이터 모델(object-relational data model)


실제로 가장 많이 사용되는 모델은 관계 데이터 모델이다.

관계데이터모델은 서로 연관된 데이터들을 테이블로 모아두는 구조인데, 오늘날 객체지향 프로그래밍언어와는 모델이 맞지 않아서 ORM(Object Relational Mapping)을 사용하는 경우가 많다.




[ 3단계 데이터베이스 구조]

* 외부스키마(External Schema)

* 개념스키마(Conceptual Schema)

* 내부스키마(Internal Schema)








[외부 스키마]

* 일반 사용자나 응용 프로그래머가 접근하는 계층으로 전체 데이터베이스 중 하나의 논리적인 부분을 의미

* 여러 개의 외부 스키마가 있을 수 있음

* 서브 스키마(Sub Schema)라고도 하며, View의 개념임


외부스키마는 개념스키마의 부분집합.




[개념 스키마]

* 전체 데이터베이스의 정의를 의미

* 통합 조직별로 하나만 존재하며 DBA가 관리함

* 하나의 데이터베이스에는 하나의 개념 스키마가 존재


개념스키마란 개발하는데 필요한 모든 데이터베이스를 정의해 놓은 것.



[내부 스키마]


* 물리적 저장장치에 데이터베이스가 실제로 저장되는 방법의 표현

* 내부 스키마 역시 하나만 존재

* 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함됨.


내부스키마란 실제 구현에 관한 이야기로, 이 속성이 어떠한 형태(Integer or Varchar or 등등)이며 어느 정도의 크기를 갖는지 등에 관해서 기술해둔 스키마를 의미한다.



[매핑(Mapping)]

* 외부/개념 매핑

* 개념/내부 매핑


외부/개념 매핑은 사용자의 외부스키마와 개념 스키마 간의 매핑(사상)을 의미하며 외부스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시키는 것.


개념/내부 매핑은 개념 스키마의 데이터가 내부스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지를 대응 시키는 것.

'Engineering WIKI > Database' 카테고리의 다른 글

[Oracle]오라클 NVL 사용법  (0) 2020.03.09
[MySQL] 날짜 조회  (0) 2020.03.09
[MySql] Curdate() 와 Now()의 차이점  (0) 2019.11.27
[MySql] 패스워드 해시 업데이트  (0) 2019.11.26
[MySql] JOIN  (0) 2019.07.04
[MySql] 유저 등록  (0) 2019.05.30
[MySql] CAST 를 이용하여 만 나이 계산하기  (0) 2019.02.14
[Mysql] Having 조건  (0) 2019.01.19