- 하나의 테이블에서 FK는 여러 개 가질 수 있다.
- FK제약 조건 유지를 위한 DBMS의 동작
1) 자식테이블에 대한 INSERT / UPDATE문에서 부모의 PK에 존재하지 않는 값이 시도될때 DBMS가 거부
2) 부모테이블에 대한 DELETE/ UPDATE문에서 부모 테이블의 PK값을 삭제/수정할 때,
-> NO ACTION, RESTRICT: DBMS가 실행을 거부
-> SET NULL, SET DEFAULT: 자식테이블에서 해당 PK값 갖는 모든 FK를 NULL 또는 DEFAULT로 수정
-> CASCADE: 자식테이블에서 FK에 해당 PK값을 갖는 모든 투플을 연속적 삭제/ 수정
- 참조무결성 옵션
1) NO ACTION(표준SQL) / RESTRICT(MySQL)
2) SET NULL / SET DAFAULT
3) CASCADE
Def) View: 하나 이상의 기본 테이블(base table)로부터 유도된 가상 테이블 (virtual table)
-> 기본 테이블: 시스템에 저장된 테이블
-> view: 저장되지는 않고 실행시에만 임시로 구체화되는 테이블
-> 검색/ 갱신
-뷰의 장점
-> 독립성 / 편리성 / 보안성 / 사용자 권한에 따라 다양한 뷰를 제공
- 뷰의 단점
-> 독자적 인덱스가 없음 / 갱신에 제약이 많다 / 정의를 변경할 수 없다.
- INFORMATION ??
Def) SCHEMATA 테이블: MySQL에 생성된 모든 스키마 정보를 제공한다.
Def) TABLES 테이블: 정의된 모든 테이블 정보를 제공한다.
Def) COLUMNS 테이블: 정의된 모든 컬럼 정보를 제공
Def) KEY_COLUMN_USAGE 테이블: 정의된 모든 PK, FK에 대한 정보를 제공한다.
Def) REFERENTIAL_CONSTRAINTS 테이블: 정의된 모든 FK의 참조 무결성 옵션에 대한 정보를 제공한다.
Def) CHECK_CONSTRAINTS 테이블: 정의된 모든 CHECK 제약 조건에 대한 정보를 제공한다.
본 게시글은 프로그래머스의 "학교 밖에서 듣는 전공 필수SQL/DB Essentials" 강의 내용을 토대로 업로드 했습니다.
'컴퓨터 과학 > [프로그래머스] SQL DB Essentials' 카테고리의 다른 글
Chapter 11 CTE와 통계 테이블 (0) | 2022.03.28 |
---|---|
[5주차] 강의노트 SubQuery & DDL (0) | 2022.03.26 |
Chapter 09 DML : 서브쿼리(Subquery) (0) | 2022.03.20 |
[4주차] 강의노트 DML(다중 테이블 쿼리) (0) | 2022.03.19 |
Chapter 08 DML : 조인 연산을 사용한 검색문 (다중 테이블 검색문) (0) | 2022.03.13 |