기타 등등 구입하고 싶은 책들은 많지만 올해는 여기까지만 구입하려 합니다. 제 나이 올해로 서른살입니다. 10년 뒤, 마흔살에는 조금 더 전문가적인 모습이 되어있지 않을 까 생각해 봅니다. ^^
저는 일 할 때는 열심히, 놀 때도 열심히 놀고 싶어 하는 사람입니다. 그저 의미 없이 보내는 것을 싫어 하는 사람입니다. 그래서 읽으면 괜찮은 책들 찾아서 구입하고 언제가 됐든 읽는 것 같습니다.
저는 외국계 보험회사 IT에서 근무하고 있습니다. 작년에 CKLU라는 시험을 보고 합격했습니다. 비록 IT지만 업무에 대해서 알고 싶었기 때문입니다. 이제는 업무 공부는 조금 줄이고 IT 본업에 충실하려 합니다.
IT도 분야가 매우 많습니다. 저는 우선 DB를 하려 합니다. 현재하고 있는 업무도 그렇고 앞으로도 괜찮을 것 같습니다. 현재 LANGUAGE는 GRAPHTALK이라는 것을 사용하고 있습니다. 비록 전문가 수준은 아니지만 C++와 JAVA를 조금(?) 할 줄 압니다. 언어는 거기서 거기인 것 같습니다. EFFECTIVE C++ 등 여러가지 좋은 서적들이 많이 나와 있고, 몇 가지 패턴들이 정해져 있기 때문입니다. 실무에서 적용해 가면서 배운다면 금방 배울 수 있는 것 같습니다. 다만, 같은 부서원들의 OPEN MIND가 필수적일 것입니다.
장기적으로는 DB 모델링 및 튜닝 분야로 나야 갈 것입니다. 지금 하고 있는 업무도 DB 모델링 분야와 약간(?) 관계가 있는 것 같습니다. 업무팀의 요청서를 기준으로 분석하고 처리하고, 사전, 사후 데이타 이미지를 관리하기하기 때문입니다.
DB분야를 시작한지는 6개월도 되지 않았습니다. 하지만, 기간이 중요한 것 같지는 않습니다. 투자한 기간 대비 시간이 중요한 것 같습니다. 예를 들면 아마추어와 프로의 마인드는 다름니다. 그리고 투자하는 시간과 노력도 확연히 차이나는 것이 사실입니다. 저는 앞으로 프로가 되기 위해 1만 시간 이상을 투자할 생각을 갖고 있습니다. 그리고 장기적인 계획을 갖고 있습니다.
삶을 즐기면서 조금씩 노력하는 것이 저의 삶의 목표(?)입니다. 너무 빨리가거나, 너무 과하게 하면 지치기 때문입니다. ^^
오라클을 설치하면 해당 컴퓨터 어디에 Demobld.sql을 비롯하여 예제 테이블들이 위치할 것입니다. 그런데, 그 위치가 약간씩 상이한 것 같습니다. 그래서, 아래의 자료를 Upload하였습니다. 아래의 자료들은 제가 나중에 또 참고하게 될지 모르기 때문에 올린 자료입니다. 감사합니다. ^^
오라클 12c 이상의 버전에서 DB를 멀티테넌트 유형으로 생성한 경우에는 컨테이너 DB(CDB)와 플러거블DB(PDB)라는 구분이 있는데, CDB에 CONNECT하여 예제를 실행하면 'ORA-65096: 공통 사용자 또는 롤 이름이 부적합합니다.' 라는 에러가 발생한다. 이를 피하려면 CDB가 아닌 PDB에 접속하여 사용해야 한다.
create user scott identified by tiger; alter user scott DEFAULT TABLESPACE USERS; alter user scott QUOTA UNLIMITED ON USERS; GRANT RESOURCE, CONNECT TO scott;
DROP TABLE EMP; DROP TABLE DEPT; DROP TABLE BONUS; DROP TABLE SALGRADE; DROP TABLE DUMMY;
CREATE TABLE EMP (EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7, 2), COMM NUMBER(7, 2), DEPTNO NUMBER(2));
INSERT INTO SALGRADE VALUES (1, 700, 1200); INSERT INTO SALGRADE VALUES (2, 1201, 1400); INSERT INTO SALGRADE VALUES (3, 1401, 2000); INSERT INTO SALGRADE VALUES (4, 2001, 3000); INSERT INTO SALGRADE VALUES (5, 3001, 9999);
CREATE TABLE DUMMY (DUMMY NUMBER);
INSERT INTO DUMMY VALUES (0);
COMMIT;
CREATE UNIQUE INDEX dept_pk ON dept(deptno); ALTER TABLE dept ADD CONSTRAINT dept_pk PRIMARY KEY(deptno); CREATE UNIQUE INDEX emp_pk ON emp(empno); ALTER TABLE emp ADD CONSTRAINT emp_pk PRIMARY KEY(empno); CREATE UNIQUE INDEX emp_ename_uk ON emp(ename); ALTER TABLE emp ADD CONSTRAINT emp_ename_uk UNIQUE(ename); CREATE UNIQUE INDEX bonus_pk ON bonus(ename); ALTER TABLE bonus ADD CONSTRAINT bonus_pk PRIMARY KEY(ename); CREATE UNIQUE INDEX salgrade_pk ON salgrade(grade); ALTER TABLE salgrade ADD CONSTRAINT salgrade_pk PRIMARY KEY(grade);
1. Oracle Server 오라클 서버는 information management에 종합적인 접근이 가능하도록 해주는 database 관리 시스템이다. 오라클 서버는 Oracle instance와 Oracle database로 구성된다.
2. Oracle Instance 오라클 인스턴스는 오라클 데이타 베이스에 접근하는 한 수단이다. 항상 오직 한 데이터 베이스에만 열려 있고 사용이 가능하다. 오라클 인스턴스는 메모리와 background process structure들로 구성된다.
3. Oracle Database 오라클 데이타베이스는 unit으로 다루어 지는 데이타들의 집합이다. 오라클 데이타베이스는 3가지 파일 타입으로 구성된다. 오라클 데이타베이스는 아래와 같이 3가지 타입을 가진다. 1) Data files 2) Control files 3) Redo Log files
4. Physical Structure Physical structure는 아래와 같이 3가지 파일 타입을 가진다. 1) Data files 데이타 파일은 database 내에서 실제적인 data를 가지고 있다. 2) Control files 컨트롤파일은 database integrity를 검증하고 유지하는데 필요로하는 정보를 가지고 있다. 예를 들면, Database name, Time stampe of database creation, names and locations of data files and online redo log files 등 기타 등등 여러가지를 가지고 있다. 3) Online redo log files 오라인 리두 로그 파일은 failure의 경우에 data의 복구가 가능하도록 database에 change가 가능한 record를 가지고 있다.
5. Memory Structure 오라클의 memory structure는 아래와 같은 두 가지 memory area로 구성된다. 1) System Global Area(SGA) It is allocated at instance start up. And it is a fundamental component of an Oracle instance. 2) Program Global Area(PGA) It is allocated when the server process is started.(It is equal to 'when a session is created)
Oracle 홈페이지에서 Oracle 10g를 다운로드 받아 설치하였다면 다음은 Database Configuration Assistant를 실행해야 한다.
Database 객체를 만들어야 한다.
그 다음에는 예제 소스를 실행해야 한다. 예제 소스의 실행 방법은 다음과 같다. @ C:\oracle\product\10.2.0\db_1\odp.net\samples\DataSet\RelationalData\setup\Demobld.sql
예제 테이블을 만들고 그것을 가지고 공부를 할 수 있다. 대부분 예제 테이블을 기준으로 교재들이 구성되었기 때문에 예제 테이블을 만들고 공부를 해야 한다. 위는 @ 에 Demobld.sql 경로를 추가해 준 것이다. 위의 '@ 경로'를 sqlplus에 접속하여 실행하면 예제 테이블이 만들어 진다.
처음 Database Configuration Assistant를 실행하고 sql*plus 로 접속하여 DML을 하면 잘 작동한다. 그러나 컴퓨터를 다시 부팅하면 실행이 안된다. 그것은 DB가 shutdown 된 상태이기 때문이다.
ORA-01034: ORACLE not available ORA-27101: shared memory realm deos not exist
DB를 startup 시켜 주어야 한다.
cmd 창에서 sqlplus /nolong 혹은 sqlplus "/as sysdba"로 접속을 한다. 그 뒤에 SQL> startup 한 뒤에 다시 원하는 user로 접속을 시도한다. SQL> connect scott/tiger
한 가지 문제점이 발생할 수도 있다. select * from emp; 를 했는데, 아무 값이 나오지 않을 수도 있다.
그것은 현재 윈도우의 날짜가 한글 형식으로 되어 있기 때문이다. 그래서 오라클 10g도 날짜가 한글형식으로 되어 있기 때문에, 만약,
1. NLS_DATE_FORMAT 변경 SQL> select sysdate from dual; SQL> alter session set nls_date_format ='DD-MON-YY'; SQL> select sysdate from dual;
2. 시스템 언어 변경 SQL> alter session set nls_language = 'AMERICAN'; SQL> select sysdate from dual;
3. 아예 입력 구문을 바꾸기 SQL> alter session set nls_date_format = 'DD-MON-YY'; SQL> INSERT INTO EMP VALUES (7369, 'SMITH', 'CLERK', 7902, '17-12월-80', 800, NULL, 20);
오늘 처음으로 혼자 공부를 해보았는데, 하루에 1시간 아니 30분씩이라도 꾸준히 공부해야 할 것 같다.