< 오라클 개요 >
- 가장 높은 시장 점유율과 신뢰성
- 대부분 운영체제 및 HW 지원
- 전자상거래와 데이터 웨어하우징을 위한 고성능 인터넷플랫폼 제공
-OLTP : 온라인 트랜잭션 처리 -> 소수의 레코드만 접근하여 트랜잭션이 끝남
-OLAP : 어마어마하게 쌓이는 데이터로부터 요약된 것.
- 응용 서버(오라클 인스턴스)와 데이터베이스 분리, 프레젠테이션은 클라이언트가 맡음.
- SQL : if, 반복, 입출력 등 고급 프로그래밍 언어가 가진 기능이 없음
-> PL + SQL인 PL/SQL 구문 사용. 오라클에서만 가능.
- 오라클 서버는 인스턴스와 데이터베이스루 구성. 오라클 인스턴스는 백그라운드 프로세스 + 메모리 구조로 구성.
- 오라클 SQL 디벨로퍼 : 오라클에다 SQL을 던질 때 PLSQL로 응용 프로그램을 개발할 때 사용
-오라클 DB 물리적 구조 : 데이터베이스 내의 운영체제파일(데이터파일)들의 집합
-> 각 데이터파일은 운영체제 블록으로 이루어짐
- 오라클 DB 논리적 구조 : 위 이미지와 같음
1. 적어도 하나의 테이블 스페이스(데이터파일)를 포함
2. 테이블 스페이스 종류 : 시스템, 임시, 사용자 테이블 스페이스 등
3. 테이블 스페이스는 하나 이상의 세그먼트를 포함
4. 세그먼트는 익스텐트(특정 유형의 데이터 구조 저장을 위해 할당됨)들의 집합
5. 익스텐트는 오라클 데이터 블록의 집합
데이터 블록 집합 = 익스텐트, 익스텐트 집합 = 세그먼트, 세그먼트(=데이터파일) 집합 = 테이블 스페이스
< 오라클 설치 >
1. 보안 갱신 구성 : 라이센스(교육 및 개발용은 계약없음)
2. 설치 옵션 선택
3. 시스템 클래스 선택
4. 일반 설치 구성 : 설치 위치, 버전, 전역DB 이름, 계정 설정 등
-> 전역 데이터베이스 : 오라클은 분산DB를 지원하여 도메인 앞에 데이터베이스 이름을 둠.
-> 이름을 입력하면 자동으로 SID에도 입력, 이름은 DB를 고유히 식별할 수 있는 완전한 이름
5. 필요조건 검사 수행 : 메모리 등 최소 시스템 요구사항 충족하는지 확인 -> 용량이 커서 필요한 HW자원 있는지 확인
6. 요약 : 설치 정보 요약
7. 제품 설치 : 설치
-오라클 폴더와 파일
app/DBNOTE/dradata/DBSERVER -> 전역 DB이름 갖는 폴더 : DB관련파일
TEMP01.DBF : SQL 처리 과정에서 생성되는 임시 테이블 저장
SYETEM01.DBF : 데이터 사전 저장
USER01.DBF : 사용자 생성 테이블 저장
- Oracle SQL Developer : DB 개발을 위한 그래픽 인터페이스
-> SQL 던져서 실행 결과도 볼 수 있고 그렇다.
- 오라클에서는 업데이트를 할 때 특정 컬럼만의 권한을 줄 수도 있음.
grant
connect : 접속 권한을 주자
resource : 생성 권한을 주자
create session : 세션 생성 권한을 주자
create view : 뷰를 생성할 수 있게 -> 이걸 안주면 테이블을 못만듦
-- : 주석
- 관리자는 사용자의 비밀번호를 변경 가능
- DEPTNO : 기본키이기 때문에 not null 명시 -> 그래야 고유하게 식별 가능
- PRIMARY : 기본키가 누구냐?
- INSERT INTO ___ VALUES : 키워드. 인서트 한다는 의미. 문자는 쌍따옴표
- UNIQUE 옵션 :
- DEFAULT 옵션 : not null이기에 직급이 없는 상태로 들어오면 디폴트로 사원을 채워준다
- CHECK 옵션 : 어떤 컬럼이 갖는 값의 범위 지정하는 제약조건
- FOREIGN : 외래키 -> PREFERENCE : 참조 대상
- ON DELETE CASCADE : 연쇄로 지운다!
- 참조가 있기 때문에 1-3번 테이블의 위치를 바꾸면 에러 발생
-ALTER TABLE : 최초에 테이블을 만들 땐 레코드가 하나도 없어서 참조가 어려울 수 있음
-> 포린키 지정하지 않고 각자 생성한 다음에 이 문장을 통해서 외래키를 추가할 수 있음.
- tab : 구성요소가 굉장히 많은데 테이블이나 뷰에 관한 정보를 많이 갖고 있음
몇 개가 출력될까?
-> 4개
- ADD Manager NUMBER 다음에 not null을 명시할 수 있을까?
-> NO.
- 컬럼은 언제든지 추가할 수 있다. 그러나 기존에 다른 컬럼들에 레코드가 있었다면 그 레코드들은 이 추가된 컬럼이 없다. 그러면 null값이 채워지게됨. -> 컬럼을 추가할 때 not null을 명시하는 것은 불가능
- PL/SQL : 관계 DB를 위한 표준 데이터 언어인 SQL에 절차적인 언어의 기능을 추가
-> 블록 위주, 기본 단위는 블록 프로시저 함수
+ 하나의 섹션은 필수
실행절이 필수 -> 선언절과 예외사항 처리절은 옵션
커서는 C로 생각하면 struct. 단 1개.
1. 커서를 선언 : CURSOR 이름 IS SELECT문;
2. 실행절에서 커서 열기 : OPEN 이름;
3. 활성집합에 있는 행을 한 번에 하나씩 차례로 검색 : FETCH 이름 INTO 변수리스트;
-> fetch는 읽어서 고급프로그래밍 변수들에게 넘겨줌
4. 커서를 닫음 : CLOSE 이름;
이런식으로 업데이트 할 수 있다.
'UOS@DB' 카테고리의 다른 글
4장 관계대수와 SQL ( SQL 개요, 데이터 정의어, SELECT문1/2) (0) | 2023.11.04 |
---|---|
4장 관계대수와 SQL (4.1 관계대수) (0) | 2023.11.04 |
2장 관계 데이터 모델과 제약조건 (1) | 2023.10.16 |
1장 DB 시스템(2/2) (0) | 2023.10.10 |
1장 DB 시스템(1/2) (0) | 2023.10.09 |