2024.02.15

김무영·2024년 2월 15일

DBMS( DataBase Management System )

  • 관계형 데이터베이스 RDBMS - Relationship DataBase Management System
  • 1950년에 미군에서 처음 등장한 용어
    • 군대에서 군비를 효율적으로 관리하기 위해 모아놓은 시스템.
      도서관의 개념을 도입하여 개발하면서 데이터의 기지라는 뜻의 "데이터베이스"라는 용어를 사용 하게 되었다.
  • 1963년에 시스템디벨로프사가 심포지움에서 용어를 표면적으로 사용한다.

데이터베이스의 정의

  • data ( 자료 ) : 숫자, 단어, 영상등의 형태로된 의미 있는 단위.
                       연구, 조사에 바탕이 되는 산재되어있는 재료.
                       데이터를 의미있게 정리하면 => 정보
  • database : 체계화된 데이터들의 모임
                   여러 프로그램에서 통합된 정보를 저장하고 사용하는 공용 데이터의 묶음

데이터베이스가 필요한 이유.

  • 여러 사용자가 데이터를 공유하여 사용할 필요가 있음.
  • 수시로 변경되는 데이터에 대한 번거로움을 최소화 할 수 있다.
  • 저장된 값에 의한 검색을 하고 싶을 때.

데이터베이스의 4가지 특징

  • 통합된 데이터, 공용데이터, 운영데이터, 저장데이터
    • 통합된 데이터 : 데이터 중복을 최소화한 데이터의 집합.
    • 공용데이터 : 여러 Application사용자가 공동으로 사용.
    • 운영데이터 : 데이터가 프로그램을 운영하는 데 있어 반드시 필요한 데이터
    • 저장데이터 : 컴퓨터가 접근할 수 있는 저장매체에 저장된 데이터

DBMS는 실시간 접근성, 내용에 의한 참조, 동시공유 3가지의 특성을 가진다.

데이터베이스의 장점.

  • 데이터의 중복성 최소화 할 수 있다.
  • 데이터를 공유(일관성, 무결성,보안성)할 수 있다.
  • 최신상태로 데이터를 유지할 수 있다.
  • 데이터의 표준화가 가능하다.

데이터베이스의 단점.

  • 데이터베이스 전문가가 필요하다.
  • 많은 비용의 증가.
  • 시스템의 복잡도가 상승하게된다.
  • 대용량 데이터를 사용하면 과부하가 발생하게된다.

데이터베이스의 필수기능.

  • 정의기능(DDL)
  • 제어기능(DCL)
  • 조작기능(DML)

DBMS

  • 데이터베이스의 특징을 컴퓨터에서 사용할 수 있다고 개발된 프로그램.
  • Oracle, MS-SQL, MySql, DBII, Sybase,,,,

Oracle DBMS

  • oracle.com에서 다운.
  • 설치시 주의 ( setup.exe )는 관리자 권한으로 실행.
  • 설치파일은 한글명으로 된 하위 폴더에 넣지 않는다.
  • 컴퓨터명은 영어
  • 설치 후 background service로 동작( 부팅속도가 느려진다. )
    • backgroun service : OS가 부팅될 때 같이 실행되는 프로그램( 알약, 카카오톡 , Oracle,,,, )
    • foreground service : OS가 부팅된 후 사용자가 직접 실행하는 프로그램( Powerpoint, 한글, 알집, 반디집,,,, )
  • 설치, 가동법, 계정생성, create, 데이터형, insert, select, update, delete, truncate, drop, select 함수, subquery, constraint, alter, union, join, sequence, view, index, 계정생성, 권한부여, 백업, 복원

DBMS는 SQL( Structured Query Language )문을 사용하여 테이블을 조작.

  • DDL(Data Definition Language) : 정의어
    • create, alter , drop , truncate
  • DCL(Data Control Language) : 제어어
    • commit, rollback , grant , revoke
  • DML(Data manipulation Language) : 조작어
    • select , insert , update , delete
      • select : DQL(Data Query Language)로 분류하기도 한다.

Oracle의 구조

server instance 실행 / 종료

  • 제어판 > Windows Tools > 서비스 > OracleServiceORCL -> 정지 후 실행

  • DOS : sqlplus에서 실행 / 종료

    1. 관리자 계정으로 접속 : sqlplus "/as sysdba"

    2. 서비스를 종료 : shutdown abort

    3. 서비스를 시작 : startup

server Process 실행 / 종료

  • 제어판 > Windows Tools (Window10 : 관리도구) > 서비스 > >OracleOraDB19Home1TNSListener -> 정지 후 실행

  • DOS : lsnrctl.exe 사용 ( 관리자 권한으로 실행 )

    1. 정지 : stop

    2. 실행 : start

sqlplus 사용

  • Oracle DBMS에서 제공하는 DB Client 프로그램.

    • DB Client : XxxListener(ServerProcess)서버에 접속하는 DB 클라이언트
      SQL문과 SQLPlus문을 사용할 수 있다.
      • SQLPlus : Oracle DBMS에서만 제공하는 명령
        Show, column으로 ;을 사용하지 않아도 실행이 된다.
        • SQL문이 아님.
      • SQL
        • DDL - create, drop, truncate, alter
        • DCL - commit, rollback, grant, revoke
        • DML - insert, update, delete, select
        • 문 끝에 ;을 넣어야 한다.
  • 쿼리문을 작성하고, 실행하고, 결과를 받는 일

  • SQLPlus에서 조회 컬럼의 크기를 조절

    • SQLPlus에서 제공하는 column (col) 명령을 사용한다.
    • 사용법 )
      column 크기를조절할컬럼명 format a글자수
      col 크기를조절할컬럼명 format a글자수
  • 접속 )

    • 아이디와 비번을 노출하여 접속
      sqlplus "아이디/비번"
      sqlplus 아이디/비번

    • 아이디만 노출
      sqlplus 아이디

    • 노출 X
      sqlplus

  • 프로그램 종료 )
    exit

계정생성

  • 관리자 계정에서만 계정을 생성할 수 있다. ("/as sysdba")
    Oracle version
    ( 8i, 9i, 10i, 11g, 12c, 19c, 21c )
    • 8i, 9i, 10i 11g
      • 계정명만 사용 -> scott
    • 12c, 19c, 21c
      • 계정명앞에 c##이 붙는다. c##scott 사용가능
      • 이전버전의 계정으로 scott 사용가능
  1. 일반계정을 생성할 수 있는 설정( alter ) - C##이 붙지 않은 계정을 생성할 수 있다.
    alter session set "_ORACLE_SCRIPT"=true;

  2. 계정생성 ( create ) - 계정과 비번을 설정하여 생성
    create user 계정명 indentified by 비번;

  3. 계정에 접속 권한을 부여 ( grant ) - 접속 및 DB를 사용할 수 있다. ( 테이블을 생성 )
    grant 권한,,, to 계정명;

  4. tablesapce 사용권한 수정 ( alter ) - 생성된 테이블을 사용할 수 있다. ( insert 가능 )
    alter user 계정명 default tablespace users quota unlimited on users;

RDBMS

  • 테이블을 생성한 후, 데이터를 체계적으로 분류하여 저장하고 사용하는 DBMS

DBMS는 여러 프로그램이 존재

  • Oracle, MS-SQL, DBII, Sybase, MSQL, Access,,,
    • DB Vendor사는 모두 다르다.
    • DBMS에서 사용하는 SQL문은 모두 조금씩 다르다.
    • ANSI( American National Standard Institute ) - SQL : 표준쿼리에서 파생됨

table 생성

  • 데이터를 체계적으로 저장하고 관리하기 위해.
  • DDL중 create문을 사용.
  • 모든계정은 테이블을 생성할 수 있는 권한을 가지고 있다.
  • 테이블명은 접속한 계정에서 하나만 생성할 수 있다.( 테이블 명은 대문자로 유일 )
  • 구문 )
    create table 테이블명(
    컬럼명 데이터형(크기) constraint 제약사항명 제약사항 종류,
    //컬럼명 뒤에 주면 컬럼단위 제약사항, Column Level Constraint

//테이블 단위 제약사항 , Table Level Constraint
constraint 제약사항명 제약사항종류(적용컬럼명),
);

  • 현재 접속한 계정이 가지고 있는 모든 테이블 명을 검색 ( tab - DD(Data Dictionary) 사용 )
    • DD(Data Dictionary) : DBMS에서 제공하는 정보를 가진 테이블
      select * from tab;

SQL문법

  • 대소문자를 가리지 않는다. '나 "로 묶인 경우가 아니라면 모두다 대문자로 처리된다.
    Insert inTo tEst vAlueS('Abc','bbb'); => INSERT INTO TEST VALUES('Abc','bbb');
  • 쿼리문의 끝에는 ;를 붙인다.

data type(데이터형)

  • 값을 저장하기위해, 메모리에 이름을 미리 부여한 공간.
  • 테이블의 컬럼을 생성할 때 사용.
  • bind변수를 선언할 때 사용
  1. 숫자형 데이터 타입
  2. 문자형 데이터 타입
  3. 날짜형 데이터 타입
  4. 이진 데이터 타입

학생에 정보를 저장하는 테이블 생성

  • 번호, 이름, 전화번호, 주소, 반, 나이, 키, 몸무게 저장
    • 번호(정수) : 4자리
    • 이름(문자열) : 한글로 5자까지만
    • 전화번호(문자열) : 숫자와 특수문자로 구성된 13자
    • 주소(문자열) : 한글로 최대 100자까지 저장
    • 반(문자열) : 영어로 1자저장
    • 나이(정수) : 최대 3자리
    • 키(실수) : 정수3자, 실수1자
    • 몸무게(실수) : 정수3자, 실수1자 CREATE TABLE student(
      num number(4),
      name varchar2(15),
      tel varchar2(13),
      addr varchar2(300),
      class char(1),
      age number(3),
      height number(4,1),
      weight number(5,2),
      input_date date
      );

SQLPlus에서는 editor를 제공한다 => 쿼리문을 파일(.sql)로 저장한 후 다음에도 사용할 수 있다.

  • editor 실행
    sql>ed( edit ) 경로/파일명.sql

  • 저장된 쿼리를 실행
    sql> @ 경로/파일명.sql

0개의 댓글