Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- webhacking 처음
- Forensic 절차
- react
- reversing.kr
- frontend
- Database
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- 동읍면 DB
- jsp
- 소개딩
- EER
- 방명록 만들기
- JSTL
- 행정지역 DB
- mysql
- 3단계 지역 DB
- SessionAttribute
- 네이버 인턴
- PyAmdecoder
- riceteacatpanda
- 인턴 지원
- restapi
- spring
- 인턴 후기
- DBMS
- 메모리 포랜식
- 정보보호병 후기
- 소프트웨어 개발보안 경진대회
- Django
- Layered Architecture
Archives
- Today
- Total
웹찢남
Database - 7일차 본문
Create Assertion
- 관계 모델의 기본적인 제약조건 들을 제외한 추가적인 제약조건들을 명시할 때 사용.
- 위의 경우는 고용자의 월급이 노동자의 월급보다 낮을 경우는 없어야한다는 제약 조건이다.
- DB 전체에 대해 CHECK 문 뒤에는 참이 와야함
- constraints 에 이름을 붙이는 것은 modify,alter,delete가 가능하기 때문이다.
- DB 전체에 적용된다 (어떤 테이블의 특정 row에만 적용되는게 아님)
Create Trigger
- 어떤 이벤트와 조건이 발생했을 때 데이터베이스 시스템이 수행할자동적인 동작
- FOR Handling general Events
- ON <event> IF <condition> THEN <action>
- Event → 실행할 동작 request
- Condition → db의 state에 대한 평가
- Action → 절차 수행
Trigger Details
- Trigger에 BEFORE과 AFTER로 발동 시간을 선택을 할 수 있다.
Trigger IN MYSQL
- ACTION of BEFORE TRIGGER은 DB를 바꿀 수 없다.
- only one trigger per event type (BEFORE INSERT OR UPDATE 이런걸 못함)
- Limited trigger Chaining
아래의 방식으로 이루어짐
위에서 N은 새로 추가될 row를 뜻함
UPDATE같은 경우 update 전의 tuple을 Old라하고 바뀐꺼를 New라함
VIews in SQL
- Schema element임 assertion,trigger,table 같이
- 외부적인 schema인데 virtual table이라고 생각하면 됨
- view에 대한 update가 limit됨
- 위처럼 VIEW를 쓸 수 있음 효율성 향상
- 위의 VIEW처럼 column 명을 지정할 수 있음
- Table처럼 DROP VIEW xxxx; 를 할 수 있다.
- 실습 결과 아래처럼 Views 영역에 따로 테이블이 생겼다. 캐시처럼 사용한다고 생각하면 좋을듯
- 또한 아래처럼 INSERT 문과 UPDATE문이 적용되지 않음!
- 결국 table 처럼 사용하면 안되고 그냥 query를 할 때 임시로 사용하는 temporary view table이라 생각하면 됨
- View가 기반으로하던 table이 업데이트되면 자동으로 업데이트
- WITH CHECK OPTION 이 있는데 뷰의 조건식을 만족하는 데이터만 INSERT 또는 UPDATE가 가능 하도록 하는 옵션 이다.
Access Control
- DB는 중요한 정보를 들고 있음
- 그래서 access를 제한해야함 - 보통 비밀번호로 식별
이에 대한 방법으로 보통 아래와 같이 GRANT를 씀
Grant와 View를 합쳐 사용할 수 있음
View에 unauthorized user에게 특정 attributes와 tuple을 숨기는 역할로 View를 사용할 수 있음 그 후 GRANT를 해당 view table에 access로 쓰면 됨
ALTER
ALTER Table Command는 column을 추가하거나 drop할 수 있고 column def를 바꿀 수 있고 constraints를 추가하거나 drop할 수 있다.
DROP
drop을 할 때 cascade나 Restrict를 사용할 수 있음
- cascade는 외래키(Foreign key)로 물린 하위 테이블들 까지 함께 삭제된다.
- restrict는 참조하는 뷰나 제약조건이 있으면 실행 실패
'Database' 카테고리의 다른 글
Database - 6일차 (0) | 2021.02.02 |
---|---|
Database - 5일차 (0) | 2021.02.02 |
동읍면 DB 만들기 (0) | 2020.11.11 |
Database - 4일차 (0) | 2020.10.26 |
Database - 3일차 (0) | 2020.10.07 |
Comments