2011년 7월 12일 화요일

[Oracle.8]DML (Data Manipulation Language) - Data Dictionary

DML ( Data Manipulation Language )
테이블의 데이터는 조회 및 추가, 수정, 삭제할 수 있어야 한다. DML은 이와 관련된 명령어를 부르는 용어로 데이터 조작 명령을 통해 테이블 내 데이터를 추가, 수정, 삭제 할 수 있다.
3. Data Dictionary
Data Dictionary라는 사전은 Oracle Database 내 저장된 모든 객체의 정보를 제공 한다. SELECT라는 명령문을 통해 테이블에 저장된 데이터를 볼 수 있다.
Data Dictionary는 데이터베이스 생성 시에 만들어 지며, 크게 3가지로 분류 한다.
1) 접두사 ‘USER_’를 갖는 사전 ( User’s View )
현재 데이터베이스에 접속한 사용자가 소유한 객체의 정보를 제공한다. 즉 사용자가 만든 모든 객체의 정보가 USER_로 시작하는 테이블에 저장되어 있다고 생각하면 된다.
SQL > CONN hr
         SELECT table_name
            FROM user_tables;
2) 접두사 ‘ALL_’을 갖는 사전 ( Expanded User’s View )
사용자가 접근 가능한 모든 스키마의 정보를 제공한다. 다른 사람으로부터 특정 객체에 접근할 수 있는 권한을 부여 받았을 때 이런 객체 정보를 ALL_로 시작하는 테이블에서 제공한다.
권한 부여
SQL > CONN scott
      GRANT SELECT ON salgrade TO hr;
조회
SQL > CONN hr
      SELECT table_name
      FROM all_tables
      WHERE table_name = ‘SALGRADE’;
3) 접두사 ‘DBA_’를 갖는 사전 ( Database Administrator’s View )
DBA_ DBA 권한을 가진 데이터베이스 관리자만이 접근 가능한 테이블이다. 데이터베이스 관리를 위한 정보를 얻을 수 있다.
SQL > CONN system
      SELECT username
      FROM dba_users;
4) 데이터 사전에서 제공하는 내용
- 데이터베이스의 모든 스키마 오브젝트 ( 테이블, View, 시퀀스 등 ) 의 정의
- 스키마 오브젝트에 의해 현재 사용된 공간
- 칼럼들의 기본값
- 제약 조건 정보
- Oracle 사용자 이름
- 각 사용자에게 부여된 권한과 룰
- Auditing 정보
USER_OBJECTS
현재 사용자가 소유하고 있는 모든 객체들의 정보를 보여줍니다.
USER_SOURCE
사용자가 작성한 저장 프로시저의 Text Source 정보를 보여줍니다.
DBA_USERS
모든 사용자의 정보를 보여줍니다.
USER_TABLES
사용자가 소유하고 있는 모든 테이블에 대한 정보를 보여줍니다.
USER_CONSTRAINTS
사용자가 소유한 스키마 내 테이블의 제약 조건에 대한 정보를 보여줍니다.
USER_CONS_COLUMNS
사용자 소유의 테이블 내 어떤 칼럼에 제약 조건이 설정되어 있는지를 보여줍니다.
USER_INDEXES
사용자가 소유한 인덱스의 정보를 보여줍니다.
USER_IND_COLUMNS
사용자 소유의 테이블 내 어떤 칼럼에 인덱스가 설정되어 있는지 보여줍니다.
USER_VIEWS
사용자 소유의 View 정보를 보여줍니다.

*** 참조 문헌 : 10g로 시작하는 오라클 SQL & PL/SQL - 5장 데이터조작의 장애를 제거하라

2011년 7월 7일 목요일

[Oracle.7]DML (Data Manipulation Language) - Constraints

DML ( Data Manipulation Language )
테이블의 데이터는 조회 및 추가, 수정, 삭제할 수 있어야 한다. DML은 이와 관련된 명령어를 부르는 용어로 데이터 조작 명령을 통해 테이블 내 데이터를 추가, 수정, 삭제 할 수 있다.
2. Constraints
Constraints란 말 그래도 테이블에 추가, 변경, 삭제되는 데이터를 제약하고자 하는 것이다.
데이터의 Integrity를 유지하기 위해 사용되며, Integrity란 데이터의 결함이 없는 것을 말한다.예를 들어 사원번호라 함은 값이 꼭 할당 되어야 하며, 중복되지 않아야 데이터의 결함이 발생하지 않게된다. Oracle은 이러한 제약을 KEY가 가지는 요건을 만족하는 데이터만을 칼럼에 저장하며, 그 외 값을 받아들이지 않는다. 그러면 이러한 KEY에 대해 살펴 보자.
1) NOT NULL
NOT NULL NULL을 허용하지 않으므로 반드시 입력되어야 한다. NOT NULL로 제약조건을 설정하면 데이터베이스에서는 해당 칼럼에 NULL 값이 추가되거나 NULL 값으로 변경되면 에러를 발생시킨다.
2) UNIQUE
UNIQUE 제약 조건은 칼럼에 중복된 값을 허용하지 않는다. 즉 유일한 하나의 값만 저장될 수 있다.
3) PRIMARY KEY
위의 두 가지 사항 ( NOT NULL UNIQUE ) 을 모두 만족해야 하는 것이 PRIMARY KEY이다. PRIMARY KEY는 주로 사원 테이블의 사원번호나 부서 테이블의 부서번호와 같이 유일하게 행을 식별하는 식별 자로서 역할을 하는 칼럼에 적용이 된다.
4) FOREIGN KEY
FOREIGN KEY는 의미에서 보듯 외국, 외래의 의미가 담겨 있다. 예를 들어 새로 들어온 사원을 입력할 때 부서번호는 현존 부서의 번호 이여야 한다. 즉 현존하는 부서번호가 아닌 값을 입력 받는다면 그 사람은 현재 존재하지 않는 부서에 속해있는 사람이 되어 데이터에 결함을 가지게 된다. 이를 방지하기 위해 사원 테이블의 부서번호 칼럼에 FOREIGN KEY를 설정하면 값이 입력,변경 될 때 부서 테이블의 주 식별자인 부서번호를 참고하여 부서번호가 존재할 때 사원 테이블 부서번호 칼럼에 값을 받아들일 수 있도록 해 준다.
삭제를 진행할 때에도 부서가 먼저 삭제되면 사원은 부서가 없어지게 되어 데이터의 결함이 발생하므로 FOREIGN KEY로 연결된 사원 데이터 먼저 삭제하고 부서를 삭제해야 한다.
5) CHECK
CHECK 제약조건은 입력되는 값을 체크하여 설정된 값 이외의 값은 받아들이지 않도록 한다. 예를 들어 SALARY > 0 조건을 설정하면 SALARY가 음수인 경우 받아 들이지 않는다.
제약조건
표기
설명
UNIQUE
UK
중복된 값을 허용하지 않습니다.
NOT NULL
NN
NULL 값을 허용하지 않습니다.
PRIMARY KEY
PK
UNIQUE NOT NULL의 조건을 만족하는 값을 허용합니다.
FOREIGN KEY
FK
참조하는 테이블의 칼럼의 값이 존재하면 값을 허용합니다.
CHECK
CK
제약조건을 설정할 때 설정한 값만을 받아들입니다.
6) MERGE
MERGE란 하나 혹은 그 이상의 테이블에 대한 INSERT, UPDATE 작업을 위해 하나 혹은 그 이상의 소스로부터 질의할 때 사용하는 명령어 이다. 이 명령어는 여러 개의 동작을 조합하여 실행할 때 유용하며, 여러 번의 INSERT, UPDATE, DELETE 작업을 피할 수 있는 방법이 된다.
MERGE INTO 테이블이름
USING SELECT 구문
ON 조건
WHEN MATCHED THEN
       UPDATE 구문
       [DELETE 구문]
WHEN NOT MATCHED THEN
       INSERT 구문
[WHERE ];
SQL > MERGE INTO bonuses b
      USING (SELECT employee_id, salary, department_id FROM employees ) e
      ON ( e.employee_id = b.employee_id )
   
      WHEN MATCHED THEN
            UPDATE SET bonus = bonus + salary * 0.1
            DELETE WHERE salary > 8000
      WHEN NOT MATCHED THEN
            INSERT VALUES ( e.employee_id, salary * 0.1 )
            WHERE salary <= 8000;
7) LOCK
DML 작업을 수행하기 위해서 테이블에 질의를 수행하고 데이터를 조작한다. 이때 테이블에 발생하는 Transaction은 먼저 수행한 세션에서 Transaction을 종료하지 않으면 그 이후 같은 행에 대해 이루어지는 Transaction에 대해 LOCK이 발생한다.
이러한 LOCK은 동시에 여러 사용자가 접속해서 사용하는 데이터베이스 환경에서는 제공되어야 하나 Waiting으로 인한 처리 속도의 저하가 문제가 될 수 있다. 따라서 긴 Transaction은 사용자의 사용이 적은 시간대를 선택하여 작업하며, 가능한 한 짧게 Transaction을 수행하는 것이Waiting을 최소화할 수 있는 방법이 될 수 있다. 

*** 참조 문헌 : 10g로 시작하는 오라클 SQL & PL/SQL - 5장 데이터조작의 장애를 제거하라

2011년 7월 6일 수요일

[네트워크일반]Switch 의 종류 및 기능

Switch 의 종류 및 기능
Network에서 L2, L3, L4… Switch를 구별하는 것은 OSI 7Layer중 어느 Layer에서 수행되는가에 따라 결정된다.
 
따라서, OSI 7Layer를 먼저 간단히 살펴 보고, Switch에 대해 살펴 보겠다.
 
1.OSI 7Layer
1) Layer 1 (Physical Layer)
- 데이터의 정보를 전기적인 Volt로 변환하여 매개체를 통해 상대방의 수신 장치로 전송
- 장비: Hub, Repeater, Transceiver  


2) Layer 2 (Datalink Layer)
- 모든 네트워크의 연결 지원
- 장비: Ethernet, ATM, X.25 
- PDU: Frame (상위계층으로 받은 데이터를 해당 단위로 나눔)


3) Layer 3 (Network Layer)
- IP주소, 즉 논리적 주소를 가지고 발신지로부터 최종 목적지까지 경로 결정
- 장비: Router, L3 switch
- PDU: Packet (상위계층으로 받은 데이터를 해당 단위로 나눔)
- 프로토콜: IP, ARP, ICMP, IGMP


4) Layer 4 (Transport Layer)
- 데이터 전송
- 장비: L4 switch
- PDU: Segment (상위계층으로 받은 데이터를 해당 단위로 나눔)
- 프로토콜: TCP, UDP


5) Layer 5 (Session Layer)
- Session 확립.  App. 간의 연결 유지 및 데이터 전송 제어


6) Layer 6 (Presentation Layer)
- 네트워크 자원을 호출하여 응용프로그램 영역인 Appliaction 계층으로 전달 (API)
- Application 계층으로부터 받은 데이터를 컴퓨터가 이해가능한 format으로 변환


7) Layer 7 (Application Layer)
- End-User가 네트워크 자원을 효율적으로 사용할 수 있도록 제공해주는 인터페이스 계층
- 프로토콜: HTTP, FTP, SMTP, DNS, RIP, SNMP
 
2. Switch
1) Switching 기능
- L1 -> Flooding
- L2 -> Switching
- L3 -> Routing
- L4 -> port number 이용 트래픽분산처리 (Load balancing)
- L7 (cisco 6500이상 장비) -> S/W 를 장치에 올려서 Traffic filter , Security, VPN 를 할수 있다.
- L5, L6 ? TCP/IP 기반이기때문에 L7 L5~6 기능을 모두 포함하고 있다.
 
2) Switch 장비는 스위칭 방식에 따라 크게 3 종류로 나눌 수 있다.
2-1) Address 를 인식하여 해당 장비로 Packet 전송
- L2 Switch: MAC Address
- L3 Switch: IP Address
 
2-2) Port에 따라 해당 장비로 Packet 전송
- L4 Switch: TCP, UDP 포트(HTTP, FTP, Telnet etc.) 를 분석하여 packet을 처리함.
 
2-3) Packet의 내용을 읽고 해당 장비로 Packet 전송
- L5 Switch
- L6 Switch
- L7 Switch: 트래픽 내용(e-mail제목/문자열, HTTP URL, 쿠키 정보 
etc.) 패턴을 분석하여 packet을 처리함.
 
▶ 과거에는 통상적으로 패킷의 MAC Address IP Address를 이용하여 패킷을 전달하는 역할을 수행하는 L2/L3제품이 주류를 이루었다. 그 이후 급속히 증가하고 있는 인터넷 트래픽을 효율적으로 처리하기 위하여 트래픽을 분산하고 지능적인 트래픽 관리 기능을 제공하는 L4스위치가 등장하였다. L4스위치는 서버 및 네트워크 장비의 가용성과 확장성을 높이기 위한 수단으로 각광받고 있다.

3) SAN (Storage Area Network) Switch
SAN은 스토리지 시스템을 연결해 별도의 네트워크를 구성하는 방식이다. 다시 말해 전용 LAN을 별도로 구성한다고 볼 수 있다. LAN Local Area Network의 약자인 점에 주목한다면 SAN역시 스토리지 시스템끼리 연결해 놓은 자체 네트워크 라는 점을 이해할 수 있다. 다시 말해 별도의 데이터 전달 통로를 통해 스토리지시스템에 액세스 하기 때문에 일반 네트워크 소통량에 영향을 받지 않고 신속한 데이터 액세스가 가능하다. 이 방식은 이기종 플랫폼에 대해 중앙 집중식 스토리지 풀 공유가 가능하고 하드웨어 프로토콜을 이용해 높은 성능을 제공하며 스토리지 트래픽 처리를 위한 별도의 전용 네트워크가 갖추어져 있을 뿐 아니라 여러 대의 서버와 스토리지 어레이를 연동하기 쉽다는 점에서 확장성이 높고 투자 회수 효가가 높다는 장점이 있다.이때 시스템과 스토리지 사이에 연결 역할을 해주는 것이 SAN Switch 이다.
 
참고 : 네이버블로그 http://blog.naver.com/ljssemam/70014989243

언제 부터 였던가 생각해보니 아르바이트 겸 외부 컨설팅을 의뢰 받고 맥북 프로를 처음 써봤을 때 부터 였던 것 같다. 지금은 거의 대부분의 작업을 맥으로 작업을 하다 보니 윈도우에서만 실행되는 일부 프로그램들 때문과 회사 내부 ERP프로그램이 윈도우 ...