1. DDL VS DML
1) DDL(Data Definition Language)
- 데이터 정의 언어
- 데이터베이스에 있는 정보의 구조를 표현
2) DML(Data Manipulation Language)
- 데이터 조작 언어
- 질의와 변경
2. 주요 데이터 타입
- INT, INTEGER, SHORTINT
- FLOAT, REAL, DOUBLE PRECISION, DECIMAL(n, d) (n자리중 오른쪽 d자리가 소수점), NUMBERIC (DECIMAL과 유사)
- CHAR(n) (고정 길이), VARCHAR(n) (가변 길이, 공간은 절약 되지만 시간이 오래 걸림)
- BIT(n) (고정 길이), BIT VARYING(n) (가변 길이)
- BOOLEAN [TRUE, FALSE, UNKNOWN]
- DATE, TIME
3. CREATE, DROP, ALTER
CREATE TABLE MOVIESTAR( NAME CHAR(30), ADDRESS VARCHAR(255), GENDER CHAR(1), BIRTHDATE DATE );
DROP TABLE MOVIESTAR;
ALTER TABLE MOVIESTAR ADD PHONE CHAR(16); ALTER TABLE MOVIESTAR DROP BIRTHDATE;
* 필드명을 변경하는 전용 명령어는 없고 삭제 후 다시 생성해야 함
4. 기본값(DEFAULT) 설정 예시
GENDER CHAR(1) DEFAULT 'M'; //테이블 생성 시
BIRTHDATE DATE DEFAULT DATE '0000-00-00' //테이블 생성 시
ALTER TABLE MOVIESTAR ADD PHONE CHAR(16) DEFAULT 'UNLISTED'
5. 도메인
- 어떤 데이터 타입을 나타내는 새로운 이름
도메인 정의 예시
CREATE DOMAIN MOVIEDOMAIN AS VARCHAR(50) DEFAULT 'unknown';
도메인 사용 예시 - 도메인을 Attribute의 타입으로 사용
title MOVIEDOMAIN //테이블 생성 시
도메인에 지정된 Default값 변경 예시
ALTER DOMAIN MOVIEDOMAIN SET DEFAULT 'no such title'
도메인 삭제 예시
DROP DOMAIN MOVIEDOMAIN
6. INDEX(색인)
- Attribute에 특정값을 가지는 튜플들을 효과적으로 찾을 수 있도록 지원하는 자료구조 - 예) B+ 테이블, 해쉬 테이블
- 색인은 SQL 표준에 포함되어 있지 않지만, 대부분의 상용 DBMS가 색인을 지원함
- 질의 처리 속도는 빨라지지만, 변경(삽입, 삭제, 갱신) 속도가 저하된다.
색인 생성 예시
CREATE INDEX YEARINDEX ON MOVIE(year);
CREATE INDEX KEYINDEX ON MOVIE(title, year);
색인 삭제 예시
DROP INDEX YEARINDEX
7. VIEW
1) VIEW 사용
- 물리적으로 존재하지 않는 가상의 릴레이션
※ 기본(stored) 테이블은 튜플들이 물리적으로 존재함
※ 임시 릴레이션은 질의 처리 도중에 임시로 생성되는 릴레이션으로, VIEW와는 달리 직접 사용할 수는 없음
- 자주 참조하는 데이터들에 적용할 때 유리함
- VIEW는 여러 릴레이션들로 정의될 수 있음
- 기본 릴레이션과 VIEW를 질의에 같이 표현할 수도 있음
VIEW 선언 예시 (이후의 예제에서 VIEW를 통해 삽입도 가능하도록 개선될 것)
CREATE VIEW PARAMOUNTMOVIE AS
SELECT title, year FROM MOVIE WHERE studioName = 'Paramount'
VIEW의 Attribute 이름 변경 예시
2) VIEW의 변경 가능 조건
(1) SELECT 절에는 충분한 Attribute들이 있어야 함
- Key Attribute들은 NULL이 아니어야 한다. 아래 예시에서는 View에 삽입되는 튜플이 Join의 기준 attribute인 producerC#, cert#을 포함하지 않기 때문에 문제가 발생한다.
- VIEW를 통해 삽입되는 튜플은 그 VIEW를 통해 볼 수 있어야 한다. 아래 예시에서는 삽입된 튜플이 VIEW의 WHERE 조건에 걸리기 때문에, 삽입된 튜플을 VIEW를 통해서 볼 수 없게 된다.
(2) WHERE 절에 있는 부질의는 릴레이션 R을 포함해서는 안됨
- 일반적으로 하나의 릴레이션 R로부터 정의된 VIEW에 대해서만 변경을 허용한다.
3) VIEW 삭제 예시
DROP VIEW PARAMOUNTMOVIE
'DB > DB Concept' 카테고리의 다른 글
함수적 종속과 정규화 (0) | 2022.01.31 |
---|---|
제약 조건과 트리거 (0) | 2022.01.29 |
SQL(1) - DML (1) | 2022.01.28 |
Algebraic(대수) Query Language (0) | 2022.01.27 |
E/R Model (0) | 2022.01.26 |
댓글