dh_0e

[Database] 응용 개발 본문

Database

[Database] 응용 개발

dh_0e 2025. 5. 20. 06:35

Cursor

  • 커서가 declare 된 후, 커서 open시에 DBS에 해당 질의를 실행하여 그 결과를 임시 테이블에 저장함
  • fetch 임시 테이블에서 튜플을 하나씩 검색하여 호스트 프로그램 변수에 튜플 단위로 값을 전달
  • '00000'은 성공적인 실행을 의미, '02000'은 더 이상 검색되는 튜플이 없다는 의미
  • close로 닫아주면 끝~ 요것은 Static SQL입니다 compile time이겠죠?

Cursor Example

 

c_minRating 보다 rating이 큰 직원들의 이름과 나이를 출력

 

Dynamic SQL

  • run time이겠죠?

Dynamic SQL Example

 

ODBC,  JDBC

  • DBS에 연결하여 연산을 요청하고 이에 대한 결과를 받는 방식을 제공하는 API
  • ODBC는 C, C++, C#, Visual Basic에서 동작, JDBC는 Java에서 동작

 

ODBC Data Access

  • SQLExecDirect() 함수를 이용하여 SQL 문장을 수행
  • SQLBindCol() 함수를 이용하여 결과 속성 값을 로컬 변수와 연결
  • SQLFetch() 함수를 이용하여 튜플 단위로 데이터 받아옴

ODBC Example

 

ODBC meta data

  • Object(테이블, 뷰, 무결성 제약 등)이 모여서 Schema가 되고, Schema가 모여서 catalog를 구성함

 

ODBC transactions

  • AutoCommit: 각 SQL 문장을 트랜잭션으로 취급하여, 각 SQL 문장 수행이 완료되면 트랜잭션이 commit 된 것으로 처리
  • 끌 수 있으며 이 경우 SQLTransact() 함수로 직접 종료

 

ODBC Conformance Levels

  • Core
  • Level 1 - requires support for metadata querying
  • Level 2 - requires ability to send and retrieve arrays of parameter values and more detailed catalog information

 

JDBC

  • Sun(Oracle로 합병)에서 만듦
  • SQlJ이 SQL 기능을 제공 / C는 ESQL

 

ADO.NET

  • .Net Framework의 기본 라이브러리로 제공되며 MS가 개발한 API로 Visual Basic .NET, C#를 지원
  • ODBC로 번역됨, 비관계형 시스템에 대한 접근도 가능

 

Static VS Dynamic

  • Static: Embedded SQL(내장 SQL)은 전처리 과정이 필요하며 유연성이 없지만 신속하게 수행할 수 있음
  • Dynamic: ODBC/JDBC가 발표된 이후 API 방식이 널리 사용되며 유연하며 강력하지만 느림

 

DB 응용 프로그램

DB 응용 구조의 진화

 

CS 응용 배치

Client/Server Application Deployment

  • two-tier: 응용 프로그램이 클라이언트에 존재하며 서버는 DB만 관리, ODBC/JDBC 등을 이용하여 DB 접근 
  • Three-tier: 응용 프로그램이 클라이언트와 서버에 분배되어 존재하며 서버에서 비즈니스 로직을 담당
  • Three-tier 구조가 자원 배치 및 관리 측면, 시스템 보안 측면에서 우수

 

Web Servers

  • 1990s, CGI(Common Gateway Interface)를 표준 인터페이스로 한 최초의 Web 방식 등장

3층 웹 구조
2층 웹 구조

  • DB 서버는 독립적으로 운영하며 웹 서버와 응용 서버가 결합된 2층 웹 구조가 일반적으로 널리 사용됨

 

Cookies

  • HTTP 프로토콜은 connectionless 통신을 하기 때문에, 부하를 줄이지만 이전에 어떤 일을 했는지 저장하는 cookie가 필요함

'Database' 카테고리의 다른 글

[Database] Entity-Relationship Data Model  (0) 2025.06.02
[Database] SQL 확장  (1) 2025.05.21
[Database] 오라클 실습 II  (0) 2025.05.20
[Database] 데이터베이스 시스템 주요 기능  (0) 2025.05.19
[Database] SQLII 5.3~  (0) 2025.05.18