1. 데이터베이스란
- 여러 응용시스템들이 공유할 수 있도록 통합 저장된 데이터의 집합
- 중복을 최소화, 다수의 사용자가 공유할 수 있도록 데이터를 모아둔 시스템
- 상호 공유가 가능해야한다
- 필요에 따라 데이터를 신속하게 검색할 수 있어야 한다
- 데이터의 독립성
- 프로그램과 데이터 간의 독립성이 제공
- 데이터의 무결성
- 데이터베이스 안의 데이터는 오류가 있어서는 안된다
- 한 조직체의 운영데이터 뿐만 아니라 데이터에 관한 설명까지 포함
- 데이터베이스 스키마, 데이터베이스 구조
- 효율적으로 접근이 가능하고 질의가 가능
- 데이터베이스의 정의
- integrated
- 중복이 배제된 통합된 데이터의 집합
- stored
- 컴퓨터화되어 저장된 데이터
- operational
- 조직의 기능을 수행하는데 유지해야 할 운영데이터
- shared
- 한 조직에 있는 여러 응용시스템들이 공동으로 소유하고 유지하며 이용하는 공용데이터
- integrated
- 장점
- 데이터 중복 최소화
- 데이터 공유
- 무결성 유지
- 일관성 유지
- 데이터의 보안 보장
- 단점
- 운영비 증대 : 만ㅇㅎ은 시스템 자원 요구
- 자료 처리의 복잡 : 고급 프로그래밍 요구
- 복잡한 예비와 회복 : 장애 발생 대비를 위한 작업 필요
- 시스템의 취약성 : 시스템 성능에 따라 DBMS 성능이 좌우
1. 데이터베이스 관리시스템
DBMS
- DBMS (date base management system)
- 응용프로그램들이 데이터베이스를 공유할 수 있도록 관리해주고 유지하기 위한 소프트웨어 시스템
- 데이터를 적절하고 효율적으로 관리하기 위한 체계적인 시스템
- oracle, ms sql server, mysql 등
- 기능
- 정의기능
- 논리적 구조정의
- 테이블 등의 논리적 구조를 정의
- 물리적 구조정의
- 실제 파일
- 구조 매핑
- 물리적 파일과 우리가 볼수 있는것을 연결
- 논리적 구조정의
- 조작기능
- 데이터를 검색 삽입 수정 삭제할 수 있는 기능
- 제어기능
- 데이터의 정확성, 안정성을 유지하는 기능
- 무결성, 보안
- 정의기능
RDBMS
- 관계형 데이터베이스
- 실체, 속성, 관계로 구성된 ER diagram 으로 표현
- 2차원 수평적 구조
- 데이터들을 2차원 구조를 가진 테이블 형태로 저장
- 데이터의 무결성, 트랜잭션 처리등 기본적 기능에서 뛰어난 성능
- 질의어를 사용한 데이터 접근
- 구조
- 필드-레코드-테이블
- 필드
- 테이블의 열에 해당 (컬럼)
- 레코드
- 필드들의 집합체, 테이블의 각 행
- 인덱스
- 데이터를 신속하게 찾을 수 있도록 정렬된 목록, 키
- 테이블
- 여러개의 레코드를 담고있는 논리적인 구조
- 특정 주제와 목적으로 만들어지는 집합
- 데이터베이스의 기본단위
- 모든 자료는 테이블에 등록
- 관계내용의 정의
- 관계란 업무적인 연관성
- 두 테이블 사이에 존재, 부모 자식테이블로 연결
- 부모테이블의 기본키는 자식테이블에 외래키로
## 2. 스키마
- user : 사용자, 오라클 서버에 접속하기 위해 사용하는 것이 user
- schema : 특정 사용자(user)가 만들어 놓은 모든 object 집합
- hr schema : 오라클 서버안에 hr 계정으로 로그인해서 만들어놓은 모든 것을 모아둔 것
- 스키마이름.테이블이름
- hr.emp : hr 스키마에 있는 emp 테이블, hr 사용자로 로그인해 있기 때문에 hr 생략
3. dba 계정 생성
- cmd
- sqlplus / as sysdba
- 관리자 권한 접속
- ALTER SESSION SET "_ORACLE_SCRIPT"=true;
- @?/demo/schema/human_resources/hr_main.sql
specify password for HR as parameter 1:
Enter value for 1: hr
specify default tablespace for HR as parameter 2:
Enter value for 2: users
specify temporary tablespace for HR as parameter 3:
Enter value for 3: temp
specify log path as parameter 4:
Enter value for 4: $ORACLE_HOME/demo/schema/log/
ALTER USER HR ACCOUNT UNLOCK IDENTIFIED BY hr123;
-- hr 계정 언락 및 비밀번호 hr123 설정
conn hr/hr123;
--계정연결 확인
4.오라클 내 권환 확인
-- sys계정에서 scott 사용자 계정 만들기
alter session set "_ORACLE_SCRIPT"=true;
create user scott
identified by scott123
default tablespace users;
-- 권한 부여하기
grant resource, connect to scott;
select * from dba_users
where username='HR'; --HR유저 확인
select * from dba_users
where username='SCOTT'; --SCOTT 유저 확인
select * from dba_sys_privs where grantee='HR'; --권한 조회
select * from dba_role_privs where grantee='HR'; --롤 조회
--scott 계정에서
select * from hr.v_emp; -- hr의 v_emp 권한이 없어 볼 수 없다
-- hr 계정에서
--hr계정의 뷰를 볼수있는 권한 scott에게 부여
grant select on v_emp to scott; --hr계정의 뷰 이므로 select 권한 부여 가능
--scott 계정에서
select * from hr.v_emp; -- 조회가능
--권한 제거시
--
revoke select on v_emp from scott;
5. SQL문
- structured query language
- 데이터 질의 및 처리언어
- 구조화된 언어
- 집합적, 선언적 언어
- ANSI, ISO 표준
종류
- DML : 데이터 조작어
- date manipulation lang
- 데이터를 조회, 저장, 삭제할때 이용
- SELECT, INSERT, UPDATE, DELETE
- DDL : 데이터 정의어, 객체 조작어
- data definition lang
- 데이터베이스 객체를 생성하는데 이용
- CREATE, DROP, ALTER, TRUNCATE
- DCL : 데이터 제어어
- data control lang
- 데이터 접근을 제어하는데 이용
- GRANT, REVOKE
- TCL : 트랜잭션 제어어
구성요소
- 예약어
- 연산자
- 단항, 이항연산자
- 수식,문자,논리, 계층형 쿼리, set연산자
- 의사컬럼
- 모조,유령컬럼
- rownum
- rowid : 각 row가 저장된 주소 값
- 함수
- 내장함수
- 사용자 정의 함수
- 표현식
- select 리스트
- where, having의 조건절
- order by, connect by, start with
- insert문의 values 절
- update문의 set절
- 조건
- 하나이상의 표현식과 논리연산자가 결합
- 결과가 true, false, unknown값을 반환하는 것