21년 1회
-
스키마
- 개념 스키마 : 사용자,데이터베이스 관리자 관점의 스키마. 실제로 어떤 데이터가 저장되었으며, 데이터 간의 관계는 어떻게 되는지 정의하는 스키마. 1개만 존재, 접근 권한, 보안 및 무결성 등 정의 포함
- 내부 스키마 : 저장장치와 DB설계자, 개발자 관점의 스키마. 개념 스키마를 물리적 저장장치에 구현하는 방법을 정의하는데 사용. 물리적 구조 및 내부 레코드의 물리적 순서 표현
- 외부 스키마 : 사용자 관점의 스키마. 사용자 또는 프로그램 입장에서 논리적 구조로 여러개가 존재
-
데이터 베이스 설계
- 개념적 설계 : 개념 스키마 모델링, 트렌젝션 모델링, 독립적인 개념 스키마 설계, ERD
- 논리적 설계 : 트렌잭션 인터페이스 설계, 스키마 평가 및 정제, 목표 DBMS에 맞는 논리스키마 설계, 논리적구조로 데이터 모델화
- 물리적 설계 : 저장구조 및 액세스 경로 설정, 레코드 집중의 분석,설계, 저장 레코드 양식 설계
-
트렌잭션 (ACID)
- 원자성(atomicity)
- 일관성(consistency)
- 격리성(isolation)
- 영속성(durability)
21 년 3회
-
데이터베이스의 무결성 규정
개체 무결성 - 기본키는 null 값이 될 수 없음
참조 무결성 - 외래키는 참조할 수 없는 값을 가질 수 없음
도메인 무결성 - 특정 속성값은 그 속성이 정의된 도메인에 속한 값이어야 함
키 무결성 - 릴레이션에는 최소한 하나의 키가 존재해야 함
-
트랜잭션 (ACID)
원자성, 일관성, 독립성, 영속성
- 뷰 : 하나 이상의 기본 테이블로부터 유도되어 만들어지는 가상 테이블
- 튜플 : 관계데이터 구조 테이블에서 행
- 카디널리티 : 튜플의 개수
-
데이터베이스 설계
개념적 설계, 논리적 설계, 물리적 설계
-
슈퍼키 : 유일성은 만족, 최소성은 만족 x
-
병행제어 기법
로킹
2단계 로킹 규약
타임스탬프
낙관적 병행제어
다중 버전 병행제어
-> 병행제어를 하지 않으면
-
관계 대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어
관계 해석 : 비절차적인 언어
-
데이터의 중복으로 인해 관계연산을 처리할때 예기치 못한 곤란한 현상 : 이상현상
→ 정규화 필요
-
데이터베이스 언어
정의어 : CREATE, DROP, ALTER
조작어 : SELECT, INSERT, UPDATE, DELETE
제어어 : COMMIT, ROLLBACK, GRANT, REVOKE
21년 2회
-
병렬 데이터베이스 환경 중 수평분할 (파티션)
- 라운드-로빈 : 순서대로 분할
- 범위 분할 : 연도 범위로 분할
- 예측 분할 : 존재하지 않음
- 해시 분할 : 해시함수에 나오는 값에 따라 분할
- 합성 분할 : 여러 방법들 합성해서 분할
- 목록 분할 : 그룹화해서 분할
-
시스템 카탈로그 : 데이터베이스가 자기가 스스로 만드는 것 (사용자가 만드는 객체들을 관리하기 위해)
- 데이터 사전, 저장된 내용을 메타데이터 라고도 함
- 데이터베이스에 저장된 모든 개체들에 대한 정의나 명세에 대한 정보가 수록되어 있는 시스템 테이블 - 종류
- 사용자와 데이터베이스 관리시스템의 접근(은) 가능
- 사용자의 직접 갱신은 허용 x
-
Select *
from table
where (조건)
And/Or
Group by (기준 컬럼)
having sum(*)>100
order by (컬럼) ASC/DESC
- distinct 는 select 문과 컬럼 사이에 사용
-
View 삭제할 때 사용하는 명령
- 데이터베이스 언어
- 정의어(DDL) : CREATE, DROP, ALTER (view 는 alter 사용 불가)
- 조작어(DML) : SELECT, INSERT, UPDATE, DELETE
- 제어어(DCL) : COMMIT, ROLLBACK, SAVEPOINT, GRANT(to, 권한 줄 때), REVOKE(from, 권한 뺏을 때)
- 집합연산자
- INTERSECT 교집합, 양쪽 모두에서 포함된 행을 검색
- UNION : 중복을 제거한 결과의 합을 검색
- UNION ALL : 양쪽 모두에서 포함된 행을 검색
- MINUS : 첫 번째 검색 결과에서 두번째 검색 결과를 제외한 나머지를 검색
- 데이터베이스 설계 시 물리적 설계 단계에서 수행하는 사항이 아닌것은?
- 레코드 집중의 분석 및 설계
- 접근 경로 설계
- 저장 레코드의 양식 설계
목표 DBMS - 논리설계 (관계DB인지 등등)
특정 DBMS - 물리설계 (오라클인지, mysql 인지 등등)
데이터베이스 설계
-
개념적 설계
- 현실세계를 데이터 관점으로 추상화하는 단계, ER다이어그램
-
논리적 설계
- 특정 데이터 모델(계층, 관계, 객체지향)을 적용한 설계
- 사용할 DBMS 특성을 고려한 설계, 정규화, 트랜잭션 인터페이스 설계, 릴레이션 스키마
-
물리적 설계
- 물리적 구조와, 저장구조, 분산형태, 데이터특징, 인덱스
- 오브젝트, 접근방법, 트랜잭션 분석, 인덱스, 뷰, 용량 설계
- 물리적 스키마
-
무결성 제약조건
- 개체 무결성 : 기본키는 null 값이 될 수 없음 (ex. 같은 주민번호 가진 사람이 있으면 안 됨, 식별해야 하므로)
- 참조 무결성 : 외래키는 참조할 수 없는 값을 가질 수 없음 (cascade : 연쇄삭제, restricted : 삭제못함)
- 도메인 무결성 : 특정 속성값은 그 속성이 정의된 도메인에 속한 값이어야 함 (ex. 1~6학년까지 있는데 7학년이 있으면 안됨)
- 키 무결성 : 릴레이션에는 최소한 하나의 키가 존재해야 함
- 병행제어 기법 : 여러사람이 데이터베이스를 제어하기 때문에 병행제어 필요
- 로킹 기법 : 잠그는 것
- 2단계 로킹 규약 : 확장(키를 잠글 생각 밖에 없는), 축소(키를 해제하는 생각 밖에 없는)
- 타임 스탬프 기법
- 낙관적 병행제어 : 알아서 잘 하겠지
- 다중 버전 기법 : 타임 스탬프 여러개 쓰는 것
병행제어를 하지 않으면
- 관계대수 연산자
- 순수 관계 연산자 : select, project, join, division
- 일반 집합 연산자 : 합집합, 교집합, 차집합, 카티션 프로덕트
- 관계형 데이터 모델의 릴레이션
- 모든 속성 값은 원자 값을 갖는다.
- 한 릴레이션에 포함된 튜플은 모두 상이하다.
- 한 릴레이션에 포함된 튜플 사이에는 순서가 없다.
- 한 릴레이션을 구성하는 속성 사이에는 순서가 존재한다. (x)
-
카티션 프로덕트 (조인)
차수는 더하고, 카디널리티는 곱하기
-
속성에 대한 설명
- 속성은 객체의 특성을 기술
- 속성은 데이터베이스를 구성하는 가장 작은 논리적 단위
- 속성은 파일 구조상 데이터 항목 또는 데이터 필드에 해당된다.
- 속성의 수는 차수, 튜플의 개수가 카디널리티
-
insert into table명 (a,b,c 속성) values (값)
delete from table명 where ~
-
차수의 의미
= 컬럼의 수
= 어트리뷰트의 수
= 속성의 수
-
ER 그래픽 표현
- 개체타입 - 사각형
- 속성 - 원형
- 관계 타입 - 마름모
- 연결 - 선
- 트랜잭션 연산
- commit 연산 : 트랜잭션의 결과를 반영
- rollback 연산 : 트랜잭션 실행이 실패하였음을 알리는 연산자, 수행한 결과를 원래 상태로 원상 복귀시킴
트랜잭션의 특성
- 원자성 : 모두 반영되거나 모두 반영되지 않아야 한다
- 일관성 : 트랜잭션 완료 후에 데이터들이 일관적으로 유지되어야 한다
- 독립성/격리성 : 어떤 트랜잭션이 실행 되는 중에 다른 트랜잭션이 영향 미치면 안된다
- 영속성 : 트랜잭션의 결과는 영구히 보존되어야 한다.
- 종속성에 대한 엄밀한 고려 없이 잘못 설계된 데이터베이스에서는 데이터 처리 연산 수행시 이상현상
- 제3정규형에서 BCNF 가 되기 위한 조건
개념적 설계를 한 경우 여러 이상 현상들이 발생 할 수 있음 → 정규화 시켜야 함