240 likes | 492 Views
제 07 장. 데이터베이스. 한국대학교 홍길동 교수. 데이터베이스 개요. 데이터와 정보 데이터 (Data) 는 단순한 사실에 불과한 아직 처리되지 않은 값 데이터가 사람에게 유용한 의미로 쓰여질 수 있도록 처리되면 정보 (Information). 데이터베이스. 정의 데이터베이스는 간단히 ‘관련 있는 데이터의 저장소’ 데이터베이스는 여러 사람이나 응용시스템에 의해 참조 가능하도록 서로 논리적으로 연관되어 통합 관리되는 데이터의 모임 특징
E N D
제 07 장 데이터베이스 한국대학교 홍길동 교수
데이터베이스 개요 • 데이터와 정보 • 데이터(Data)는 단순한 사실에 불과한 아직 처리되지 않은 값 • 데이터가 사람에게 유용한 의미로 쓰여질 수 있도록 처리되면 정보(Information)
데이터베이스 • 정의 • 데이터베이스는 간단히 ‘관련 있는 데이터의 저장소’ • 데이터베이스는 여러 사람이나 응용시스템에 의해 참조 가능하도록 서로 논리적으로 연관되어 통합 관리되는 데이터의 모임 • 특징 • 데이터베이스는 통합된(Integrated) 관련(Related) 있는 데이터 • 중복(Redundancy)을 최소화하여 보조기억장치에 저장
데이터베이스 관리시스템 • 데이터베이스 관리시스템 • DBMS : Database Management System • 사용자가 데이터베이스를 만들고, 유지 관리할 수 있도록 돕는 프로그램 • 데이터와 응용 프로그램 사이에서 중재자 역할로서 모든 프로그램들이 데이터베이스를 유용하게 활용할 수 있도록 관리해 주는 소프트웨어 • 데이터베이스 • ‘관련있는 데이터의 저장소’ • 데이터베이스 관리시스템 • ‘데이터베이스를 관리하는 소프트웨어’
필드와 레코드 • 필드(Fields) • 특정한 종류의 데이터를 저장하기 위한 영역 • 레코드 • 필드에는 실제 자료 값이 저장되며 이러한 필드가 여러 개 모이면 하나의 레코드(Record)가 됨.
파일과 데이터베이스 • 파일 • 여러 개의 레코드가 모여 하나의 파일을 구성 • 데이터베이스(Database) • 이러한 파일을 여러 개 모아 저장된 파일들을 논리적으로 연결해서 필요한 정보를 적절히 활용할 수 있도록 서로 관련 있는 데이터들로 통합한 파일의 집합
데이터베이스 추상화 • 데이터베이스 추상화의 세 가지 단계 • 물리적 단계(physical level) • 논리적 단계(logical level) • 뷰 단계(view level) • 스키마 • 데이터베이스의 전체적인 설계 • 즉 스키마란 데이터베이스를 구성하는 정보의 종류와 관계의 구체적인 기술(description)
데이터의 독립성 • 데이터 독립성(data independence) • 데이터베이스의 추상화 과정에서 상위 수준의 스키마 정의에 영향을 주지 않고 해당 스키마 정의를 수정할 수 있는 능력 • 논리적 데이터 독립성 • 논리적 데이터의 독립성은 사용자의 응용프로그램 자체에 영향을 주지 않고 논리적 단계에서의 논리 스키마를 수정할 수 있는 능력 • 물리적 데이터 독립성 • 물리적 데이터의 독립성은 사용자의 응용프로그램 자체나 데이터베이스의 논리 스키마에 영향을 주지 않고 데이터의 물리적 스키마를 수정할 수 있는 능력
데이터베이스 모델 • 데이터베이스 모델 • 데이터의 논리적 설계와 그들 간의 관계를 표현 • 종류 • 계층적 모델(hierarchical model) • 네트워크 모델(network model) • 관계형 모델(relational model)
관계형 모델 • 관계형 구조 • 관계형 모델은 데이터를 행과 열로 구성된 이차원 테이블의 집합으로 표현한 모델 • 이 테이블을 관계(relation) • 관계 스키마 • 관계의 구조를 정의 • 관계 사례 • 관계 스키마에 삽입되는 실제 데이터 값
속성과 튜플 • 속성 • 관계에서 각 열을 속성(attribute) • 속성은 실제 데이터베이스에서는 필드라 말하고 DBMS에서는 열(column)이라고 표현 • 튜플 • 하나의 관계에서 각 행을 튜플(tuple) • 즉 튜플은 관계에서 정의된 모든 속성 값들의 집합 • 튜플은 실제 데이터베이스에서는 레코드라 말하고 DBMS에서는 행(column)이라고 표현 • 도메인 • 하나의 속성이 취할 수 있는 모든 값의 범위를 의미
키 • 키(key) • 관계에서 튜플들을 유일(uniqueness)하게 구별할 수 있는 하나 이상의 속성의 집합 • 종류 • 후보키(candidate key) • 하나의 관계에서 유일성과 최소성(minimality)을 만족하는 키 • 주키(primary key) • 주키는 관계에서 여러 튜플 중에서 하나의 튜플을 식별하는 역할을 수행 • 외래키(foreign key) • 외래키는 어느 관계의 속성들 중에서 일부가 다른 관계의 주키가 될 때, 이 키를 외래키라 함. • 이 외래키를 이용하여 관계와 관계를 서로 연결할 수 있음.
관계에 대한 연산 : 삽입(insert) • Insert • 관계에 하나의 튜플을 삽입하는 연산 • 관계에서는 튜플의 순서는 의미가 없으므로 삽입되는 튜플의 순서는 상관하지 않음. • 주어진 학생 관계에 튜플 (20073007, 김 남훈, 19891018, 010-5948-2875)을 삽입한 결과
관계에 대한 연산 : 삭제(delete) • Delete • 삭제 연산은 관계에서 관련된 튜플을 삭제하는 연산 • 주어진 학생 관계에서 핸드폰 번호가 011으로 시작하는 튜플을 삭제하는 연산을 실행
관계에 대한 연산 : 수정(update) • Update • 수정 연산은 관계에서 관련된 속성 값을 수정하는 연산 • 주어진 학생 관계에서 학번이 20073004인 학생에 대한 생년월일을 19891010으로 수정하는 연산
관계에 대한 연산 : 조회(select) • Select • 관계에서 관련된 튜플에서 부분 집합의 튜플과 속성으로 구성된 새로운 관계를 생성하는 연산 • 조회 연산은 주어진 관계에서 튜플을 선택하기 위하여 관계의 특정 속성만을 지정 가능 • 주어진 학생 관계에서 태어난 연도가 1988년인 학생의 학번, 이름, 생년월일을 조회하는 연산을 실행
DBMS 정의와 구성 • 데이터베이스 관리시스템 • DBMS: Database Management System • 데이터베이스를 정의하고, • 데이터베이스를 구축하고, • 데이터베이스를 조작하고, • 데이터베이스를 제어하여 • 데이터베이스에서 정보를 쉽게 활용할 수 있도록 만든 프로그램이자 소프트웨어
DBMS 구성 • 저장 관리자(Storage Manager) • 질의 처리기(Query Processor) • DBMS 인터페이스 도구(DBMS Interface Tool)
DBMS 종류(1) • MySql • MySQL은 대표적인 오픈 소스 DBMS 제품 • MySQL은 원래 mSQL이라는 DBMS에서 기반이 되어 새로 개발된 DBMS
DBMS 종류(2) • 오라클 • 1977년 설립된 오라클(Oracle) 사가 개발한 오라클은 세계적으로 가장 성공한 DBMS의 한 제품
DBMS 종류(3) • SQL 서버 • 마이크로소프트 사의 SQL 서버(SQL Server)는 인텔 기반의 서버용 컴퓨터에서 널리 사용되는 DBMS • SQL 서버는 원래 사이베이스(Sybase) 사의 DBMS 엔진을 윈도우 NT에 탑재하면서 시작되어, 버전 4.2까지 사이베이스와 공동 개발을 함. • 마이크로소프트 사는 사이베이스의 제품을 완전히 사들여 독자적으로 DBMS의 내부 커널을 재설계하여 SQL 서버 6.0을 발표함.
ODBC(1) • ODBC(Open Database Connectivity) • ODBC는 데이터베이스를 사용하기 위한 표준 개방형 응용 프로그램 • DBMS의 종류에 관계없이 어떤 응용 프로그램에서나 모두 접근하여 사용할 수 있도록 하기 위하여 마이크로소프트에서 개발한 데이터베이스 표준 접근 방법
ODBC(2) • 장점 • 마이크로소프트는 DBMS를 위한 미들웨어인 ODBC(Open Database Connectivity) API(Application Programming Interface)를 제공하여 데이타베이스 개발을 더욱 쉽게 가능하게 함 • ODBC를 사용하면 여러 종류의 데이터베이스를 함께 사용할 수 있고 기존에 사용하던 데이터베이스를 교체한다 하더라도 응용 시스템을 계속해서 그대로 사용할 수 있어 비용을 절감할 수 있는 장점