SQL 이론 복습(오라클 객체 및 권한 - VIEW, SEQUENCE, INDEX, SYNONYM, 권한과 ROLE)
✅SQL 이론 복습 - Part 3. 오라클 객체 및 권한(2022.02.04)
🚀 오라클의 객체와 권한을 이해하고 자주 사용되는 오브젝트를 활용하여 프로그래밍 할 수 있다.
🚀 오라클의 권한을 이해하고 자주 사용되는 오브젝트의 이해 및 활용을 할 수 있다.
뷰VIEW
📚 이론
[Oracle/SQL] 10. VIEW | 인라인뷰 | DDL 활용한 베이스테이블 조작
📚 학습점검
✅ 뷰 오브젝트에 대해 이해하고 사용 목적도 이해할 수 있다.
▶VIEW 객체에 별칭을 붙여 사용하면 기존에 쓰던 인라인뷰와 같은 결과를 얻을 수 있다. VIEW라는 객체로서 제작해 사용하는 데는 그만한 장점이 따르기 때문이다. 첫째로 복잡한 쿼리문을 재작성하는 등의 번거로움을 대신해 뷰로 만들어놓고 활용할 수가 있다. 둘째로 데이터 숨김 처리가 가능하다. 민감한 데이터를 제외하고 VIEW를 생성해 제공할 수가 있다.
✅ 뷰 오브젝트를 생성하고 뷰 오브젝트를 이용하여 조회할 수 있다.
▶CREATE OR REPLACE VIEW V_TEST AS SELECT...
▶SELECT VT.* FROM V_TEST WHERE...;
✅ 뷰 오브젝트에 DML을 수행할 수 있다.
▶INSERT INTO 뷰이름 () VALUES ();
▶UPDATE 뷰이름 SET... WHERE...;
▶DELETE FROM 뷰이름 WHERE...;
✅ 뷰의 OR REPLACE와 FORCE 옵션의 차이를 이해하고 뷰를 생성 할 수 있다.
▶뷰 옵션에는 OR REPLACE, FORCE, NOFORCE, WITH CHECK OPTION, WITH READ ONLY 다섯 가지가 있다.
▶OR REPLACE는 생성 시에 적용하면 덮어쓰기 기능을 제공한다.
▶FORCE는 SELECT절에 온 테이블이 현재 존재하지 않더라도 뷰 생성이 가능하게 하는 옵션이다. 반대인 NOFORCE는 테이블이 반드시 존재해야만 SELECT 가능한 기본값이라고 볼 수 있다.
✅ WITH CHECK옵션을 이해하고 뷰를 생성할 수 있다.
▶WHERE... WITH CHECK OPTION; 적용하면 반드시 해당 조건이어야 한다. WHERE EMP_ID = '205' WITH CHECK OPTION; 이라고 작성하거든 EMP_ID는 반드시 205만 취급할 수 있는 것이다.
✅ WITH READ ONLY옵션을 이해하고 뷰를 생성할 수있다.
▶읽기 전용 VIEW로 만든다.
시퀀스SEQUENCE
📚 이론
[Oracle/SQL] 11. 시퀀스 | SEQUENCE | CURRVAL | NEXTVAL
📚 학습점검
✅ 시퀀스 오브젝트에 대해서 이해할 수 있다.
▶자동 번호 생성기 역할을 한다. 정수값을 순서대로 생성한다.
▶INSERT~VALUES 구문에서 특히 자주 쓰일 수 있다. 시퀀스명.NEXTVAL로 다음 번호를 매길 수 있는 기능 때문이다.
✅ 시퀀스 오브젝트를 생성하고 조회할 수 있다.
▶CREATE SEQUENCE 시퀀스명;
▶SELECT * FROM USER_SEQUENCES; 딕셔너리 통해 조회 가능하다.
✅ ALTER 구문을 이용하여 시퀀스의 값을 변경할 수 있다.
▶ALTER SEQUENCE 시퀀스명 옵션, 옵션, 옵션...;
▶옵션 중 START WITH 조건만 변경 불가하다.
인덱스INDEX
📚 이론
[Oracle/SQL] 12. 인덱스 | INDEX | ROWID | INDEX HINT | REBUILD
📚 학습점검
✅ 인덱스 오브젝트에 대해 이해하고 사용 목적도 이해할 수 있다.
▶인덱스는 검색 속도 향상을 위해 컬럼에 대고 생성된다.
▶인덱스 생성이 마냥 좋은 결과로 이어지진 않기에 장단점을 살펴야 한다. 인덱스 사용을 통해 성능 향상을 도모하고, 검색 속도를 높일 수 있다. 단, DML이 자주 실행되는 경우라면 REBUILD와 같은 꾸준한 관리가 요구된다. 삽입-수정-삭제 시마다 번호가 섞이고 바뀌게 마련이라 인덱스 트리 구조가 불균형하게 돼 자칫 성능 저하로 이어질 수 있기 때문이다. 또 인덱스 사용을 위해서도 그만의 저장 공간을 필요로 하고 생성하는 데 시간 역시 소요되기 마련이다.
✅ UNIQUE INDEX에 대해서 이해하고 생성할 수 있다.
▶컬럼 내에 중복값이 없고, 고유한 인덱스를 말한다. PK나 UNIQUE 제약조건이 걸린 데 대해서는 자동적으로 UNIQUE INDEX가 부여된다.
▶CREATE UNIQUE INDEX 인덱스명 ON 테이블명(컬럼명);
✅ NONUNIQUE INDEX에 대해서 이해하고 생성할 수 있다.
▶컬럼 내 중복이 존재할 순 있으나, WHERE절 조건 등으로 많이 쓰이는 것에 대해 선언하는 인덱스이다.
▶CREATE INDEX 인덱스명 ON 테이블명(컬럼명);
✅ COMPOSITE INDEX에 대해서 이해하고 생성할 수 있다.
▶결합 인덱스를 말한다. 컬럼명 나열할 때 보다 유니크한 값을 앞에 서술하는 것이 성능면에서 좋다.
▶CREATE INDEX 인덱스명 ON 테이블명(컬럼명, 컬럼명);
✅ FUNCTION INDEX에 대해서 이해하고 생성할 수 있다.
▶함수 기반 인덱스를 말한다. 대표적인 예로 직원들의 연봉 등을 토대로 인덱스를 생성할 때를 일컫는다.
▶CREATE INDEX 인덱스명 ON 테이블명(함수식);
동의어SYNONYM
📚 이론
[Oracle/SQL] 13. 동의어 | SYNONYM | 공개 동의어 | 비공개 동의어
📚 학습점검
✅ 동의어 오브젝트에 대해서 이해할 수 있다.
▶사용자가 다른 사용자의 객체에 접근하고자 할 때는 사용자명.객체명을 명시해야 한다. 자칫 길게 늘어날 수 있는 호출 구문을 짧게 만들기 위해 동의어를 쓸 수 있다.
▶동의어 사용을 위해서는 GRANT 권한 부여가 우선적으로 이루어져야 하며, 종류로는 공개/비공개 동의어가 있다.
✅ 비공개 동의어와 공개동의어의 특징을 이해하고 설명할 수 있다.
▶비공개 동의어는 객체 생성 권한을 부여 받은 사용자가 자신에게 한정적으로 적용한 것을 일컫는다.
▶CREATE SYNONYM EMP FOR EMPLOYEE; 사용자명은 생략할 수 있다.
▶공개 동의어는 SYSTEM 계정에서 PUBLIC한 개념으로 적용한 동의어를 말한다. 모든 계정에서 접근 가능하다.
▶CRATE PUBLIC SYNONYM DEPT FOR C##EMPLOYEE.DEPARTMENT;
✅ 동의어 오브젝트 생성방법에 대해서 이해하고 동의어 오브젝트를 생성할 수 있다.
▶비공개 동의어 작성 예시는 다음과 같다: CREATE SYNONYM EMP FOR EMPLOYEE; 사용자명은 생략할 수 있다.
▶공개 동의어는 SYSTEM 계정이 생성한다: CRATE PUBLIC SYNONYM DEPT FOR C##EMPLOYEE.DEPARTMENT;
권한과 ROLE
📚 이론
[Oracle/SQL] 14. 시스템 권한 | 객체 권한 | GRANT | REVOKE | ROLE
📚 학습점검
✅ 오라클 설치시 기본적으로 제공되는 계정에 대해 설명할 수 있다.
✅ 관리자 계정의 종류와 특징에 대해서 설명할 수 있다.
▶SYSTEM 관리자 계정이다.
✅ 롤(ROLE)생성 생성방법을 이해하고 롤을 생성할 수 있다.
✅ 생성된 롤(ROLE)을 사용자에게 부여할 수 있다.
▶CREATE ROLE 롤이름;
▶CREATE 권한명 TO 롤이름;
▶CREATE 롤이름 TO 유저명;
'Database' 카테고리의 다른 글
[JDBC] VIEW | MVC 패턴 | CRUD (0) | 2022.02.05 |
---|---|
[JDBC] Service | MVC 패턴 | CRUD | Transaction (0) | 2022.02.04 |
[JDBC] DAO | MVC 패턴 | CRUD | Query (0) | 2022.02.04 |
[JDBC] CRUD | INSERT | UPDATE | DELETE (0) | 2022.02.03 |
[JDBC] XML | SQL injection | PreparedStatement (0) | 2022.02.03 |