bootcamp/데이터베이스

1103 -1) SQL1 - 정규화

깨돌 2023. 12. 17. 15:59

정규화란

릴레이션의 속성, 개체 관계를 파악하여 데이터의 중복성을 최소화 하는 과정

 

그러나,
테이블이 여러개가 돼서 복잡해짐
관계를 맺어줘야됨

 

제 1정규형 - 도메인이 모두 원자값

제 2정규형 - 부분함수 종속 제거

제 3정규형 - 이행함수 종속 제거 

 

bcnf - 결정자 중 후보키가 아닌 것들은 제거

 

제 4정규형 - 다치 종속제거

제 5정규형 - 조인 종송성 제거

 

LIKE  ~~~~~~~포함된 값%=*


sql에선 *이 입력되지 않음
%의 뜻: 모두 선택 
%의 위치에 따라 조건이 다양해짐

 

SQL

관계 대수와 관계해석을 기초로 한 고급 데이터 언어

데이터 정의, 데이터 조작, 데이터 제어 기능을 제공하는 비절차적 언어

-DDL, DML, DCL이 있다.  

 

DDL 정의어

스키마, 도매인, 테이블, 뷰, 인덱스 등 데이터의 구조를 정의하거나 제거

create(생성), alter(추가), drop(삭제), rename column(이름변경), modify(속성변경)

CASCADE : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조하고 있을 경우 함께 변경/삭제

RESTRICTED : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조 하고 있을 경우 변경/삭제가 취소(제한)

 

DML 조작어

실질적으로 데이터를 조회, 삽입, 삭제, 수정할 때 사용하는 SQL

select(조회), update(수정), delete(삭제), insert(삽입)

 

DCL 제어어

데이터베이스에 접근하고 사용할 수 있도록 권한을 주고 회수하는 명령어

commit(저장), rollback(되돌리기), grant(권한부여), revoke(사용자권한취소)

 

DCL 권한 설정
-> grant 권한 on DB이름.테이블이름 to '사용자'@'%';

권한-> select, insert, delete, create,  alter, drop, revoke, grant

 

사용자권한취소

revoke권한 on DB이름.테이블이름 from '사용자'@'%';