아래 글은 데이터베이스 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

📃 참고자료

https://www.youtube.com/watch?v=AjhVRhVdtuY&list=PLimVTOIIZt2aP6msQIw0011mfVP-oJGab&index=9 

 

 

 

 

# SQL(Structured Query Language)

  • 1974년 IBM 연구소에서 개발한 SEQUEL에서 연유한다.
  • 관계 대수와 관계 해석을 기초로 한 고급 데이터 언어이다.

 

 

인터페이스

  1. 대화식 SQL
  2. 내장형 SQL

 

 

구성요소

  1. DDL (정의어)
  2. DML (조작어)
  3. DCL (제어어)

 

 

 

# DDL ( Data Definition Language)

  • DBMS에서 사용할 데이터베이스의 정의 및 변경을 위해서 사용하는 언어이다.
  • 외부 스키마 명세를 정의한다.
  • 스키마에 사용되는 제약 조건 명세를 정의한다.
  • 데이터베이스의 논리적 데이터 구조와 물리적 데이터 구조 및 구조 간의 사상을 정의한다.
  • DDl로 정의된 내용은 메타데이터(Metadata)가 되며, 시스템카탈로그에 저장된다.
  • 번역한 결과가 데이터 사전(Data Dictionary)이라는 특별한 파일에 여러 개의 테이블로서 저장된다.
  • DDL의 명령어 종류: CREATE(정의), ALTER(변경), DROP(삭제)

 

 

시스템 카탈로그 (System Catalog)

  • 데이터베이스에 포함된 다양한 데이터 객체(기본 테이블, 뷰, 인덱스, 데이터베이스, 패키지, 접근 권한 등)에 대한
    정보들을 유지, 관리하기 위한 시스템 데이터베이스이다.
  • 데이터베이스에 포함되는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리한다.
  • DBMS가 스스로 생성하고, 유지하는 데이터베이스 내의 특별한 테이블의 집합체이다.
  • 데이터 사전(Data Dictionary)이라고도 한다.
  • 시스템 카탈로그에 저장된 정보를 메타 데이터(Meta Data)라고도 한다.

 

구분 역할
CREATE DOMAIN 도메인을 생성
TABLE 테이블(릴레이션) 생성
VIEW 뷰를 생성
INDEX 인덱스를 생성
ALTER TABLE 테이블 구조를 변경
DROP DOMAIN 도메인을 제거
TABLE 테이블을 제거
VIEW 뷰를 제거
INDEX 인덱스를 제거

 

 

 

Char(n)

  • character
  • 고정길이 문자열
  • 열 항목들이 크기가 일관적인 경우

 

 

varChar(n)

  • Characyer varying
  • 가변길이 문자열
  • 열 항목들이 크기가 일관적이지 않은 경우

 

 

CREATE TABLE

  • 테이블을 정의하는 명령문이다.
  • 표기 형식
CREATE TABLE 학생{
	학번 CHAR(15) NOT NULL,
    이름 VARCHAR(15) NOT NULL,
    학과 VARCHAR(20) NOT NULL,
    학년 INT NOT NULL,
    전화번호 CHAR(15) NOT NULL,
    성별 GENDER,
    생년월일 DATE,
    PRIMARY KEY(학번),
    UNIQUE(전화번호),
    FOREIGN KEY(학과) REFERENCES 학과(학과코드),
    ON DELETE CASCADE ON UPDATE CASCADE,
    CONSTRAINT 학년제약 CHECK(학년 >= 1 AND 학년 <= 4));

 

* NO ACTION(=RESTRICT)

- 피참조 테이블에서 행(들)을 삭제 또는 수정한 후, 참조 테이블에서 무결성 제약조건을 위배하지 않으면 O.K.,

  무결성 제약조건을 위배하면 오류로 처리한다.

 

 

* CASCADE

- 피참조 테이블에서 행(들)을 삭제 또는 수정한 후, 참조 테이블에서 무결성 제약조건에 따라 삭제 또는 수정을 행한다.

 

 

 * SET NULL

- 피참조 테이블에서 행(들)을 삭제 또는 수정한 후, 참조 테이블에서 무결성 제약조건에 따라 NULL로 바꾼다.

단, NOT NULL 제약이 참조하는 칼럼에 선언되어 있다면 오류로 처리한다.

 

 

* SET DEFAULT

- 피참조 테이블에서 행(들)을 삭제 또는 수정한 후, 참조 테이블에서 무결성 제약조건에 따라 default)으로 바꾼다.

만약, 참조 테이블의 외래 키가 default 값을 찾지 않으면 NULL 값을 default 값으로 한다. 단, default 값이 선언되어

있지 않으며 NOT NULL 제약이 참조하는 칼럼에 선언되어 있다면 오류로 처리한다.

 

 

ALTER

- 스키마, 도메인, 테이블, 뷰, 인덱스를 수정

 

* ALTER TABEL

- 테이블의 정의를 변경하는 명령문

 

 

DROP

- 스키마, 도메인, 테이블, 뷰, 인덱스를 삭제

* CASCADE: 삭제할 개체를 참조하는 다른 모든 개체를 함께 삭제

* RETRICT: 다른 개체가 삭제할 개체를 참조 중일 경우 삭제를 취소

 

 

 

 

# 데이터 제어어 [DCL, data control language]

  • 다수의 사용자가 데이터베이스를 공용하고 정확성을 유지하기위한 데이터 제어를 정의하고 기술하는 언어이다.
  • 데이터의 보안, 무결성, 회복과 밀접한 관련이 있다.
  • 불법적인 사용자로부터 데이터를 보호하기 위한 데이터 보안(Security)을 명세한다.
  • 데이터 정확성을 위한 무결성(Integrity)을 명세한다.
  • 시스템 장애에 대비한 데이터 회복(Recovery)과 병행 수행(Concurrency) 제어를 명세한다.

 

 

DCL의 종류

  1. COMMIT (무결성)
  2. ROLLBACK (무결성)
  3. RANT (보안)
  4. REVOKE (보안)

 

명령어 기능
COMMIT 정상적인 완료
ROLLBACK 비정상적인 종료
GRANT 사용권한 부여
REVOKE 사용권한 취소

 

 

* GRANT

- 사용자에게 해당 객체에 대한 특정 사용권한을 부여할 때 사용

- 권한 종류 : SELECT, INSERT, DELETE, UPDATE 등

 

 

* REVOKE

- 사용자에게 해당 객체에 대한 특정 사용권한을 취소할 때 사용

- 권한 종류: SELECT, INSERT, DELETE, UPDATE 등 

 

 

반응형

+ Recent posts