SQL, DDL
SQL(Structured Query Language)
- 의미 : 관계형 데이터베이스의 표준 질의어
- 종류 : DDL, DML, DCL
DDL(Data Definition Language, 데이터 정의어)
- 데이터베이스의 정의/변경/삭제에 사용되는 언어
- 논리적 데이터 구조와 물리적 데이터 구조로 정의할 수 있음
- 논리적 데이터 구조와 물리적 데이터 구조 간의 사상을 정의함
- 번역한 결과가 데이터 사전에 저장됨
- 종류
- CREATE : 스키마, 도메인, 테이블, 뷰 정의
- ALTER : 테이블 정의 변경(필드 추가, 삭제, 갱신)
- DROP : 스키마, 도메인, 테이블, 뷰 삭제
CREATE문 문법 구조
- CREATE TABLE : 테이블을 생성하는 명령문
CREATE TABLE 기본 테이블
({열이름 데이터_타입 [NOT NULL] [DEFAULT 값], }
{[PRIMARY KEY(열이름_리스트)]},
{[UNIQUE(열이름_리스트, ...)]},
{[FOREIGN KEY(열이름_리스트)] REFERENCES 기본테이블(기본키_열이름)]
[ON DELETE 옵션]
[ON UPDATE 옵션]
[CHECK(조건식)]};
- { }는 중복 가능한 부분
- NOT NULL은 특정 열에 대해 널(Null) 값을 허용하지 않을 때 기술함
- PRIMARY KEY는 기본키를 구성하는 속성을 지정할 때 사용
- FOREIGN KEY는 외래키로 어떤 릴레이션의 기본키를 참조하는지를 기술함
ALTER문 문법 구조
- ALTER TABLE : 테이블 구조(필드 추가, 삭제, 변경) 변경문
ALTER TABLE 테이블_이름 ADD 열_이름 데이터_타입 DEFAULT 값;
ALTER TABLE 테이블_이름 ALTER 열_이름 SET DEFAULT 값;
ALTER TABLE 테이블_이름 DROP 열_이름 CASCADE;
- ADD : 새로운 열(속성)을 추가할 때 사용
- ALTER : 특정 열(속성)의 디폴트 값을 변경할 때 사용
- DROP : 특정 열(속성)을 제거할 때 사용
DROP문 문법 구조
- DROP TABLE : 테이블 삭제문
DROP SCHEMA 스키마_이름 [CASCADE | RESTRICT];
DROP DOMAIN 도메인_이름 [CASCADE | RESTRICT];
DROP TABLE 테이블_이름 [CASCADE | RESTRICT];
DROP INDEX 인덱스_이름;
- CASCADE : 옵션을 사용하면 삭제할 요소가 다른 개체에서 참조 중이라도 삭제가 수행됨
- RESTRICT : 옵션을 사용하면 삭제할 요소가 다른 개체에서 참조 중이라면 삭제가 수행되지 않음
DCL(Data Control Language)
DCL(데이터 제어어)의 기능
- 데이터 제어 정의 및 기술에 사용되는 언어
- 불법적인 사용자로부터 데이터를 보호함
- 무결성은 유지하고 데이터 복구 및 병행 제어를 함
- 종류
- COMMIT : 명령어로 수행된 결과를 실제 물리적 디스크로 저장하고, 명령어로 수행을 성공적으로 완료하였음을 선언함
- ROLLBACK : 명령어로 수행에 실패하였음을 알리고, 수행된 결과를 원상 복귀시킴
- GRANT : 데이터베이스 사용자에게 사용 권한을 부여함
- REVOKE : 데이터베이스 사용자로부터 사용 권한을 취소함
뷰(View)
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 기본 테이블에서 유도되는 가상 테이블
뷰(View)의 특징
- 뷰의 생성 시 CREATE문, 검색 시 SELECT문 사용
- 뷰의 정의 변경 시 ALTER문을 사용할 수 없고 DROP문을 이용함
- 뷰를 이용한 또 다른 뷰의 생성이 가능
- 하나의 뷰 제거 시 그 뷰를 기초로 정의된 다른 뷰도 함께 삭제됨
- 뷰에 대한 조작에서 삽입, 삭제, 갱신 연산은 제약이 따름
- 뷰가 정의된 기본 테이블이 제거되면 뷰도 자동적으로 제거됨
뷰(View)의 장·단점
장점 | - 논리적 데이터 독립성 제공, 사용자 데이터 관리 편의성을 제공함 - 접근 제어를 통한 보안을 제공함 |
단점 | - ALTER VIEW문으로 뷰의 정의 변경이 불가능 - 삽입, 삭제, 갱신 연산에 제약이 따름 |
시스템 카탈로그(System Catalog)
- 시스템 자신이 필요로 하는 여러 가지 객체(기본 테이블, 뷰, 인덱스, 데이터 베이스, 패키지, 접근 권한 등)에 관한 정보를 포함하고 있는 시스템 데이터베이스
- 데이터 사전(Data Dictionary), 메타 데이터(Meta Data)라고도 함
- 시스템 카탈로그 자체도 시스템 테이블로 구성되어 있어 SQL문을 이용하여 내용 검색이 가능함
- 사용자가 시스템 카탈로그를 직접 갱신할 수는 없으나 SQL문으로 여러 가지 객체에 변화를 주면 시스템이 자동으로 갱신됨
728x90
반응형
'정보처리기사 > 데이터베이스 구축' 카테고리의 다른 글
트랜잭션, 병행 제어 (0) | 2023.07.19 |
---|---|
데이터베이스 조작(DML) (0) | 2023.07.19 |
관계 대수와 연산자 (0) | 2023.07.18 |
반정규화 (0) | 2023.07.18 |
정규화 (0) | 2023.07.18 |