데이터베이스 설계 순서
요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현
개념적 설계 ( 정보 모델링 개념화 ) |
- 현실 세계에 대한 인식을 추상적인 개념으로 표현. - 개념 스키마 모델링과 트랜잭션 모델링을 병행 수행. - E-R 다이어그램으로 작성 |
논리적 설계 ( 데이터 모델링 ) |
- 물리적 저장장치에 저장할 수 있도록 변호나하기 위해 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정 - 트랙잭션의 인터페이스를 설계 |
물리적 설계 ( 데이터 구조화 ) |
- 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정 - 데이터베이스 파일의 저장 구조 및 액세스 경로를 결정. - 데이터가 컴퓨터에 저장되는 방법을 묘사. |
데이터 모델의 구성 요소
개체 ( entity ) |
: 데이터베이스에 표현하려는 것, 현실 세계의 대상체 독립적으로 존재하거나 그 자체로서도 구별이 가능하다. 유일한 식별자에 의해 식별이가능 다른 개체와 하나 이상의 관계가 있다. |
속성 ( attribute ) |
: 데이터베이스를 구성하는 가장 작은 논리적 단위 개체를 구성하는 항목 / 개체의 특성을 기술 속성의 수를 디그리(차수) 라고 한다. |
관계 ( attribute ) |
: 개체와 개체 사이의 논리적인 연결을 의미 형태) 1:1(일대일) / 1:N(일대다) / N:M(다대다) |
E-R ( Entity-Relatation, 개체-관계) 모델
: 개념적 데이터 모델의 가장 대표적인 것으로 개체와 개체 간의 관계를 기본 요소로 이용.
[ 피터 첸 표기법 ]
관계형 데이터베이스의 Relation 구조
튜플 = 카디널리티 (세로) : 릴레이션을 구성하는 각각의 행
- 속성의 모임으로 구성
- 파일 구조에서 레코드와 같은 의미
속성 = 디그리 (가로) : 가장 작은 논리적 단위
- 데이터 항목 또는 데이터 필드에 해당
- 개체의 특성을 기술
도메인 : 하나의 속성이 취할 수 있는 같은 타입의 원자 값들의 집합
제약 조건
후보키 ( Candidate key ) | 기본키 ( Primary Key ) | 외래키 ( Foreign Key ) |
: 식별하기 위해 사용하는 속성들의 부분집합 = 기본키로 사용할 수 있는 속성들 | 후보키 중에서 특별히 선정된 주키로 중복된 값을 가질 수 없다. | 기본키를 참조하는 속성 또는 속성들의 집합 |
- 모든 릴레이션에는 반드시 하나 이상의 후보키가 존재 - 모든 튜플에 대해서 유일성과 최소성을 만족시켜야 함 |
- 기본키는 후보키의 성질을 갖는다 - 기본키는 null 값을 가질 수 없다. |
- 릴레이션 간에 참조 관계를 표현 |
무결성 | 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성 |
개체 무결성 | 기본 테이블의 기본키를 구성하는 어떤 속성도 null 값이나 중복값을 가질 수 없다는 규정 |
도메인 무결성 | 주어진 속성값이 정의된 도메인에 속한 값이어야 한다는 규정 |
참조 무결성 | 외래키 값은 null이거나 참조 릴레이션의 기본키 값과 동일해야 한다. (참조X한 외래키 값을 가질 수 없다.) |
관계대수 및 관계해석
관계대수
: 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어.
Select (시그마) : 수평연산
Project (파이) : 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 생성
(결과에 중복이 발생하면 중복 제거 됨 )
관계해석
: 관계해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지닌다.
- 질의어로 표현한다.
정규화
: 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개어 바람직한 스키마로 만들어 가는 과정
- 논리적 설계 단계에서 수행
- 제1정규형, 제2정규형, 제3정규형, 제4규형, BCNF형, 제4정규형, 제5정규형
: 차수가 높아질수록 만족시켜야 할 제약조건이 늘어난다.
목적)
- 안전성 및 무결성 유지
- 효과적인 검색 알고리즘을 생성
- 릴레이션을 재구성할 필요성을 줄임
- 데이터 모형의 단순화가 가능
- 배열 상태 검증이 가능
반정규화
: 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위
[ 테이블 통합 / 테이블 분할 / 중복 테이블 추가 / 중복 속성 추가 ]
시스템 카달로그
: 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
- 저장된 정보를 메타 데이터 라고 함.
- 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색할 수 있다.(수정X)
- DBMS가 스스로 생성하고 유지한다.
- 사용자가 SQL문을 실행시켜, 테이블/뷰/인덱스 등에 변화를 주면 시스템이 자동으로 갱신함.
- 데이터 디렉터리는 시스템만 접근할 수 있다.
인덱스 (INDEX)
데이터 레코드를 빠르게 접근하기 위해 <키, 값, 포인터> 쌍으로 구성되는 데이터 구조.
- 레코드가 저장된 물리적 구조에 접근하는 방법을 제공
- 인덱스의 개수를 최소로 하는 것이 효율적이다.
- 물리적 순서가 인덱스의 엔트리 순서와 일치하게 유지되도록 구성되는 인덱스 : 클러스터드 인덱스
뷰 (VIEW)
접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블.
- 저장장치 내에 물리적으로 존재하지 않는다.
- 기본 테이블과 같은 형태의 구조를 사용
- 데이터의 논리적 독립성을 제공
- 독립적인 인덱스를 가질 수 없다.
클러스터 (Cluster)
데이터 저장시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법.
특징)
- 조회속도는 향상 시키지만, 데이터 입력, 수정, 삭제에 대한 성능은 저하시킴.
- 데이터 분포도가 넓을수록 유리.
대상 테이블)
- 분포도가 넓은 테이블 / 대량의 범위를 자주 조회하는 테이블 / 자주 조인되어 사용되는 테이블 등
파티션 (partition)
대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것.
범위 분할 | 지정한 열의 값을 기준으로 분할 |
해시 분할 | 해시 함수를 적용한 결과 값에 따라 데이터를 분할 |
조합 분할 | 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용 ( 범위분할 → 해시함수 적용 : 재분할 ) |
분산 데이터베이스의 목표
위치 투명성 | DB의 실제 위치를 알 필요 없이 단지 DB의 논리적인 명칭만으로 액세스 |
중복 투명성 | 동일 data가 여러 곳에 중복되어 있더라고 사용자는 마치 하나의 데이터만 존재하는 것 처럼 사용 |
병행 투명성 | 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음 |
장애 투명성 | 장애에도 불구하고 트랜잭션을 정확하게 처리 |
암호화
개인키 암호 방식 = 비밀키 암호 방식
: 동일한 키로 데이터를 암호화하고 복호화.
- 비밀키는 제3자에게는 노출시키지 않고 DB사용 권한이 있는 사용자만 나누어 가진다.
[ 전위 기법, 대체 기법, 대수 기법, 합성 기법(DES, LUCIFER) ]
공개키 암호 방식
: 서로 다른 키로 데이터를 암호화하고 복호화.
- 암호화 시 사용하는 키는 DB 사용자에게 공개, 복호화 시 키는 관리자가 비밀리에 관리.
[ RSA ]
데이터베이스 보안 - 접근 통제
신분 기반 | IBP | 단일주체 | 최소권한 |
GBP | 복수주체 | 역할기반 (주체의 역할 근거) | |
규칙 기반 | MCP | 기밀분류 관련 | |
CBP | 기밀 허가 |
스토리지
: 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술
[ DAS / NAS / SAN ]
DAS : 서버-저장장치를 전용 케이블로 직접 연결하는 방식
NAS : 서버와 저장장치를 네트워크를 통해 연결하는 방식
SAN : 서버-저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식.
( FC<파이버 채널>스위치를 이용하여 네트워크 구성 )
DDL / DML / DCL
DDL (데이터 정의어)
: 정의하거나 변경 또는 삭제할 때 사용하는 언어.
CREATE | CREATE VIEW / CREATE INDEX |
ALTER | ALTER TABLE |
DROP |
DML (데이터 조작어)
: 질의어를 통하여 저장된 데이터를 실질적으로 처리하는 데 사용되는 언어
SELECT | SELECT 범위 FROM 테이블명 |
INSERT | INSERT INTO 테이블명 |
DELETE | DELETE FROM 테이블명 ( 모든 레코드 삭제 시, WHERE절 생략 → 테이블 구조는 남아있으므로 DROP X ) |
UPDATE | UPDATE 테이블명 SET 속성명=데이터 |
DCL (데이터 제어어)
: 데이터베이스 관리자가 데이터 관리를 목적으로 사용.
COMMIT | |
ROLLBACK | |
GRANT | GRANT 권한_리스트 ON 개체 TO 사용자 [WITH GRANT OPTION] |
REVOKE | 권한취소 : REVOKE 권한_리스트 ON 개체 FROM 사용자 |
CASCADE : 참조 테이블의 튜블이 삭제되면 기본 테이블의 관련 튜플도 모두 삭제됨.
프로시져 ( Procedure ) / 트리거 ( Trigger )
DECLARE (필수) BEGIN (필수) END (필수) |
사용자 정의 함수
- DML문의 호출에 의해 실행 됨.6
- 예약어 RETURN을 통해 값을 반환하므로 출력 파라미터가 없다.
- SELECT를 통한 조회만 할 수 있다.
- DML문에서 반환값을 활용하기 위한 용도로 사용
'IT Programmer > Certification (정보처리기사)' 카테고리의 다른 글
[정보처리기사 필기 대비] 5과목 정보시스템 구축 관리 (0) | 2020.08.21 |
---|---|
[정보처리기사 필기 대비] 4과목 프로그래밍 언어 활용 (0) | 2020.08.21 |
[정보처리기사 필기 대비] 2과목 소프트웨어 개발 (0) | 2020.08.19 |
[정보처리기사 필기 대비] 1과목 소프트웨어 설계 (0) | 2020.08.17 |
[4과목_프로그래밍 언어 활용] 오답노트2 (0) | 2020.08.17 |