목록

2019년 1월 21일 월요일

[데이터베이스] 5. 데이터베이스 사용자의 종류






1. DBA(DataBase Administrator)

  • 데이터베이스 시스템의 모든 관리와 운영에 대한 책임을 지고 있는 사람이나 그룹을 의미한다.
  • 데이터베이스 구성 요소를 결정한다.
  • 개념 스키마 및 내부 스키마를 정의한다.
  • 데이터베이스의 저장 구조 및 접근 방법을 정의한다.
  • 보안 및 데이터베이스의 접근 권한 부여 정책을 수립한다.
  • 장애에 대비한, 백업과 회복에 대한 전략을 수립한다.
  • 무결성을 위한 제약 조건을 지정한다.
  • 데이터 사전의 구성과 유지, 관리의 역할을 한다.
  • 사용자의 요구와 불평을 청취 및 해결한다.
  • 변화 요구에 대한 적응과 성능 향상에 대해 감시한다.
  • 시스템을 감시하고 성능을 분석한다.
  • 데이터 사용 추세, 이용 형태 및 각종 통계 등을 종합, 분석한다.



2. 응용 프로그래머

  • C, COBOL, PASCAL 등의 호스트 언어와 DBMS가 지원하는 데이터 조작어에 능숙한 컴퓨터 전문가이다.
  • 데이터 조작어를 삽입해 일반 사용자가 응용 프로그램을 사용할 수 있도록, 인터페이스를 제공할 목적으로 데이터베이스에 접근하는 사람들이다.



3. 일반 사용자

  • 보통, 터미널을 이용하여 데이터베이스에 있는 자원을 활용할 목적으로 질의어나 응용 프로그램을 사용하여 데이터베이스에 접근하는 사람들이다.





2019년 1월 17일 목요일

[데이터베이스] 4. 데이터베이스 언어 (SQL, QBE, QUEL)






1. 데이터베이스 언어(DataBase Language)의 정의

  • 데이터베이스 언어는 DBMS를 통해 데이터베이스를 구축하고 이용하기 위한, 사용자와 데이터베이스 간의 소통 수단이다.
  • 데이터베이스 언어는 DBMS를 통해 사용되며 상용 DBMS 제품들이 지원하는 대표적인 데이터베이스 언어는 SQL, QBE, QUEL 등이 있다.



2. SQL(Structured Query Language)


  • SQL은 1974년 IBM 연구소에서 System R 이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어이다.
  • 1986년 ANSI(American National Standards Institute, 미국 국립 표준 협회)에서 SQL을 표준으로 채택했다.
  • 상용 RDBMS마다 지원하는 SQL 기능에는 다소 차이가 있다.
  • 사용자는 SQL을 사용하여 관계 데이터베이스에 릴레이션을 정의, 정보 검색, 갱신하고 무결성 제약 조건들을 명시할 수 있다.
  • 비절차적, 선언적 언어이므로 사용자는 원하는 것만 명시하고 원하는 것을 처리하는 방법은 명시하지 않는다.
  • 자연어에 가까운 구문을 사용하여 질의를 표현할 수 있다.




3. SQL의 분류

  • SQL은 그 역할에 따라 정의어(DDL), 조작어(DML), 제어어(DCL)로 나눌 수 있다.


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

  • DB 구조, 데이터 형식, 접근 방식 등 DB를 구축하거나 수정할 목적으로 사용하는 언어이다.
  • 번역한 결과가 데이터 사전(Data Dictionary)이라는 특별한 파일에 여러 개의 테이블로서 저장된다.
  • 외부 스키마 명세의 정의 기능을 가진다.
  • 데이터베이스의 논리적, 물리적 데이터 구조의 정의 및 수정의 기능을 가진다.
  • 스키마에 사용되는 제약조건에 대한 명세를 정의하는 기능을 가진다.
  • 데이터의 물리적 순서를 규정하는 기능을 가진다.
  • CREATE, ALTER, DROP, RENAME, TRUNCATE 와 같은 명령어가 있다.




3-2. DML (Data Manipulation Language) = 데이터 조작 언어 = 서브 언어

  • 사용자로 하여금 데이터를 처리할 수 있게 하는 도구로서 사용자(응용 프로그램)와 DBMS간의 인터페이스를 제공한다.
  • 응용 프로그램을 통해 사용자가 DB의 데이터를 실질적으로 조작할 수 있도록 하기 위해 C, FORTRAN, COBOL 등의 호스트 언어에 DB 기능을 추가시켜 만든 언어이다.
  • 대표적인 데이터 조작어에는 질의어(SQL)가 있으며, 질의어는 터미널에서 주로 이용하는 비절차적(NonProcedural) 데이터 언이이다.
  • SELECT, INSERT, UPDATE, DELETE 와 같은 명령어가 있다.


① SELECT문

- 테이블을 구성하는 튜플들 중 전체 또는 조건을 만족하는 튜플을 검색하여 주기억장치 상에 임시 테이블로 구성시키는 명령문이다.

SELECT Predicate 속성명1, 속성명2, ...
FROM 테이블명1, 테이블명2, ...
WHERE 조건
GROUP BY 속성명1, 속성명2, ...
HAVING 조건
ORDER BY 속성명
;




- SELECT절 (Predicate : 불러올 튜플 수를 제한할 명령어 기술)
· ALL(*) : 모든 튜플을 검색할 때 지정하는 것으로 생략 가능. ·DISTINCT : 중복된 튜플이 있으면 첫 번째 하나만 검색.
· DISTINCTROW : 중복된 튜플을 검색하는데, 선택된 속성의 값이 아닌 튜플 전체를 대상으로 함.
· 속성명 : 두 개 이상의 테이블을 대상으로 검색할 경우에는 '테이블명.속성명' 으로 표현한다.


- FROM절
· 질의에 의해 검색될 데이터들을 포함하는 테이블명을 기술.


- WHERE절
· 검색할 조건들을 기술.


- GROUP BY절
· 특성 속성을 기준으로 그룹화할 속성을 지정.
· 일반적으로 GROUP BY절은 그룹 함수와 함께 사용된다.
· COUNT(속성명) : 그룹별 튜플 수를 구하는 함수.
· MAX(속성명) : 그룹별 최대값을 구하는 함수.
· MIN(속성명) : 그룹별 최소값을 구하는 함수.
· SUM(속성명) : 그룹별 합계를 구하는 함수.
· AVG(속성명) : 그룹별 평균을 구하는 함수.


- HAVING절
· GROUP BY와 함께 사용.
· 그룹에 대한 조건을 지정.


- ORDER BY절
· 특정 속성을 기준으로 정렬할 때 사용.
· 정렬의 기준이 되는 속성명을 기술.
· ASC : 오름차순 정렬.
· DESC : 내림차순 정렬.
· ASC, DESC 를 생략 시 오름차순으로 자동 지정.




② INSERT 문법
- 기본 테이블에 새로운 튜플을 삽입할 때 사용한다.
- 대응하는 속성과 데이터는 개수와 데이터 형식이 일치해야 한다.
- 기본 테이블의 모든 속성을 사용할 때는 속성명을 생략할 수 있다.
- SELECT 문을 사용하여 다른 테이블의 검색 결과를 삽입할 수 있다.

INSERT
INTO 테이블명(속성명1, 속성명2, ...)
VALUES(데이터1, 데이터2, ...);





③ DELETE 문법
- 기본 테이블에 있는 튜플들 중 특정 튜플을 삭제할 때 사용한다.
- 모든 레코드를 삭제할 때는 WHERE 절을 생략한다.
- 모든 레코드를 삭제하더라도 테이블 구조는 남아있기 때문에 디스크에서 테이블을 완전히 제거하는 DROP과는 다르다.

DELETE
FROM 테이블명
WHERE 조건
;




④ UPDATE 문법
- 기본 테이블에 있는 튜플들 중 특정 튜플의 내용을 변경할 때 사용한다.

UPDATE 테이블명
SET 속성명1=데이터1, 속성명2=데이터2, ...
WHERE 조건
;






3-3. DCL (Data Control Language) = 데이터 제어 언어
  • 무결성, 보안 및 권한 제어, 회복을 등을 하기 위한 언어이다.
  • 데이터를 보호, 관리하는 목적으로 사용된다.
  • 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안의 기능을 가진다.
  • 데이터 정확성을 위한 무결성(Integrity) 유지의 기능을 가진다.
  • 시스템 장애에 대비한 데이터 회복과 병행 수행 제어의 기능을 가진다.
  • GRANT, REVOKE 와 같은 명령어가 있다.



4. QBE(Query By Example)

  • 1970년대 초반 IBM의 T.J.Watson 연구소에서 개발된 관계형 데이터베이스 질의어로 편리한 사용자 인터페이스를 지원한다.
  • 비록 국제 표준은 되지 못했지만 사용법이 직관적이고 매우 쉬워서 현재 많은 SQL 시스템에서 SQL외에 추가적인 질의어로 지원하고 있다.
  • 도메인 변수를 사용하는 도메인 관계 해석에 기초하고 있는 데이터베이스 언어이다.



5. QUEL(QUEry Language)

  • SQL, QBE 외에도 상업적으로 인정받았던 데이터베이스 언어이다.
  • 현재는 상업적으로 거의 사용되지 않는다.
  • 미국 버클리 대학에서 개발한 Ingress 데이터 시스템의 인어로 개념적으로 튜플 관계 해석에 기초를 두고 있다.





2019년 1월 15일 화요일

알라딘 중고매장을 다녀왔다.(대구 동성로점)








삼국지를 사기 위해 알라딘 중고매장을 방문했다.
지하 상가에 있는데, 지상 출입구는 작은 문짝 하나.
비가 와서 꿉꿉했다.🌂



앉아서 읽을 수 있는 자리가 매장 크기에 비해 많다.
아무래도 교보문고보다 들리는 사람도 적고
상품들이 여유있게 진열되어 있다.
앞으로 시간 때우거나 책 구경 갈 때 자주 들릴 듯. 










삼국지가 있는 역사소설 코너.


미리 인터넷으로 매장에 책이 있는지 확인했는데,
몇 권은 1권만 있고, 
몇 권은 3권이 있고,
어떤 책은 상태가 좋지않고...

혹시 다른 사람이 먼저 사버려서
한두권 빠트리고 구매하게 될까봐
미리 책의 위치랑 번호, 가격도 적어갔다.

다행히 10권 전부 여러권씩 있어서
하나하나 상태를 보고 
낙서가 없는 것들로 골라 담았다.









😆흐뭇😆

상태마다 가격이 조금씩 다르다.
전부 다해서 5만원이 안나왔다.
새 책이랑 전혀 다를게 없음!
집에 와서 물티슈로 책 겉만 닦아줬다.









DVD 코너도 있고...










어릴 때 엄청 보던 인터넷 소설ㅋㅋ
집에 엄청 많았었는데 다 어디로 갔는지...
인터넷 소설이 한창 사그라들 때
웹툰과 함께 웹 소설이란 이름으로 다시 나타날 줄 누가 알았으랴.









북 커버!
예쁘다.
히어로 별로 있다면 다 사고 싶다.
돈 벌어서 나중에...






 하늘과 바람과 별과 시 초판본 디자인의 노트.
너무 내 취향...
저것도 다음에 꼭 사리라.









마무리는 친구와 애슐리.











2019년 1월 8일 화요일

[데이터베이스] 3. DBMS 란? (DBMS의 정의, 필수 기능, 장단점)






1. DBMS(DataBase Management System)의 정의

  • 기존의 파일 시스템이 갖는 문제(데이터의 종속성, 중복성)를 해결하기 위해 만들어진, 데이터베이스 관리 소프트웨어.
  • 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 준다.
  • 모든 응용 프로그램들이 데이터베이스를 공용할 수 있도록 관리해 준다.
  • 데이터베이스의 구성, 접근 방법, 유지 관리에 대한 모든 책임을 진다.



2. 기존의 파일 처리 방식의 문제점


2-1. 종속성으로 인한 문제점
  • 종속성이란 응용 프로그램과 데이터 파일이 상호 의존적인 관계를 의미한다.
  • 데이터 파일이 보조기억장치에 저장되는 방법이나 저장된 데이터의 접근 방법을 변경할 때는 종속성에 의해 응용 프로그램도 같이 변경해야 하는 문제점이 있다.

2-2. 중복성으로 인한 문제점
  • 일관성 : 중복된 데이터 간에 내용이 불일치하는 상황이 발생하여 일관성이 없어진다.
  • 보안성 : 중복된 모든 데이터에 동등한 보안 수준을 유지하기가 어렵다.
  • 경제성 : 중복된 데이터로 인한 저장 공간의 낭비, 동일한 데이터의 반복 작업으로 인한 비용이 증가한다.
  • 무결성 : 중복된 데이터로 인한 제어의 분산으로 데이터의 정확성을 유지할 수 없다.



3. DBMS의 필수 기능


3-1. 정의(Definition)
  • 데이터베이스에 저장될 데이터의 타입, 구조, 제약조건 등을 명시하는 기능.
  • 데이터와 데이터의 관계를 명확하게 명세할 수 있어야 한다.
  • 원하는 데이터 연산은 무엇이든 명세할 수 있어야 한다.

3-2. 조작(Manipulation)
  • 데이터 요청(검색), 변경(갱신), 삽입, 삭제 등을 체계적으로 처리하기 위해 데이터 접근 수단 등을 정하는 기능.

3-3. 제어(Control)
  • 데이터베이스를 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행되어 데이터의 무결성이 유지되도록 제어해야 한다.
  • 데이터의 안정성을 위해 정당한 사용자가 허가된 데이터만 접근할 수 있도록 보안을 유지하고 권한을 검사할 수 있어야 한다.
  • 여러 사용자가 데이터베이스를 동시에 접근하여 데이터를 처리할 때, 처리의 결과가 항상 정확하도록 병행 제어(Concurrency Control)를 할 수 있어야 한다.



4. DBMS의 장단점


4-1. 장점
  • 데이터의 중복이 감소된다.
  • 데이터의 일관성을 유지할 수 있다.
  • 데이터의 무결성을 유지할 수 있다.
  • 데이터의 보안이 향상된다.
  • 데이터를 표준화할 수 있다.
  • 데이터를 통합하여 관리할 수 있다.
  • 최신의 데이터를 유지할 수 있다.
  • 실시간 처리가 가능하다.
  • 데이터베이스의 공유와 동시 접근이 가능하다.
  • 데이터의 논리적, 물리적 독립성이 보장된다.
* 논리적 독립성
: 응용 프로그램과 데이터베이스를 독립시키는 것으로 데이터의 논리적 구조를 변경시키더라도 응용 프로그램은 변경되지 않는다. 
* 물리적 독립성
: 응용 프로그램과 보조기억장치와 같은 물리적 장치를 독립시키는 것으로 데이터베이스 시스템의 성능 향상을 위해 새로운 디스크를 도입하더라도 응용 프로그램에는 영향을 주지 않고 데이터의 물리적 구조만을 변경한다.

4-2. 단점
  • 데이터베이스 전문가가 부족하다.
  • 전산화를 위한 비용이 증가한다.
  • 대용량 디스크로의 집중적인 Access로 과부하가 발생한다.
  • 파일의 백업과 회복이 어렵다.
  • 시스템이 복잡하다.





2019년 1월 7일 월요일

[데이터베이스] 2. 스키마란?(Schema의 정의, 3계층)






1. 스키마의 정의

  • 데이터베이스가 어떻게 구성되어 있는지를 표현해주는 설계도.
  • 데이터베이스를 구성하는 데이터 개체, 속성, 관계 및 데이터 조작 시 데이터 값들이 가지는 제약조건 등에 관해 정의한 것.
  • 스키마는 (사용자의 관점에 따라) 외부 스키마, 개념 스키마, 내부 스키마로 나뉜다.(스키마의 3계층)
  • 스키마는 데이터 사전에 저장되며, 메타 데이터라고도 한다.







2. 스키마의 3계층


2-1. 외부 스키마(External Schema) = 서브 스키마 = 사용자 뷰(View)
  • 사용자나 응용 프로그래머의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것.(사용자의 관점에 따라 해당하는 스키마는 달라질 수 있다.)
  • 하나의 데이터베이스 시스템에는 여러 개의 외부 스키마가 존재할 수 있으며, 하나의 외부 스키마를 여러 개의 응용 프로그램이나 사용자가 공용할 수 있다.
  • 전체 데이터베이스의 한 논리적인 부분으로 볼 수 있으므로 서브 스키마라고도 한다.
  • 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있다.
  • 일반 사용자는 질의어(SQL)를 사용하여 데이터베이스를 사용한다.


2-2. 개념 스키마(Conceptual Schema) = 전체적인 뷰(View)
  • 데이터베이스의 전체적인 논리적 구조로서, 모든 이용자가 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스로 하나만 존재한다.(기관이나 조직체의 관점에서 데이터베이스를 정의한 것.)
  • 개념 스키마는 개체 간의 관계와 제약조건, 데이터베이스의 접근 권한, 보안 및 무결성 규칙에 관한 명세를 나타낸다.
  • 단순히 스키마라고 하면 개념 스키마를 의미하는 것이다.
  • 개념 스키마는 데이터베이스 관리자에 의해서 구성된다.


2-3. 내부 스키마(Internal Schema)
  • 물리적 저장장치의 입장에서 본 데이터베이스 구조.(물리적인 저장장치와 밀접한 계층)
  • 실제로 데이터베이스에 저장될 레코드의 물리적인 구조, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
  • 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마이다.





2019년 1월 4일 금요일

[데이터베이스] 1. 데이터베이스란? (DB의 정의, 특징)






data + base 

여러 사용자가 사용할 목적으로 통합, 체계화된 데이터의 모임.



1. 정보와 자료

  • 자료(Data) : 현실 세계에서 수집되는 단순한 사실이나 값.
  • 정보(Information) : 필요에 의해 자료를 가공해서 얻은 결과물.

자료 처리 시스템
          data  -------------------->  information
가공



2. 정보 시스템

  • 정보처리의 상위 개념. 
  • 기업이 필요한 데이터를 수집, 저장해 두었다가 필요 시 가공하여 유용한 정보를 생성하고 제공하는 것.
  • (사용하는 목적에 따라) 경영 정보 시스템, 군사 정보 시스템, 인사 행정 정보 시스템, 의사 결정 지원 시스템 등.



3. 자료 처리 시스템

  • 정보 시스템의 서브 시스템으로 정보 시스템이 사용할 자료를 처리.
  • (처리하는 형태에 따라) 일괄 처리 시스템, 온라인 실시간 처리 시스템, 분산 처리 시스템으로 분류.



4. 데이터베이스의 정의

  • 통합된 데이터(Integrated Date) : 자료의 중복을 제거한 데이터의 모임.
  • 저장된 데이터(Stored Date) : 컴퓨터가 인식할 수 있는 저장 매체에 저장된 데이터.
  • 운영 데이터(Operational Date) : 조직의 업무 수행 시 반드시 필요한 데이터.
  • 공용 데이터(Shared Date) : 여러 응용 시스템들이 공동으로 소유, 유지하는 데이터.



5. 데이터베이스의 특징

  • 실시간 접근성(Real Time Accessibility) : 비정형적이며 수시로 이루어지는 질의에 대해, 실시간으로 처리하고 응답할 수 있다.
  • 계속적인 변화(Continuous Evolution) : 새로운 데이터에 대한 삽입, 삭제, 갱신이 계속적으로 이루어져 항상 최신의 데이터를 유지한다.
  • 동시 공유(Concurrent Sharing) : 여러 사용자가 동시에 원하는 데이터를 이용할 수 있다.
  • 내용에 의한 참조(Content Reference) : 데이터베이스에 있는 데이터를 참조하는 경우, 데이터의 주소나 위치가 아닌 내용으로 데이터를 찾는다.