ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 000. Oracle 설치 및 삭제 // 데이터베이스에 대한 이해 : 데이터, 정보, 데이터베이스(+관리)
    SsY/Class 2023. 3. 25. 00:12
    728x90

    2023.03.20-21 (월,화)
    - *Oracle의 일부분만_개발자로서 필요한 부분만 배운다.

    Oracle 설치 및 제거
    • http://www.oracle.com』→ 페이지 접근 & 회원가입 & 로그인 & 다운로드 가능
      -- Oracle 21c → 최신 버전
      -- Oracle 11g → 설치 (교육 중 사용할 버전)

    • Oracle 설치
    ※ eXpress Edition (xe)
    → 법적으로 완전 무료 버전이다.
        기업체나 교육기관 등에서 무료로 사용이 가능한 버전이며,
        프로그램 개발용으로는 충분하지만, 데이터베이스 서버용으로는 다소 부족한 기능을 가진 버전이라 할 수 있다.

    - 기본적으로 설치 과정은 까다롭지 않다. (11g Express Edition 기준)

    -- - 기본 설치 경로 : 『C:\oraclexe』
    -- - sys 계정 패스워드 설정 : 『설치시 설정한 패스워드』
    -- - port : 리스터 → 1521 / HTTP리스너 : → 8080

    ※ Standard Edition(SE), Standard Edition One(SEO), Data Ware House(DWH), Enterprise Edition(EE)
    → 다운로드는 가능하지만, 기업체나 교육기관 등에서 사용하게 되면
        사용 중 검열 시 정식 라이센스를 제시할 수 있어야 한다.
    → 프로그램 개발용 뿐 아니라, 데이터베이스 서버용으로도 -- 충분한 기능을 가지고 있는 버전들이다.
    • Oracle 10 ver 이후로는 비밀번호를 잊어버렸다고해서 깨고 사용할 수 없게 되었다고 한다.
      설치시에 설정한 비밀번호를 꼭 잘챙겨야 한다.
    •  참고 : 오라클 데이터베이스의 파일 위치
      오라클 관련 프로그램이 설치되는 경로와 관리되고 유지되는 데이터 파일의 위치는
      물리적으로 다른 경로를 선택하는 것을 권장한다.
      즉, 오라클 관련 프로그램이 C 드라이브에 설치된다고 가정할 때
      데이터베이스 파일의 위치는 D 드라이브로 설정하는 것이 바람직하다는 것이다. (물리적으로 하드를 2개 구성)
      (안정성과 성능 향상)
    더보기
    설치시에 뭔가 password 로 넘어가지 않고 Port를 입력하는 창이 뜰 때도 있는데, 이 포트의 경우 사용해도 된다고 하셨다..

    • Oracle 제거
    ※ Oracle 제거

    1. 제어판(윈도우+i) > 앱 및 기능(프로그램 및 기능) → Oracle 관련 항목 제거
    2. 실행창 호출(윈도우키 + r) > 『services.msc』→ 서비스 창 호출
    3. 서비스 항목의 리스트를 통해 확인하면 『Oracle』로 시작하는 서비스가 여러 개 확인된다.
        즉, Oracle Server 는 서비스를 기반으로 동작한다는 것이다.
        위에서 언급한 순서에 따라 오라클 프로그램을 제거했다 하더라도 운영체제(OS) 상에서
        오라클은 서비스를 기반으로 동작하기 때문에 이 오라클 서비스를 제거해 주어야 한다.

    ※ 오라클 서비스를 제거하는 방법

    ① 『윈도우키+r』키 입력(실행창 호출) → 『regedit』입력(레지스트리 편집기 호출)
    ② 『HKEY_LOCAL_MACHINE』 > 『SOFTWARE』 > 『Oracle』항목 삭제
    ③ 『HKEY_LOCAL_MACHINE』 > 『SYSTEM』 > 『CurrentControlSet』 >
        『Services』 → 『Oracle』로 시작하는 모든 항목 삭제
    ④ 『HKEY_LOCAL_MACHINE』 > 『SYSTEM』 > 『ControlSet001』 >
         『Services』 → 존재한다면... 『Oracle』로 시작하는 모든 항목 삭제
    ⑤ 『HKEY_LOCAL_MACHINE』 > 『SYSTEM』 > 『ControlSet002』 >
        『Services』 → 존재한다면... 『Oracle』로 시작하는 모든 항목 삭제
    ⑥ 『HKEY_LOCAL_MACHINE』 > 『SYSTEM』 > 『ControlSet003』 >
        『Services』 → 존재한다면... 『Oracle』로 시작하는 모든 항목 삭제
        (*ControlSet 1~3 까지 존재할 수 있음)

    ※ 변경된 레지스트리 정보가 적용되기 위해서는 반.드.시 재부팅을 해주어야한다.

    4. 재부팅 이후 탐색기에서 오라클 홈(오라홈)과 관련된 모든 내용을 물리적으로 삭제한다.
    5. 또한 데이터 파일 경로 및 설치 경로의 모든 디렉토리와 파일들을 물리적으로 삭제할 수 있도록 한다.

    --==>> 여기까지 모든 과정을 수행해야 ORACLE Server 는 깨끗하게 제거된다.

    Oracle 을 제거할 때, 해당 방법을 제대로 따라하지 않거나 순서를 건너뛰게 되는 경우에는
    1.윈도우 재설치를 해야하는 경우 발생
    2.새로 오라클 설치하려는데 설치가 안되는 경우 발생 (기존 오라클이 제대로 제거되지 않은 상태)


    Oracle 접속 및 구동 
    더보기
    -- 실행창 호출(윈도우+R) > cmd 입력 → 명령 프롬프트(콘솔창 호출)
    -- (명령 프롬프트 상태에서...)
    --○ 접속된 사용자 없이 단순히 SQL 프롬프트만 띄우도록 한 것
    C:\Users\SIST>sqlplus/nolog
                             --------   ------
                           (명령어)  (옵션)
    --==>>
    /*
    SQL*Plus: Release 11.2.0.2.0 Production on 화 3월 21 09:34:36 2023 Copyright (c) 1982, 2014, Oracle. All rights reserved. SQL>
    */
    ※ 『sqlplus』(→ sqlplus.exe)는 SQL(Structed Query Language)을 수행하기 위해
         ORACLE 에서 제공하는 도구(툴,유틸리티) 이다.
    • 디렉토리까지 찾아가지 않았는데 squlplus.exe  가 바로 불러와져서 실행된다.
      ※ 『C:\oraclexe\app\oracle\product\11.2.0\server\bin』 경로에 존재하는 『sqlplus.exe』
      이미 이 경로가 환경변수 path 에 등록되어 있으므로 해당 경로까지 물리적으로 찾아들어가지 않더라도
      『C:\squlplus』와 같은 형식으로 명령어 사용이 가능한 상태인 것이다.
    SQL> dir
    --==>> SP2-0042: unknown command "dir" - rest of line ignored.
    SQL> ipconfig
    --==>> SP2-0042: unknown command "ipconfig" - rest of line ignored.
    • 이제는 일반적인 도스 명령어(윈도우 명령어)를 수행할 수 없다.(수행할 수 있는 상태가 아니다)
    ○ 현재 접속된 사용자 계정을 조회하는 구문 // (조회 : 선택적으로 열람한다)
    SQL> show user
    --==>> USER is ""
    • 실제로는 명령프롬프트 기반으로 연결시에 첫번째 사진과 같이 계정명/패스워드 형태로 로그인하기 보다는
      두번째 사진과 같이 계정명까지만 입력하면 password 입력창이 뜨게 됨.
      이 때 패스워드에는 몇글자가 입력되는지 조차 보이지 않게 됨! (보안)
    (*이전에 실행했던 cmd 창 닫고 새로 열 것*)
    ○ 첫 번째 관리자 계정인 『sys』로 연결을 해본다. (*Oracle 의 모든 서비스를 이용할 수 있는 최고 관리자 계정) C:\Users\SIST>sqlplus sys/******* as sysdba  (***** 자리에 처음에 설정했던 관리자 비밀번호를입력)
                                                           -------------  // 여기서는 전체 권한을 가진 채로 접속하겠다는 말
    --==>>
    /*
    SQL*Plus: Release 11.2.0.2.0 Production on 화 3월 21 10:21:00 2023 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
    */

    롤 : 권한

    ○ 현재 접속된 사용자 계정 조회
    SQL> show user
    --==>> USER is "SYS"
    • 현재 sys 계정을 통해 오라클 최고 관리자 권한을 가진 상태에서 오라클 서버에 접속한 상태이다
    ○ 오라클 서버 인스턴스 상태 조회(사용가능한 상태인지 여부 확인)
    전원 on/off 여부 등 일반적으로 접속의 가능 여부를 확인할 때 사용하는 명령
    SQL> select status from v$instance;
    --==>>
    /*
    STATUS
    ------------------------
    OPEN
    */
    • 오라클 서버가 정상적으로 startup 되었음을 의미
    ○ 두 번째로... 일반사용자 계정인 『hr』로 연결을 시도

    SQL> connect hr/lion
    --==>
    /*
    ERROR:
    ORA-28000: the account is locked Warning:
    You are no longer connected to ORACLE.
    */
    • ※ 계정 연결시 : connect 계정명/패스워드 → conn 계정명/패스워드
      ※ 접속 종료시 : disconnect                       → disconn
    • 일반 사용자 계정인 『hr』은 잠겨있는 상태이므로 이 계정을 통해 오라클 서버 접속이 불가능한 상태
    ○ hr 계정의 잠금을 해제하기 위해 sys로 접속(연결)
    SQL> connect sys/(패스워드) as sysdba Connected.

    ○ 접속된 사용자 계정 확인
    SQL> show user USER is "SYS"

    ○ 오라클 사용자 계정들의 상태 조회(확인) → sys인 상태에서...
    SQL> set linesize 500                 // 입력받는 버퍼의 크기를 500으로 늘린것
    SQL> select username, account_status from dba_users;
              --------  ------------   -------------------  ------  --------------
        //    선택      A 컬럼             B 컬럼   어디서?  테이블 명 (a컬럼, b컬럼 정보를 끌어올 테이블)
        // dba_users테이블로부터 username항목과 account_status항목을 조회하고 싶어

    /*
    (사진참조)
    */

    ※ 내용 변경 : update 키워드 사용
       구조적 변경 : alter  키워드 사용

    ○ 계정 잠금 해제 → 현재 sys 로 연결된 상태...
    SQL> alter user hr account unlock;
    --==>> User altered.

    ○ 다시 오라클 사용자 계정들의 상태 조회(확인)
    SQL> select username, account_status from dba_users;
    • 다시 조회한 결과 hr 계정의 상태는 EXPIRED 이며,
      잠금은 해제한 상황이지만 패스워드에 대한 유효기간이 만료된 상황이므로 이를 재설정 해야한다.
    ○ 계정 정보 변경(패스워드 설정 변경) → 현재 sys 로 연결된 상태...
    SQL> alter user hr identified by lion;
    --==>> User altered.

    --샘플계정 / 샘플 스키마 (이)라고 생각하면 됨--
    ※ hr / lion
       scott / tiger
      (계정명/패스워드 중 이 두가지는 암묵적인 룰이 존재 (그러나 지켜지지 않는 경우도 많음))

    ○ 다시 오라클 사용자 계정들의 상태 조회(확인)
    SQL> select username, account_status from dba_users;
    ○ 다시 hr 계정으로 오라클 접속 시도
    SQL> connect hr/lion
    --==>>Connected.

    ○ 접속된 사용자 계정 확인
    SQL> show user
    --==>>USER is "HR"

    ○ 현재 오라클 서버의 사용자 계정 상태에 대한 정보 조회
    SQL> select username, account_status from dba_users;
    /*
    select username, account_status from dba_users
                                                                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    */
    • 『hr』이라는 일반 사용자 계정을 통해서는 『dba_users』에 대한 조회가 불가능한 상황임을 확인.
    ※ host 명령어
     도스 명령 체계로 전환하거나 라인 단위에서 도스 명령어 입력이 가능하도록 처리해준다
     예를 들면 host dir, host cls, host ipconfig 등... 유닉스 계열에서는 『host』명령어 뿐 아니라 『!』도 사용이 가능하다.   하지만, 윈도우 계열에서는 『host』명령어만 사용이 가능하다.
     host 상태에서 빠져나갈 경우는 『exit』명령을 입력한다.
    ※ Administrator(윈도우 관리자 계정)가 ORA_DBA 라는 그룹에 포함되어 있을 경우
    취약한 보안 정책으로 인해, 실무에서는 특별한 경우가 아니고서는 제외시키고 사용할 수 있는 환경을 구성해야 한다. 여기서, 취약한 보안정책이라 함은 오라클 서버에 연결하는 과정에서 계정명이나 패스워드에 대한 확인 없이 연결되는 과정을 말한다.
    --==>> 제거 이후 sys 의 계정 및 패스워드가 일치하지 않으면 오라클 서버에 접속할 수 없는 상태가 된다.
    ※ 권한 부여시          : grant 키워드 사용
       권한 박탈(회수)시 : revoke 키워드 사용

    ○ hr 사용자 계정에 sysdba 권한 부여하기 → sys 가...
    SQL> conn sys/********* as sysdba
    --==>> Connected.

    SQL> show user
    --==>> USER is "SYS"

    SQL> grant sysdba to hr;
    --==>>Grant succeeded.

    ○ 확인 → hr 계정으로 접속 → as sysdba로 연결
    SQL> conn hr/lion as sysdba
    --==>> Connected.

    ○ 접속한 사용자 계정 확인
    SQL> show user
    --==>> USER is "SYS"
    • sysdba 권한을 부여받기 이전까지는 불가능했던 현재 오라클 서버에 존재하는 사용자 계정의 상태 정보 조회 
      (sysdba 권한을 부여받은 hr 계정으로 접속한 상태로...)
    ○ hr 사용자 계정에 부여한 sysdba 권한 박탈 → sys가...
    SQL> conn sys/********** as sysdba
    --==>> Connected.

    SQL> show user
    --==>> USER is "SYS"

    SQL> revoke sysdba from hr;
    --==>> Revoke succeeded.

    ○ 권한 박탈 후 hr 계정을 통해 sysdba 권한으로 오라클에 접근시도
    SQL> conn hr/lion as sysdba
    --==>>
    /*
    ERROR: ORA-01031: insufficient privileges
    Warning: You are no longer connected to ORACLE.
    */
    --> 권한 불충분 에러
    ○ 일반 사용자 계정 hr 로 다시 연결
    SQL> conn hr/lion
    --==>> Connected.

    SQL> show user
    --==>> USER is "HR"
    ※ 오라클 서버를 구동하는 명령
    SQL> startup
    ※ 오라클 서버를 중지하는 명령
    SQL> shutdown [immediate]

    ※ 오라클 서버 구동/중지 하는 명령은
    『as sysdba』 또는 『as sysoper』로 연결했을 때만 가능하다.
      (관리자)                 (운영자)


    ○ 일반 사용자 계정 hr 로 오라클 서버 중지 명령 시도
    SQL> shutdown immediate
    --==>> ORA-01031: insufficient privileges (→권한 불충분 에러)
    --> 즉, 일반 사용자 계정으로는 오라클 서버를 중지시킬 수 없다.

    ○ sys로 연결하여 오라클 서버 중지명령 시도
    SQL> conn sys/************** as sysdba
    --==>> Connected.

    SQL> shutdown immediate
    --==>>
    /*
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    */
    ○ 오라클 서버 인스턴스 상태 조회
    SQL> select status from v$instance;
    --==>>
    /*
    select status from v$instance
    *
    ERROR at line 1:
    ORA-01034: ORACLE not available
    Process ID: 10156 Session ID: 33
    Serial number: 325
    */

    ○ 일반 사용자 계정 hr 로 연결 시도
    SQL> conn hr/lion
    --==>>
    /*
    ERROR:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Process ID: 0
    Session ID: 0 Serial number: 0
    Warning: You are no longer connected to ORACLE.
    */
    (오라클은 자체적으로 shutdown 이 되는 경우도 있기 때문에,
     위와 같은 에러가 뜬다면 인스턴스상태 확인해 봐야함
      -> services 들어가서 oracle 관련 2항목 xe와 listner 이 사용 중지되어있지 않은지 확인)

    ○ 오라클 서버 구동 → sys 가....
    SQL> conn sys/********** as sysdba
    --==>> Connected to an idle instance. (→ 쉬고있는 인스턴스에 접속되었다.)

    SQL> startup
    --==>>
    /*
    (사진 참조)
    */
    ○ hr 사용자 계정에 『sysoper』권한 부여하기 → sys 가...
    SQL> conn sys/************* as sysdba
    --==>> Connected.

    SQL> show user
    --==>>USER is "SYS"

    SQL> grant sysoper to hr;
    --==>> Grant succeeded.

    ○ 확인 → hr 계정으로 접속 → sysoper 권한으로...
    SQL> conn hr/lion as sysoper
    --==>> Connected.

    SQL> show user
    --==>> USER is "PUBLIC"
                              ------------- : 공공_ 일반사용자들을 지원하는 개념
    ○ sysoper 권한을 가진 hr 계정으로 오라클 서버 중지 명령 시도
    SQL> shutdown
    --==>>
    /*
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    */

    ○ sysoper 권한을 가진 hr 계정으로 오라클 서버 구동 명령 시도
    SQL> startup
    --==>>
    /*
    ORACLE instance started.
    Database mounted.
    Database opened.
    */

    ○ sysoper 권한을 가진 hr 계정으로 오라클 서버의 사용자 계정 정보 상태 조회
    SQL> select username, account_status from dba_users;
    --==>>
    /*
    select username, account_status from dba_users
                                                                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
    */
    • sysoper 권한으로는 조회 불가

    SQL Developer
    - 오라클보다 무거울때도 있고, 그냥 무겁다. 그래서 구리다.
    - 하지만 무료다. (사용이유)
    • 접속하기
    더보기

     

    ORACLE 설치 후 접속할 데이터 베이스를 만들어 해당 데이터 베이스를 더블 클릭하면 오라클에 접속 된 후에 콘센트가 꽂힌 듯한 모양으로 나타나게 된다. 저게 안보이면 접속이 안된 것이니 주의하자!

    • 접속한 계정 조회
    --○ 현재 오라클 서버에 접속한 자신의 계정 조회
    show user
    --==>> USER이(가) "SYS"입니다.
    -- SQLPLUS 상태일 때 사용하는 명령어
    
    SELECT USER
    FROM DUAL;
    --==>> SYS
    -- FROM 이 없으면 오라클에서는 문제가 생김 // DAUL 이라는 있는 더미를 사용한 것 뿐 19~2 참조

    • 주석문 처리
    -- 단일 행 주석문
    
    /*
    여러줄
    (다중행)
    주석문
    처리
    */

    • 쿼리문에서 특정한  테이블을 요구 하지 않을 때 
      - FROM DUAL
    SELECT 1+2
    FROM DUAL;
    --==>> 3
    
    SELECT 1 + 2
    FROM DUAL;
    --==>> 3
    
    SELECT 1             +          2
    FROM DUAL;
    --==>> 3
    
    SELECT 1+2 FROM DUAL;
    --==>> 3
    
    --SELECT1+2FORMDUAL;
    --==>> 에러 발생
    
    select 1+2 from dual;
    --==>> 3

    • 문자열 입력
      - 홑따옴표 '  '
    SELECT '쌍용강북교육센터'
    FROM DUAL;
    --==>> 쌍용강북교육센터            -- // 문자열 처리 오라클에서는 '' 작은따옴표로 구성 한다.
    
    SELECT "쌍용강북교육센터"
    FROM DUAL;
    --==>> 에러발생
    /*
    ORA-00972: identifier is too long
    00972. 00000 -  "identifier is too long"
    *Cause:    An identifier with more than 128 bytes was specified,
               or a password identifier longer than 30 bytes was specified.
    *Action:   Specify at most 128 bytes for identifiers,
               and at most 30 bytes for password identifiers.
    50행, 8열에서 오류 발생
    */

    • 사칙연산 수행
      - 『+』『-』『*』『/』
      - 자바와는 다르게 『/』 가 몫과 나머지를 다 보여준다.
    SELECT 3.14 + 2.36
    FROM DUAL;
    --==>> 5.5
    
    SELECT 1.2345 + 2.3456
    FROM DUAL;
    --==>> 3.5801
    
    SELECT 10 * 5
    FROM DUAL;
    --==>> 50
    
    SELECT 1000/23
    FROM DUAL;
    --==>> 43.47826086956521739130434782608695652174         -- // 몫과 나머지 전부 보여줌
    
    SELECT 100-23
    FROM DUAL;
    --==>> 77
    
    SELECT 100 % 5
    FROM DUAL;
    --==>> 에러발생
    /*
    ORA-00911: invalid character
    00911. 00000 -  "invalid character"
    *Cause:    The identifier name started with an ASCII character other than a
               letter or a number. After the first character of the identifier
               name, ASCII characters are allowed including "$", "#" and "_".
               Identifiers enclosed in double quotation marks may contain any
               character other than a double quotation. Alternate quotation
               marks (q'#...#') cannot use spaces, tabs, or carriage returns as
               delimiters. For all other contexts, consult the SQL Language
               Reference Manual.
    *Action:   Check the Oracle identifier naming convention. If you are
               attempting to provide a password in the IDENTIFIED BY clause of
               a CREATE USER or ALTER USER statement, then it is recommended to
               always enclose the password in double quotation marks because
               characters other than the double quotation are then allowed.
    82행, 12열에서 오류 발생
    */

    • 문자열 결합
      - 『+』 로 되지 않는다.
      - 이후 수업에서 배운다. 지금은 + 로는 해결이 안되는 것만 인지하자.
    SELECT '문자열' + '문자열2'
    FROM DUAL;
    --==>> 에러발생
    /*
    ORA-01722: invalid number
    01722. 00000 -  "invalid number"
    *Cause:    The specified number was invalid.
    *Action:   Specify a valid number.
    */

    • 계정 상태 정보 조회
      - 계정 잠금 / 잠금 해제 변경하기 : 모든 권한을 가지고 있는 sys 에서 행하게 된다.
    --○ 오라클 서버에 존재하는 사용자 계정 상태 정보 조회
    SELECT USERNAME, ACCOUNT_STATUS
    FROM DBA_USERS;
    
    SELECT USERNAME, USER_ID, ACCOUNT_STATUS, PASSWORD, LOCK_DATE
    FROM DBA_USERS;
    
    SELECT TESTCOLUMN
    FORM DBA_USERS;
    --==>>
    /*
    ORA-00923: FROM keyword not found where expected
    00923. 00000 -  "FROM keyword not found where expected"
    *Cause:    
    *Action:
    159행, 6열에서 오류 발생
    */
    --> 없는 컬럼 조회시 오류남
    
    SELECT *
    FROM DBA_USERS;
    
    SELECT CREATED, PROFILE
    FROM DBA_USERS;
    
    --※ 『DBA_』로 시작하는 ORACLE DATA DICTIONARY VIEW 는
    --   오로지 관리자 권한으로 접속했을 경우에만 조회가 가능하다.
    --   아직은 데이터 딕셔너리 개념을 잡지 못해도 상관없다.
    
    --○ 『HR』사용자 계정을 잠금 상태로 설정
    ALTER USER HR ACCOUNT LOCK;
    --==>> User HR이(가) 변경되었습니다.
    
    --○ 사용자 계정 정보 조회
    SELECT USERNAME,ACCOUNT_STATUS
    FROM DBA_USERS;
    --==>>
    /*
            :
    HR  LOCKED
            :
    */
    
    --○ 『HR』사용자 계정을 잠금 해제 상태로 설정
    ALTER USER HR ACCOUNT UNLOCK;
    --==>> User HR이(가) 변경되었습니다.
    
    --○ 다시 사용자 계정 정보 조회
    SELECT USERNAME,ACCOUNT_STATUS
    FROM DBA_USERS;
    --==>>
    /*
          :
    HR  OPEN
          :
    */

    CREATE : 아무것도 없는 상태에서 구조자체를 추가할 때 사용
                         // 세그먼트의 경우는 대다수 CREATE 를 사용하게 됨
        INSERT : 이미 구조가 있는 상태에서 데이터를 추가할 때 사용
    • 테이블 스페이스 생성 과 주의점
      - 오라클은 실행시에 JAVA 컴파일처럼 덮어쓰기하는 것이 아닌 새로 생성되는 것이기 때문에 
        두번 실행시키면 두 개가 만들어져야 하므로 이름이 같으면 충돌하게 된다.(열에 아홉은)
        단, SELECT 구문은 데이터를 찾아 보여주기만 하기때문에 오류 발생하지 않는다
      - 테이블 스페이스 생성 전에 실제 경로에 디렉토리 만들어둘 것!
    --○ TABLESPACE 생성
    
    --※ TABLESPACE 란?
    -- 세그먼트를(테이블, 인덱스, ...) 담아두는(저장해두는) 
    -- 오라클의 논리적인 저장 구조(하드디스크)를 의미한다.             -- // 자바로 따지면 PAKAGE와 같은 논리적인 구조..?
    
    CREATE TABLESPACE TBS_EDUA              -- CREATE 유형 개체명    → 생성
    DATAFILE 'C:\TEST_ORA_DATA\TBS_EDUA01.DBF'  -- 물리적으로 연결되는 데이터 파일
    SIZE 4M                                 -- 물리적 데이터 파일의 용량 (M - 메가)
    EXTENT MANAGEMENT LOCAL                 -- 오라클 서버가 세그먼트들을 알아서 관리
    SEGMENT SPACE MANAGEMENT AUTO;          -- 세그먼트 공간 관리도 자동으로 오라클 서버가...
    --==>> TABLESPACE TBS_EDUA이(가) 생성되었습니다.
    
    --※ 테이블스페이스 생성 구문을 실행하기 전에
    --   물리적인 실제 경로에 디렉토리를 생성할 것.
    --   (C:\TEST_ORA_DATA)

    데이터베이스에 대한 이해
    - 데이터 / 정보
    - 데이터베이스 / 데이터베이스 관리 시스템 / 관계형 + 데이터베이스 관리 시스템
    • 데이터(Data)
    개인은 물론이고 기업이나 기관은 정보를 필요로한다. 이 정보의 기본 토대가 되는 것이 데이터이다.
    예를 들면, 회사는 사원,부서,급여 등에 대한 자료를 관리해야 하고 물품을 사고파는 회사일 경우 훨씬 더 많은 상품 및 거래에 대한 자료를 관리해야 하며, 도서관은 회원,도서,반납일 등의 자료를 관리해야 한다.
    이러한 자료를 『데이터』라고 한다. 
    ▶데이터란 현실 세계에서 관찰이나 측정을 통해 수집된 사실(Facts)이나 값(Value), 또는 그 값들의 집합을 말한다.
    • 정보(Information)
    정보란 데이터를 바탕으로 구체화 한 유효한 해석(Interpretation)이나 데이터 상호간의 관계(Relationship)를 의사 결정에 도움이 되도록 가공한 것이다.
    •  정보를 가공하기 위해서는 단일 데이터만으로 가공하는 것이 아닌 많은 데이터를 바탕으로 가공해 내기 때문에,
       이를 위해 다양한 데이터를 담아둘 곳이 필요하게 되었고 이로 인해 데이터 베이스가 생겨나게 되었다.

    • 데이터베이스(DataBase)
    데이터들을 담고 있는 것을 『데이터베이스』라고 한다.
    즉, 데이터베이스라 함은 지속적으로 유지·관리해야 할 데이터의 집합인 것이다.
    데이터베이스는 조직화된 자료의 집합이며, 데이터를 관리하려면 『데이터베이스 관리 시스템』이 필요하다.
    •  유지하고 관리하는 목적성의 형태를 띠는 것은 데이터 베이스가 아닌 데이터베이스 관리 시스템이라고 불러야한다.
    • 데이터베이스 관리 시스템(DataBase Management System(Software), DBMS)
     데이터베이스 관리 시스템은 연관성 있는 데이터들의 집합을 효율적으로 응용하기 위해 구성된 소프트웨어들의 집합이다. 즉, 데이터와 응용프로그램의 중간에서 프로그램이 요구하는대로 데이터를 정의하고, 읽고, 쓰고, 갱신하는 등 데이터를 조작하고 이들을 효율적으로 관리하는 프로그램들을 지칭한다.

     데이터베이스 관리 시스템은 사용자가 새로운 데이터베이스를 생성하고, 데이터베이스의 구조를 명시할 수 있게하고, 사용자가 데이터를 효율적으로 질의하고 수정할 수 있도록 한다. 시스템의 고장이나 권한이 없는 사용자로부터 데이터를 안전하게 보호하며, 동시에 여러 사용자가 데이터베이스에 접근하는 것을 제어하는 소프트웨어 패키지인 것이다.

     데이터베이스 관리 시스템은 사용자나 어플리케이션 프로그램들이 데이터를 공유할 수 있도록 하는 소프트웨어 패키지이다. 또한, 데이터베이스 내의 자료를 생성,변경,조회,저장할 수 있도록 하는 시스템적인 방법을 제공한다. 일반적으로는 데이터 일치, 접근,통제, 자동롤백, 복구를 담당한다.

    ▶ 데이터베이스 관리 시스템(DBMS)이란?
      모든 응용프로그램들이 데이터베이스를 공유할 수 있도록 관리해주고 데이터베이스를 유지하기 위한
    일련의 소프트웨어 시스템이다.
    -- 관계형 + 데이터베이스 관리 시스템(Realation + DataBase Management System(Software), RDBMS)
    • 데이터베이스 등장이전에는 파일시스템으로 모든 것을 관리함.
      ex) 온라인 게임 이전 혼자 설치해서 하는 게임 : 저장운영시스템의 경우 파일시스템과 관련되어있음
    더보기
    •  파일시스템에서 불편한 점 :  해당 프로그램의 파일은 해당 프로그램에서만 읽을 수 있다.
      A파일을 B프로그램에서 돌릴 방법은 없을까하고 고민하다가
      이를 해결하기위해 나온것이 
      데이터베이스 관리 시스템
     프로그램A - 파일A
     프로그램B - 파일B
    • RDBMS 와 양대 산맥 MS-SQL
      * ms 강점 : 호환성이 뛰어남 (보통 윈도우 사용- 운영체제를 만든 곳이 동일), 직관적으로 만든다(사용자에게 친절한 인터페이스)
     * 역사와 전통을  어쩌구하는 부분 + 보안은 오라클이 더 뛰어나다

     

    728x90
Designed by planet-si