0. 오라클
- 오라클 사가 개발한 관계 DBMS
- 높은 시장 점유율, 높은 신뢰성.
- 대부분의 운영체제, 하드웨어 지원.
- 표준 에디션1, 표준에디션, 엔터프라이즈 에디션 판매.
- 개인용 에디션은 윈도우 os 전용.
3-1 오라클 개요
1. 오라클 개요
(외울 필요 없음)
- 고성능의 인터넷 플랫폼 제공
- (온라인 트랜잭션 처리, 데이터 웨어하우스, OLAP, 전자상거래 등)
- 다양한 멀티미디어 데이터 타입 관리 가능
2. 오라클의 인터넷 플랫폼
- SQL: if 기능이나 반복, scanf, printf 기능이 없음
- PL/SQL: (Programming Language + SQL) -> 오라클에서 사용.
3. 오라클 아키텍쳐
- 오라클 서버:한 오라클 인스턴스와 오라클 데이터베이스로 구성됨.
- 오라클 인스턴스: 백그라운드 프로세스들과 메모리 구조의 조ㅎ바.
- (사용자가 오라클 서버에 SQL을 입력하기 저네 반드시 오라클 인스턴스에 연결되어 있어야 함.)
- 접속: 사용자 프로세스 서버 프로세스 간의 통신 경로
- (서버 프로세스: 사용자가 오라클에 로그인하면 오라클을 실행하는 프로세스가 생김.)
- 세션: 사용자가 오라클 서버로부터 인증될 때부터 시작하여 사용자가 로그아웃을 하거나 비정상적으로 종료될 때까지 지속.
4. 오라클 특징(9)
(외울 필요 없음)
클라이언트, 서버 환경/다양한 플랫폼/대규모 데이터베이스/다중 동시 데이터베이스 사용자/높은 가용성/산업표준/높은 보안 관리/자동 데이터베이스 회복 및 자동 에러 정정/XML 등 다양한 데이터 타입 지원.
5. 오라클 데이터 베이스의 물리적인 저장 구조
: 데이터베이스 내의 운영체제 파일(데이터파일)들의 집합
-> 각 데이터파일은 운영체제 블록들로 이루어짐.
6. 오라클 데이터베이스의 논리적인 저장구조
- 오라클 데이터베이스는 적어도 하나의 테이블스페이스를 포함함.
- 테이블 스페이스: 데이터 파일이라고 부르는 하나 이상의 파일로 구성됨. 하나 이상의 세그먼트 포함
- (테이블 스페이스 종류: 시스템 테이블스페이스, 임시 테이블스페이스, 사용자 테이블스페이스 등)
- 세그먼트: 특정한 유형의 데이터 구조를 저장하기 위해 할당되는 익스텐트들의 집합
- 익스텐트: 오라클 데이터 블록(운영체제의 데이터 블록 아님!)들로 이루어짐
- 오라클 데이터 블록: 읽기, 쓰기 연산의 가장 작은 단위
3-2 오라클 설치 및 수행
1. 오라클 다운로드
- 오라클 홈페이지 접속해 로그인.
- 'Database 11g Enterprise/Standard Editions'선택.
- 라이선스 동의.
- 두 개의 오라클 zip파일 다운로드 후 압축 풀기.
- 다운로드 폴더의 setup.exe 실행하면 OUI(Ocracle Universal Installer)가 실행됨.
(OUI: 오라클 제품의 설치 및 구성 과정을 안내. 오라클의 구성요소들을 설치, 업그레이드, 제거하고 데이터베이스를 생성하는데 사용됨. 오라클 8i부터 자바 기반의 GUI형식의 프로그램으로 만들어짐.)
2. 오라클 설치 8단계
- 1단계) 보안 갱신 구성 단계: [전자메일 주소]와 [My Oracle Support 비밀번호]를 입력하라고 뜨지만 입력 안하고 넘어가도 됨. "전자메일 주소가 지정되지 않음"이라고 뜨지만 그냥 넘어가도 됨.
- 2단계) 설치 옵션 단계: [데이터베이스 생성 및 구성] 선택. 이는 샘플스키마와 함께 새 데이터베이스 생성.
- 3단계) 시스템 클래스 선택 단계: [데스크톱 클래스] 선택. 노트북 또는 데스크톱에 설치하는 경우.
- 4단계) 일반 설치 구성 단계: 7가지 설정.
- ① Oracle Base 설치 위치 - ['C:\app\DBNOTE'] 입력.
- ② 소프트웨어 위치 - 자동으로 Oracle Base 폴더의 하위폴더로 생성된 위치 사용.
- ③ 데이터베이스 파일 위치 - 자동으로 Oracle Base 폴더의 하위폴더로 생성된 위치 사용.
- ④ 데이터베이스 버전 - [Personal Edition] 선택.
- ⑤ 문자 집합 - [기본값(KO16MSWIN949)] 선택.
- ⑥ **전역 데이터베이스 이름** - [DBSERVER] 입력. 이 경우 완전한 전역 데이터 베이스 이름은 DBSERVER.dbnote.uos.ac.kr임.
- ⑦ 관리 권한을 갖는 오라클 계정의 비밀번호 - SYS계정(데이터 사전의 소유자)과 SYSTEM계정(내부 테이블과 뷰들의 소유자)의 비밀번호. 소문자와 대문자, 숫자 하나 이상 사용. 8~30자 내.
- 5단계) 필요 조건 검사 수행 단계: 오라클을 설치하는데 필요한 최소 시스템 요구사항을 충족하는지 확인. [다시확인]을 클릭하면 필요 조건 검사를 실행함.
- 6단계) 요약 단계: 설치할 정보를 요약. [완료] 클릭 후 넘어감.
- 7단계) 제품 설치 단계: 데이터베이스 구성에 포함되는 도구들의 이름과 설치 상태, 설치 비율을 보여줌.(Oracle Database 설치, Oracle Database 구성) 데이터베이스 생성 창과, DBCA 창(데이터베이스 요약 정보를 보여줌.)이 뜸.
- 8단계) 완료 단계
- 4단계의 전역 데이터베이스 이름
- 형식: database_name.domain
- 전역 데이터베이스 이름은 네트워크 도메인 안에서 서로 다른 데이터 베이스를 고유하게 식별할 수 있는 데이터베이스의 완전한 이름임.
- 전역 데이터베이스 이름을 입력하면 자동적으로 SID(시스템 식별자)에도 입력됨
- SID는 로컬 컴퓨터의 다른 데이터베이스와 이 데이터베이스를 고유하게 식별하는 데이터베이스 이름임.
3. 오라클이 윈도우 7의 서비스로 등록 되어 있는 지 확인
: [시작] -> [제어판] -> [시스템 및 보안] -> [관리도구] -> [서비스]에 들어가면
로컬 컴퓨터에서 실행되는 서비스들을 확인할 수 있음.
-> 만약 전역데이터베이스 이름을 'DBSERVER'로 설정했으면 서비스 이름은 'OracleServiceDBSERVER'가 됨.
4. 오라클 관련 프로그램
: [시작] -> [모든프로그램] -> [Oracle - OraDb11g_home1]에서 오라클 관련 프로그램들을 볼 수 있음.
5. 오라클 관련 파일
: C:\app\DBNOTE\oradata\DBSERVER 에 저장됨.
- TEMP01.DBF: SQL문을 처리하는 과정에서 생성되는 임시 테이블들이 저장됨.
- SYSTEM01.DBF: 데이터사전(시스템 카탈로그)이 저장됨.
- USER01.DBF: 사용자가 생성한 테이블들이 저장됨.
3-3 환경 설정
1. Oracle SQL Developer
: 데이터베이스 개발을 위한 GUI
- 기능: 데이터베이스 검색, SQL, PL/SQL 구문 실행, SQL 스크립트 실행, PL/SQL 구문 편집 및 디버깅.
- 조건: 자바 기반으로 동작하기 떄문에 JDK가 설치되어 있어야 함.
- 접근: [시작] -> [모든 프로그램] -> [Oracle - OraDb11g_home1] -> [응용 프로그램 개발] -> [SQL Developer] -> JDK의 java.exe 파일의 경로로 설정 SQL Developer 설치.
- [접속 이름]: 사용자가 로그인 정보를 저장하는 프로파일의 이름
- [사용자 이름]: 접속하려는 데이터베이스에 대한 사용자 계정
- [비밀번호]: 사용자 계정의 비밀번호
- [롤]: SYSDATBA 선택.(데이터베이스 관리자)
- [호스트 이름]: 접속하려는 데이터베이스가 동작하고 있는 컴퓨터의 이름
- [포트]: 오라클 리스너 서비스의 기본 포트(기본 1521)
2. 사용자 등록
: 두 명의 데이터베이스 사용자 등록하기
- sys 사용자(DB관리자. 모든 중요 사항 결정.)로 로그인.
- 질의 입력창에 아래 내용 입력
- CREATE USER: 사용자 등록. KIM은 사용자의 계정, bluesky는 초기 비밀 번호. users는 묵시적인 사용자 테이블스페이스. temp는 묵시적인 임시 테이블스페이스.
- GRANT: CREATE USER문으로 사용자를 생성한 시점의 사용자는 아무런 권한을 갖지 못함. 그래서 GRANT문으로 데이터베이스 관리자는 이 사용자에게 필요한 권한 허가를 부여해줌. KIM에게 2개의 역할(connect, resource)과, 2개의 시스템 권한(create session, create view)을 허가했음.
- 질의 입력창에 들어있는 명령 실행 방법(3):
- [실행] -> [userCreate.sql 실행]
- F5
- 도구 모음에서 스크립트 실행 버튼 클릭
3. 비밀번호 변경
- 데이터베이스 관리자가 사용자의 비밀번호를 변경하거나 사용자가 자신의 비밀번호를 바꿀 수 있음.
- sys계정으로 로그인을 한 상태에서 아래의 명령 사용해 변경 가능.
- ALTER USER KIM identified by shinystar;
4. 예제 테이블 생성
▶ 정의한 테이블과 뷰 확인: SELECT * FROM tab;
(tab은 데이터베이스 내의 테이블에 관한 정보를 나타내는 데이터 사전 뷰.)
위의 명령어를 실행하면 아래의 결과를 얻음.
▶ 정의한 테이블 구조 확인: DESCRIBE DEPARTMENT; or DESC DEPARTMENT;
위의 명령어를 실행하면 아래의 결과를 얻음.
▶ 테이블의 튜플 내용 확인: SELECT * FROM DEPARTMENT;
위의 명령어를 실행하면 아래의 결과를 얻음.
▶ 테이블에 애트리뷰트 추가: ALTER TABLE DEPARTMENT ADD Manager NUMBER;
▶ 테이블에 애트리뷰트 삭제: ALTER TABLE DEPARTMENT DROP COLUMN Manager;
3-4 PL/SQL
1. PL/SQL
: SQL에 절차적인 언어의 기능(if문, while 루프 등)을 추가해 확장한 언어.
; 기본적인 단위는 블록, 프로시저, 함수
: 블록 위주의 언어
: 아래는 PL/SQL 블록 구조 설명(7)
- 세 개의 섹션으로 구성됨.
- 선언절에서는 변수와 객체들 선언.
- 실행절에서는 변수들 처리(조작)
- begin으로 시작하는 실행절만 필수이고 나머지는 옵션임.
- 예외상황 처리절에서는 실행 중에 발생한 예외나 에러를 처리.
- END 및 다른 PL/SQL문에는 문장 끝에 세미 콜론 작성.
- 한 줄 주석은 -- 사용. 여러줄 주석은 /**/ 사용.
2. PL/SQL의 제어 구조
3. 커서
: 커서를 선언해 질의의 결과의 각 행을 처리해야 함.
: 질의의 결과로 반환되는 행들은 활성 집합에 저장됨.
: 커서 사용시 <커서_변수_이름>.<애트리뷰트_이름>
<<커서 사용의 4단계>>
- 블록의 선언절에서 커서 선언: CURSOR 커서_이름 IS SELECT문;
- 커서 사용 전 실행절에서 커서 열기: OPEN 커서_이름;
- 활성 집합에 있는 행을 한 번에 하나씩 차례대로 검색: FETCH 커서_이름 INTO 변수_리스트;
- 커서 닫음: CLOSE 커서_이름;
4. 갱신할 튜플에 대해 커서 정의
EXEC SQL
DECLARE title_cursor CURSOR FOR
SELCECT title FROM employee FOR UPDATE OF title;
UPDATE employee
SET title = :newtitle
WHERE CURRENT OF title_cursor
5. PL/SQL의 예
'Computer Science > DataBase' 카테고리의 다른 글
[데이터베이스] 5장 데이터베이스 설계와 ER모델 (1) (0) | 2023.11.25 |
---|---|
[데이터베이스] 4장 관계 대수와 SQL (0) | 2023.11.03 |
[데이터베이스] 2장 관계 데이터 모델과 제약 조건 (0) | 2023.10.12 |
[데이터베이스] 1장 데이터베이스 시스템 (2) (0) | 2023.10.10 |
[데이터베이스] 1장 데이터베이스 시스템 (1) (4) | 2023.09.23 |