본문 바로가기

Programming

Chapter1 - 데이터베이스 사용자와 관리자 데이터베이스 사용자와 관리자 데이터베이스 시스템의 주된 목적은 데이터베이스에 저장된 정보를 검색하고 새로운 정보를 저장하는 것이라 할 수 있다. 데이터베이스와 관련된 사람들은 다음과 같이 사용자와 관리자로써 분류된다. 데이터베이스 사용자와 사용자 인터페이스 데이터베이스 시스템을 사용하는 사용자들은 시스템과 상호 작용하는 양상에 따라서 다음과 같은 네 가지 유형으로 구분된다. 이들 서로 다른 사용자 그룹을 위해 서루 다른 인터페이스가 제공되어야 한다. 일반 사용자 : 일반적으로, 미리 작성되어 저장된 응용 프로그램들 중 하나를 불러서 이를 이용하여 시스템을 사용하는 시스템에 익숙하지 않은 사용자 층이다. 예를 들어, A 학과에 새로운 교수를 추가하려고 하는 대학교 직원이 new_hire 라는 프로그램을 호.. 더보기
Chapter1 - 전문적 데이터베이스 전문적 데이터베이스 데이터베이스 시스템을 위한 몇몇의 응용 프로그램 분야들은 관계형 데이터 모델로 제한되어 있다. 그 결과 연구자들은 객체 기반의 데이터 모델과 반구조형 데이터 모델을 포함하는 응용 프로그램 도메인을 다루기 위해 몇몇의 데이터 모델들을 개발하였다. 객체 기반 데이터 모델 객체 지향 프로그래밍은 점점 중요한 소프트웨어 개발의 방법론이 되어가고 있다. 이는 캡슐화, 메소드(함수), 객체 아이텐티티 개념을 더해 E-R 모델을 확장한 것처럼 보이는 객체 지향 데이터 모델(object-oriented data model)의 개발을 불러 왔다. 객체에 인터페이스를 제공하기 위한 방법들과 함께 상속, 객체 아이텐티티, 캡슐화(정보 은닉)는 객체 지향 프로그래밍의 중요한 개념들이다. 객체 지향 데이터 .. 더보기
Chapter1 -데이터 마이닝과 정보 검색 데이터 마이닝과 정보 검색 데이터 마이닝이라는 용어는 유용한 패턴을 찾기 위해 대규모 데이터베이스를 반자동적으로 분석하는 작업을 의미한다. 인공지능에서 말하는 지식탐사(기계 학습 이라고도 한다) 혹은 통계적 분석처럼, 데이터 마이닝은 데이터로부터 규칙과 패션을 찾으려 한다. 그러나 데이터 마이닝은 주로 데이터에 저장되어진 대규모의 데이터를 다룬다는 점에서 기계학습이나 통계적 분석과는 차이가 있다. 즉, 데이터 마이닝은 "데이터베이스 상에서의 지식 탐사"를 다룬다. 데이터베이스로부터 탐사되어진 지식들의 일부는 규칙의 집합으로 표현될 수 있다. 다음이 규칙의 예라 할 수 있다. "작은 스포츠카의 경우 연소득이 50,000불 이상 되는 젊은 여성이 가장 사기를 원한다." 물론 이와 같은 규칙은 일반적인 사실은.. 더보기
Chapter1 - 데이터베이스 구조 데이터베이스 구조 데이터베이스 시스템의 다양한 구성 요소와 그 구성 요소들 사이의 접속 관계가 하나의 그림으로 나타난다. 데이터베이스 시스템의 구조는 데이터베이스 시스템이 동작하는 컴퓨터 시스템에 의해서 크게 영향을 받는다. 데이터베이스 시스템은 중앙 집중 방식 또는 하나의 서버와 다중 클라이언트 장치들이 함게 작업을 수행하는 클라이언트-서버 방식이 있을 수 있다. 데이터베이스 시스템은 병렬 컴퓨터 구조를 이용하도록 설계될 수도 있다. 분산 데이터베이스는 여러 개의 지리적으로 분리된 컴퓨터 시스템에서 동작한다. 대부분 데이터베이스 시스템 사용자들은 시스템에서 작업하기보다는 대개 네트워크를 통해 데이터베이스에 접속한다. 그러므로 원격으로 데이터베이스에 접속하여 작업하는 클라이언트(client)와, 데이터베.. 더보기
Chapter1 - 트랜잭션 관리 트랜잭션 관리 대개, 데이터베이스에 대한 몇 개의 연산이 하나의 논리적 작업 단위를 이룬다. 예금 이체가 하나의 예인데, 이떄 한 학과의 계좌(예를 들면, A)는 출금 계좌이고, 다른 학과의 계좌(B라고 하자)는 입금 계좌이다. 분명히, 입금과 출금이 모두 일어나든지, 모두 일어나지 않든지 하는 것이 필수적이다. 즉, 예금 이체는 전체가 완전히 수행되거나, 일체 수행되지 않아야 한다. 이러한 all or none 요구 조건을 원자성(consisteny)이라고 한다. 또한, 예금 이체의 실행은 데이터베이스의 일고나서을 보존해야 한다. 즉, A의 잔고와 B의 잔고를 합한 값이 보존되어야 한다. 이러한 영속성의 요구 조건을 지속성(durability)이라고 한다. 트랜잭션(transaction)은 데이터베이스.. 더보기
Chapter1 - 데이터 저장과 질의 데이터 저장과 질의 데이터베이스 시스템은 여러 모듈로 구성되며, 이들 각 모듈들이 데이터베이스의 여러 책무들을 나누어 맡는다. 데이터베이스 시스템은 기능적인 관적에서 봤을 때, 크게 두 부분으로 나누어지는데 저장장치 관리자와 질의 처리기가 그것이다. 데이터베이스는 본질적으로 대량의 기억 공간을 필요로 하므로 저장장치 관리자의 역할은 매우 중요하다. 기업의 데이터베이스의 용량은 보통 GB(giga byte)가 소요되고 크게는 TB(tera byte)가 소요된다. 1GB 는 1000MB(mege byte, 실제로는 1024)이고, 1TB(tera byte)는 100만 MB이다. 컴퓨터의 메인 메모리는 이렇게 큰 용량의 정보를 저장할 수 없기 때문에 정보는 디스크에 저장된다. 데이터는 필요할 때마다 디스크 저.. 더보기
Chapter1 - 데이터베이스 설계 데이터베이스 설계 데이터베이스 시스템은 많은 양의 정보를 관리하기 위해 설계된다. 이 많은 양의 정보는 별개의 정보들로 존재하지 않는다. 이 정보들은 회사 운영에 필요한 데이터베이스 혹은 어떤 장치 혹은 서비스에 관련된 자료들이라 할 수 있다. 데이터베이스 설계는 데이터베이스 스키마 설계와 주로 관련된다. 모델화된 회사의 요구를 만족시켜주기 위한 완벽한 데이터베이스 응용 프로그램의 설계는 많은 문제점들을 주의해야 한다. 설계 단계 상위 데이터 모델은 데이터베이스 설계자에게 데이터베이스 사용자의 데이터 요구조건들을 기술하기 위한 개념적인 골격과 데이터베이스가 이러한 요구조건을 만족시키기 위해 어떻게 구성될 것인가에 대한 것을 제공한다. 데이터베이스 설계의 초기 단계는 장래의 데이터베이스 이용자들이 필요로 .. 더보기
Chapter 1 - 관계형 데이터베이스 관계형 데이터베이스 관계형 데이터베이스는 관계형 모델에 기반하여 데이터와 데이터들의 관계를 나타내기 위해 테이블들의 집합을 사용한다. 관계형 데이터베이스는 또한 DML과 DDL을 포함한다. 대부분의 상업적인 관계형 데이터베이스 시스템은 SQL 언어를 사용한다. 테이블 각 테이블은 고유한 이름을 가진 여러 개의 열(column)로 구성된다. 아래의 그림은 두개의 테이블을 가진 관계형 데이터베이스의 예로서, 고객과 그들의 계좌를 나타내는 관계형 데이터베이스를 보이고 있다. 첫 번째 테이블은 대학교 교수들에 대한 상세 정보를, 두 번째 테이블은 대학교의 여러 학과들에 대한 정보를 담고 있다. 첫 번째 instructor 테이블은 이름이 El Said 이고 32343라는 ID를 갖는 교수가 역사학과의 일원이며 .. 더보기