1. 데이터베이스
구분 |
내용 |
출제경향 |
내점수 |
문제풀이결과 |
오답번호 | ||
1강 |
데이터베이스 정의 |
3 % |
|
|
/ |
|
|
2강 |
DBMS, 스키마, 데이터언어, DBA |
11 % |
|
|
/ |
|
|
3강 |
DB설계, 데이터모델, ER모델 |
15 % |
|
|
/ |
|
|
4강 |
논리적데이터모델, 관계형 DB |
12 % |
|
|
/ |
|
|
5강 |
관계대수, 관계해석, 정규화 |
8 % |
|
|
/ |
|
|
6강 |
SQL, 뷰, 시스템카탈로그 |
16 % |
|
|
/ |
|
|
7강 |
내장SQL, 고급데이터베이스 |
15 % |
|
|
/ |
|
|
8강 |
자료구조(선형/비선형구조) |
12 % |
|
|
/ |
|
|
9강 |
자료구조(정렬/검색) |
5 % |
|
|
/ |
|
|
10강 |
자료구조(파일편성) |
3 % |
|
|
/ |
|
|
♣ 중요 내용 정리
1강 - 데이터베이스 정의
1. 데이터베이스
정의 : 특정 조직이 업무 수행하는 데 필요한 관련성 있는 자료들의 집합체
- 통합된 데이터 (Integrated data) : 자료의 중복을 배제 또는 최소화 한 데이터 집합
- 저장된 데이터 (Stored data) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터의 집합
- 운영 데이터 (Operational data) : 업무수행에 있어 없어서는 안 될 반드시 필요한 데이터의 집합
- 공용 데이터 (Shared data) : 여러 응용 시스템들이 공동으로 소유하고 유지하는 데이터의 집합
도입 배경 : 데이터 무결성 위배 가능성 높은 파일 시스템의 문제점(중복성, 종속성)을 해결
특징 :
1) 실시간 접근
2) 계속적인 변화
3) 공용
4) 내용에 의한 참조
구성 : 사용자 - 데이터베이스 관리 시스템 - 데이터베이스
2. 정보시스템
정의 : 한 조직체의 데이터를 바탕으로 의사결정에 필요한 정보를 추출하고 생성하는 시스템
제어
입력 ---> 처리 ---> 출력
[Data] [Infomation]
피드백
종류 :
1) 일괄 처리 시스템 ( Batch Processiong System )
- 일정시간 또는 일정량의 데이터를 한꺼번에 모아서 처리(시스템 중심)
- 각 트랜잭션 당 처리비용이 적게 든다.
- 예) 급여 계산, 회계마감업무, 세무처리 등
2) 온라인 실시간 처리 시스템 ( Real-time Processing System )
- 데이터가 발생하는 즉시 처리하여 결과를 산출하도록 하는 시스템 (사용자중심)
- 예) 기차 예매, 티켓 예매, 은행 업무 등
3) 분산 처리 시스템
- 논리적으로 하나로 연결되어 있는 것처럼 보여져서 처리되는 시스템
3. 데이터웨어하우스
: 기간 업무 시스템에서 추출되어 새로이 생성된 데이터베이스로서 의사결정 자원 시스템을 지원하는
주체적, 통합적, 시간적 데이터의 집합체
2강 - DBMS, 스키마, 데이터언어, DBA
1. DBMS
- 정의 : 응용프로그램(사용자)와 데이터베이스 사이에서 사용자의 요구에 따라 DB생성, 관리해주는 SW
: 응용프로그램과 데이터베이스 사이에서 중재자
- 필수 기능
: 정의 - 데이터베이스 자료형, 데이터 구조, 이용방법, 제약조건을 명시
- 데이터의 논리적 구조와 물리적구조 사이의 변환이 가능하도록 두 구조 사이의 사상을 명세
: 조작 - 검색, 저장, 삭제, 갱신 기능
: 제어 - 데이터의 무결성, 보안, 정확성, 병행수행, 안전성 유지
- 장점
: 독립성 보장, 중복 없어짐
: 공동으로 자료 이용
: 데이터 무결성 유지
: 데이터 실시간 처리
- 단점
: 전문가가 부족
: 전산화 비용이 증가
: Access 시 오버헤드 발생
: 시스템이 복잡 ( 예비와 회복 기법이 어려움, 자료처리 복잡 )
2. 스키마 ( Schema )
- 정의 : 데이터베이스의 구조와 제약조건을 명시
- 특징
: 데이터 사전(시스템 카탈로그)에 저장
: 데이터베이스의 구조에 대한 정의
: 다른 이름으로 메타데이터라고 한다
- 스키마 3계층
1) 외부스키마 : 서브 스키마, 사용자 뷰
2) 개념스키마 : 스키마, 전체적인 뷰, 범기관적, 총괄적 입장
: 전체적인 논리적 구조
: 개체간의 관계와 제약 조건을 나타내고 데이터베이스의 접근 권한, 보안 및 무결성 규칙 명세화
3) 내부스키마 : 실제 데이터를 저장
: 전체적인 물리적 구조
: DBA 관리
3. DB 언어, DBA
- DB 언어 종류
1) 데이터 정의어 ( DDL : Data Definition Language )
: 데이터의 형태, 구조, 데이터베이스의 저장에 관한 내용 정의 및 변경
-> 사용자와 데이터베이스간의 인터페이스 제공
2) 데이터 조작어 ( DML : Data Manipulation Language )
: 사용자의 요구에 따라 검색, 갱신, 삽입, 삭제 등을 지원하는 기능
-> 사용자와 DBMS 간의 인터페이스 제공
3) 데이터 제어어 ( DCL : Data Control Language )
: 정확성과 안정성을 유지하는 기능 (무결성 유지, 보안, 권한, 병행수행제어, 회복)
4) 데이터 질의어 ( DQL : Data Query Language )
: 터미널에서 주로 이용하는 비절차적 데이터 조작어
- DBA 의 역할
: 데이터베이스 시스템의 모든 관리와 운영에 대한 책임을 지고 있는 사람이나 그룹. DDL, DCL 사용
- 스키마 정의
- 보안 정책과 무결성(Integrity) 유지
- 예비조치와 회복에 대한 절차수립
- 데이터베이스 설계와 운영
- 사용자의 요구와 불평을 청취하고 해결
- 시스템 감시 및 성능 분석 (사용자 요구변화 분석, 장비성능 감시, 데이터 사용 추세 분석)
- DBMS 관리
- 데이터베이스 구조 관리
- 저장 구조와 액세스 방법 정의
- 데이터베이스의 이상 현상 감시
: 역할이 아닌것!(주의!!!)
- 응용프로그램개발
- 주로 데이터조작어(DML)을 이용
- 데이터베이스 자원활용(사용) 및 사용자의 인터페이스 제공
- 데이터를 저장하고 저장된 데이터를 사용
- 사용자 통제 및 감시
- 정보추출을 위한 데이터베이스 접근
3강 - DB설계, 데이터모델, ER모델
1. 데이터베이스 설계 ( 개념적 설계 - 논리적 설계 - 물리적 설계 )
: 현실세계의 업무적인 프로세스를 컴퓨터 세계로 데이터베이스화 하기 위한 과정
- 설계 순서
: 요구조건분석 - 개념적설계 - 논리적설계 - 물리적설계 - 구현 - 운영 - 감시 및 개선
2. 데이터 모델
: 현실 세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술하는 개념적인 도구이다.
- 구성요소
1) 구조 ( Structure ) : 개체들 간의 관계
2) 연산 (Operation ) : 데이터 처리하는 방법
3) 제약조건 ( Constraint ) : 실제 데이터의 논리적인 제약조건
3. ER ( Entity-Realtionship, 개체관계도 ) 모델
: 개체와 개체간의 관계를 도식화 한다.
- 1976년 P.Chen에 의해 처음으로 제안
4강. 논리적, 관계적 데이터모델
1. 논리적 데이터 모델의 종류
종류 |
구조 |
관계표현 |
특징 |
관계형 |
표(=Table =Relation) |
키(기본키, 외래키) 1:1, 1:N, N:M |
대표적언어 : SQL 가장 많이 사용되는 데이터모델 |
계층형 |
트리 |
부모 - 자식 관계(족보) N:M 직접 표현 불가 |
사이클이 허용되지 않음 개체 삭제 시 연쇄 삭제 발생 |
네트워크형 |
그래프, 망 |
오너 - 멤버 관계 N:M 직접 표현 불가 |
사이클 허용 상/하위 개체가 복수 대응 |
2. 관계형 데이터베이스의 릴레이션 구조
3. 릴레이션 특징
- 한 릴레이션에 정의된 튜플들은 모두 다르다.
- 한 릴레이션에 정의된 튜플들은 순서에 무관하다.
- 튜플들은 시간에 따라 변한다.
- 릴레이션 스키마를 구성하는 속성들도 순서에 무관하다.
- 속성의 명칭은 유일해야 하지만, 속성의 값은 동일해도 된다.
- 속성은 더 이상 쪼갤 수 없는 원자값으로 구성된다.
- 릴레이션을 구성하는 튜플을 유일하게 식별하기 위한 속성들의 부분집합을 키로 설정한다.
4. 키 ( Key )
- 슈퍼키 : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키를 말한다. (유일성)
- 후보키 : 한 릴레이션 내에 있는 모든 튜플들을 유일하여 식별할 수 있는 하나 또는 몇 개의 속성
( 최소 슈퍼키 : 유일성 + 최소성 )
- 기본키 : 후보키 중에 선택한 키 ( 중복되어서는 안되며, Null값을 가질 수 없다. )
- 대체키 : 후보키 중에서 기본키를 제외한 속성들
- 외래키 : 어떤 R에서 다른 R을 참조할 때 참조 기준이 되는 속성,참조하고자 하는 R의 기본키와 동일
5. 제약조건(무결성)
- 참조 무결성 : 릴레이션은 참조할 수 없는 외래키값을 가질 수 없음을 의미하는 제약 조건
- 개체 무결성 : 한 릴레이션의 기본키를 구성하는 어떠한 속성 값도 널값이나 중복 값을 가질 수 없다.
- 도메인 무결성 : 각 속성 값은 반드시 정의된 도메인에 속한 값이어야 한다.
5강. 정규화, 관계데이터연산, 관계대수
1. 정규화 ( Normalization )
: 정규화를 하는 이유는 데이터의 중복을 방지하고 보다 효율적으로 데이터를 저장하기 위해
(릴레이션 분리 -> 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것)
- 단점 : 연산 시간이 증가됨
- 정규화의 종류
1) 제 1정규형 (1NF)
: 반복 되는 속성을 제거한 뒤 모든 속성이 원자 도메인 만으로 되어있는 정규형
* 제 1정규형에 위배되는 테이블 ( 중복발생 -> 공간 낭비, 이상 발생 -> 무결성 위배 가능 )
* 이상 ( anomaly )
: 릴레이션에서 일부 속성들의 종속으로 인해 데이터의 중복이 발행하여 테이블 조작 시 불일치가 발생하는 것
1) 갱신이상 : 반복된 데이터 중에 일부만 수정하면 데이터의 불일치가 발생
2) 삽입이상 : 불필요한 정보를 함께 저장하지 않고는 어떤 정보를 저장하는 것이 불가능
3) 삭제이상 : 유용한 정보를 함께 삭제하지 않고는 어떤 정보를 삭제하는 것이 불가능
2) 제 2정규형 (2NF)
: 제 1정규형이고, 부분함수적 종속을 제거하여 완전 함수적 종속을 만족하는 정규형
- 함수적 종속
: 속성값 X를 통해서 항상 Y의 속성값을 알아낼 수 있을때 X -> Y 로 표기한다.
이때 Y는 X에 함수 종속이라 하고, X를 결정자, Y를 종속자라 한다.
- 부분 / 완전 함수적 종속
: 기본키 그룹이 존재할때 한개의 값을 통해서 다른 속성을 알아낼 수 있으면 부분 함수적 종속,
그룹의 모든 속성값이 있어야만 다른 속성을 알아낼 수 있으면 완전 함수적 종속이다.
3) 제 3정규형 (3NF)
: 제 2정규형이고, 이행적 함수적 종속 관계를 제거하여 비이행적 함수적 종속 관계를 만족하는 정규형
X -> Y, Y -> Z 이런 경우에 X -> Z 의 관계는 이행적 함수적 종속
4) BCNF ( Boyce/Codd Normal Form )
: 제 3정규형이고, 결정자가 후보키가 아닌 함수 종속 제거 모든 결정자가 후보키이어햐 한다는 것
5) 제 4정규형
: 다치 종속 제거
- 키워드 : 다중값 종속 제거, A -->> B
6) 제 5정규형
: 조인 종속성 이용
- 정규화의 절차와 키워드
1) 비정규화 테이블
원자값
2) 제1정규형
완전 함수 종속
3) 제2정규형
비이행적
4) 제3정규형
모든 결정자가 후보키
5) BCNF
다치종속 제거
6) 제4정규형
조인 종속성 이용
7) 제5정규형
2. 관계 데이터 연산
- 관계대수 : 절차적 언어, 원하는 정보를 어떻게 유도하는가를 연산자와 연산규칙 이용하여 기술
- 관계해석 : 비절차적 언어 ( 결과 중심 ), 원하는 정보가 무엇이라는 것만 정의
3. 관계 대수 종류
1) 순수 관계 연산자 : SELECT, PROJECT, JOIN, DIVISION
- SELECT : 릴레이션에서 주어진 조건을 만족하는 튜플들을 검색 ( 행, 수평적 연산 )
- PROJECT : 릴레이션에서 주어진 조건을 만족하는 속성들을 검색 ( 열, 수직적 연산 )
- JOIN : 두 개의 릴레이션 A와 B에서 공통된 속성을 연결하는 것
- DIVISION : 나누어지는 릴레이션인 A는 릴레이션 B의 모든 내용을 포함한 것이 결과 릴레이션이 된다.
2) 일반 집합 연산자 : 합집합, 교집합, 차집합, 카티션프로덕트(곱하기 연산)
- 합집합 : 릴레이션 A 또는 B에 속하는 듀플들로 구성된 릴레이션 ( UNION )
- 교집합 : 릴레이션 A와 B에 공통적으로 속하는 듀플들로 구성된 릴레이션 ( INTERSECTION )
- 차집합 : 릴레이션 A에만 있고 B에는 없는 튜플들로 구성된 릴레이션 ( DIFFERENCE )
- 카티션 프로덕트 (Cartesian product)
: A에 속한 각 튜플 a에 대하여 B에 속한 튜플 b를 모두 접속시킨 튜플들로 구성
6강. SQL, 시스템카탈로그, 뷰
1. SQL (Structured Query Language ) 의 특징
- 관계대수와 관계해석을 기초로 한 고급 데이터 언어
- 대화식 질의어로 사용 가능
- 데이터 정의, 조작, 제어 기능 제공
- 레코드 집합 단위로 처리
- DBMS에서 사용되는 비 절차적 대화형 Language
2. SQL 개념 이해하기 ( 실습 )
- 테이블 생성
: CREATE TABLE 학과 (학과코드 CHAR(18), 학과명 CHAR(18));
- 자료(튜플) 입력
: INSERT INTO 학과 VALUES ('A001', '정보');
- 자료(튜플) 검색
: SELECT * FROM 학과;
- 자료(튜플) 수정
: UPDATE 학과 SET 학과명='사무' WHERE 학과코드='A001';
- 자료(튜플) 삭제
: DELETE FROM 학과;
- 테이블 삭제
: DROP TABLE 학과;
3. 시스템 카탈로그(=데이터 사전)
: 시스템 자신이 필요로 하는 여러가지 객체에 관한 정보를 포함하고 있는 시스템 데이터베이스
: 특징
- 데이터베이스 시스템에 따라 상이한 구조를 가진다.
- 사용자도 SQL을 이용하여 검색할 수 있다. ( 사용자 수정 금지 )
- 객체들로서는 기본 테이블, 뷰, 인덱스, 데이터베이스, 패키지, 접근 권한 등이 있다.
- 데이터베이스 스키마에 대한 정보를 제공
- 객체들에 대한 정의나 명세에 관한 정보를 유지관리하는 시스템
- 데이터 디렉토리 : 데이터 사전에 수록된 데이터를 실제로 접근하는데 필요한 정보를 관리 유지하는
시스템만이 접근할 수 있는 구역
4. SQL 구분
1) 정의어 ( DDL : Data Definition Language )
: 도메인, 테이블, 뷰, 인덱스를 정의, 변경, 제거하는 언어
: CREATE, ALTER, DROP
* VIEW 특징
- 구조가 기본테이블과 거의 유사하지만 물리적으로 구현되지 않음
- 논리적 독립성 제공
- 필요한 데이터로만 구성 -> 관리 수월, 명령 간단
- 데이터 보호 효율적 - > 자동 보안
- 삽입, 삭제, 갱신 연산이 가능하지만 제한적이다.
- 다른 VIEW 정의에 기초
- 하나의 VIEW 를 삭제 -> 그 VIEW를 기초로 만들어진 VIEW도 자동 삭제
- 독립적인 인덱스를 가질 수 없다.
- 뷰에 대한 검색은 일반 테이블과는 같다
- VIEW의 정의 변경 불가
2) 조작어 ( DML : Data Manipulation Language )
: SELECT, INSERT, DELETE, UPDATE
3) 제어어 ( DCL : Data Control Language )
: GRANT, REVOKE, COMMIT, ROLLBACK
7강. 내장 SQL, 고급데이터베이스
1. 내장 SQL ( Embedded-SQL )
: 호스트 언어에 삽입된 SQL
: 일괄처리, 동일 업무 반복시 이용
2. SQL CODE ( SQL 상태 )
- 0 : 성공
- 100 : 실패
- 양수 : 경고
- 음수 : 에러
3. 트랜잭션 ( Transaction )
- 정의 : 데이터베이스의 상태를 변화시키는 논리적 연산의 집합
- 특징
1) 원자성 ( Atomicity )
2) 일관성 ( Consistency )
3) 독립성, 격리성 ( Isolation )
4) 영속성, 지속성 ( Durability )
- 연산
1) Commit
2) Rollback
- 회복 : 트랜젝션 수행도중 장애가 발생하여 데이터베이스가 손상 입었기에 손상이전 상태로 복구하는 작업
- 장애의 유형
1) 트랜잭션 장애
: 데이터베이스에 손상을 줄 가능성이 가장 적은 장애
2) 시스템 장애
3) 미디어 장애
4. 보안, 암호화
1) 개인키(Private) 암호화 알고리즘 : DES ( 암호화키 = 복호화키 )
: 동일한 키를 이용하는 방식 -> 보안 수준 낮음 -> 알고리즘 단순하고 빠르다
2) 공개키(Public) 암호화 알고리즘 : RSA (암호화키 <> 복호화키)
: 서로 다른 키를 사용하는 비대칭 암호화 방식 -> 보안 수준 높음 -> 속도 느리고 알고리즘 복잡
* 보안과 무결성
- 무결성 : 권한이 있는 사용자로부터 데이터베이스를 보호하는 것
- 보안 : 권한이 없는 사용자로부터 데이터베이스를 보호하는 것
5. 병행제어
- 정의 : 동시에 여러 개 수행할 때, 데이터베이스 일관성 유지를 위해 트랜잭션 간의 상호 작용을 제어
- 목적
1) 데이터베이스 공유 최대화
2) 시스템 활용도 최대화
3) 데이터베이스 일관성 유지
4) 사용자에 대한 응답시간 최소화
- 기법
1) 로킹 (Locking)
: 하나의 트랜잭션이 데이터를 액세스하는 동안 다른 트랜잭션이 접근할수 없게 하는 방법
2) 로킹 단위
: 병행제어에서 한꺼번에 로킹할 수 있는 단위
- 문제점
1) 갱신분실 : 2개 이상의 트랜잭션이 같은 자료를 갱신할 때 일부가 없어지는 현상
2) 비완료 의존성 : 실패한 갱신 결과를 참조하는 현상
3) 불일치 : 원치 않는 자료를 이용하는 현상
6. 분산 데이터베이스
- 정의: 컴퓨터 네트워크 상에 물리적으로 분산된 데이터베이스를 논리적으로는 1개로 인식하는 기법
- 4대 목표
1) 위치 투명성
2) 중복 투명성
3) 병행 투명성
4) 장애 투명성
- 특징
1) 자료 공유 용이
2) 시스템 성능 향상
3) 점증적 시스템 용량 확장 용이
4) 설계가 어렵고, 소프트웨어 개발 비용 증가
5) 오류 발생 가능성 높음
8강. 자료구조[선형,비선형구조]
1. 자료구조 분류
: 자료를 기억장치 내에 저장하는 방법
1) 선형구조 : 순차리스트(스택, 큐, 데크, 배열), 연결 리스트
2) 비선형구조 : Tree, Graph
2. 선형 구조
1) 순차 리스트 : 연속적인 기억장소에 저장
- 구조 간단, 기억장소 이용 효율이 높음, 삽입/삭제 어려움, 연결리스트에 비해 검색 빠름
* 스택 : 삽입/삭제가 한쪽에서 이루어지는 데이터 구조 (LIFO : Last In First Out)
- 응용분야
: 인터럽트의 처리
: 수식의 계산
: 서브루틴의 복귀번지 저장
: 부프로그램의 호출 = 함수 호출의 순서제어
* 큐 (Queue) : 노드의 삽입과 제거 작업이 각각 다른 쪽에서 수행되는 자료구조 ( FIFO )
- 응용분야
: 운영체제의 작업 스케줄링
: 키보드 버퍼 이용시
: 스풀 운용 시
* 데크 (Deque) : 삽입/삭제가 리스트의 양쪽 끝에서 발생할 수 있는 자료 구조
2) 연결 리스트 : 비연속적으로 저장
- 기억장소 이용 효율이 낮음, 삽입/삭제 용이, 순차 리스트에 비해 검색 느림
3. 비선형구조
1) 트리 : 노드와 간선으로 구성되어져 있고, 사이클이 없다. (족보, 부모 자식관계)
'Dev. 관련자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 18일차 - 데이터베이스, 소프트웨어공학 기출문제 풀이 (0) | 2012.08.20 |
---|---|
[정보처리기사 필기] 17일차 - 데이터베이스, 소프트웨어공학 내용 정리 (1) | 2012.08.19 |
[정보처리기사 필기] 15일차 - 각 과목별 진행사항 확인 및 수정계획 수립 (0) | 2012.08.18 |
[정보처리기사 필기] 14일차 - 운영체제 6~10강 오답 풀이 (0) | 2012.08.16 |
[정보처리기사 필기] 13일차 - 운영체제 내용 정리 및 기출문제 오답 풀이 (0) | 2012.08.15 |