후보키
: Tuple을 유일하게 식별하기 위해 사용하는 속성들의 부분집합 (기본키로 사용할 수 있는 속성들) (유일성 + 최소성 만족해야함)
기본키
: 후보키 중 선택한 키 (NULL 값 X, 중복 X)
대체키
: 후보키 - 기본키
슈퍼키
: 후보키들의 집합 중 유일성은 만족하지만 최소성은 만족하지 않아도 되는 키
외래키
: 다른 릴레이션의 기본키를 참조하는 속성의 집합
종류
INNER JOIN
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
CROSS JOIN
SELF JOIN
ANTI JOIN
SEMI JOIN
공격방법
인증우회
로그인 할 때 아이디 비번 + 해킹을 위한 SQL 입력
ex)
SELECT * FROM USER WHERE ID = "abc" AND PASSWORD = "1234"; DELETE * USER FROM ID = "1";
방어방법
ex) 기본키가 StudentID + CourseID인 경우 course를 수강하지 않은 학생은 테이블에 데이터를 추가할 수 없음
갱신이상
ex) 어떤 학생의 전공이 컴퓨터 → 음악으로 바뀌는 경우 학생id 속성값이 해당 학생인 모든 튜플의 값을 바꿔야 함
삭제 이상
ex) 수강정보테이블에 studentID, department, courseID, Grade 정보가 있을 때 모든 학생이 수강 철회하면 StudentID, Department와 같은 학생의 정보도 함께 삭제됨
식별관계
기본키 or 복합키
가 자식테블의 기본키 or 복합키
의 구성원으로 전이되며 관계가 종속되는 것비식별관계