search results for 'Work'

  1. 2009/02/09 오묘한 인덱스의 세계
  2. 2008/12/10 Star Schema
  3. 2008/03/15 Oracle 교육 - SQL
  4. 2008/03/15 Oracle 교육
  5. 2008/03/03 RSA(Rational Software Architect) 교육 (2)
select  max(number) + 1
   from AAA
where A = A
   and  B = B

이 쿼리와

select  /* Index_desc (AAA pk) */
          number + 1
  from  AAA
where A = A
   and  B = B

단, A, B는 pk index임

이 쿼리의 차이.. 오늘 설명을 듣고나니 후덜덜 하더군;;;
index의 세계는 참으로 오묘하군...


===================================================================================

TAG index, SQL, Work

Star Schema

Work 2008/12/10 10:18
Fact, Dimension 만 알면 다 아는거란다.. 큭

BO(Business Object)에서 사용되는 DB Schema

사용자 삽입 이미지

===================================================================================

Oracle 교육 - SQL

Work 2008/03/15 15:40
======================================================================================
sql example
======================================================================================
> select * from tab;    // 테이블 명을 보여준다
TNAME                                                        TABTYPE        CLUSTERID
------------------------------------------- -------------- ----------
EMP                                                           TABLE
DEPT                                                          TABLE
BONUS                                                        TABLE
SALGRADE                                                  TABLE
DUMMY                                                       TABLE


> desc emp
이름                                                              널?           유형
-------------------------------------------- --------    -------------------
EMPNO                                                        NOT NULL  NUMBER(4)
ENAME                                                                         VARCHAR2(10)
JOB                                                                             VARCHAR2(9)
MGR                                                                            NUMBER(4)
HIREDATE                                                                     DATE
SAL                                                                             NUMBER(7,2)
COMM                                                                         NUMBER(7,2)
DEPTNO                                                                       NUMBER(2)

// alias를 사용한다. " "로 묶으면 묶은 그대로 나오고 아니면 무조건 대문자로 나온다
> select job as "abc" from emp;
abc
------------------
CLERK
SALESMAN
SALESMAN
MANAGER
SALESMAN
MANAGER
MANAGER
ANALYST
PRESIDENT
SALESMAN
CLERK

abc
------------------
CLERK
ANALYST
CLERK

> select job as abc from emp;
ABC
------------------
CLERK
SALESMAN
SALESMAN
MANAGER
SALESMAN
MANAGER
MANAGER
ANALYST
PRESIDENT
SALESMAN
CLERK

ABC
------------------
CLERK
ANALYST
CLERK


> select * from emp
     order by deptno asc, sal desc;

EMPNO  ENAME         JOB               MGR HIREDATE        SAL       COMM     DEPTNO
-----     ------------  ------------- ----- --------          -----      -------    -------
 7839      KING             PRESIDENT              81/11/17         5000                     10
 7782      CLARK          MANAGER      7839   81/06/09          2450                     10
 7934      MILLER         CLERK           7782   82/01/23          1300                     10
 7788      SCOTT          ANALYST       7566   82/12/09          3000                     20
 7902      FORD            ANALYST       7566   81/12/03          3000                     20
 7566 JONES                MANAGER                  7839 81/04/02       2975                    20
 7876 ADAMS                CLERK                    7788 83/01/12       1100                    20
 7369 SMITH                CLERK                    7902 80/12/17        800                    20
 7698 BLAKE                MANAGER                  7839 81/05/01       2850                    30
 7499 ALLEN                SALESMAN                 7698 81/02/20       1600        300         30
 7844 TURNER               SALESMAN                 7698 81/09/08       1500          0         30

===================================================================================

Oracle 교육

Work 2008/03/15 09:51

======================================================================================
oracle server에 접속하기 위해서 필요한 중요한 세가지
======================================================================================
- host name or ip
- port number(기본 설정 1521 or Admin이 설정한 번호)
- sid name

위 세가지를 알아야 한다.

======================================================================================
sql 작성시 sequel을 이용하여 작성하면 보다 높은 성능을 이끌어 낼 수 있다.
======================================================================================
sequel을 이용하여 sql문을 작성하면 해당 sql문이 buffered cache에 저장되게 된다.
따라서 자주 사용하는 sql문을 미리 buffered cache에 저장해 놓으면
이후에 사용되는 동일 sql에는 보다 높은 성능을 낼 수 있다.

ex) select * from emp
        where empno = :eno;

eno자리에 일반적으로 '123', '456' 과 같은 상수가 들어오면 각각의 sql문이 cache에 올라가게 되어 buffer가 쉽게 pool이 날 수가 있다. 이것을 방지하기 위해서도 sequel을 사용한다.
동일 sql문으로 다양한 변수들을 처리하기 위해서 eno에 값을 넣는 방식을 사용한다.

======================================================================================
save sql
======================================================================================
sqlplus를 시작할때 시작위치를 지정하고 실행하면, 본인이 실행하는 sql문을 저장할 수 있다

ex)
> select * from dept;
> save dept
file dept.sql(이)가 생성되었습니다

다시 사용하고자 할때는 다음처럼 사용하면 된다
> start dept

======================================================================================
buffer edit
======================================================================================
> l
을 치면 현재 버퍼에 있는 sql문을 보여준다
이것을 바로 고치고 싶으면
> edit를 누르면 된다.

이렇게 하면 새로운 창이 뜨면서 buffer에 있는 sql문이 나온다. 이를 수정하여 저장하고
> l
을 쳐보자.. 그럼 바뀐 sql문이 보여질 것이다.

======================================================================================
스풀 사용
======================================================================================
오라클에서 스풀은 본인이 실행한 sql문의 결과를 저장해준다.
실행순서) 스풀사용 -> 파일 지정 -> sql문 실행 -> 스풀 종료

======================================================================================
Transaction
======================================================================================
트랜잭션의 시작
- DB에 처음 접속했을때
- 하나 또는 여러개의 DML문이 실행된 후 COMMIT, ROLLBACK문이 실행된 직후

트랜잭션의 종료
- COMMIT, ROLLBACK이 실행될때
- DDL문 or DCL문이 실행될 때
- 정상적으로 DB를 종료할때
- 비정상적으로 DB를 종료할때

===================================================================================

객체지향 방법론 - CBD (Component Based Development) - MDD(Model Driven Development) or SOA (Service Oriented Architect) etc...

근간은 객체지향 방법론이 되고 있다.
각 벤더사들이 마케팅적인 요소를 포함하여 이름을 짓고 있는것

use case : actor에게 의미있는 결과를 줄 수 있는 작업의 단위
actor : 사람, 외부 시스템

=================================================================================
[실습과정]
Use Case Model 생성
- Actors - 고객 / 관리자 생성
- Use Case - 주문 / 출납 등 생성
                 - 주문 (주식주문 / 채권주문) / 출납 (전체출납 / 부분출납)
                   ==> Use Case하나별로 use case명세서 작성 or Activity Diagram작성

분석 Model 생성
 - Profile적용 -> 패키지 구성
 - 업무 Layer - 주문 ( 주식주문 / 채권주문 ) / 출납 (전체출납 / 부분출납)
                          -> 각각 Boundary, Control, Entity Class작성
 -> Sequence Diagram 작성 - Use Case Model에서 고객 Actor를 갖다 놓고, 위에서 만든 각각의 클래스를 갖다 놓는다. 그리고 메세지 작성

==> 위의 일련의 작업은 왜 하는 것일까?
궁극적으로는 Code Generation을 하기 위해서 이다.
Sequence Diagram을 작성하는 이유는 만들었던 클래스가 실제로 사용이 되는지 , 어떻게 사용이 되는지 확인하기 위한것이라고 보면 된다.

   

===================================================================================