본문 바로가기

이론/DB

[DB] 정보와 데이터베이스, 개체/속성/관계

목차(INDEX)

1. 정보와 데이터
2. 자료처리 시스템의 종류
3. 데이터베이스(database) 정의
4. 통합데이터란?
5. 데이터 베이스의 특성

6. 데이터베이스 시스템이란?
7. 개체란 ?
8. 속성이란?
9. 개체 집합이란 ?
10. 관계란?
11. 데이터베이스의 논리적 구조와 물리적 구조



1. 정보와 데이터
1-1) 데이터의 정의
데이터란, 관찰이나 측정을 통해 수집된 사실이나 값이다.
→ 데이터를 시간대에 따라 분류하면 정보가 나온다.

1-2) 정보의 정의
정보란, 의사결정을 할 수 있게 하는 데이터의 해석이나 데이터 상호간의 관계이다.
데이터와 정보의 차이점은 이런식으로 볼 수 있다.
정보는 의사결정을 할 수 있게 하는데, 의사결정이란 얘기는 '우리가게가 수요일에 장사가 잘되냐?' 라는 이야기이다.

데이터의 중요성
데이터가 중요한거냐 , 정보가 중요한거냐는 중요하지 않다.
데이터 수집이 중요하다. 데이터 수집은 데이터를 어떻게 바라볼 것인가?가 중요하다. 수강신청한 기록들 , 도서관에 들어갔을 때의 기록들, 출석체크의 기록들이 DB화되어 모두 남는다.  정보시스템이 fundamental해지고 필요해지고 있다. 데이터가 목적에 맞게 잘 쌓여있기만 해도 데이터 마이닝이라던가 딥러닝을 통해 알 수 없었던 의사 결정 의견들이 나올 수 있다.
→ 데이터 수집이 중요하다.

2. 자료처리 시스템의 종류
자료처리 시스템의 데이터를 처리하는 방법은 크게 두 가지가 있다.
2-1) 일괄처리 시스템(Precessing system)
정의
데이터를 일정한 양이 될때까지 모았다가 한번에 분류해서 컴퓨터에 저장하는 방식이다. 데이터를 다 준비하고, 원시데이터이다. (원시데이터란, 현실세계에서 나온 데이터이다.)
이것의 목적은 적은 자원으로 빨리 처리할 수 있다.
단점
1) 실시간 처리가 되지 않아 결과를 즉시 얻을 수 없다.
2) 고객 만족도가 높지 않다.

2-2) 온라인 처리 시스템
요즘은 사용자 관점에서 실시간으로 온라인 처리가 가능하다. (기다릴 필요가 없다.) 중앙에 있는 호스트 컴퓨터/서버의 직접적인 제어를 받는 데이터 처리 방식이다.
장점 : 실시간 처리가 가능해서 편의성이 증가, 동시 접근 가능
단점 : 낮은 시스템 성능과 높은 처리 비용이 필요함, 유지/보수 비용이 크다(오버헤드가 발생)
온라인 처리 시스템은 기본적으로 중앙 집중 방식을 사용한다.

2-3) 분산처리 방식
사용자가 많아저도 시스템 성능이 좋다.

2-4) 중앙집중 방식
데이터를 관리하는 서버가 있고 클라이언트가 그 서버에 모두 요청하여 처리하는 방식 데이터의 동기화 이슈가 크다. A에서 수강신청 결과를 고쳐도 B에 반영 안되면 큰일이다. 대부분의 연산이 변경연산이 아니라 읽기 연산이라면 굉장히 효율적이다.
클라우드 환경으로 데이터 처리가 다 옮겨가고 있다. 회사가 자체적인 데이터베이스 시스템을 가지지 않아도 AWS에 저장하는 추세이다. 이 경우, 회사는 클라이언트이다. (넷플릭스가 AWS를 쓰고 있다.) 이것의 장점은 회사에서 데이터의 안전성,성능을 고민할 필요없이 데이터 응용만 고려하면 된다. 클라우드에 데이터를 저장하는 방식으로 추세가 가고 있다.

3. 데이터베이스(database) 정의
1963년 제 1차 SDC 심포지엄
- 아예 데이터를 컴퓨터 안에 저장하는 방법에 대한 논의가 시작되었다.
- 이때 주제는 컴퓨터 중심이 된 데이터베이스의 개발 및 관리였다.
1965년 제 2차 SDC 심포지엄
- 아예 데이터를 컴퓨터 안에서 관리하는 컴퓨터 중심의 데이터 베이스 시스템이 제안되었다.
- 애니악이 나온 후 20년 만이다.



3-2) 데이터베이스를 한마디로 말하면 무엇인가?

한 조직의 여러 응용 시스템들이 공동으로 공유하기 위해 통합,저장,운영하는 데이터의 집합이다.

데이터 베이스는 공유된(shared) 형태를 가지고 있다. 그리고 중복이 제거되어있다.

[예시]

수강신청 관리 시스템에도 학생정보가 필요하겠다.

수강신청은 하나의 부서라고 하자.

학사관리도 하나의 부서라고 하자.

만약 부서가 분리되어 있다고 하자.

부서들은 나름대로 학생정보를 가지고 있을 것이다.

개별 학생들에 대한 정보를 각자 관리하고 있었다.

하다보니까 데이터 중복이 생기는데 데이터 중복이 생기면 어떤 일이 발생하는가?

문제점은 수강신청 부서는 A라는 학생이라는 정보를 1년전 데이터를 가지고 있고,

학사관리팀은 최신 정보를 가지고 있으면 갱신이 안되어있는 정보가 있는것이다.

데이터 비용이 발생하기도 하고 중복된 데이터의 일관성이 어렵다.

학생이라는 정보를 부서마다 관리하지 않고 하나로 따로 떼어서 관리하면,

업데이트 된 학생 정보를 두가지의 부서에서 읽을 수 있다.



4. 통합데이터란?

통합데이터란,

중복을 허용하지 않으나 어쩔 수 없이 중복이 필요한 경우,

데이터가 어떻게 연동을 할 것인지에 대한 통제만 할 수 있다면 최소한의 중복은 허용한다.

심지어는 로그인 아이디와 패스워드가 한 조직 내의 다른 부서에 공유되지 않는다면,

매우 불편한 결과를 초래한다.


[하드디스크가 데이터 읽는 방식]

컴퓨터안에 데이터를 저장하는 방식은 여전히 하드디스크가 많이 사용되고 있다.

테이프의 자기장치를 통해 데이터를 저장할 수 있는데,

테이프의 단점은 100M를 다 읽어들이기 전까지 아무것도 못한다.

데이터를 순차적으로 읽지 않는 방식은 임의적 접근 방식(random access)이라고 한다.

하드디스크는 임의적 접근 방식(random access)방식을 사용한다.

디스크 말고 요즘에는 플래시 메모리에 저장한다.



5. 데이터 베이스의 특성

1) 실시간 접근이 가능하다

사용자가 질의(Query)를 던졌을 때 질의어에 대한 실시간 처리및 응답을 뜻한다.

질의 : 데이터 베이스에 대한 요청(검색, 업데이트,삽입,삭제)

2) 계속적인 변화

갱신,삽입,삭제에 따라 데이터가 변화한다.

3) 동시 공용(concurrent sharing)

여러명의 사용자가 데이터를 공유한다.

4) 내용에 의한 참조

내용 기반한 접근이 가능하다.

[예시]

3학년 학생중 여학생에 대한 검색이 가능하다.

질의의 조건이 identify하는 정보가 아닌 이름,성별,학과에 따라 참조할 수 있다.



6. 데이터베이스 시스템이란?

데이터베이스 시스템은 데이터베이스를 관리하고 처리하는 시스템이다.

데이터베이스를 논리적으로 봤을때에는,

현실세계를 개체(entity)들간의 관계(relationship)으로 본다.

데이터베이스에는 개체관계로 저장되어있다.

수강신청에서 개체는 학생이 있고, 또다른 개체는 학생이 신청한 과목이 있겠다.

수강신청하면 그 순간 관계가 만들어진다.

학생개체(A)와 과목(B)에 대해 A가 B를 수강한다는 관계가 만들어진다.

데이터베이스안에 개체만 저장될것같지만 개체들간의 관계도 저장한다.



7. 개체란 ?

개체는 entity라고 이야기한다.

학생과 과목만 개체가 있을것같지만 강의자료도 하나의 개체이다.

개체와 속성을 구분하기만 하면 됨.



8. 속성이란?

* 속성은 개체에 종속적이다.

학생이라는 개체가 있고 학생이름, 학과, 입학년도는 개체에 대한 속성이다.

개체는 C,JAVA에서 레코드(record)라고 볼 수 있고, 속성은 멤버 속성(member attribute)이다.

결국 개체는 여러개의 속성으로 정의되어 있다.



9. 개체 집합이란 ?

개체 집합은 인스턴스를 모아놓은 것을 개체 집합이라고 한다.

학생이라는 개체 타입이 세가지 속성(학번,이름,학과) 으로 정의되어있다.


10. 관계란 ?

관계는 개체들간의 관계를 얘기한다.

속성관계는 개체와 속성들간의 관계를 표현한것이다.


[예시]

'학생안에 학생 , 이름, 학과라는 것이 있다'라는 그래프가 만들어진다.

일반적으로 관계는 교수, 학생 개체타입의 관계를 얘기하고, 보통은 1:N의 관계이다.

학생과 교수간의 entity가 만들어졌을때, 두개의 entity안에 지도, 수업 등의 관계를 나타낸다.



11. 데이터베이스의 논리적 구조와 물리적 구조

데이터 베이스 논리적 구조는 학생이나 교수, 학원,직원 데이터의 개념적인 구조를 나타낸다.

데이터베이스 물리적구조란, '저장장치 관점에서 데이터를 어디에 배치할것인가'에 대한 관점이다.



랜덤으로 데이터를 저장했을 경우

worst case : 1000번

1000명중에서 234번째 학생을 찾아야 하는 경우, 234번이 만약 끝에 있다면 1000번 다 봐야한다.



학번순으로 저장했을경우

1번째 search : 500번 --> [1,500]

2번째 search : 251번 --> [1,251]

3번째 search : 126번 --> [1,126]

'이론 > DB' 카테고리의 다른 글

[DB] SQL - (2)  (0) 2019.04.19
[DB] 데이터베이스 스키마/카탈로그  (0) 2019.03.21
[DB] 데이터베이스 마이그레이션  (0) 2019.02.23
[DB] DB 스키마  (0) 2019.02.18
[DB] 데이터베이스 정의, 등장배경  (0) 2019.02.18