0. 점수배점
- 알고리즘 (25점),
- DB (25점),
- 업무프로세스 & 신기술 & 전산영어 (50점)
업무프로세스 (15점), 신기술 (25점), 전산영어 (10점)
==> 뒷부분 대충 암기하면 합격이란 소리다.
==> 그치만 실무에서 가장 쓸만한 부분은, DB부분이다.
==> 잘 집고 넘어가기로 한다.
==> 개념서술 문제도, 17년 3회 기준으로 15점 정도가 최대이다. 그러므로, 단어의 개념만 대강 기억하는 방향으로 작성하겠다.
1. DB의 개념
1.1 DB의 정의
DB(Database) : 조직의 업무를 수행을 위한 상호 관련된 데이터들의 모임
- 통합데이터(Integrated Data) : 중복이 최소화(검색 효율)
- 저장데이터(Stored Data) : 저장매체에 저장 됨
- 운영데이터(Operational Data) : 목적을 위해 반드시 필요
- 공유데이터(Shared Data) : 응용프로그램들이 공동으로 사용
위의 4가지를 갖춘 것이 DB이다.
1.2 특징 (5가지)
1. 실시간 접근성(Real Time Accessibility)
: 질의에 대하여 즉시 응답,처리
2. 계속진화(Continuous Evolution)
: 삽입,삭제,갱신으로 데이터를 동적으로 최신,정확하게 유지
3. 동시공유(Concurrent Sharing)
: 여러 사용자가 동시에 접근
4. 내용에 의한 참조(Content Reference)
: 튜플의 주소,위치가 아닌 데이터의 내용에 따라 참조
5. 논리,물리적 독립성(Independence) :
5.1 논리적 독립 : 응용프로그램과 DB를 독립
=> DB 논리구조를 바꿔도 프로그램은 영향이 없다.
5.2 물리적 독립 : 응용프로그램과 물리적 장치를 독립.
=> DB의 기억장치를 변경해도 프로그램은 영향이 없다.
1.3 데이터 언어(DDL/DML/DCL)
- .3.1
DDL(Data Definition Language) ; 데이터 정의어
: DB구조, Data형식, 접근 방식 등을 구축하거나 변경하는 언어
- 컴파일 후(DDL 컴파일러가) Data dictionary에 저장.
- 기능
-> DB의 논리, 물리 구조를 정의/변경
-> Schema(스키마)에서 제약조건 정의
-> 데이터의 물리적 순서 규정
- .3.2
DML(Data Manipulation Language) ; 데이터 조작어
: 응용프로그램과 DBMS간의 인터페이스를 위한 언어
; 검색, 삽입, 삭제, 갱신 등의 연산이 있다.
.2 형태
-> 절차적 데이터 조작어(What & How)
; 어떤 데이터를 필요하는지, 어떻게 구하는지 명시
=> 어렵다
-> 비절차적 데이터 조작어(What)
; 어떤 데이터가 필요한지만 명시
=> 쉽지만, 비효율적.
- .3.3
DCL(Data Control Language) ; 데이터 제어어
: 1. 보안 & 권한제어, 2. 무결성, 3. 회복, 4. 병행제어 를 위한 언어
- 기능
데이터 보안 : 권한 없는 접근으로 보호
데이터 무결성 : 삽입, 삭제, 갱신 마다 제약조건을 자동적으로 검사.
=> 무결성 : 데이터가 정확하고 완전한 것.
데이터 회복 : 시스템 오류 등으로 DB를 회복
병행 제어 : 여러 사용자가 동시에 공유 할 수 있게 함.
1.4 DB 사용자(DBA, DA, 데이터설계자, 응용프로그래머, End User)
.4.1 DB관리자(DBA; DataBase Administrator)
; DDL, DCL로 DB를 정의, 제어
-> 업무 : DB설계, 관리, 운용, 통제, 시스템 감시, 성능 분석.
-> DBMS, 컴퓨터시스템, 조직 전산업무 전반에 지식 필요
↑ 얘는 DataBase를 다룬다
↓ 얘는 Data를 다룬다
.4.2 데이터 관리자(Data Administrator)
; 데이터에 대한 정의, 체계화, 감독&보안, 관리 총괄,
중앙 집중적 정보 활용 계획의 수립 통제
-> 업무 : 데이터 표준원칙, 데이터 표준, 데이터 표준 준수 여부 관리
.4.3 데이터 설계자(Data Architect)
; 데이터의 구조를 체계적으로 정의(구조 원칙, 구조 정보, 구조 관리)
-> 업무 : 데이터 영역 분류[데이터 표준, 데이터 관리 체계 등],
데이터 모델 생성
.4.4 응용 프로그래머(Application Programmer)
; 호스트 프로그래밍 언어에 DML삽입을 통해 DB에 접근하는 사람.
cf)호스트 프로그래밍 언어 : C, Visual Basic, Pascal, COBOL 등..
.4.5 일반 사용자(End User)
; Query를 통해 DBMS에 접근하는 사람.
cf)Query Language : SQL, IMS, DBTG, TOTAL 등..
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
2. DBMS
; 사용자 - DBMS - DB , 사용자와 DB사이에서 관리해주는 S/W
- 도입 배경 : 파일시스템의 데이터 종속성, 중복성 해결
=> 모든 응용프로그램이 DB를 공유한다.
-데이터 종속성 : 데이터 접근, 저장방법 변경시 응용 프로그램도 변경 필요
-데이터 중복성 : 중복데이터간 내용 불일치, 보안수준 유지, 제어의 분산
=> 정확성, 무결성 유지가 힘들다.
2.1 DBMS 필수기능 :
정의 : data Type, data구조, 제약조건 등 명시
조작 : 검색, 삽입, 삭제, 갱신(CRUD) 등을 명시
제어 : 무결성, 보안 & 권한검사, 병행 제어 등 명시
2.3
장점 : 독립적, 공유, 실시간 처리, 무결성, 통합성 등..(DB의 정의 4가 지 말 바꿔서 쓰면 됨.
단점 : 전문가 부족/ 과부화 발생/ 전산화 비용/ 백업과 회복 어려움/ 시스템 복잡
cf)DSMS(데이터 스트림 관리 시스템)
: 통신에서, 스트림(연속, 동적인 데이터)을 관리하고 처리하는 시스템.
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
3. Schema(스키마)
-> DB구조와, 제약조건을 전반적으로 서술한 것.
-> Entity/Attribute/Relationship/제약조건 등에 관해 정의
3.1 특징
- 데이터의 구조적 특성과 같다.
- 데이터 사전(Dictionary)에 저장 됨.
- 특정 데이터 모델로 만듦
- 시간에 따라 불변
- 데이터의 논리 단위를 명명하고, 의미를 기술.
cf)
데이터 사전(= 시스템 카탈로그 )
-> DB에 저장된 모든 데이터 개체들에 대한 정보를 유지/관리하는 시스템
-> 즉, Data About Data(= meta data)가 저장됨
메타 데이터(Meta Data)
- Data About Data, Data와 직간접적으로 관계있는 정보 제공.
- 포맷(MARC, DC, ONIX, MODS)
- MDR(Meta Data Registry) : 메타 데이터를 유지/관리하는 레지스트리
-> 상호운용성과 정밀성을 확보해야 한다.
3.2 분류
-> 사용자의 관점으로 1. 외부, 2.개념, 3.내부 로 분류
-> 스키마의 3계층이라고도 함
3.2.1 외부스키마 (End User 관점)
- 각 사용자가, 자신의 입장에서 DB 논리구조를 정의한 것.
- Sub Schema라고도 한다.
- 이를 통해 동일 DB를 서로 다른 관점으로 정의 할 수 있다.
-> 한 DB에 여러개의 외부스키마 가능, 사용자 끼리 공유도 가능.
3.2.2 개념스키마(기관, 조직 관점)
; 개체간 관계/ 제약조건/DB접근 권한, 보안정책, 및 무결성 규정에 관한 명세를 정의한 스키마.
- DB전체의 논리적 구조를 말한다.
=> 하나만 존재한다.
- DBA가 작성한다.
- 스키마라고만 표시하면 개념스키마를 의미한다.
3.2.3 내부스키마(시스템 설계자)
- DB의 물리적 구조를 정의한 스키마
- 저장장치 관점으로 전체 DB를 명세한 것.
=> 하나만 존제한다.
=> 개념스키마의 물리적 저장 구조를 기술한 것.
- 시스템 프로그래머 & 시스템 설계자의 관점.
3줄 요약 : DB에 관한 명세를 스키마라고 한다.
먼저, DB가 물리적으로 어떻게 저장될 건지는 나타낸 것이 내부스키마,
그리고 DB가 어떤식으로 구성될 건지 명세한 것이 개념 스키마이다.
이것을, 사용자가 필요에 맞게 재정의 하여 사용하는 것이 외부스키마이다.
내부스키마(저장) &
개념스키마(겉으로 표현) ----------- > (외부스키마) --------> 사용자
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
3.
DB설계
-> DB 구조를 개발하는 과정(=스키마를 개발하는 과정)
- 데이터 중심(Datadriven) 설계 : DB구조에 집중
- 처리 중심(Processing-driven) 설계 : Data 처리/ 응용에 집중
3.1 단계
1. 요구조건 분석 : 사용자의 용도를 파악하는 것
-> 정적 정보구조 (; 개체,속성,관계, 제약 조건 등)
-> 동적 DB처리 요구조건 (트랜잭션 유형, 트랜잭션 실행 빈도 등)
-> 경영목표&정책, 규정 등 기관의 자체제약에 대한 요구조건
cf)트랜잭션 : 하나의 논리적 기능을 수행하기 위한 일련의 연산 집합
= DB 작업 단위.
2. 개념적 설계 ; 현실을 추상적으로 표현하는 과정.
2.1 개념스키마 모델링 : 데이터의 조직과 표현에 치중(Datadriven)
원리 : 추상화
- 집단화 : 여러 속성을 그룹지어 하나의 개체로 만드는 것.
- 일반화 : 공통 성질을 찾아 일반적이고 포괄적으로 만드는 것.
=> ER도형으로 표현한다.
2.2 트랜잭션 모델링 : 데이터 처리 중심(Processing-driven)
- 트랜젝션 명세 작성 : 입력/출력 데이터, 제어의 기능적 흐름을 명세.
-> 개념적, 시스템 독립적으로 정의.
3. 논리적 설계 = 논리스키마를 설계한다.
; 컴퓨터가 이해하고, DBMS가 지원하는 데이터 구조로 변환하는 작업.
3.1 DBMS 선정
- S/W 획득 비용, 유지비용, 구축 및 전환비용, 교육 및 운용비용 고려
3.2
- 관계형 DBMS 라면, ER도형을 규칙에 따라 릴레이션 스키마로 변환.
-> 정규화 과정을 통해 더 좋은 릴레이션 스키마를 만들 수 있다.
- 트랜잭션 명세로, 트랜잭션의 전체 골격을 개발하고, 인터페이스를 정의
4. 물리적 설계 = 물리 스키마(내부스키마)를 설계한다
- DB파일의 저장구조, 접근 경로를 결정
- 레코드 양식, 순서, 저장공간 등과 인덱싱, 클러스터링, 해싱 등의 설계
- DBMS. 하드웨어, 운영체제 특성 고려
- 트랜잭션 으압시간, 접근 경로 구조에 대한 저장공간 효율성, 평균 수인 트랜잭션 처리도(Throughput) 고려.
- 위의 트랜잭션 인터페이스의 상세 트랜잭션 정의.
5. DB구현 ; 실제 DB를 구축하는 과정
- DDL 명령문을 실행하여 스키마와 DB파일 생성.
- 필요시 Data도 입력
- 상세 트랜잭션이 실행 트랜잭션으로 구현
=> 즉, DML 명령문이 작성됨.
요약 : 설명이 길었는 데, 단계가 무엇인지, 이름과 순서만 알면 된다.
1.요구 조건 분석 : 요구조건명세서 작성
2. 개념적 설계 : 개념스키마, 트랜잭션 모델링, E-R모델
3. 논리적 설계 : 논리스키마설계, 트랜잭션 인터페이스 설계
4. 물리적 설계 : 물리적 구조의 데이터로 변환
5. 데이터베이스 구현 : DDL로 데이터베이스 생성, 트랜잭션 작성
~~적 설계를 기억하자.
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
4. ER모델 ; by Peter Chen. in 1976
4.1 도형
개체(Entity) : 직사각형
관계(Relationship) : 마름모
속성(Attribute) : 타원
기본키(Primary key) : 타원에 밑줄 넣기
연결 : 실선
연관성 : N:M표시
ISA관계: 뒤집힌 이등변 삼각형

4.2 타입
4.2.1 개체 타입 : 개체 클래스(특정 개체 인스턴스의 집합)와 같은 말.
개채 1개 : 개체 어커런스(Entity Occurence)
or 개체 인스턴스(Entity Instance)라고 함.
4.2.2 관계 타입 : 같은 관계들의 집합 or 틀
관계 : 2개 이상의 개체 사이의 연관성.
.2.1 차수(Degree)에 따라
단항(Unary) : 관계에 참여하는 개체타입 1개
이항(Binary) : 관계에 참여하는 개체타입 2개
삼항(Ternary) : 관계에 참여하는 개체타입 3개
n항(n-nary) : 관계에 참여하는 개체타입 n개
==> 마름모 하나에 직사각형이 몇 개 달렸니????
.2.2 대응 카디널리티(Mapping Cardinality)에 따라
1:1 : 다이아몬드 양쪽 선에 1,1이 쓰여있는 것.
두 개체타입이 하나씩 개체어커런스를 갖는 것.
ex) 교수는 1개의 과목만 맡을 수 있다.
1:N : 다이아몬드 양쪽 선에 1,n이 쓰여있는 것.
한 개체 타입은 여러개의 개체어커런스를 갖는 것.
ex)교수는 여러명의 학생을 가르칠 수 있다.
N:M : 다이아몬드 양쪽 선에 n,m이 쓰여있는 것.
두 개체타입 모두 여러개의 개체 어커런스를 갖는 것.
ex) 학생은 여러개의 과목을 수강할 수 있고,
한 과목은 여러명의 학생이 수강할 수 있다.
.2.3 ISA 관계
- 상위/ 하위로 구별되는 관계
disjoint : 하나의 하위 개체에만 해당
overlapping : 여러개의 하위 개체에 해당.
==> 하위개체가 교집합이 있냐 없냐로 구분한다.
total : 하위개체에 속하는 것.(이중선으로 표시한다)
partial : 하위 개체에 속하지 않는 것.
==> 사원중에 신입사원의 경우. 어떤 팀에도 속하지 않는다.
4.3 속성 : 개체의 특성이나 상태를 기술한 것.
3.1 도메인 : 속성이 가질 수 있는 모든 가능한 값들의 집합.
3.2 단순속성 : 더이상 다른 속성으로 나눌 수 없는 것.
3.3 복합속성 : 2개 이상의 속성으로 분해할 수 있는 것.
ex) 주소 => 시,구,군,동....
4.4 ERD만들기 : 요구 명세를 보고 만든다
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
출처 : 시나공 2018 정보처리기사 실기(산업기사 포함), 한기준 외 3인, 길벗. 2018
'Back > DB' 카테고리의 다른 글
정보처리기사DB - 2. 관계형DB (0) | 2022.01.20 |
---|---|
3. DDL(Data Definition Language) (0) | 2022.01.20 |
2. ERD(Entity Relationship Diagram) (0) | 2022.01.20 |
1.SQL 관련 용어정리 (0) | 2022.01.20 |
DB공부전략 (0) | 2022.01.20 |