1. DB 사용자는 모든 데이터에 자유롭게 액세스 할 수 있는 것은 아님,
데이터베이스의 데이터 중 접근 권한이 있는 부분에 대해서만 액세스한다.
2. 내용에 의한 참조 : 데이터베이스 내에 있는 데이터 레코드들은
주소가 아닌 내용에 의해 참조된다
3. 종속성 : 데이터 간의 종속성을 유지하지 않는다
- 종속성이란? 파일 시스템이 데이터의 물리적 논리적 구조가 변경되면 응용프로그램도 변경해야 하는 것,
-독립성이란? 종속성의 반대, 데이터베이스는 데이터 구조가 변경되어도 응용 프로그램을 변경하지 않아도 된다
데이터베이스의 궁극적인 목적은 데이터 독립성을 제공하는 것이다.
4. 데이터베이스는 중복을 전혀 허용하는건 아니고 최소한의 중복을 허용한다(접근속도 향상)
5. 데이터베이스 관리 시스템의 기능
- 정의 기능: 다양한 응용 프로그램과 데이터베이스가 서로 인터페이스 할 수 있는 방법을 제공한다
- 조작 기능: 사용자와 데이터베이스 사이의 인터페이스를 위한 수단을 제공한다
- 제어 기능 : 항상 정확성과 안전성을 유지한다
6. 데이터 언어
- DDL(데이터 정의어) : CREATE(구조 생성), ALTER(구조 변경), DROP(구조 삭제) --> 시스템 카탈로그에 등록한다
- DML(데이터 조작어) : INSERT(값 삽입), .UPDATE(값 변경), DELETE(값 삭제), SELECT(값 검색)
- DCL(데이터 제어어) : GRANT(권한 부여), REVOKE(권한 해제), COMMIT, ROLLBACK
7. 스키마
데이터베이스의 구조에 대한 정의와 이에 대한 제약조건을 기술한 것으로 컴파일되어 데이터 사전(시스템 카탈로그)에 저장된다.
- 외부 스키마 : 가장 바깥쪽 스키마로 전체 데이터 중 사용자가 사용하는 한 부분에서 본 구조, 여러개 존재 가능, 서브스키마, 뷰라고도 한다
- 개념 스키마 : 논리적 관점에서 본 구조로 범 기관적 입장에서 데이터베이스를 정의한 것으로 전체적인 데이터 구조, 한 개만 존재한다. 데이터베이스 접근 권한, 보안 정책, 무결성 규칙에 관한 명세도 포함하며 단순히 스키마라고도 한다
- 내부 스키마 : 개념 스키마에 대한 저장 구조를 정의한 것으로 물리적 저장장치 관점
개념스키마와 외부 스키마 사이에는 논리적 데이터 독립성이,
개념스키마와 내부 스키마 사이에는 물리적 데이터 독립성이 제공된다
8. 데이터베이스 설계
- 요구조건 분석 단계 (데이터 및 처리 요구조건)
- 개념적 설계 단계(DBMS 독립적 개념스키마 설계, 트랜잭션 모델링)
- 논리적 설계 단계(목표 DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스 설계)
- 물리적 설계 단계(목표 DBMS에 맞는 물리적 구조 설계, 트랜잭션 세부 설계)
- 구현 단계(목표 DBMS DDL로 스키마 작성, 트랜잭션 작성)
9. 인덱스
- 기본 키의 경우, 자동으로 인덱스가 생성되며 인덱스 구축 시 두개 이상의 칼럼을 결합하여 인덱스를 생성할 수 있다.
- SQL 명령문의 검색 결과는 인덱스 사용 여부와 관계없이 동일하며 인덱스는 검색 속도에 영향을 미친다
- 모든 칼럼에 대해 인덱스를 생성하지 않는다. 가능한 검색에 자주 사용되거나 조인에 자주 사용되며, 자주 변경되지 않는 속성에 대해 인덱스를 생성한다
- 인덱스를 이용하여 빠른 검색이 가능한 것은 데이터를 순차적으로 접근하지 않고 인덱스를 통해 접근하기 때문이다.
10. 데이터 모델
개념적 데이터 모델은 개체 관계도(ERD)이다.
논리적 데이터 모델은 계층형 데이터 모델, 관계 데이터 모델, 네트워크 데이터 모델, 망형, 객체지향형 등이 포함된다
11. 관계 데이터 모델링
- 릴레이션 : 정보 저장의 기본 형태가 2차원 구조의 테이블
- 투플 : 테이블의 한 행을 구성하는 속성들의 집합
- 애트리뷰트(속성) : 테이블의 각 열을 의미
- 도메인 : 애트리뷰트가 취할 수 있는 값들의 집합
- 차수(degree) : 애트리뷰트의 개수
- 기수(cardinality) : 투플의 개수
릴레이션의 특성
- 릴레이션의 투플들은 모두 상이하다
- 릴레이션에서 애트리뷰트들 간의 순서는 의미가 없다
- 한 릴레이션에 포함된 투플 사이에는 순서가 없다
- 애트리뷰트는 원자값으로서 분해가 불가능하다
- 속성의 명칭은 유일하나 속성을 구성하는 값은 같을 수가 있다
- 데이터베이스 스키마는 정적이고, 인스턴스는 동적이다
무결성 제약 조건
개체 무결성 제약 조건 : 릴레이션의 기본키를 구성하는 어떤 애트리뷰트도 null일수 없고 중복 입력되지 않는다
---> 기본키는 중복되면 안된다 (릴레이션의 투플을 유일하게 식별하게 위해 사용하는 것이 개체무결성이다)
나이가 같은 동명이인이 있을때 (이름, 나이)는 후보키가 될 수 없다. 유일성과 최소성을 만족할 수 없기 때문이다
참조 무결성 제약조건 : 외래키 값은 null이거나 참조 릴레이션의 기본키와 같아야 한다
---> 참조되는 테이블은 값 변경 가능지만 참조하는 테이블은 불가능
- 참조하는 릴레이션에서 투플의 삭제는 제약 조건에 위배되지 않으나 참조되는 릴레이션에서 투플의 삭제는 제약 조건에 위배될 수 있다.
- 외래키는 기본키가 될 수 있으며, 동일한 릴레이션에도 존재할 수 있다.
- 참조한 외래키와 참조된 기본키는 반드시 동일한 도메인을 가져야 한다.
도메인 무결성 제약 조건: 특정 속성의 값은 그 속성이 정의한 도메인에 속하 낙ㅄ이어야 한다.
12. 뷰(VIEW)
- 하나 이상의 테이블로부터 유도되어 만들어진 가상 테이블로 물리적으로 존재하지 않는다
- 뷰의 정의는 변경할 수 없다. 삭제한 후 다시 생성한다
- 뷰는 삽입, 갱신, 삭제 연산에 제약이 있다.
- 뷰 위에 다른 뷰를 정의할 수 있다
- 뷰가 정의된 테이블이 삭제되면 뷰도 함께 삭제된다
- 부는 논리적으로 구현되는 가상 테이블이다
- DBA는 보안적인 측면에서 뷰를 활용할 수 있다.
- 뷰의 생성은 CREATE VIEW를 사용한다
- 뷰의 삭제는 DROP VIEW를 사용한다.
13. 질의 최적화
-질의 최적화에 사용되는 경험적 규칙
- 추출(project) 연산은 일찍 수행한다
- 연속적인 프로젝트 연산은 마지막 것만을 실행하면 된다
- 조인(join)연산은 가능한 한 나중에 수행한다
- 선택(select) 연산은 가능한 한 일찍 수행한다
- 셀렉트 연산은 교환적이다
- 셀렉트 연산은 가능하면 질의 트리 가장 아래로 보낸다
- 가장 제한적인 선택 연산은 가능한 먼저 실행되도록 질의트리에서 하위 노드로 배치한다
- 중간 결과를 적게 산출하면서 빠른 시간에 결과를 줄 수 있어야 한다
14. 2단계 로킹 규약
데이터베이스는 원자성이 가장 중요하며
지원하기 위해 commit과 rollback 연산이 있다
원자성을 보장 -> 2단계 완료 규약
갱신 연산과 관련된 모든 데이터베이스 시스템으로부터
전달된 강제 쓰기에 대한 응답 중 하나라도 not OK인 경우 rollback으로 결정,
응답이 모두 ok일 경우 commit으로 결정
직렬성을 보장 -> 2단계 로킹 규약 (확장은 unlock없음/축소는 lock없음)
ERD, 관계 대수, 정규화, 회복과 동시성제어, SQL 부분 공부하기
'컴퓨터 일반 > 데이터베이스론' 카테고리의 다른 글
회복과 동시성제어 (0) | 2024.10.15 |
---|---|
정규화 (0) | 2024.10.15 |
관계 대수 정리하기 (4) | 2024.10.15 |