Oracle 소개, Entity->Table설계, Optimizer (3)


o Oracle?
 -소프트웨어 회사겸 컨설팅 회사이다.
 -관계형 데이터베이스 시스템이다.
 -각 버전별로 다른 기능을 제공한다.

o Oracle 종류?
-SE(Standard Edition)과 EE(Enterprise Edition)는 다르다.
-기업용이 기업 환경에 맞게 필요한 기능을 제공한다.
-Personal Oracle은 Desktop용 Oracle 데이터베이스다.
-Personal Oracle이 Desktop 용이긴 하지만 서버 환경도 구축할 수는 있다.


o테이블 (2차원 구조)

데이터 모델링 단계에서 Entity를 만들었다 가정하자.





oPrimary Key, Foreign Key

Foreign key 로 잡아놓으면 없는 부서번호를 추가하거나, 있는 부서번호를 삭제할려고 할때 에러가 난다. 그걸 방지하고자 Foreign Key로 잡아놓자.

하지만 Ondelete를 쓴다면 같이 삭제가 가능하다.
사원 테이블의 부서번호가 Foreign Key가 되며, 부서테이블의 Primary Key를 참조한다.
부모 테이블에 없는 값이 자식 테이블에 입력될 수 없다.
자식 테이블이 참조 하고 있는 값은 부모 테이블에서 삭제할 수 없다.







주소는 varchar2가 적합하다.
우편번호같이 일정한 데이터라면 char이 적합하다.

멀티바이트 = 유니코드



o데이터베이스를 웹과 연동하는 방법은 여러가지가 있다.

SQl은 비절차적 언어이다. 로직과 루프를 쓸 수 없다.
그래서 오라클에서는 PL-SQL을 사용할 수있게 한다. (Procedural)
트리거, 패키지 바디, 절차적인 처리할때 PL-SQL쓸 수 있다.

Embedded SQL을 쓴다면 개발자가 편한다. 코드 내에 바로 SQL문장을 직접 작성 가능하다.
순수 Cobol은 안되지만, Pro*Cobol은 Embedded SQL을 사용할 수 있도록 지원한다.



oOptimizer
CHOOSE  = 현재 데이터 딕셔너리에  통계정보가 있다면 Cost-Based 없으면 Rule-Based
FIRST_ROWS = 하나의 롤을 리턴하는데 걸리는 시간을 최소화 하는것을 목표
ALL_ROWS = 전체 결과를 리턴하는데 걸리는 시간을 최소화 하는것을 목표

































0 comments:

Post a Comment