큐로보(Qrobo)로부터의 선물 일상

몇일전 오래전에 올려놓은 포스팅에 댓글이 달렸습니다.
해당 포스팅은 Qrobo.com 이라는 검색엔진에 대한 내용을 약간 언급했던 소개글이였는데요.
저도 그당시 우연히 발견한 흥미로운 검색엔진이였기때문에 포스팅을 한 것으로 기억함니다.

시멘틱 웹기술로 Qrobo.com을 개발한 시멘틱스로부터의 메시지였는데요.
메시지의 내용은 이러했습니다.

안녕하세요?
세계를 감동시키는 검색 Qrobo.com의 ㈜시맨틱스입니다.

금번에 우리회사에서는 미MIT프레스와의 독점 계약 하에 두 번째 기술번역서인
<시맨틱웹 프라이머(second edition)> 를 출간하게 되었습니다.

이에 기쁜 마음으로 시맨틱 웹에 대해 관심 가진 분들을 선정하여
<시맨틱웹 프라이머(second edition)> 한 권씩을 출간기념선물로 드립니다.

... 중략 ...

계속해서 저희 Qrobo.com에 많은 관심과 응원을 보내주시기 바랍니다.
감사합니다.

㈜ 시맨틱스



우와! 신간도서를 무료로 주신다니...
요청메일을 드렸고, 오늘 기다리던 책이 도착했습니다 ^^


[A Semantic Web Primer - 시멘틱 웹 프라이머]

그리고리스 안토니우 | 프랭크 반 하멜렌 (지은이) | 윤여름 (옮긴이) | 시맨틱스 | 2009-10-01
양장본 | 265쪽 | 235*205mm | ISBN(13) : 9788996320104



오늘받은 책이라, 아직 읽어보진 못했습니다.
블로그를 빌어서 소중한 책 선뜻 보내주신, (주)시멘틱스 관계자분들께 감사드린다는 인사 드리고 싶습니다.
잘 읽어보도록 하겠습니다.


[oracleclub] 테이블의 생성 Oracle

 이번 강좌는 오라클 테이블해 대해서 설명을 하겠습니다.

 테이블은 실제로 데이터들이 저장되는 곳 이라고 생각하면 쉽게 이해 할 수 있습니다.
 CREATE TABLE명령어를 이용해서 테이블을 생성 할 수 있습니다.

 아래의 내용은 테이블에 대한 보충 설명입니다.

=================================================================================
테이블 이란?

1. 테이블은 오라클 데이타베이스의
기본적인 데이타 저장 단위입니다.


2. 데이타베이스 테이블은 사용자가 접근 가능한 모든 데이타를 보유하며레코드와 컬럼으로 구성 됩니다.
  
 관계형 데이타베이스가 아닌 예전의 데이타 베이스 용어에서는 파일과 테이블이, 필드와 컬럼이,
   그리고 레코드와 행이 동일시 되었습니다.

3. 테이블은 시스템내에서 독립적으로 사용되길 원하는 엔티티를 표현할수 있습니다.   
    예를 들면, 회사에서의 고용자나 제품에 대한 주문은 테이블로 표현 가능합니다.

4. 테이블은 두 엔티티간의 관계를 표현할 수 있습니다.
   즉 테이블은 고용자와 그들의 작업 숙련도 혹은 제품과 주문과의 관계를 표현하는데  사용될 수
   있습니다.

   
테이블내에 있는 외래 키 (ForeIgn Key)는  두 엔티티 사이의 관계를 표현하는데 사용됩니다.

5. 비록 "테이블" 이라는 말이 더 많이 사용되지만 테이블의 형식어는 "릴레이션" 입니다.

컬  럼

  - 
테이블의 각 컬럼은 엔티티의 한 속성을 표현한다

행(ROW, 레코드)

  -
테이블의 데이타는 행에 저장됩니다 
=================================================================================

※ 테이블 생성시 제한사항과 고려할점

  - 테이블 이름과 컬럼은 항상 알파벳 문자로 시작해야 하며 A~Z까지의 문자, 0~9까지의 숫자,    
     그리고 $,#,_(Under Bar)를 사용할 수 있습니다. (★공백 사용 불가능)

  - 테이블의 컬럼 이름은 30자를 초과할수 없고, 예약어를 사용할수 없읍니다.

  - 오라클 테이블 한 계정안에서 테이블 이름은 다른 테이블 이름과 달리 유사해야 합니다.

  - 한 테이블 안에서 컬럼이름은 같을수 없으며 다른 테이블에서의 컬럼이름과는 같을수  있습니다. 




Syntex

===============================================================================================
- schema :  테이블의 소유자
- table_name :  테이블 이름
- column : 컬럼의 이름
- datatype : 컬럼의 데이터 유형
- TABLESPACE:  테이블이 데이터를 저장 할 테이블스페이스를 지정 합니다.

- PCTFREE : 블럭내에 이미 존재하고 있는 Row에 Update가 가능하도록 예약시켜 놓는 블럭의 퍼센트 값을 지정 합니다.
- PCTUSED : 테이블 데이터가 저장될 블록의 행 데이터 부분의 크기를 퍼센트지로 지정 합니다.

  PCTFREE에 의해 지정된 크기만큼 Block이 차면 PCTUSED 값보다 작아져야 새로운 행 삽입이 가능  합니다.
 
- INITRANS : 하나의 데이터 블록에 지정될 초기 트랜잭션의 값을 지정합니다. (기본값은 1)
- MAXTRANS : 하나의 데이터 블록에 지정될 수 있는 트랜잭션 최대 수를 지정 합니다. (기본값은 255)
 
- STORAGE : 익스텐트 스토리지에 대한 값을 지정 합니다.
 
- LOGGING : 테이블에 대해 이후의 모든 작업이 리두 로그 파일 내에 기록 되도록 지정합니다. (default)
- NOLOGGING : 로그 파일에 테이블의 생성과 특정 유형의 데이터 로드를  기록하지 않도록 지정 합니다.
 
- CACHE : 전체 테이블 스캔(full table scan)이 수행될 때 읽어 들인 블록이 버퍼 캐쉬 내의 
                LRU 리스트의 가장 최근에 사용된 것의 자리에 위치 하도록 지정 합니다.
- NOCACHE : 전체 테이블 스캔(full table scan)이 수행될때 읽어 들인 블록이 버퍼 캐쉬 내의
                     LRU 리스트의 가장 최근에 사용 되지 않은 것의 자리에 위치하도록 지정 합니다.
 

 *  PCTFREE, PCTUSED에 대한 자세한 강좌는
    오라클 어드민 강좌의 6. Storage Structure => PCTFREE와 PCTUSED를 참고해 주세요

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



테이블의 생성 예제
===============================================================================================
emp2와 dept2 테이블을 생성하는 예제입니다.

SQL>CREATE TABLE EMP2(
        EMPNO      NUMBER    CONSTRAINT   emp_pk_empno   PRIMARY KEY,    
     -  (컬럼)         (데이터타입)                            (제약조건)
        ENAME        VARCHAR2(20),
        JOB             VARCHAR2(40),
        MGR             NUMBER,
        HIREDATE     DATE,
        SAL              NUMBER,
        COMM          NUMBER,
        DEPTNO       NUMBER)
        PCTFREE 20
        PCTUSED 50 ;

테이블이 생성되었습니다.


SQL>CREATE TABLE DEPT2(
        DEPTNO   NUMBER CONSTRAINT dept_pk_deptno PRIMARY KEY,
        DNAME      VARCHAR2(40),
        LOC          VARCHAR2(50)) ;

테이블이 생성되었습니다.

 

◈ 테이블 생성시 주의사항

 - 테이블 이름을 지정하고 각 컬럼들은 괄호 "()" 로 묶어 지정합니다.

 - 컬럼뒤에 데이터 타입은 꼭 지정되어야 합니다.

 - 각 컬럼들은 콤마","로 구분되고, 항상 끝은 세미콜론";" 으로 끝납니다.

 - 한 테이블 안에서 컬럼이름은 같을수 없으며 다른 테이블에서의 컬럼이름과는 같을 수 있습니다.

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


유저가 소유한 모든 테이블 보기

=================================================================================
USER_TABLES
데이터사전을 조회 하면 유저가 소유한 테이블을 확인 할 수 있습니다.

-- SQL*Plus에서 실행해 보세요..

SQL>SELECT table_name FROM  USER_TABLES;

TABLE_NAME
------------
BONUS
CRETABLE
DEPT
DUMMY
EMP
EMP2
SALGRADE

위와 같이 테이블 목록이 조회 됩니다.
=================================================================================

================================================
    * 데이터베이스 정보공유 커뮤니티 oracleclub.com
    * 강좌 작성자 : 김정식 (oramaster _at_ naver.com)
  ================================================
※ oracleclub 강좌를 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
※ oracleclub 강좌는 개인의 학습용으로만 사용 할 수 있습니다. 학원 홍보용이나 수익을 얻기 위한 용도로
    사용을 하시면 안됩니다. ^^


오라클이 Localhost 인식하지 못한다면... Oracle

노트북으로 이동을 하면서 작업을 하다가 로컬호스트를 찾지 못하는 경우가 생긴다면
아래의 파일을 수정하여 사용하는것을 권장한다.

======================================================================================
C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN  ==> listner.ora

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

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = XE)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
      (SID_NAME = XE)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

==========================================================================================
C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN  ==> tnsnames.ora
==========================================================================================

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )


1 2 3 4 5 6 7 8 9 10 다음