개발자 끄적끄적
데이터 베이스 개념 본문
<제1장 데이터와 데이터베이스>
데이터베이스(database)
- 정보를 필요에 따라 모아놓은 것
- 조직이나 개인이 사용하는 '조작 가능한', '저장된' 데이터의 모임
->조작 가능한 : 컴퓨터로, '저장된' 디스크 등
ex) 사장실의 파일 캐비닛
- 주소록, 계약서 등을 관리(각각 하나의 데이터베이스를 구성), 각각의 파일을을 모아 놓으면 데이터베이스(database)라고 한다
->여러 테이블이 모이면 데이터베이스가 구성된다
- 편리한 사용을 위해 '정렬, 분류'
- 파일 삽입, 삭제, 검색, 갱신 등
- '컴퓨터(=조작가능한)'를 이용하여 이러한 작업을 대행할 수 있다
<데이터, 정보, 베이스(1)>
- 데이터, 정보 그리고 지식
1. 데이터(data) => 사실, 값, 객관적
- 실세계의 실체를 묘사하는 '값'
- '정형화(어떤 타입을 갖는 값)'되고 '기록할 만한 가치가 있다고 판단되는(조직의 입장에서 관리할 필요가 있다고 판단되는)'
어떤 현상이나 사건, 아이디어에 대한 묘사
- 값이 객관적이어야한다(키가 170cm이다(O), 키가 보통이다(X)//주관적인 데이터) -> 수치화된 값으로 표현되어야 한다
2. 정보(information) => 데이터를 기반으로 표현, 객관적
- '데이터는 사실'들 '그 자체에 대한 일차적인 표현'
- 사실들과 이들로부터 유도될 수 있는 유추된 '사실들'
- 데이터(학점에 대한 데이터)를 통해 처리 -> 정보(학점을 그래프로 나타냄) 또한 사실이며 객관적이다
- 하지만, 두 가지 정보(동일한 사실)에대해서 다르게 판단할 수 있다 -> 지식
3. 지식(knowledge) => 정보를 바탕으로 판단, 주관적, 추론, 규칙, 반복(판단)
- 데이터와 정보에 비해 좀 더 '상위 수준의 개념'
- 수동적이고 정적인 데이터나 정보에 비해, '이들을 처리하는 "방법"'이나
어떤 근거에 의한 판단을 내리는데 필요한 '분석과 판단에 관한 "법칙"' 등을 포함한다
- ex) 삼성전자의 주식이 3일 후에는 오를 것이다, 이번주 내내 비가 왔으니 다음주도 비가 올 것이다
현실세계 ->(추출)-> 데이터 ->(처리) -> 정보 -> (추론) -> 지식
- Time flies like an arrow
앞에서 해석 -> Time(주어) flies(동사) like~(전치사) => 시간은 화살처럼 난다
뒤에서 해석 -> an arrow(주어) like(동사) flies Time(명사) => 시간 파리는 화살을 좋아한다(문법적으로 틀리진 않지만 통용적으로 사용X 또는 앞문장과 뒷문장의 연결성을 가지고 판단한다는 의미)
<데이터, 정보, 데이터베이스(4)>
- 데이터 베이스(기지)의 정의 => 데이터를 모아놓은 기지
- 관련된 데이터의 모임 또는 집합
ex) 학생 데이터 : 교과목, 수강 데이터, 성적 데이터 등
- 정형화(format 된 형태)되고 조작 가능한(수치화된 또는 처리하기에 용이한) 컴퓨터에 저장된 데이터의 모임
- 특정 목적을 위해 계산, 저장, 검색, 정렬 등의 "데이터 처리" 작업을 수행
ex) 성적 처리, 마케팅을 위한 상품 판매 분석 등
- 데이터베이스란 어떤 특정 조직의 응용 시스템에 사용되는 조작 가능한 저장 데이터의 모습
<데이터, 정보, 데이터베이스(5)>
- 일시적 데이터와 영구적 데이터
- 일시적(transient) 데이터 => 휘발성 데이터(Volatile data), 메인메모리에 저장되어있다
- 해당 프로세스가 실행되는 동안만 일시적으로 존재
- ex) 프로그램의 변수
- 영구적(persistent) 데이터 => 비휘발성 데이터(Non-volatile data)
- 어떤 프로세스의 생명주기에 종속적이지 않고 스스로 존재
- 비휘발성 매체에 저장, 디스크에 존재(전원이 꺼지더라도 저장되어있다)
- 일반적인 데이터베이스는 지속적인 데이터 모임을 뜻한다
<데이터베이스 관리 시스템(1)>
- 데이터베이스 관리 시스템
- DBMS(DataBase Managment System)
- 컴퓨터에 저장되는 데이터베이스를 관리해주는 소프트웨어 시스템
- DBMS 종류
- 외산 : Oracle, MS SQL-Server, DB2, Sybase, dBase, FoxPro, MS Access
- 국산 : 큐브리드(CUBRID), 티베로(Tibero), 티맥스소프트, ALTIBASE
- 공개 S/W : MySQL, PostgresSQL(큐브리드)
<데이터 베이스의 관리 시스템(3)> - 창고와 DBMS의 관계 예시
물건 : 데이터
창고 : 데이터베이스(디스크)
창고관리인 : DBMS(사용자와 데이터베이스를 연결해주는 인터페이스 역할)
직원 : 응용 프로그램 또는 사용자
<DBMS가 제공하는 기능(1)>
1. 정보를 표현할 수 있는 틀(DDL)
- DBMS가 정보를 관리할 수 있는 양식
- 현실 세계의 정보를 컴퓨터에 저장시키는 양식이므로, '다양한 정보의 표현'이 가능해야 한다
2. 데이터의 공유기능
- DBMS가 관리하는 데이터는 여러 응용프로그램이 필요에 따라 이용할 수 있도록 제공된다
-> 데이터의 중복 제거 : 데이터를 공유함으로써 비효율성과 일관성(Consistency)문제를 제거
- 동시성 문제(Concurrency Problem)
- 다른 프로그램 또는 프로세스가 동시에 같은 데이터에 작업을 하려할 때
즉, 동일한 데이터를 다른 운영체제에서 다룬다면 비일관적인 상태로 빠진다
- 다중 사용자 환경에서 하나의 트랜잭션이 동시에 실행되는 다른 트랜잭션에 의해 영향을 받는다
-> DBMS는 하나의 단위 프로그램이 일을 마칠 때까지 해당 데이터를 독점하도록 하는 방법 등으로 문제를 막는다
<DBMS가 제공하는 기능(2)>
- 데이터 무결성 유지 기능
- 데이터 무결성(Integrity)
- 데이터베이스 내의 데이터가 얼마나 정확한가를 뜻한다
ex) 나이가 200 또는 -23 (?)
- 데이터 중복으로 인한 불일치 문제
- 데이터 독립성
- 응용 프로그램과 데이터 간의 '독립성'
- 응용 프로그램은 데이터가 디스크에 구체적으로 어떻게 저장되어 있는 지 몰라도된다
- 데이터 종속적(Data-Dependent)
- 데이터의 구조가 저장형태를 고려한 응용프로그램 구현으로 나중에 데이터의 저장형태나 구조를 바꾸려고 할 때
응용프로그램도 바꾸지 않으면 안된다
<DBMS가 제공하는 기능(3)>
- 효율적인 자원관리가 기능
- 많은 양의 데이터를 다루는데 적합한 효율적이고 효과적인 방법들을 사용
- 디스크 상에 데이터를 배치시키거나 디스크의 데이터를 처리를 위해 주기억장치로 불러들이는 작업
- 데이터 보안성과 안정성 유지 기능
- DBMS가 관리하는 모든 데이터에 대해 자체적인 보안 기능(사용자에게 접근 기능을 구분하여 제공)제공
- 보안성 : 사람으로부터 데이터의 보호
- 안정성 : 컴퓨터 장애나 고장 등으로부터의 보호
- 예기치 못한 상황이 발생할 때 체계적인 수습이 가능해야 한다
<파일과 데이터베이스(1)>
- 파일 시스템의 데이터 관리 기능
- 파일 시스템(File Sysytem)
- 운영체제(OS, OS의 목적 : 컴퓨터의 자원을 효율적으로 관리)의 중요한 부분으로 데이터나 프로그램을 디스크에 읽고 쓸 수 있도록 해주는 프로그램
- 프로그램에서 다루는 데이터를 직접 하나의 파일에 저장하여 관리하는 경우의 문제점
- 프로그램 이외의 방법으로도 데이터 조작 가능
- 프로그램과 데이터 형식이 묶여 있다 -> 파일의 구조가 바뀌면 프로그램의 구조도 바뀌어야한다
- 동시 접근의 문제
- 보안 문제 -> 읽기, 쓰기, 삭제 권한으로 인해 보안문제가 발생할 수 있다
- 장애 복구 문제 -> 정전이 일어날 때 주기억장치에서 쓰던 것들이 다 사라지고 없어진다
-> DBMS는 데이터베이스를 다루는 데 있어서 필요한 공통의 기능들을 제공하는 소프트웨어 시스템이다
<파일과 데이터베이스(2)>
- 파일 시스템을 이용하면 DBMS
- 파일 시스템 : 기본적인 저장 기능만을 제공
- DBMS : 데이터베이스 관리에 필요한 다양한 기능
사용자 -> 응용프로그램 <-> 데이터 관리 조작(DBMS) <-> 데이터 읽기 쓰기(DBMS)
<데이터베이스 시스템과 사용자>
응용프로그램 개발자 -> (응용 프로그램 개발) -> 응용프로그램(연결) -> DBMS
최종사용자(일반 사용자) -> (사용) -> 응용프로그램(연결) -> DBMS
최종 사용자(숙련된 사용자) -> (사용) -> DBMS
DBMS 개발자 -> (DBMS개발) -> DBMS
데이터베이스 관리자(DBA) -> (관리) -> DBMS
<데이터베이스 시스템과 사용자(2)>
- 최종 사용자(End User, General User)
- 응용 프로그램이 제공하는 사용자 인터페이스(User Interface)를 이용하며, 해당 응용분야의 업무를 처리하는 사람
- 숙력된 최종 사용자는 응용프로그램을 이용하지 않고 DBMS에서 직접 사용
- 응용 프로그램 개발자
- applicaction programmer
- DBMS를 이용한 응응프로그램을 개발하는 사람
- 데이터베이스 관리자
- DataBase Administrator(DBA)
- DBMS 및 이와 관련된 하드웨어 또는 소프트웨어를 중앙에서 관리 감독하는 사람
- DBMS 개발자
- DBMS developer
- DBMS를 구성하는 모듈들을 설게하고 구현하는 사람
'데이터 베이스' 카테고리의 다른 글
SQL의 구성(DDL, DML) (1) | 2023.03.25 |
---|---|
오라클 소개 (0) | 2023.03.17 |
관계형 데이터베이스 (0) | 2023.03.10 |