• 검색 결과가 없습니다.

제12장 데이터베이스 프로그래밍

N/A
N/A
Protected

Academic year: 2022

Share "제12장 데이터베이스 프로그래밍"

Copied!
21
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

제12장 데이터베이스 프로그래밍

12.1 데이터베이스 프로그램의 개요

실습 12-1. ODBC를 이용한 학생관리 프로그램 만들기

(2)

 데이터베이스 (Database)

많은 정보를 보관하는 창고

대용량의 정보를 보관하고 쉽게 찾아볼 수 있 음

 데이터베이스 관리 시스템(DBMS)

데이터베이스를 관리하는데 필요한 모든 일을 수행하는 시스템

대표적인 회사 : Oracle, Microsoft, Sybase

데이터베이스 프로그래밍

(3)

 데이터베이스 관리 언어

DBMS를 제어하기 위해서 DBMS에 명령을 내 릴 때 사용하는 언어

데이터베이스에 저장될 데이터의 구조 정의, 데 이터의 추가, 변경 및 삭제 명령을 비롯하여 여 러 가지 다양한 방법을 통한 데이터 검색 등 데 이터베이스 관리에 필요한 명령을 포함

대표적인 언어:SQL(Structured Query Language)

데이터베이스 프로그래밍

(4)

 데이터베이스

애플리케이션

사용자 인터페이스를 통해 데이터베이스 관리 언어를 생성해서 이를 DBMS에 전달함으로써, 데이터베이스를 제어한다.

사용자는 복잡한 데이터베이스의 내부 엔진 은 몰라도 데이터베이스를 구성하고 데이터를 입력, 수정, 삭제 조회하는 명령만 알면 데이터 베이스를 사용할 수 있다.

데이터베이스 프로그래밍

(5)

 데이터베이스 접근 방식

ODBC를 이용하는 방법

DAO를 이용하는 방법

OLE DB를 이용하는 방법

데이터베이스 프로그래밍

(6)

 ODBC(Open Database Connectivity)

데이터베이스 애플리케이션과 DBMS를 연결시키 표준적인 인터페이스를 제공

네트워크를 지원하며 다중 사용자가 데이터베이 스에 접속할 수 있다.

특정한 DBMS를 사용하는 사람이 OBDC 드라이 버를 통하여 다른 DBMS를 사용할 수 있게 한다.

여러분은 단지 ODBC드라이버 관리자를 호출하여 사용하려는 드라이버를 호출하면 된다.

드라이버는 SQL을 사용하여 DMBS와 교신을 한다.

데이터베이스 프로그래밍

(7)

 ODBC의 구조

데이터베이스 프로그래밍

(8)

 DAO(Data Access Object)

네트워크를 이용하여 데이터베이스에 접속할 수 없으며 한번에 한명의 사용자만이 데이터베 이스에 접근할 수 있다.

ODBC보다 빠르게 작동하며 ODBC에서 지원 하지 않는 기능을 몇 가지 가지고 있다.

데이터베이스 프로그래밍

(9)

 OLE DB(Object Linking and Embedding)

OLE DB는 마이크로소프트사가 개발한 API로, 통 일된 방식으로 저장된 여러 종류의 데이터에 접근 하기 위해 만들어졌다.

OLE DB는 개념적으로 소비자(consumer)와 제공 (provider)로 구분되어 있다.

소비자는 데이터에 접근해야 하는 응용 프로그램이 제공자는 인터페이스를 추가하는 소프트웨어 구 요소이다.

제공자는 복잡한 데이터베이스를 통하여 이러한 단 순한 데이터 저장소를 제공해준다.

데이터베이스 프로그래밍

(10)

 OLE DB를 이용한 학생관리 프로그램 만들기

이번 실습에서 만들게 될 학생관리 데이터베 이스 프로그램은 학생들의 여러 신상정보를 입력 받아 데이터베이스에 저장하고, 데이터 를 추가, 수정, 삭제, 검색하는 기능이 있는 프 로그램이다.

이번 실습을 통해 데이터베이스를 설계하고 생 성된 데이터베이스를 OLE DB로 등록하는 방 법과 데이터베이스에 데이터를 추가, 수정, 삭 제, 검색하는 방법 등을 배우게 된다.

실습 12-1

(11)

 실행 결과

실습 12-1

(12)

 프로그램 작성 순서

1)

데이터베이스 소스를 작성한다.

Microsoft Access 2007 프로그램을 사용하여 데이터베이스 소스를 작성한다.

2)

SDI 프로젝트를 생성한다.

[데이터베이스 지원] 단계에서 [헤더파일만]

선택하고 [클라이언트 형식] 항목은 OLE DB를 선택한다.

마지막 단계에서 [기본 클래스] 항목을 CFormView 클래스로 선택한다.

3)

폼에 컨트롤을 배치하고 속성을 설정한다.

실습 12-1

(13)

4)

컨트롤들을 멤버 변수에 연결한다.

5)

레코드 이동에 대한 메뉴와 툴바를 추가한다.

6)

데이터베이스와 연결을 할 클래스를 추가한 다.

7)

CDataSet클래스에 OLE DB로 데이터베이스 와 연동한다.

8)

클래스에 필요한 멤버 변수를 추가한다.

9)

프로그램 실행 시 데이터베이스를 연동해서 첫 번째 레코드를 출력한다.

실습 12-1

(14)

10)

레코드 이동 함수를 작성한다.

11)

폼에 레코드를 추가, 수정, 삭제, 검색 기능 을 하는 컨트롤을 추가한다.

12)

레코드 [추가]버튼에 대한 기능을 구현한다.

13)

레코드 [수정]버튼에 대한 기능을 구현한다.

14)

레코드 [삭제]버튼에 대한 기능을 구현한다.

15)

레코드 [검색]버튼에 대한 기능을 구현한다.

16)

프로그램을 실행시킨다.

실습 12-1

(15)

실습 12-1

실행결과

(16)

Access를 사용하여 매출 자료를 저장하기 위한 영업소, 품목, 매출 테이블을 가진 데이터베이 스를 작성하고, 년차별 해당 영업소의 매출내역 을 입력한다.

사용자가 입력한 기간 내의 영업소별, 품목별 매출내역을 조회하고 총 매출액을 계산하여 출 력하는 프로그램을 작성하여라.

연습문제 12-1OLE DB 데이터베이스 프로그램

(17)

 실행 결과

연습문제 12-1

매출액 조회 결과의 예

(18)

CFormView::OnInitialUpdate();

GetParentFrame()->RecalcLayout();

ResizeParentToFit();

m_listSales.InsertColumn(0, _T("영업소"), LVCF_TEXT|LVCFMT_CENTER, 60);

m_listSales.InsertColumn(1, _T("회계년도"), LVCF_TEXT|LVCFMT_CENTER, 60);

m_listSales.InsertColumn(2, _T("냉장고"), LVCF_TEXT|LVCFMT_CENTER, 60);

m_listSales.InsertColumn(3, _T("컴퓨터"), LVCF_TEXT|LVCFMT_CENTER, 60);

m_listSales.InsertColumn(4, _T("TV"), LVCF_TEXT|LVCFMT_CENTER, 60);

m_listSales.InsertItem(0, _T("서울"));

m_listSales.SetItem(0, 1, LVIF_TEXT, _T("2007"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 2, LVIF_TEXT, _T("20"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 3, LVIF_TEXT, _T("40"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 4, LVIF_TEXT, _T("50"), -1, -1, -1, -1, -1);

m_listSales.InsertItem(0, _T("대전"));

m_listSales.SetItem(0, 1, LVIF_TEXT, _T("2008"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 2, LVIF_TEXT, _T("15"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 3, LVIF_TEXT, _T("30"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 4, LVIF_TEXT, _T("25"), -1, -1, -1, -1, -1);

void CExercise12_1View::OnInitialUpdate()

(19)

m_listSales.InsertItem(0, _T("서울"));

m_listSales.SetItem(0, 1, LVIF_TEXT, _T("2008"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 2, LVIF_TEXT, _T("23"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 3, LVIF_TEXT, _T("45"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 4, LVIF_TEXT, _T("52"), -1, -1, -1, -1, -1);

m_listSales.InsertItem(0, _T("서울"));

m_listSales.SetItem(0, 1, LVIF_TEXT, _T("2009"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 2, LVIF_TEXT, _T("25"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 3, LVIF_TEXT, _T("42"), -1, -1, -1, -1, -1);

m_listSales.SetItem(0, 4, LVIF_TEXT, _T("58"), -1, -1, -1, -1, -1);

m_cbOffice2.AddString(_T("모든 영업소"));

m_cbProduct.AddString(_T("모든 품목"));

void CExercise12_1View::OnInitialUpdate()

(20)

 {

 ClientToScreen(&point);

 OnContextMenu(this, point);

 }

void CExercise12_1View::OnRButtonUp(UINT /* nFlags

*/, CPoint point)

(21)

연습문제 12-1OLE DB 데이터베이스 프로그램 결과

참조

관련 문서

 데이터베이스 개발자는 Oracle 8이나 IBM 의 DB2와 같은 데이터베이스 관리 시스템 에서 데이터 내용, 관계, 그리고 구조를 명 시하고 수정하기 위해서

따라서 재폐로 기능이 있는 보호기기들을 적절히 배치 운영하여 선로고장을 효과 적으로 대응할 수 있다. 재폐로 기능이

유연한 데이터의 이동성 | 엔터프라이즈 수준의 클라우드 향 데이터 서비스 | 운영 및 관리 통합... 데이터베이스 인프라의

또한, 신청당일 마감시간 전까지 신청서 작성내용을 변경(수정 또는 삭제)할 수 있으나, 마감 시간 종료 후에는 변경이 불가능함을 유의하시기 바랍니다.. •

[r]

Ship Design, General Arrangement Design using “EzCompart CAD program, 2008.5 입력 데이터. 동 일한 형상을 갖는 X방향의

에어로켓은 총알이 되어 화약가스가 밀어내는 운동에너지를 고스란히 전달받아서 앞으로 날아갑니다.. 에어백

INSPIRES Curriculum은 공학과 과학을 기반으로 STEM의 모든 영역을 통합하여 학생 참여와 관심의 증가를 목적으로 표준화된 5단계를 말한다. INSPIRES Curriculum의 접근