DB

데이터베이스 기본 지식

검정비니 2018. 10. 7. 11:53
728x90
반응형

데이터베이스와 파일 시스템




1. 데이터베이스란?



데이터베이스는 체계화된 데이터의 모임이다. , 작성된 목록으러써 여러 응용시스템들의 통합된 정보들을 저장하여 운영할 있는 공용데이터들의 묶음이다. 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합이다. 논리적으로 연관된 하나 이상의 자료의 모음으로 내용을 고도로 구조화함으로써 검색과 갱신의 효율화를 꾀한 것이다. , 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 있다.





2. 파일 시스템이란?



파일 시스템(file system) 컴퓨터에서 파일이나 자료를 쉽게 발견 접근할 있도록 보관 또는 조직하는 체제를 가리키는 말이다.

파일 시스템은 통상 하드 디스크나 CD-ROM 같은 실제 자료 보관 장치를 사용하여 파일의 물리적 소재를 관리하는 것을 가리키나 네트워크 프로토콜(NFS, SMB, 9P ) 수행하는 클라이언트를 통하여 파일 서버 상의 자료로의 접근을 제공하는 방식과 가상의 형태로서 접근 수단만이 존재하는 방식(procfs ) 파일 시스템의 범위에 포함될 있다.




3. 파일 시스템 대신 데이터베이스를 사용하는 이유?



- 데이터 중복과 불일치 (Data redundancy and inconsistency)


같은 정보가 서로 다른 파일에 저장될 수 있으며, 이를 확인하기 어렵다.


- 자료 접근이 어렵다(Difficulty in accessing data)


파일 시스템의 경우, 파일에 접근하는 방식이 응용 프로그램마다 정의되기 때문에, 특정 기능을 위해 자료 접근을 하기 위해서는 그 접근하는 방식을 직접 구현해야 한다.


- 생산성이 낮다


응용 프로그램마다 새로운 파일 형식과 설명을 설계하는 과정부터 시작해서 새로운 파일에 접근하는 방식을 일일이 구현해야 하기 때문에 생산성이 낮다.


- 데이터 모델링 개념이 부족하다


단순히 순차적인 레코드만으로 나타내기 때문에 데이터의 의미와 데이터 간의 상호관계를 나타내기 힘들다.


- 보안 기능이 미흡하다


파일 시스템에서는 파일 단위로만 접근을 할 수 있기 때문에, 사용자 권한에 따른 세밀한 접근 제어(레코드 단위)를 실행하기 어렵다.

(Hard to provide user access to some, but not all, data)


- 쉬운 질의어가 제공되지 않는다


SQL과 같은 쉬운 질의어가 제공되지 않는다.


- 다수의 사용자를 위한 동시성 제어가 제공되지 않는다(Concurrent access by multiple users)


파일 시스템의 경우, 다수의 사용자가 동시에 접근을 할 때에, 데이터의 불일치 등의 문제를 일으킬 수 있다.


- 데이터 무결성을 유지하기 어렵다 (Integrity problem)


파일 내의 데이터가 만족시켜야 하는 무결성 제약조건(constraint)들을 명시하려면 프로그래머가 직접 프로그래밍 언어를 사용하여 일일이 프로그램에 표현해야 하므로 데이터 무결성을 유지하기가 어렵다. 또한, 새로운 제약조건들을 추가하거나 기존의 제약조건을 수정하는 것도 어렵다.





위에서 볼 수 있듯이, 파일 시스템을 데이터베이스로 사용하게 되면 다양한 문제가 생길 수 있다.






4. 데이터베이스 관리 시스템



데이터베이스 관리 시스템(database management system, DBMS) 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 있도록 해주는 소프트웨어 도구의 집합이다. DBMS 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 있도록 해준다.





5. 추상화 단계 (Abstraction level)


- physical level


레코드가 어떻게 저장되어 있는지 보여준다.


- logical level


저장된 데이터나 데이터들 사이의 관계 등에 대해서 보여준다.


- View level


선택된 데이터들을 보여준다. 동일한 데이터로 여러 개의 뷰를 만들 수 있다. 세부사항은 응용 프로그램에 의해 숨겨지게 된다.





6. 스키마(schema)



데이터베이스 스키마(database schema) 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다. DBMS 주어진 설정에 따라 데이터베이스 스키마를 생성하며, 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경할 DBMS 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다.


스키마는 다음의 3 구조로 되어있다.


외부 스키마(External Schema): 프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한


개인의 입장, '서브스키마'라고도 한다, 사용자 뷰를 가리킨다. 하나의 외부 스키마는 여럿이 공유 가능하며, 하나의 DB시스템에 여러 개의 외부 스키마가 존재 가능하다.


개념 스키마(Conceptual Schema): 모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한


시스템 프로그래머나 설계자의 관점에서 바라보는 스키마로, 데이터베이스의 물리적 구조를 가리킨다.(실제 저장방법을 기술하는 물리적인 저장장치와 관련됨)


내부 스키마(Internal Schema) : 전체 데이터베이스의 물리적 저장 형태를 기술하는


조직 전체의 입장, 전체적인 뷰를 가리킨다. 개체간의 관계와 제약조건을 나타낸다. 또한, 데이터베이스의 (접근 권한/보안/무결성 규칙)에 대한 명세를 정의한다.



일반적으로 스키마라고 하면 내부 스키마를 의미한다. 이 내부 스키마는 DBMS에 의해 자동으로 생성되어진다. 이 내부 스키마는 데이터베이스의 전체적인 구조로서, 하나의 데이터베이스는 하나의 내부 스키마만을 갖고 있을 수 있다.





7. 데이터베이스 언어



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


데이터베이스 스키마를 정의하기 위한 언어이다.

컴파일된 스키마는 메타 데이터와 함께 Data Dictionary라는 공간에 저장된다.



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


데이터에 접근하고 조정할때 사용하는 언어이다.

데이터베이스 사용자 또는 응용 프로그램 소프트웨어가 컴퓨터 데이터베이스에 대해 데이터 검색, 등록, 삭제, 갱신을 위한, 데이터베이스 언어 또는 데이터베이스 언어 요소이다.


현재 가장 유명한 DML로는 SQL이 있다.





8. 데이터 모델 (Data Model)



데이터 모델에는 다양한 종류가 있다:


- E-R diagram


- Relational model


- Object-based data model



이러한 데이터 모델을 사용하는 이유는: 

1) 스키마 등에 비해서 이해하기 쉽고

2) 간략하게 전체적인 윤곽을 보여주며

3) 프로그램 코드에 비해 빠르게 제작할 수 있어서 디자인 오류를 더 빨리 찾아 낼 수 있게 해주고

4) 관련 툴을 활용하면 코드를 쉽게  생산해 낼 수 있기 때문이다.


반응형

'DB' 카테고리의 다른 글

데이터베이스 정규화  (0) 2022.03.31
E-R 모델 (E-R Model)  (0) 2018.10.22
관계형 모델 (Relational Model)  (0) 2018.10.22