DB03
Modification of the Database
Deletion
- 행이나 열을 제거하는 명령어이다.
- 기본적으로 from과 where절과 함꼐 쓰인다.
Insertion
- 행이나 열을 삽입하는 명령어이다.
- insert into table (select 쿼리) 형태로 쓰인다.
Updates
- 행이나 열을 수정하는 명령어이다.
- case statement와 함께 사용할 수 있다.
- Scalar subquery와 함꼐 쓰일 수 있다.
Join relations
- 2개의 relation을 받아서 어떤 결과 table을 돌려준다.
- join연산은 두 relation에서 cartesian-product의 결과에서 어떤 조건에 맞는 결과를 돌려준다.
Natural Join
- 두 relation에서 공통되는 속성의 열만을 relation으로 돌려준다.
- 연관없지만 이름이 같은 열이 있는 경우 부정확하게 연산될 수 있다.
Outer Join
- 정보의 손실을 피하는 조인 연산이다.
- Left Outer Join
- Right Outer Join
- Full Outer Join
Views
- 특정 사용자에게 특정 정보만을 보여주는 가상 테이블을 view라고 한다.
- create view를 통해 만들 수 있다.
- 다른 view를 이용해서 view를 만들 수도 있다.
- 특정 view 시스템은 물리적으로 저장할 수도 있겠끔 해준다. 이를 Materialized View라고 한다.
Update of a View
- insert into 명령어를 이용하여 수행할 수 있다.
- from 절에는 오직 하나의 데이터베이스 relation만이 포함된다.
- select절에서는 relation의 속성이름만 포함해야 한다. expression이나 aggregates나 distinct는 쓸 수 없다.
- select절에 포함되지 않은 속성들은 null로 처리된다.
- group by나 having절을 가질 수 없다.
Transactions
- transaction은 쿼리 뭉치 또는 일의 단위로 구성되어 있다.
- SQL은 transaction의 시작을 암묵적으로 명시해준다.
- transaction은 반드시 다음 2가지 중 하나로 끝나야 한다.
- Commit work: update된 정보가 영원히 database에 저장된다.
- Rollback work: update된 정보를 모두 update하기 전으로 변경한다.(실행 취소)
- 병행적 transaction으로 부터 격리된다.
무결성 제약조건
- 무결성 제약조건은 불의의 사고로부터 database를 지켜준다.
하나의 relation의 제약조건들
- not null : 값은 null이 될 수 없다.
- primary key : 인자로 넘어온 속성을 기본키로 지정해준다. 기본키는 null이 될 수 없다.
- unique : 인자로 넘어온 속성들을 후보키로 지정해준다. 후보키는 null이 될 수 있다.
- check : 특정 속성이 정의되어 있는지 확인한다.
JDBC
- java에서 database와 연결될 수 있게 해주는 JAVA API이다.
- JDBC를 이용하여 db와 통신하는 과정
- 커넥션을 연다.
- statement object를 생성한다.
- query를 보내고 결과를 fetch하기 위하여 statement object를 이용하여 query를 실행한다.
- 에러를 처리하기 위해 exception을 쓴다.
JDBC 기능들
- 데이터베이스와 연결
- SQL statement를 db로 전달
- 예외처리와 자원 관리
- query의 결과 회수
- statement를 준비
- 실행가능한 statement
- metadata 특징