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 실행 / 종료
server Process 실행 / 종료
sqlplus 사용
-
Oracle DBMS에서 제공하는 DB Client 프로그램.
- DB Client : XxxListener(ServerProcess)서버에 접속하는 DB 클라이언트
SQL문과 SQLPlus문을 사용할 수 있다.
- SQLPlus : Oracle DBMS에서만 제공하는 명령
Show, column으로 ;을 사용하지 않아도 실행이 된다.
- 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글자수
-
접속 )
-
프로그램 종료 )
exit
계정생성
- 관리자 계정에서만 계정을 생성할 수 있다. ("/as sysdba")
Oracle version
( 8i, 9i, 10i, 11g, 12c, 19c, 21c )
- 8i, 9i, 10i 11g
- 12c, 19c, 21c
- 계정명앞에 c##이 붙는다. c##scott 사용가능
- 이전버전의 계정으로 scott 사용가능
-
일반계정을 생성할 수 있는 설정( alter ) - C##이 붙지 않은 계정을 생성할 수 있다.
alter session set "_ORACLE_SCRIPT"=true;
-
계정생성 ( create ) - 계정과 비번을 설정하여 생성
create user 계정명 indentified by 비번;
-
계정에 접속 권한을 부여 ( grant ) - 접속 및 DB를 사용할 수 있다. ( 테이블을 생성 )
grant 권한,,, to 계정명;
-
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변수를 선언할 때 사용
- 숫자형 데이터 타입

- 문자형 데이터 타입

- 날짜형 데이터 타입

- 이진 데이터 타입

학생에 정보를 저장하는 테이블 생성
- 번호, 이름, 전화번호, 주소, 반, 나이, 키, 몸무게 저장
- 번호(정수) : 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)로 저장한 후 다음에도 사용할 수 있다.