본문 바로가기

Programming/DataBase System

Chapter2 - 키 키 주어진 릴레이션 안에서 투플을 구별하는 방법이 있어야 한다. 이것은 릴레이션의 속성(attribute)으로 표현되어야 한다. 즉, 투플의 속성의 값은 그 투플을 유일하게 구별할 수 있어야 한다. 다르게 표현하면, 한 릴레이션에 있는 두 개의 투플의 모든 속성의 값이 같아서는 안된다. 수퍼 키(superkey)를 간단히 표현하면, 한 릴레이션에서 그 투플을 유일하게 식별할 수 있도록 해주는 하나 혹은 그 이상의 속성들의 집합이다. 예를 들면, instructor 릴레이션의 ID 속성은 하나의 instructor 의 name 속성은 같은 이름을 가진 교수가 있을 수 있기 때문에 수퍼키가 아니다. 릴레이션 r의 스키마에 존재하는 속성들의 집합을 R이라고 하자. R의 부분집합 K가 r의 수퍼키가 되기 위해서.. 더보기
Chapter2 - 데이터베이스 스키마 데이터베이스 스키마 데이터베이스에 대해서 언급할 때, 데이터베이스의 논리적 설계인 데이터베이스 스키마(database schema)와, 어떤 한 순간에 데이터베이스에 저장되어 있는 데이터의 스냅샷인 데이터베이스 인스턴스(database instance)를 잘 구별해야 한다. 릴레이션 개념은 프로그래밍 언어에서 변수의 개념에 해당된다. 마찬가지로 릴레이션 스키마(relation schema)의 개념은 프로그래밍 언어에서의 형정의(type definition)에 해당된다. 일반적으로 릴레이션 스키마는 속성과 그 속성이 가지는 도메인의 명세로 구성된다. 각 속성의 도메인에 대해 정확히 정의하는 것은 SQL을 배울 때까지 일단 보류해 두기로 한다. 릴레이션 인스턴스의 개념은 프로그래밍 언어에서 변수의 값과 비슷.. 더보기
Chapter2 - 관계형 모델 소개 데이터 모델은 데이터, 데이터의 관계, 데이터의 의미, 일관성 제약조건 들을 기술하기 위한 개념적 도구의 모임이다. 관계형 모델은 데이터와 이런 데이터의 관계를 표현하기 위해 테이블의 집합을 사용한다. 테이블은 개념적으로 간단명료하기 때문에 널리 사용되었다. 오늘날 대부분의 데이터베이스 시스템이 관계형 모델에 기반을 두고 있다. 관계형 데이터베이스는 논리적 단계와 뷰 단계에서 데이터를 설명하고, 데이터 저장의 세부적인 하우 단계를 추상화 한다. 개체 관계 모델은 데이터베이스 디자인에서 널리 사용되는 상위 단계의 모델이다. 사용다들이 관계형 데이터베이스에서 데이터를 이용할 수 있도록 하기 위해서는 우선 몇 가지 쟁점을 짚고 넘어가야 한다. 가장 중요한 쟁점은 데이터 무결성(integrity)과 데이터 보호.. 더보기
Chapter1 - 요약 요약 데이터베이스 관리 시스템(DBMS)은 서로 관련이 있는 데이터의 모임과 그 데이터에 접근하기 위한 프로그램의 집합으로 구성된다. 데이터는 특정 조직에 관한 정보를 기술한다. DBMS의 주요 목적은 데이터베이스에 정보를 저장하고 또 이를 검색하기 위한 편리하고도 효율적인 환경을 제공하는 데 있다. 데이터베이스는 오늘날 세계 어디서나 널리 사용되고 있으며 대부분의 사람들이 직접적으로든 간접적으로든 매일 여러 번씩 이를 이용하고 있다. 데이터베이스 시스템은 대규모의 정보를 관리하도록 설계되었다. 데이터의 관리는 정보의 저장을 위한 구조를 정의하는 작업과 정보의 조작을 위한 기법을 제공하는 작업 모두를 포함한다. 또한, 데이터베이스 시스템은 시스템의 고장이나 불법적인 액세스로부터 저장된 정보를 안전하게 지.. 더보기
Chapter1 - 데이터베이스 사용자와 관리자 데이터베이스 사용자와 관리자 데이터베이스 시스템의 주된 목적은 데이터베이스에 저장된 정보를 검색하고 새로운 정보를 저장하는 것이라 할 수 있다. 데이터베이스와 관련된 사람들은 다음과 같이 사용자와 관리자로써 분류된다. 데이터베이스 사용자와 사용자 인터페이스 데이터베이스 시스템을 사용하는 사용자들은 시스템과 상호 작용하는 양상에 따라서 다음과 같은 네 가지 유형으로 구분된다. 이들 서로 다른 사용자 그룹을 위해 서루 다른 인터페이스가 제공되어야 한다. 일반 사용자 : 일반적으로, 미리 작성되어 저장된 응용 프로그램들 중 하나를 불러서 이를 이용하여 시스템을 사용하는 시스템에 익숙하지 않은 사용자 층이다. 예를 들어, A 학과에 새로운 교수를 추가하려고 하는 대학교 직원이 new_hire 라는 프로그램을 호.. 더보기
Chapter1 - 전문적 데이터베이스 전문적 데이터베이스 데이터베이스 시스템을 위한 몇몇의 응용 프로그램 분야들은 관계형 데이터 모델로 제한되어 있다. 그 결과 연구자들은 객체 기반의 데이터 모델과 반구조형 데이터 모델을 포함하는 응용 프로그램 도메인을 다루기 위해 몇몇의 데이터 모델들을 개발하였다. 객체 기반 데이터 모델 객체 지향 프로그래밍은 점점 중요한 소프트웨어 개발의 방법론이 되어가고 있다. 이는 캡슐화, 메소드(함수), 객체 아이텐티티 개념을 더해 E-R 모델을 확장한 것처럼 보이는 객체 지향 데이터 모델(object-oriented data model)의 개발을 불러 왔다. 객체에 인터페이스를 제공하기 위한 방법들과 함께 상속, 객체 아이텐티티, 캡슐화(정보 은닉)는 객체 지향 프로그래밍의 중요한 개념들이다. 객체 지향 데이터 .. 더보기
Chapter1 -데이터 마이닝과 정보 검색 데이터 마이닝과 정보 검색 데이터 마이닝이라는 용어는 유용한 패턴을 찾기 위해 대규모 데이터베이스를 반자동적으로 분석하는 작업을 의미한다. 인공지능에서 말하는 지식탐사(기계 학습 이라고도 한다) 혹은 통계적 분석처럼, 데이터 마이닝은 데이터로부터 규칙과 패션을 찾으려 한다. 그러나 데이터 마이닝은 주로 데이터에 저장되어진 대규모의 데이터를 다룬다는 점에서 기계학습이나 통계적 분석과는 차이가 있다. 즉, 데이터 마이닝은 "데이터베이스 상에서의 지식 탐사"를 다룬다. 데이터베이스로부터 탐사되어진 지식들의 일부는 규칙의 집합으로 표현될 수 있다. 다음이 규칙의 예라 할 수 있다. "작은 스포츠카의 경우 연소득이 50,000불 이상 되는 젊은 여성이 가장 사기를 원한다." 물론 이와 같은 규칙은 일반적인 사실은.. 더보기
Chapter1 - 데이터베이스 구조 데이터베이스 구조 데이터베이스 시스템의 다양한 구성 요소와 그 구성 요소들 사이의 접속 관계가 하나의 그림으로 나타난다. 데이터베이스 시스템의 구조는 데이터베이스 시스템이 동작하는 컴퓨터 시스템에 의해서 크게 영향을 받는다. 데이터베이스 시스템은 중앙 집중 방식 또는 하나의 서버와 다중 클라이언트 장치들이 함게 작업을 수행하는 클라이언트-서버 방식이 있을 수 있다. 데이터베이스 시스템은 병렬 컴퓨터 구조를 이용하도록 설계될 수도 있다. 분산 데이터베이스는 여러 개의 지리적으로 분리된 컴퓨터 시스템에서 동작한다. 대부분 데이터베이스 시스템 사용자들은 시스템에서 작업하기보다는 대개 네트워크를 통해 데이터베이스에 접속한다. 그러므로 원격으로 데이터베이스에 접속하여 작업하는 클라이언트(client)와, 데이터베.. 더보기