RDB 29

[오라클]Redo log file, tablespace, datafile

[pfile을 이용한 멀티플렉싱] - pfile을 통해 control.ctl 파일 경로 수정 - Database 재시작시 ctl 경로 변경 조회 - ms-sql에서는 mdf(마스터 데이터베이스 파일) 처음에 파일 생성시 만들어짐. 그 이후로는 ndf로 생성 [Redo log file] - 데이터가 변경되는 내용을 모두 기록. 복구시 사용하는 파일. - 반드시 그룹화 되어 있어야 하며 적어도 2개의 그룹이 있어야 한다. - 그룹안에는 멤버가 하나 이상 존재해야 한다. - LGWR는 Redo log를 기록한다. 그룹1의 용량이 꽉 찰 경우, 로그 스위치가 발생하여 다음번 그룹2에 기록. 순환식으로 일어난다. 이때, 체크포인트가 발생. 체크포인트는 각 파일에 시퀀스번호를 부여함. 시퀀스번호에 대한 데이터도 기..

RDB/Oracle 2019.01.24

[오라클]admin

- admin 관련 내용은 cmd 이용. backup, recovery는 쿼리박스보다 cmd가 나음 [Oracle Universal Installer] 자바엔진을 기반으로 만들어서 swing으로 구현함. 그래서 속도가 느림. To start oracle universal installer on NT(윈도우즈 환경) D:\> setup To start oracle universal installer in non-interactive mode (내가 없어도 설치가 알아서 되도록) /runInstaller -reponsefile myrespfile -silent [SQLPLUS] -sqlplus /nolog : 사용자로그인 없이 sqlplus만 실행시키는 소스 -connect as sysdba [PARAMET..

RDB/Oracle 2019.01.23

[오라클]오라클 아키텍쳐(2)

[오라클 아키텍쳐] [ 데이터베이스의 물리적 구조 (Physical Structure) ] - CONTROL01.CTL , CONTROL02.CTL 는 사실상 동일한 파일. 백업 중요해서 Recovery_area에 별도 저장. [Memory Structure] 1. PGA영역(PROGRAM GLOBAL AREA) : 서버가 시작할 때 할당되는 메모리 영역 오라클 데이터베이스에 연결된 사용자마다 할당되는 메모리. 프로세스가 시작될 때 할당되고 중단될 때 없어짐. 2. SGA영역(SYSTEM GLOBAL AREA) : 오라클 메모리. 모든 사용자가 공유 가능하여 사용. 동적. 그때마다 사이즈가 달라질 수 있음. 3. SGA의 구성메모리 3-1. SHARED POOL 공유영역 - SHARED SQL AREA ..

RDB/Oracle 2019.01.22

[오라클]패키지, 트리거(1)

- 여러 개의 프로시저를 하나로 묶을 수 있다. PACKAGE : 프로시저의 묶음 - package와 body로 구성되어 있음 - FOR EACH ROW : 이걸 사용안하면 테이블 레벨 트리거에서 NEW 혹은 OLD 참조는 허용되지 않습니다. 오류 - NEW 사용자가 지정한 작업의 실행 후 데이터 - OLD 사용자가 지정한 작업이 실행 전 데이터 패키지 생성(5개의 프로시저를 하나로 묶음) CREATE OR REPLACE PACKAGE SAWON_PACK IS PROCEDURE SANO_OUT; PROCEDURE SANAME_OUT; PROCEDURE BUNO_OUT; PROCEDURE JIK_OUT; PROCEDURE PAY_OUT; END; 패키지 바디 생성(각각의 프로시저를 안에 정의함) CREAT..

RDB/Oracle 2019.01.22

[오라클]DML 프로시저, 함수, 반복문, 예외처리,커서

- 우리가 가장 많이 사용하는 프로시저는 DML PROCEDURE(INSERT, UPDATE, DELETE 시키는 프로시저.) 1. INSERT PROCEDURE 1-1 테이블 생성 CREATE TABLE TEST (A NUMBER(10), B NUMBER(10), C DATE DEFAULT SYSDATE); DESC TEST; 1-2. 데이터 삽입 CREATE OR REPLACE PROCEDURE P_EX (FIRST IN NUMBER, SECOND IN NUMBER) IS BEGIN INSERT INTO TEST(A,B) VALUES (FIRST, SECOND); COMMIT; END; 1-3. 프로시저 실행 후 조회 EXECUTE P_EX(10,20); SELECT * FROM TEST; 1-4. ..

RDB/Oracle 2019.01.21

[오라클]인덱스, 시퀀스, PL/SQL-프로시저의 개념, 스크립트

프로젝트 진행시 DB모델링이 제일 먼저 진행되야함 (TABLE생성(컬럼명, 테이블명, 제약조건 다 정해야됨)) INDEX 1. INDEX 생성 방법 2. INDEX 리스트 확인 이 리스트에 PK도 존재하는 것을 볼수있음. PK생성시 동일한 이름의 PK와 INDEX가 동시에 생성됨. 즉, PRIMARY KEY 를 만들게되면 INDEX도 같이 만들어진다. 인덱스의 종류는 CLUSTERED INDEX와 NON-CLUSTERED INDEX 두가지 오라클은 NON-CLUSTERED 형태의 인덱스이므로 정렬이 되지 않음. MS-SQL은 CLUSTERED 인덱스므로 정렬되어 저장됨 # INDEX에 해당하는 컬럼 조회 3. NON-CLUSTERED INDEX ① 테이블 생성 ② 데이터 삽입 ③ 테이블 조회 : 정렬되지..

RDB/Oracle 2019.01.18

[오라클]제약조건, DATA DICTIONARY, VIEW, SYNONYM

[제약조건] 제약조건 조회 [PRIMARY KEY] 1. COLUMN LEVEL : 컬럼 생성시 제약조건 기재. 2. TABLE LEVEL : 컬럼 생성후 마지막으로 제약조건 기재. 좀 더 직관적으로 볼 수 있어서 테이블 레벨로 만드는 것을 더 선호함 (1보다 2선호) [FOREIGN KEY] ▲CUSTOMER TABLE ▲ORDERS TABLE ▲CATALOG1 TABLE 1. 참조키 제약조건 ALTER를 통해 수정 - ORDERS 테이블의 ‘NO’열을 외래키로 가져옴 2. 참조키 제약조건 테이블 생성시 입력 - ORDERS 테이블의 ‘NO’열을 외래키로 가져옴 3. ORDERS 테이블에 NO 값이 없다면 참조무결성 위반으로 입력 불가능함 - 무결성 제약조건(KIM.CATALOG1_NO_FK)이 위배되..

RDB/Oracle 2019.01.16

[오라클]DCL, OBJECT 권한, ROLE

데이터베이스를 구축하고 난 뒤 app 구현함. 이 때, 원래 DB를 수정하는 것이 아님. 한 컬럼이 지워지면 코딩상에서는 getter, setter 뿐만 아니라 변수도 없어지기 때문에 변동이 엄청 큼. 하지만 회사에서는 비일비재. L테이블. 최악의 테이블. NULL이 들어가 있는 상태의 테이블. 데이터가 이미 들어가있을때 나중에 컬럼을 추가. USER TABLESPACE 안에 USER01.DBF 파일 존재(오라클이 관리하지만 OS의 영역). 그 파일 안에 MANAGER, SALESMAN, SALESMAN1 과 같은 테이블들이 존재(물리적으로 오라클 DB영역) 일반적으로 트랜잭션로그파일의 내용을 볼 수 없음. SYS계정에서 테이블 생성시 기본 Default값은 SYSTEM.tablespace 에 저장된다...

RDB/Oracle 2019.01.16

[오라클]서브쿼리, 무결성, 트랜잭션, DDL, 정규화

▶ PC를 킨 후, 오라클이 실행되지 않을 때 서비스 프로그램 킨 후 콘솔 프로그램 상태가 시작됨인지 확인. SUBQUERY를 활용하여 데이터 UPDATE --주소가 제주도인 고객의 월급을 500원 인상 --해당 데이터 조회 SELECT * FROM EXCOMPANY WHERE USERID IN(SELECT USERID FROM EXCUSTOM WHERE ADDR1 = '제주도'); --해당 데이터 변경 UPDATE EXCOMPANY SET PAY=PAY+500 WHERE USERID IN(SELECT USERID FROM EXCUSTOM WHERE ADDR1 = '제주도'); --UPDATE SELECT * FROM PERSONNEL WHERE PNO = 1111; UPDATE PERSONNEL SET..

RDB/Oracle 2019.01.16

[오라클] 예제풀이 5

1. EMP 테이블에서 Blake와 같은 부서에 있는 모든 사원의 이름과 입사일자를 출력하는 SELECT문을 작성하시오.SELECT ENAME,HIREDATE FROM EMPWHERE DEPTNO = (SELECT DEPTNO FROM EMP WHERE ENAME = 'BLAKE'); 2. EMP 테이블에서 평균 급여 이상을 받는 모든 종업원에 대해서 종업원 번호와 이름을 출력하는 SELECT문을 작성하시오. 단 급여가 많은 순으로 출력하여라. SELECT EMPNO, ENAME FROM EMP WHERE SAL > (SELECT AVG(SAL) FROM EMP); 3. EMP 테이블에서 이름에 “T”가 있는 사원이 근무하는 부서에서 근무하는 모든 종업원에 대해 사원 번호,이름,급여를 출력하는 SELEC..

RDB/Oracle 2019.01.16
반응형