oracle database application development
이 자습서에서는 Oracle 데이터베이스 애플리케이션 개발, Oracle SQL, PL / SQL 및 Oracle APEX와 함께 해당 기능, 이점 및 예제 프로그램에 대해 설명합니다.
의 이전 튜토리얼에서 데이터웨어 하우스 가이드 , 의 완벽한 ORACLE 시리즈 , 이점, 아키텍처, 위험 및 OLTP 시스템과의 비교를 통해 Oracle Data Warehouse에 대해 배웠습니다.
디지털화로 이동함에 따라 산업은 이제 상용화를 지원하기 위해 웹 애플리케이션을 구축하는 데 집중하고 있습니다. 이러한 애플리케이션은 대부분 데이터베이스 기반으로 동적 방식으로 사용자에게 실시간 정보를 제공합니다.
이 중요한 데이터를 처리하기 위해 Oracle은 웹 개발을 쉽고 안전하게 할 수있는 특정 데이터베이스 개발 기술을 마련했습니다.
학습 내용 :
Oracle Database 애플리케이션 개발
이 기사에서는 애플리케이션 개발을 용이하게하는 Oracle Database가 제공하는 기능을 이해합니다.
Oracle SQL
SQL은 구조적 쿼리 언어 . 이것은 Oracle, MS SQL Server, MySQL 등과 같은 대부분의 관계형 데이터베이스에서 지원하는 집합 기반 언어입니다.이 언어는 데이터베이스 내에서 데이터 관리를 수행하도록 의도적으로 설계되었습니다. 이 언어를 사용하여 사용자는 데이터 검색, 데이터 삭제, 데이터 조작 등과 같은 다양한 데이터 작업을 수행 할 수 있습니다.
특정 작업을 수행하기 위해 데이터베이스에 대한 인터페이스 역할을하며 명령문은 DB로 보내는 명령이됩니다. 이러한 명령문은 사용자에게 데이터베이스 내의 데이터를 제어 할 수있는 기능을 제공합니다.
사용자는 다른 Oracle 제공 도구를 사용하거나 액세스 권한이있는 경우 프로그램 응용 프로그램을 통해 데이터베이스에 간접적으로 액세스 할 수도 있습니다. 그러나 이러한 응용 프로그램이나 도구는 데이터베이스에 사용자 요청을 넣는 동안 백엔드에서만 SQL 문을 사용해야합니다.
SQL 작업
이 언어의 도움으로 사용자는 아래 나열된 다양한 작업을 수행 할 수 있습니다.
# 1) 데이터 쿼리 작업
- 사용 고르다 사용자는 데이터베이스 내의 모든 테이블을 쿼리하여 데이터를 검색 할 수 있습니다.
# 2) 데이터 정렬 작업
- 주문 문은 사용자가 쿼리 결과를 오름차순 또는 내림차순으로 정렬하는 데 도움이됩니다.
# 3) 데이터 조작 작업
- 끼워 넣다 문을 사용하면 사용자가 데이터베이스 테이블에 새 데이터를 삽입 할 수 있습니다.
- 최신 정보 문을 사용하면 사용자가 데이터베이스 테이블 내의 기존 데이터를 업데이트 할 수 있습니다.
- 지우다 문은 사용자가 테이블에서 행을 삭제하는 데 도움이됩니다.
# 4) 데이터 정의 작업
- 테이블 만들기 문을 통해 사용자는 데이터베이스 내에서 새 테이블을 만들 수 있습니다.
- ALTER TABLE 문을 사용하면 사용자가 기존 테이블의 구조를 수정할 수 있습니다.
- 드롭 테이블 문을 사용하면 사용자가 데이터베이스에서 테이블을 직접 삭제할 수 있습니다.
# 5) 데이터베이스 및 데이터베이스 개체의 액세스 제어
- 부여 명령문은 관리자가 최종 사용자에게 DB 개체에 대한 권한을 부여하는 데 도움이됩니다.
- 취소 명령은 DB 개체에 대해 위에서 부여 된 액세스를 제거하는 데 도움이됩니다.
SQL은 데이터를 관리 할 수 있기 때문에이 언어를 배우는 것은 데이터베이스 개발자뿐만 아니라 데이터베이스 관리자, 품질 분석가, 설계자 및 구독자와 같은 다른 작업 프로필도 지원합니다.
SQL 사용자를 지원하기 위해 Oracle은 SQL * Plus, SQL Developer Oracle JDeveloper, Oracle HTML DB 등과 같은 SQL 개발을 촉진 할 수있는 여러 도구를 개발했습니다.
SQL에 절차 적 및 객체 지향 프로그래밍 기능 개념을 추가 한 Java, PL / SQL 등과 같이 사용할 수있는 SQL 언어에 대한 다양한 확장이 있습니다.
지난 40 년 동안 데이터 처리 분야에서 많은 발전이 있었고 많은 새로운 기술이 시장에 도입되었습니다. SQL은이 기간 동안 여전히 살아남 았으며 결국 개선 된 기술로 발전했습니다.
이제 SQL이 그토록 매력적인 이유는 무엇입니까? 왜 여전히 가장 선호되고 성공적인 데이터 처리 기술 중 하나입니까?
SQL의 지속적인 성공은 아래 나열된 요소의 결과입니다.
# 1) 강력한 프레임 워크
데이터는 분석 목적으로 수집되며이 분석은 단일 데이터 행이 아닌 데이터 세트 또는 여러 데이터 행을 중심으로 구성 될 수 있습니다. 다음으로 알려진 특정 규칙 관계형 대수 , 쿼리 생성 및 실행을 관리하기 위해 정의되었습니다.
4 개의 연산자로 구성됩니다.
- 투사: 관계형 데이터베이스 내의 데이터는 행과 열의 형태로 테이블에 저장됩니다. 프로젝션은 쿼리 실행 중에 식별되는 첫 번째 항목입니다. 쿼리가 설계된 테이블 내에서 선택된 열입니다. 프로젝션은 SQL 쿼리의 첫 부분, 즉 SELECT 문에서 언급됩니다.
- 필터: 쿼리 프레임 워크 내에서 프로젝션을 식별 한 후 다음 단계는 쿼리와 관련된 행을 식별하는 것입니다. . 필터는 쿼리의 WHERE 절에서 언급되며 결과에 포함될 행을 식별합니다.
- 어울리다: 대부분의 작업에는 쿼리 할 여러 데이터 세트가 필요하므로 조인이 필요합니다. 논리적 관계를 기반으로 쿼리의 필수 필드를 결합하여 둘 이상의 데이터 세트에서 조인을 수행 할 수 있습니다. INNER JOIN, OUTER JOIN, SELF JOIN 및 CARTESIAN PRODUCT와 같은 다양한 유형의 조인을 사용할 수 있습니다.
- 골재: 데이터 집계는 비즈니스 결정을 내리는 데 항상 요약 된 데이터가 필요하므로 데이터 분석 중에 수행되는 가장 빈번한 활동 중 하나입니다. 따라서 SUM, COUNT, AVG, MIN 등과 같은 다양한 기능을 사용하여 데이터 집계를 수행 할 수 있습니다.
# 2) 투명한 최적화
Oracle 데이터베이스에는 SQL 최적화를위한 다양한 기술이 있습니다. SQL Query Optimizer는 최상의 실행 계획을 생성하여 문 실행을위한 가장 효과적이고 효율적인 방법을 결정합니다.
# 3) 진화 전반
SQL은 다양한 분야의 지속적인 발전으로 인해 수십 년 동안 시장에서 관련성을 유지했습니다. 아래에 언급 된 기능으로 전체적으로 향상되었습니다.
.jnlp 파일이란?
- 새로운 데이터 처리 기술로 향상되었습니다.
- 새로운 수학적 계산으로 향상되었습니다.
- 향후 데이터 유형으로 코드를 매핑하는 기능을 통합했습니다.
- XML 및 JSON 문서, Hive 테이블, HDFS 파일, 이미지 스타일 (BLOB 및 CLOB) 및 공간 개체 등과 같은 데이터 소스를 지원하도록 향상되었습니다.
# 4) 표준 기반 언어
1986 년에 SQL 언어는 ANSI의 표준이되었고 그 이후로 그 모든 해 동안 많은 새로운 버전으로 발전하고 등장했습니다. 표준화는 SQL을
- 주요 코드 수정없이 다양한 데이터베이스에서 애플리케이션 이식성을 유지합니다.
- 이전 코드 호환성 및 연속성을 보장합니다. 몇 년 전에 작성된 SQL 코드는 많은 코드 변경 없이도 오늘날에도 여전히 실행됩니다.
Oracle PL / SQL
앞서 읽은 것처럼 SQL은 관계형 데이터베이스에 저장된 데이터에 액세스하기 위해 개발 된 집합 지향 언어 중 하나입니다. Oracle Database 위에 구축 된 모든 애플리케이션은 데이터베이스 내용에 액세스하기 위해 실행되는 SQL 문만 필요합니다.
그러나 비절 차적 언어이기 때문에 SQL은 모든 애플리케이션에 대한 종단 간 비즈니스 로직을 구현하기에 충분하지 않으므로 PL / SQL이 도입되었습니다.
추천 자료 = >> PL SQL 자습서
PL / SQL에서 PL은 절차 적 언어 SQL은 구조적 쿼리 언어 . PL / SQL은 의사 결정, 다양한 반복 및 SQL이없는 기타 절차 적 기능과 같은 기능을 지원하는 SQL 언어의 확장입니다.
SQL 언어를 (IF 조건문, 할당, 루프 등)과 같은 비 네이티브 절차 명령과 결합하여 SQL의 기능을 향상시킵니다.
애플리케이션 개발에 PL / SQL 언어를 사용하면 다음과 같은 이점이 있습니다.
- SQL과의 더 나은 통합 : PL / SQL은 SQL과 잘 통합되며 동적 및 정적 SQL을 모두 지원합니다.
- 향상된 성능 : 명령문이 하나씩 실행되는 SQL과 달리 PL / SQL은 실행을 위해 전체 명령문 블록을 한 번에 전송하여 네트워크 트래픽을 줄여 성능을 향상시킵니다.
- 개발 시간 절약 : 뛰어난 처리, 데이터 숨김, 객체 지향 데이터 유형 및 캡슐화와 같은 유용한 PL / SQL 기능을 사용할 수 있기 때문에 개발자는 코드 설계 및 디버깅에 필요한 많은 시간을 절약 할 수 있습니다. 또한 애플리케이션 개발자가 사용할 수있는 시스템 정의 패키지에 대한 액세스를 제공합니다.
- 휴대 성 : PL / SQL 언어를 사용하여 설계된 애플리케이션은 모든 운영 체제에서 완전히 이식 가능합니다.
- 보안: PL / SQL은 애플리케이션에 높은 수준의 보안을 제공합니다. .
기본 PL / SQL 프로그램 단위
PL / SQL은 블록에 함께 배치되고 하나로 실행되는 여러 SQL 문 단위입니다. 이러한 프로그램 단위는 Oracle Database Server에서 컴파일 할 수 있으며 데이터베이스 내에 저장됩니다.
PL / SQL 프로그램은 3 개의 섹션으로 분류되었습니다.
- 선언: 이 섹션에는 코드 블록 내에서 사용할 수있는 변수, 상수 등과 같은 코드 요소를 선언하는 선언문이 있습니다. 이 섹션은 선택 사항입니다.
- 실행 가능 : 프로그램이 실행될 때마다 실행될 코드 명령문을 보유합니다. 이 섹션은 PL / SQL 프로그램에 필수입니다.
- 뛰어난 처리 : 이 섹션에는 'catch'또는 'trap'문을 사용하여 프로그램 실행 중에 발생한 예외적 인 시나리오가 포함되어 있습니다. 이 섹션은 선택 사항입니다.
위의 섹션을 고려하면 PL / SQL 프로그램은 4 개의 키워드로 식별됩니다. DECLARE, BEGIN, EXCEPTION & 종료 .
PL / SQL 블록 기본 구문 :
DECLARE BEGIN EXCEPTION END;
보다 명확한 그림을 얻기 위해 다양한 예를 살펴 보겠습니다.
# 1) 실행 만 가능
datastage 인터뷰 질문과 경험이 풍부한
아래 프로그램은 실행 가능한 섹션 만 있으며 DBMS_OUTPUT.PUT_LINE 프로 시저를 호출하여 출력 화면에 텍스트를 표시합니다.
BEGIN DBMS_OUTPUT.put_line ('Hello!'); END;
# 2) 선언 및 실행 가능
여기서 프로그램에는 문자열 'Hello!'를 보유하기 위해 VARCHAR2 (50) 유형의 변수가 선언되는 선언 섹션이 있습니다.
DECLARE text VARCHAR2 (50):= 'Hello!'; BEGIN DBMS_OUTPUT.put_line (text); END;
# 3) 선언, 실행 가능 및 예외적 처리
이 프로그램에는 DECLARE, EXECUTABLE 및 EXCEPTION HANDLING과 같은 모든 섹션이 있습니다.
DECLARE text VARCHAR2 (50):= 'Hello'; BEGIN DBMS_OUTPUT.put_line (text); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.put_line (SQLERRM); END;
이것이 PL / SQL 프로그램이 다른 섹션으로 구성되는 방법입니다.
일단 구성되면 이러한 프로그램은 필요할 때마다 호출 할 수 있도록 데이터베이스에 저장되어야합니다. 그러나 위의 코드 블록이 참조 이름없이 작성되는 방식은 조직화 된 것이 아니므로 익명 코드 블록이라고 부를 수 있습니다.
익명 블록을 사용하는 것은 많은 코드 복잡성과 유지 관리 가능성으로 끝날 수 있기 때문에 크고 복잡한 응용 프로그램을 구축하는 목적을 달성하지 못합니다.
여기에 서브 프로그램이라고도하는 명명 된 블록의 개념이 있습니다. 서브 프로그램은 데이터베이스에 저장할 수있는 고유 한 참조 이름을 가질 수 있습니다. 참조 이름을 사용하여 이러한 프로그램을 호출 할 수 있습니다.
명명 된 블록의 구조는 'DECLARE'키워드로 시작하지 않고 'CREATE'키워드로 시작한다는 점을 제외하면 익명 블록의 구조와 동일합니다. 'CREATE'키워드는 나중에 호출 할 수있는 데이터베이스 개체로 코드 블록을 만들고 저장하도록 컴파일러에 지시합니다.
명명 된 블록은 두 가지 유형이 있습니다.
- 기능.
- 저장 프로 시저.
에 함수 서브 프로그램 또는 서브 루틴이라고도하는 명명 된 블록으로 정의됩니다. 함수를 사용하는 목적은 계산을 수행하는 것이며 항상 값을 반환합니다.
다음과 같이 함수를 만들 수 있습니다.
CREATE (OR REPLACE) FUNCTION function_name ((parameter (,parameter)) ) RETURN return_data_type IS|AS --declaration statements BEGIN -- executable statements Return return_variable; EXCEPTION -- exception-handling statements END;
저장 프로 시저 작업을 수행하기 위해 작성된 명명 된 블록이기도합니다. 함수를 사용할 수있는 동안 저장 프로 시저를 사용하거나 SQL 문으로 호출 할 수 없다는 점에서 함수와 다릅니다. 또한 프로시 저는 함수가 단일 값을 반환하도록 바인딩되어있는 동안 둘 이상의 값을 반환 할 수 있습니다.
다음과 같이 저장 프로 시저를 만들 수 있습니다.
CREATE (OR REPLACE) PROCEDURE procedure_name ((parameter (,parameter)) ) IS --declaration statements BEGIN --executable statements EXCEPTION --exception handling statements END;
Oracle Application Express (APEX)
APEX는 전 세계 산업에서 비즈니스 문제를 해결할 수 있도록 Oracle에서 설계 한 애플리케이션 개발 플랫폼입니다. 조직이 웹 애플리케이션을 통해 확장 가능한 플랫폼을 통해 데이터를 표시 할 수있는 도구입니다.
간단한 '스프레드 시트 액세스'앱에서 24 * 7 가용성을 갖춘 중요한 앱에 이르기까지 APEX를 사용하여 다양한 앱을 구축 할 수 있습니다. 이 플랫폼을 통해 Oracle은 다양한 개발 옵션으로 개발자를 수용하는 데 집중하고 사용자에게 탁월한 경험을 제공합니다.
Oracle APEX 도구는 많은 기능과 기능이 풍부하며 사용자 인터페이스, 데이터, 보안, 모니터링 등과 같은 여러 측면에서 성공을 거두었습니다. 복잡한 도구가 아니므로 사용자에게 유연성을 제공합니다. Oracle APEX에서 작업하기 위해 APEX에는 많은 도움말과 가이드가 함께 제공되므로 개발자가 기술 전문가가 아니어도됩니다.
기능은 다음과 같습니다.
# 1) 사용자 친화적 인 인터페이스
Oracle APEX는 다음과 같은 사용자 친화적 인 인터페이스를 갖춘 복잡하지 않고 사용하기 쉬운 도구입니다. 유니버설 테마 . 이 테마를 사용하면 개발자가 응용 프로그램 개발 프로세스를 통해 사용자를 안내하는 측면에서 매우 풍부하고 지원 적이기 때문에 자체 반응 형 대화 형 웹 응용 프로그램을 빌드 할 수 있습니다. 개발자는 CSS, HTML 또는 자바 스크립트와 같은 코딩 언어의 전문가 일 필요가 없습니다.
# 2) 데이터 기반
이 도구는 매우 강력하며 필요한 방식으로 데이터를 제공하기 위해 산업에서 소비 할 수있는 다양한 애플리케이션 구축 프로세스를 지원합니다. 데이터를 효율적으로 처리하고 조작하는 기능을 보유한 데이터 기반 도구입니다. 각 사용자는 대화 형 보고서 구성 요소를 사용하여 고유 한 방식으로 보고서를 사용자 지정할 수 있습니다.
# 3) 보안
보안은 오늘날 모든 산업에서 중요한 요구 사항 중 하나입니다. Oracle은 보안 표준을 엄격하게 준수하여 고도로 안전한 애플리케이션을 제공 할 수 있도록 APEX를 설계했습니다.
# 4) 이식성
Oracle APEX는 휴대용 도구이며 사용자는 비즈니스 요구 사항에 따라이 기능을 활용할 수 있습니다. Oracle 데이터베이스가 배포 된 경우이 도구를 전 세계 어디에서나 클라우드에서도 배포 할 수 있습니다.
# 5) 모니터링
Oracle APEX에는 성능 문제, 애플리케이션 문제 또는 해킹 시도를 식별하는 모니터링 및 로깅 기능이 있습니다.
# 6) 세계화
Oracle APEX는 다양한 언어 및 관련 환경을 지원할 수 있도록 설계되었으므로 전 세계 여러 지역의 개발자가 애플리케이션을 개발하는 데 사용할 수 있습니다.
APEX 아키텍처
Oracle APEX는 주로 3 계층으로 구성된 강력한 아키텍처를 가지고 있습니다.
- 웹 브라우저.
- 미드 티어 : ORDS (Oracle Rest Data Services).
- 데이터베이스 계층 : Oracle 데이터베이스 (APEX).
(영상 출처 )
요청 흐름을 살펴보고 작동 방식을 이해하겠습니다.
여기에서 웹 요청은 브라우저 수준에서 생성 된 다음 Oracle Rest 데이터 서비스 즉, ORDS. 또한 ORDS는 해당 요청을 Oracle APEX 데이터베이스 내에서. 이제 APEX는 요청을 처리하고 응답을 ORDS로 다시 전달하여 브라우저로 다시 전달합니다. 이것이 APEX 아키텍처 내에서 요청이 흐르는 방식입니다.
Oracle APEX는 개발자가 실시간 비즈니스 문제를 해결하는 데 도움이되는 다양한 솔루션을 제공했습니다. 또한 개발자는 APEX 애플리케이션의 확장 인 타사 라이브러리를 사용할 수 있습니다. 이러한 확장은 응용 프로그램의 기능을 향상시켜 더 많은 권한을 부여하고 강력하게 만듭니다.
여러 가지 이점과 함께이 도구에는 제한이 거의 없습니다. 다음은 다음과 같습니다.
- Oracle APEX는 Oracle 소유 도구를 사용해서 만 설치할 수 있으며 Oracle 데이터베이스와 함께 배포 할 수 있습니다.
- 많은 웹 호스트가 Oracle APEX의 호스팅을 허용하지 않으므로 APEX에는 제한된 호스팅 선택이 남아 있습니다.
- 버전 제어가 없으며 웹 인터페이스를 통해서만 다른 응용 프로그램 구성 요소에 액세스하고 편집 할 수 있습니다.
결론
이 기사에서는 오라클이 제공하는 다양한 개발 옵션 SQL, PL / SQL 및 Oracle APEX와 같은 기능, 이점 및 한계와 함께 더 간단한 방식으로 도입되었습니다. 데이터베이스 개발 도구 및 언어 사용에 대한 명확성을 제공하기를 바랍니다.
이전 튜토리얼 | NEXT 튜토리얼
추천 도서
- Oracle 데이터베이스를 테스트하는 방법
- 오라클 데이터베이스 튜토리얼-오라클 데이터베이스 란?
- Oracle 인터뷰 질문 : Oracle Basic, SQL, PL / SQL 질문
- PL SQL 패키지 : Oracle PL / SQL 패키지 자습서 (예제 포함)
- Oracle Forms and Reports 인터뷰 질문
- Oracle Data Warehouse : 데이터웨어 하우스 아키텍처 등
- Oracle Real Application Testing-프로덕션으로 이동하기 전에 Oracle DB를 테스트하는 솔루션
- 메모리, 공간 및 CPU 처리에 대해 Oracle 데이터베이스를 테스트하는 체계적인 방법