설계
구현 DBMS DDL 스키마로 작성 (SQL)
운영
감시 및 개선- 중간에 문제가 생기거나 데이터가 늘어나서 성능변화가 생기면 수행함
무결성
일관성
회복
보안
효율성
데이터베이스 성장
정보의 내용과 처리 요구조건의 수집
범 기관적 경영목표와 제약조건의 식별
공식적인 요구조건 명세의 작성
1) 뷰 통합방법 – 하향식 방법
2) 애트리뷰트 합성 방법 – 상향식 방법
위의 작업들은 추상화 일반화 일반화를 통해 이루어진다
개체간의 계승관계가 있을 수 있고, 이를 ER로 표현한다
처리중심 설계이고, 동적인 설계이다.
응용을 위한 트랙잭션을 식별하고 명세, I/O의 기능적 행태를 명세한다.
ER 모델 개념적 스키마로부터 목표 DBMS가 처리할 수 있는 논리적 스키마를 생성
ER모델을 독립된 릴레이션 관계를 표현
보이는것처럼 er 모델에서 서로 관계가 있는것들을 묶어서 표현하였다.
하지만 하지만 지도, 혹은 강의는 1대 N 관계임
따라서 다음과 같이 학생에 교수번호를 넣거나, 교수에 학번을 넣어서 관계를 표현 할 수 있음.
만약 교수와 학생관 지도 릴레이션을 나타내려면 교수에 학번을 추가한다. 이때는 교수는 학생 1명과 관계를 맺는다 n대 1
저장레코드의 양식 설계
데이터를 클러스터링 하는게 좋다
클러스터링이란 데이터가 한곳에 뭉쳐있는것을 말한다.
옵션 : 여러 유형의 인덱싱 기법, 디스크상의 레코드 집중화, 포인터, 해싱 등
고려사항 : 응답시간, 저장공간의 효율화, 트랜잭션 처리도
물리적인 위치가 바뀌더라도 여전히 가르킬수는 있음
초단 트랜잭션을 높일 수 있는 방향으로 access path 결정
직접 접근 저장 (특정위치에 직접 저장)
임의 접근 시간 = seek tiem + rotational delay + block transer time
약 10~30 : 메민 메모리 접근시간에 비해 매우 느림
대량전송률 – 연속적인 블록을 전송하는 시간
디스크 접근 횟수의 최소화가 필요하고 이를 고려해서 저장해야함
섹터단위로 읽는 것이 아니라 섹터를 묶어서 블록/페이지/클러스터 단위로 만드 후 접근함
학생, 교수, 과목 같은 테이블들을 파일로 디스크에 저장, 파일단위로 읽어냄
파일관리자가 릴레이션별로 파일을 저장함 (어떤 파일이 어떤 페이지에 있는지 알고있음)
파일
달력과같은 페이지가 생기고, 그 안에 데이터가 저장된다.
하나의 레코드는 하나의 페이지에 저장된다 가정한다
0번에는 메타데이터, 사용되지 않는 공간은 자유공간 page set 이다.
삭제하고나면 자유공간이 된다
그 후 추가는 자유공간 아무데나 넣어도 된다. 페이지헤드에 포인터가 있는 경우 현제페이지 번호 || 다음페이지번호를 넣는다.
한 페이지의 크기는 1 2 4 8 16 등이 일반적이다
한페이지안에는 여러 개의 데이터가 들어간다
레코드 하나의 크기가 수kb가 될 수도 있다. (이미지, 비디오)
이때 LOB를 지원한다
시작 바이트에 각 레코드의 크기를 더해서 다음 레코드의 위치를 계산할 수 있음.
실제 계산에서는 다음과 같이 수행된다.
1개의 페이지를 dbms에서 읽으려고 할 때 빠른 읽기를 위해서 buffer를 만들어둠.
DISK에 저장되어 있는 것을 복사해서 메모리에 넣고 buffer에서 반환함 (파일관리자안에 buffer관리자가 존재함)
다음과 같은 페이지를 슬롯페이지라고 한다. 모든 페이지는 다음과 같은 형태이며 RID를 통해 접근한다
RID는 두 개의 숫자로 이루어져있는데, 앞에 숫자는 페이지번호, 뒤의 숫자는 슬롯번호이다. 각 슬롯은 특정 레코드를 지칭하고 있다.
다음과 같은 형태가 사용되는것은 레코드의 길이가 서로 다 다르기 때문에 더 빠르게 접근하기 위해서이다.