-
반응형
01. 데이터베이스의 개요
1. 데이터베이스의 개념
데이터베이스는 대용량의 데이터를 쌓아 놓은 것이다. 웹 사이트에 아이디와 패스워드를 입력하면 로그인할 수 있는데, 보통 아이디와 패스워드는 데이터베이스가 저장한다.
2. 데이터베이스와 정보 시스템
데이터베이스를 사용하면 정보를 얻을 수 있다.
* POS 시스템은 판매 시점 정보 관리(Point of sale, POS) 시스템으로, 판매와 관련한 데이터를 관리하고 정보를 수집하여 부가가치를 높이는 시스템이다.
이처럼 데이터 베이스로 정보 처리를 하는 시스템을 정보 시스템(information system)이라고 하낟. 정보 시스템으로 가공된 정보는 의사결정에 사용한다. 그리고 경영에 관련한 정보 시스템을 경영정보 시스템(Management Information System)이라고 한다.
데이터에서 유용한 정보를 추출하는 기술을 데이터 마이닝(Data mining)이라고 한다. 데이터 마이닝은 무의미한 데이터에서 유용한 데이터를 추루하는 기술을 의미한다. 데이터 마이닝 기술을 이용하여 엄청 큰 데이터에서 유용한 정보를 추출하는 것을 빅데이터(Big data) 기술이라고 한다.
3. 데이터의 종류
컴퓨터가 다루는 데이터는 정형 데이터, 비정형 데이터, 반정형 데이터로 구분할 수 있다.
- 정형 데이터
정형 데이터(structured data)는 정해진 구조에 따라 저장된 데이터다. 예를 들어 전화번호부가 있다. 이름, 직장, 집, 전화번호처럼 정해진 구조에 따라 입력한다. 이렇게 미리 정해진 데이터 구조를 스키마라고 한다. 정형 데이터는 관리가 용이하다. 삽입과 삭제가 쉽고, 검색도 쉽게 할 수 있다. 그래서 데이터베이스에 저장된 대부분의 값은 정형 데이터다.
- 비정형 데이터
비정형 데이터(unstructured data)는 정해진 구조가 없는 데이터다. 트위터 같이 형식 없이 만들어진 데이터들이다. 비정형 데이터는 정형 데이터로 변환하는 과정이 필요하다.
-반정형 데이터
반정형 데이터(semi-structured data)는 정형과 비정형의 중간 형태인 데이터다. 태그를 통해 정형 데이터로 변환 가능하다. 예를 들어 웹 페이지를 제작할 때 사용하는 HTML이 있다.
4. 데이터베이스의 특징
데이터베이스는 실시간 접근, 최신 데이터 유지, 동시 공유, 내용 참조의 특징이 있다.
- 실시간 접근
데이터베이스는 실시간으로 데이터에 접근이 가능해야 한다. 사용자 요구에 응답하는 시간이 길어지면 고장으로 판단하거나 사용자가 시스템을 떠날 수 있다. 예를 들어 아이디와 패스워드를 입력한 후 로그인을 하려는데 반응이 없다면 사용자는 해당 웹 사이트가 먹통이 되었다고 생각할 것이다. 따라서 허용되는 시간 범위 내에서 응답할 수 있어야 한다.
- 최신 데이터 유지
데이터베이스는 최신 데이터를 유지할 수 있어야 한다. 데이터베이스는 데이터 삽입, 삭제, 수정이 가능해야 하고, 항상 최신 데이터를 유지해야 한다.
- 동시 공유
데이터베이스는 여러 사용자가 동시에 공유할 수 있어야 한다.
- 내용 참조
데이터 접근은 주소로 하는데, 데이터베이스는 내용을 참조하여 데이터에 접근하는 것을 허용해야 한다.
02. 데이터베이스 시스템
1. 파일로 데이터를 처리할 때의 문제
데이터베이스를 사용하지 않고 파일을 사용하여 데이터를 처리할 때 어떤 문제가 발생하는지 보자. 데이터베이스를 구성하지 않을 때 일반 프로그램은 자신이 정한 기준에 따라 파일에 데이터를 기록한다.
데이터 중복성의 문제
같은 데이터가 여러 프로그램에 중복돼 나타나는 상황에서 데이터를 변경하려면 각 프로그램을 전부 수정해야 한다.
데이터 종속성의 문제
보안의 문제
여러 프로그램이 파일을 공유하면서 권한이 없는 사람도 정보에 접근하는 문제가 발생한다. 허가받은 응용 프로그램이나 사용자만 데이터에 접근할 수 있는 보안책이 필요하다.
백업 및 회복의 문제
2. DBSM과 SQL
데이터베이스를 이용하여 특정한 작업을 수행해야 의미 있는 정보를 생성할 수 있다. 이러한 시스템을 데이터베이스 관리 시스템(DataBase Management System, DBMS)이라고 한다. 즉 데이터베이스에 쌓인 데이터에서 삽입, 삭제, 검색 등을 쉽게 할 수 있도록 만든 시스템이 DBMS이다.
DBMS는 운영체제의 시스템 호출과 비슷하다. 운영체제는 시스템 호출로만 커널 기능을 사용할 수 있게 함으로써 시스템을 보호했다. DBMS도 자신을 통해서만 데이터베이스에 접근할 수 있도록 함으로써 데이터베이스를 보호한다.
SQL(Structured Query Language)는 데이터베이스에 저장된 데이터를 처리하려고 만든 언어다. SQL은 스키마를 만들어 관리하는데, 스키마란 데이터의 삽입, 삭제, 갱신 등의 작업에 적합한 구조체다. 질문(query)을 하면 DBMS가 응답을 하는 구조로, SQL 형식에 맞춰 질문을 해야 한다.
상업용 DBMS로 가장 성공한 제품은 오라클이다. 오라클은 많은 기업에서 사용하는 가장 대중적인 DBMS이다. 이외에도 무료로 사용 가능한 DBMS로는 MySQL이 유명하다. 마이크로소프트의 SQL 서버와 무료로 사용 가능한 SQLITE도 있다.
03. 데이터베이스의 모델
1. 스키마
스키마(schema)는 데이터베이스에 저장되는 데이터구조와 제약 조건을 정의한 것이다. 일종의 데이터베이스 설계도면 같은 것으로, 처음부터 잘 만들지 않으면 문제가 발생한다.
하나의 데이터를 저장할 수 있는 영역이 필드이고, 하나의 스키마는 필드 여러 개의 집합이다.
스키마 구조에 맞춰 저장된 데이터 묶음 1개를 레코드(record)라고 한다.
2. 데이터베이스의 추상화
데이터베이스의 설계, 구축, 관리는 매우 복잡하다. 데이터베이스를 보는 관점에 따라 추상화를 하는 것이 복잡한 내부 구조를 숨기는 데 편하다. 미국의 ANSI/SPARC에서는 3단계로 추상화된 데이터베이스 구조를 제안했는데, 이를 3단계 데이터베이스 구조(3-level-database architecture)라고 한다. 3단계 데이터베이스 구조는 사용자의 관점, 조직의 관점, 시스템의 관점에 따라 데이터베이스를 외부 단계, 개념 단계, 내부 단계로 나눈다.
외부 단계(사용자 관점)
뷰 단계(view level)라고도 한다. 슈퍼마켓에서 판매팀과 재고 관리팀이 있을 때 전체 데이터베이스에서 각 팀이 필요로하는 정보는 다르므로 각 팀은 스키마의 일부를 보게 된다.
전체 데이터베이스를 모든 사람이 볼 수 있게 하는 것은 위험하기 때문이다.
개념 단계(조직 전체 관점)
모든 외부 스키마(external schema)를 통합하여 하나의 스키마로 구성하는데, 이를 개념 스키마(concept schema)라고 한다.
개념 스키마에는 각 데이터 간의 관계나 제약 사항, 접근 권한, 보안 정책 등이 정의돼 있다. 예를 들어 '월급은 인사팀 이외에는 볼 수 없다.' 판매팀은 납품처는 볼 수 있지만 수정은 안된다.' 같은 조건이 개념 스키마에 반영되어 있다.
내부 단계(시스템 관점)
데이터베이스를 실제로 저장하는 단계다. 디스크나 테이프 등 저장 장치에 어떤 방시긍로 저장할지 결정한다. 레코드의 구조, 필드의 종류와 크기, 접근할 수 있는 인덱스(index)처럼 저장에 필요한 정보들을 결정하는 단계다.
이처럼 데이터베이스를 3단계로 추상화하고 단계별로 스키마를 만드는 것은 데이터의 독립성 때문이다. 스키마의 변경이 서로에게 영향을 미치지 않고 독립적으로 움직인다는 의미이다.
3. 데이터베이스 모델
데이터베이스 모델은 데이터베이스에 데이터와 데이터 관계를 나타내려고 정의된 구조를 의미한다.
- 계층 모델
초기 데이터베이스는 데이터와 데이터 관계에 계층(structure)구조를 사용했다. 계층 구조는 맨 위쪽 계층부터 맨 아래쪽 계층까지 선으로 연결한 구조다.
- 네트워크 모델
데이터 관계를 선 여러 개로 연결한 구조다.
- 관계 모델
1980년부터 사용하기 시작한 2세대 데이터베이스는 관계(relation) 모델을 사용한다. 관계 모델에서 데이터는 테이블(table) 형태로 구성된다. 구성된 테이블들은 서로 간의 키(key)를 중심으로 여러 관계를 형성한다. 관계 데이터베이스 관리 시스템을 RDBMS라고 한다. 오라클을 비롯한 대부분의 데이터베이스 시스템이 RDBMS이다.
- 객체 모델
객체 모델은 관계 데이터베이스 이후에 등장했다. 객체 언어처럼 데이터와 데이터를 처리하는 함수를 하나의 객체 형태로 구성한 데이터베이스다.
- NoSQL 모델
비정형 데이터를 처리하려고 만든 데이터베이스다.
4. 관계 데이터베이스의 모델링
현실에서 특징을 뽑아내는 것을 개념 모델링(conceptual modeling)이라고 한다. 개념 모델링이 끝나면, 이제 데이터베이스에 담길 수 있는 형태로 변환해야 한다. 데이터베이스에 담길 스키마로 변환하는데, 이 스키마를 논리 스키마(logical schema)라고 한다.
관계 데이터베이스는 이러한 개체와 개체의 관계를 연결한 데이터베이스다. 구조화된 데이터와 제약 조건을 그래프 형식으로 나타낼 수 있는데, 이는 개체-관계 모델링(entity-relationship modeling, ERM)이라 한다. ERD는 다이어그램으로 나타낸 것이다.
개체-관계 모델링은 개체, 속성, 관계 세 가지로 구성된다.
- 개체(entity): 현실 세계를 구성하는 사람, 사물처럼 식별 가능한 모든 것을 가리킨다.
- 속성(attribute): 개체가 갖는 고유의 특성이다.
- 관계(relationship): 개체-관계 모델링에서 가장 중요한데, 관계는 개체와 개체가 맺고 있는 연관성을 가리킨다.
반응형'a' 카테고리의 다른 글
[무선통신과 모바일] (0) 2022.07.20 [컴퓨터 네트워크] (0) 2022.07.19 [OS] (0) 2022.07.15 [Mac] brew로 Node.js 설치 (0) 2022.07.04 [git] 기본 변경 사항 반영 방법 (0) 2022.06.30