8_oracle_이론 정리

study/Oracle · 2019. 11. 26. 08:39

오라클 이론 정리

Database
- 한조직의 여러 응용 시스템들이 공용(SHARED)으로
사용되기 위해 최소 중복으로 통합(INTEGRATED) 저장
(STORED)된 운영데이터(OPERATIONAL DATA)의 집합이다

특징 
1. 실시간 접근성 (로그인)
2. 계속적인 변화 (미세먼지)
3. 동시공유(게시판)
4. 내용에 따른 참조

DBMS(DATABASE MANAGEMENT SYSTEM)
- 데이터베이스에서 데이터를 추출,조작,정의,제어등을
할수 있게 해주는 데이터베이스 전용 관리프로그램

기능
1. 데이터추출(조회)
2. 데이터조작
- 조회+삽입+수정+삭제 (CRUD) CREATE READ UPDATE DELETE)
3. 데이터 구조 정의
4. 데이터 제어

DMBS 사용이점
1. 데이터 독립화
2. 데이터 중복최소화, 데이터 무결성 보장
3. 데이터 보안 향상
4. 관리 편의성 향상

DATABASE 유형
계층형 데이터베이스
- 무결성 침해
네트워크형 데이터베이스
- 복잡, 속도저하 (효율성침해)
관계형 데이터베이스
- 2차원 테이블형태로 관계를 도출하는 구조
객체_관계형 데이터베이스 

SQL(STRUCTURED QUERY LANGUAGE)

DQL(DATA QUERY LANGUAGE) 
데이터 검색 SELECT
DML(DATA MANIPULATION LANGUAGE) 
데이터 조작 INSERT, UPDATE, DELETE
DDL(DATA DEFINATION LANGUAGE)
데이터 정의  CREATE, ALTER, DROP
(객체를 만들고,수정하고,삭제 하는 등의
데이터의 전체적인 구조를 정의하는 언어로
주로 DB관리자,설계자가 사용하는 언어)

DCL (DATA CONTROL LANGAUGE) 데이터제어언어 
데이터베이스,데이터베이스 객체에 대한
접근 권한을 제어(부여,회수)하는 언어
GRANT, REVOKE
★★TCL(DCL) (TRANSACTION CONTROL LANGUAGE)
데이터베이스의 논리적 연산단위
질의어들의 묶음/ 트렌젝션제어/ 
COMMIT, ROLLBACK, SAVEPOINT

JOIN
오라클  ASNI
등가조인  내부조인
자연조인
포괄조인 왼쪽외부조인, 오른쪽외부조인
전체외부조인(오라클X)
비등가조인 JOIN ON
자체조인
CARTESAIN PRODUCT 교차조인

@서브쿼리의 조건
1) 메인 쿼리가 실행되기 전 한번만 실행
2) 비교 연산자의 오른쪽에 기술
3) 반드시 괄호로 묶어야함
4) 서브쿼리와 비교할 항목은 반드시 서브쿼르의
SELECT한 항목의 개수와 자료형을 일치시켜야함

@ 서브쿼리의 유형
- 단일행 서브쿼리
서브쿼리의 조회 결과값의 개수가 1개인 서브쿼리
- 다중행 서브쿼리
서브쿼리의 조회 결과값의 개수가 여러개인 서브쿼리
- 다중열 서브쿼리 
서브쿼리의 SELECT절에 나열된 컬럼수가 여러개인 서브쿼리
- 다중행, 다중열 서브쿼리
서브쿼리 조회 결과가 여러행, 여러컬럼을 가지는 서브쿼리
- 상관서브쿼리 
메인쿼리가 사용하는 테이블 값을 서브쿼리가 이용해서
결과를 만드는 서브쿼리 
메인쿼리의테이블값이 변경되면 서브쿼리의 결과값도
바뀌게됨
-스칼라서브쿼리
SELECT절에 사용되는 서브쿼리

@오라클에서 객체 종류
TABLE , VIEW, SEQUENCE, INDEX, PACKAGE, TRIGGER
PROCEDURE, FUNCTION, SYNONYM ,USER

@테이블이란?
행과 열로 구성되는 가장 기본적인 데이터베이스 객체
모든 데이터는 테이블을 통해 저장됨

★ 데이터 딕셔너리
- 자원을 효율적으로 관리하기 위한 다양한 정보를 저장하는
시스템 테이블
- 사용자가 테이블을 생성하거나 변경하는 등의 작업을
진행할때 데이터베이스서버에 자동으로 갱신되는테이블
USER_TABLES, USER_TAB_COLUMNS
USER_CONSTRAINTS, USER_CONS_COLUMNS

@ 제약조건
- 사용자가 원하는 조건의 데이터만 유지하기 위해서
특정컬럼에 설정하는 제약
- 테이블 작성 시 컬럼에 대해 값 기록에 대한 제약조건
설정가능
- 데이터의 무결성을 보장하기 위해서 사용
- 입력 데이터에 문제가 없는지 자동으로 검사목적
- 데이터의 수정/삭제 가능여부 검사 목적으로 사용

@ 제약조건 설정방법
1. 컬럼레벨방식
2. 테이블레벨방식

@ 제약조건의 종류
PRIMARY KEY, UNIQUE, NOT NULL, CHECK, FOREIGN KEY

NOT NULL 
- 해당 컬럼에 반드시 값이 기록되어야 하는 경우에 사용
컬럼레벨에서 제한

UNIQUE
- 컬럼 입력값에 중복을 제한
CHECK
- 컬럼에 기록되는 값을 제한
PRIMARKY KEY(기본키)
- 테이블에서 한 행의 정보를 식별할 수 있게 하기 위하여
- 사용할 컬럼에 추가하는 제약조건(식별자)
- NOT NULL 제약조건+ UNIQUE 제약조건
- 복합키는 테이블레벨에서만 설정 가능
★★ FOREIGN KEY(외래키)
 - 해당 컬럼에 참조된 다른 테이블에서 제공하는 값만
사용할수있도록 하는 제약조건
- 테이블간의 연결고리 역할

@ 참조무결성
- 참조하는 테이블의 컬럼 값에 없는 데이터를 삽입할수
없게 하는것

★FOREIGN KEY의 삭제옵션
ON DELETE SET NULL
ON DELETE CASCADE

시스템 권한 종류
CREATE SESSION : 데이터베이스 접속 권한
CREATE TABLE : 테이블 생성 권한
CREATE VIEW : 뷰생성 권한
CREATE SEQUENCE : 시퀀스 생성 권한
CREATE PROCEDURE : 프로시져(함수) 생성권한
CREATE USER : 계정 생성 권한
DROP USER : 계정 삭제 권한
DROP ANY TABLE : 임의의 테이블 삭제 권한

@ 계정의 종류
- 관리자 계정 (SYS AS SYSDBA, SYSTEM)
데이터베이스의 생성과 관리를 담장하는 계정
모든 권한과 책임을 가짐
- 사용자계정
데이터베이스에 대하여 질의,갱신,보고서 작성등
업무에 필요한 최소한의 권한만을 가지는 계정

ROLE : 사용자에게 허가할수 있는 권한들의 집합
GRANT CONNECT, RESOURCE TO 계정명
RESOURCE : CREATE 생성 권한, INSERT, UPDATE, DELETE

DML 명렁어로 VIEW 조작이 불가능한 경우
1. 뷰 정의에 포함되지 않은 컬럼을 조작하는 경우
2. 뷰에 포함되지 않는 컬럼 중 베이스가 되는 컬럼이
NOT NULL 제약조건이 지정된 경우
3. 산술 표현식으로 정의된 경우
4. 그룹함수나 GROUP BY 절을 포함한 경우
5. DISTINCT를 포함한 경우
6. JOIN을 이용해 여러 테이블을 연결한 경우

@SEQUENCE 
순차적으로 정수 값을 자동으로 생성하는 객체
자동 번호 발생기 역할을 함

★★ 시퀀스 사용시 NEXTVAL를 수행한 후에만
CURRVAL 호출 가능

@SEQUENCE 사용가능
서브쿼리가 아닌 SELECT문
INSERT문의 SELECT절
★★★ INSERT문의 VALUE절
UPDATE문의 SET절

★CACHE
미리 다음 작업의 결과를 만들어 두는 메모리
속도가 빠르지만 일정 공간을 차지하고 있음

★ SEQUENCE에서 CACHE
지정된 숫자만큼 다음에 나올 NEXTVAL의 결과들을
미리생성해둠

'study > Oracle' 카테고리의 다른 글

9_oracle_명령어 정리  (0) 2020.06.09
9_oracle_INDEX, SYNONYM  (0) 2019.11.27
7_oracle_DDL (ALTER, DROP)  (0) 2019.11.23
6_oracle_DML, DCL, TCL  (0) 2019.11.22
5_oracle_DDL(CREATE)  (0) 2019.11.21