논리적 독립성 : 응용 프로그램과 데이터베이스 간의 독립
물리적 독립성 : 응용 프로그램과 물리적 장치(ex. 보조기억장치 etc.)간의 독립
cf) 종속성(Data Dependency) : 응용 프로그램의 구조가 데이터의 구조에 영향을 받음
DBMS를 사용한 요구 처리
SQL을 사용한 데이터로의 접근
👍 Good
👎 Bad
Index == 색인
DBMS(DataBase Management System)은 항상 정렬된 상태 유지
B-Tree
: 컬럼 값의 변형 없이 원래의 값을 이용해 인덱싱 하는 방법(일반적으로 사용되는 방법)
- 한 노드 당 자식 노드가 2개 이상 가능
- key 값을 이용해 데이터 찾음
- 데이터 검색 속도가 일정함
- 균형 트리
- 브랜치 노드에 key, data를 담을 수 있음
Hash
: 컬럼의 값으로 해시 값을 계산해 인덱싱
- 매우 빠른 검색 속도
- 값을 변형해 인덱싱하기에 값의 일부만으로 검색할 때에는 사용할 수 없음
- B-Tree
보다 Hash
가 효율적일 것 같으나 SELECT
의 질의 조건에 부등호(< , >)도 포함됨
→ hash에서 등호(=) 연산이 아닌 부등호(< , >) 연산의 경우 문제 발생
명령어 | 기능 |
---|---|
CREATE | 테이블 생성 |
ALTER | 테이블의 구조 수정 |
DROP | 테이블 삭제 |
RENAME | 테이블의 이름 변경 |
TRUNCATE | 테이블의 초기화 |
명령어 | 기능 |
---|---|
SELECT | 데이터베이스 내에서 데이터 검색 |
INSERT | 테이블에 데이터 추가 |
UPDATE | 테이블 내에 존재하는 데이터 수정 |
DELETE | 테이블에서 데이터 삭제 |
명령어 | 기능 |
---|---|
GRANT | 권한 정의 시 사용 |
REVOKE | 권한 삭제 시 사용 |
명령어 | 기능 |
---|---|
COMMIT | 모든 작업을 정상적으로 처리 |
ROLLBACK | 모든 작업을 다시 돌려 놓음 |
SAVEPOINT | Commit 전, 특정 시점까지만 반영 or Rollback |
Atomicity
(원자성) : 트랜잭션 중간에 어떤 문제가 발생하였을 때 아래의 상황에 따라 작업 내용의 반영 여부가 달라짐Consistency
(일관성) : 트랜잭션의 처리 결과는 항상 데이터의 일관성을 보장해야 함Isolation
(고립성) : 둘 이상의 트랜잭션이 동시에 실행되고 있을 경우, 각 트랜잭션은 서로의 간섭 없이 독립적으로 수행됨Durability
(지속성) : 트랜잭션이 정상적으로 종료된 뒤 영구적으로 데이터베이스 작업의 결과가 저장되어야 함Active
: 트랜잭션이 현재 진행 중인 상태Failed
: 트랜잭션이 실행되다가 오류가 발생해 중단된 상태Aborted
: 트랜잭션이 비정상 종료되어 RollBack이 수행된 상태Partially Committed
: 트랜잭션의 연산이 마지막까지 실행된 후 Commit되기 이전의 상태Commited
: 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태