Schema
Schema
-테이블과 기타 여러가지 구조물들을 포함하는 같은 응용그룹에 속한것들을 Schema라고 한다.
-Schema에는 스키마 이름, 관리자 id, 각 엘리먼트에 대한 설명정보가 포함되있다.
-Schema elements에는 tables,constraints,views,domains, and other constructs (such as authorization grants)
SQL로 Create SCHEMA "name" AUTHORIZATION "관리자 이름"; (CREATE하는 DDL문)
Catalog
이렇게 정의한 Schema의 정보를 모아놓은 것이 system catalog(dbms에서 database에 대한 meta-data를 포함하는것) 이다.
-Catalog : SQL 환경에서 Schema들의 이름의 집합들
-INFORMATION_SCHEMA : catalog는 항상 특별한 형태의 Schema를 갖고있다. (Schema들의 정보를 담고 있는 meta--data를 담고 있는 Schema를 가짐)
-dbms가 관리하고 있는 모든 elements에 대한 meta-data에 대한 모든 정보를 INFORMATION_SCHEMA가 갖고 있으며 이것이 system catalog다
SQL에서 Arrtribute Constraints를 명세하고 Defaults를 지정하는 방법
- NOT NULL (attribute null값 허용x, 당연히 PK의 일부면 null값 불가능)
- 값을 제공해주지 않으면 default 값이 들어감
- 값의 범위나 제약조건 명세할 수 있는 CHECK 구문
Referential Integrity(참조 무결성)
-FK 제약에 referntial triggered action문을 붙힐수 있다.
-옵션 : SET NULL , CASCADE(같이바뀌게) , SET DEFAULT (각 옵션은 삭제,갱신시 어떻게 할것인지 써있어야 한다-)
CHECK를 이용해 Tuples에 제약을 명세
행 기반 제약조건(테이블 제약조건)
-개개의 행 전체에 대해 적용해야 한다
-삽입되거나 수정할때마다 적용되야 한다
CHECK문을 다수의 Attribute에 사용하는것이 가능하다. 이럴경우 참조 무결성절처럼 CHECK문을 별도의 구문으로 빼낼 수 있다.
delete하는 drop문
1. dependent table을 지우고 뒤에 옵션을 주는 명령어
두가지 옵션
- RESTRICT : FK 같은것으로 참조 당하고 있으면 지울 수 없다. 완전히 독립된 table때만 지울 수 있게 한다.
- CASCADE : 상관없이 그 테이블을 지워버린다 연관있는 모든table 또한 같이 지워진다.
2.company SCHEMA 전체를 지우고 뒤에 옵션을 주는 명렁어
두가지 옵션
- RESTRICT: schema 내에 어떤 table이나 view나 constraint가 하나라도 있으면 지울 수 없다.
- CASCADE : 그냥 지워버린다
Alter command
-기존에 있는 table에 새로운 column을 첨가하거나 지우거나 정의를 변경하거나 제약조건을 추가하거나 제거할 수 있는 명령어
COMPANY.EMPLOYEE에 새로운 column을 첨가하는 명령어( 기존 table에 추가되는 초기 값은 모두 NULL이라 NOT NULL constraint는 붙힐 수 없다.)
C.E에서 Address라는 column을 전부 지워버려라
C.D 의 Mgr_ssn 의 DEFAULT값을 전부 지워라
C.D 의 Mgr_ssn 에 DEFAULT절을 추가해라
C.E 의 EMPSUPERFK의 제약을 제거해라 ( 제약에 이름을 붙히는 이유이며 뒤에가 CASCADE이므로 관련된 것도 전부 지워버린다)
'Database' 카테고리의 다른 글
Database 8장 (0) | 2020.10.10 |
---|---|
Database 7장-2 (0) | 2020.10.02 |
DATABASE 7장 (0) | 2020.09.26 |
Database 6장-2 (0) | 2020.09.19 |
Database 5장 (0) | 2020.09.07 |