1. SQL(Structured query Language)
1) 관계형 데이터베이스(RDB)
- 1970년대 초 E.F CODD박사에 의해 개념 도입
- RDB는 데이터를 2차 행렬의 TABLE의 집합으로 표현
- 각 Table은 행(Row)과 열(Column)으로 구성
- 각 Row는 유일하게 구별되는 특징을 가짐
- 각 Column들은 데이터 무결성(Data Integrity)을 보장받아야 함
- Table에 대한 데이터 조작 및 검색을 SQL을 이용해서 수행
- RDBMS가 전체 데이터 베이스(RDB)를 관리
2) 데이터베이스 용어
- Table: 행과 열의 조합으로 구성된 기본 저장 단위
- Row(Record): Column값들의 조합
- Column: 단일 종류의 데이터
- Field: Row와 Column의 교차점에 위치한 데이터, Null 값 허용
- Primary Key: Table의 각 Row를 식별해주는 Column, null 값 비허용
- Foreign Key: 다른 테이블의 PK(Primary Key)
- View: Table로부터 논리적으로 추출한 데이터의 집합(가상 테이블)
- Sequence: 기본 키 값 생성을 위해 사용, 고유값 자동 생성
- Index: Query의 속도 향상
- Synonym: Object에 대한 또 다른 이름(ALIAS역할)
- Program Unit: SQL, PL/SQL문으로 작성한 Procedure, Function, Trigger, Package
3) SQL, SQL*PLUS, PL/SQL의 비교
- SQL: DB서버에게 명령을 내리기 위한 언어(RDMBS 사용 표준-> ANSI 책정)
- SQL*PLUS: Oracle DB Tool, SQL및 PL/SQL 문장을 인식
- PL/SQL: SQL에 프로그램 로직이 추가/확장된 절차적인 프로그래밍 언어(Oracle)
4) Oracle DB의 기본 계정
- SYS: Super사용자 계정(DBA), DB의 모든 문제 처리 권한 보유, 기본 테이블과 뷰 저장
- SYSTEM: DB관리자 계정(DBA), 모든 시스템 권한 소유
*관리자 계정은 테이블을 생성하거나 일반 데이터를 Insert해서는 안되며 관리용도로만 사용
- SCOTT: 실습을 위해 만든 연습용 계정(잠겨있음)
- HR: 실습을 위해 만든 연습용 계정
5) DBMS에 접속하기
- connect 계정/비밀번호;
6) 사용자 계정의 생성
- 문형
CREATE USER user_name -> 기본 생성 명령어
IDENTIFIED [BY password | EXTERNALLY] -> 로그인 비밀번호 | 운영체제로 인증
[DEFAULT TALBESPACE tablespace] -> 사용자 스키마를 위한 기본 테이블 공간 지정
[TEMPORARY TALBESPACE tablespace] -> 사용자의 임시 테이블 공간 지정
[QUOTA { integer [K | M] | UNLIMITIED} ON tablespace] -> 사용자의 테이블 공간 영역 할당
[PASSWORD EXPIRE] -> 로그인 암호 재설정
[ACCOUNT {LOCK | UNLOCK}] -> 사용자 계정을 명시적으로 Lock or Unlock
[PROFILE {profile|DEFAULT}] -> 자원 사용을 제어, 사용자에게는 암호 제어 처리방식 지정
ex) CREATE USER student identified by 1234;
*임시 TableSpace 미지정시 System TableSpace가 기본으로 지정 -> 단편화 발생
사용자 생성시 임시 TableSpace를 지정해주는것이 좋다
7) 권한과 역할(Privilege & Role)
- 사용자가 DB에서 특정 작업 수행 허용
- 사용: Grant -> 권한 부여 // Revoke -> 권한 삭제
- 종류
CREATE SESSION: DB 연결 권한
CREATE ROLE: 오라클 DB 역할 생성 권한
CREATE VIEW: 뷰 생성 권한
ALTER USER: 생성한 사용자의 정의 변경 권한
DROP USER: 생성한 사용자 삭제 권한
8) 사용자 계정에 권한 부여
- 문형
GRANT [system_privilege | role ] TO [user | role | PUBLIC] [WITH ADMIN OPTION]
- 설명
[system_privilege | role ]
-> system.privilege: 부여할 시스템 권한 이름 / role: 부여할 DB 역할의 이름
[user | role | PUBLIC]
-> user, role: 부여할 사용자 이름과 다른 DB 역할 이름 / PUBLIC: 시스템 권한 or DB 역할을 모든 사용자에게 부여
[WITH ADMIN OPTION]
-> 부여받은 권한을 다른 사용자 또는 역할로 부여 가능
*사용자 계정 권한 박탈
- revoke [system_privilege | role] FROM [user | role | PUBLIC]
'프로그래밍 > SQL' 카테고리의 다른 글
[SQL 요약 정리] 1-6. JOIN (0) | 2019.02.08 |
---|---|
[SQL 요약 정리] 1-5. SUBGROUP으로 데이터분류 (0) | 2019.02.08 |
[SQL 요약 정리] 1-4. 내장 함수(STORED FUNCTION) (0) | 2019.02.08 |
[SQL 요약 정리] 1-3. 데이터 검색(SELECT) (0) | 2019.02.08 |
[SQL 요약 정리] 1-2. 테이블 생성 및 데이터 조작(DML) (0) | 2019.02.08 |