일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Buffer Overflow
- webhacking.kr
- stack overflow
- webhacking
- PWN
- Spring MVC
- Spring
- 웹해킹
- 해킹
- OS
- 운영체제
- Shell code
- SQL
- 정보처리기사 실기
- Pwnable.kr
- system hacking
- hacking
- 워게임
- Lord of BOF
- BOF
- Payload
- wargame
- LOB
- 정보보안기사 실기
- Spring Framework
- 정보보안기사
- 네트워크
- pwnable
- Operating System
- System
- Today
- Total
DongDD's IT
[정보처리기사 실기] 데이터베이스 - 데이터베이스, ER Model, 관계형 데이터 모델, Key, 무결성, 관계 대수 본문
[정보처리기사 실기] 데이터베이스 - 데이터베이스, ER Model, 관계형 데이터 모델, Key, 무결성, 관계 대수
DongDD 2018. 4. 4. 14:18[정보처리기사 실기] 데이터베이스
데이터베이스
- 상호 관련된 데이터들의 모임
1. 통합 데이터(Integrated Data)
- 중복이 최소화된 데이터들의 모임
2. 저장 데이터(Stored Data)
- 접근 가능한 저장 매체에 저장된 데이터
3. 운영 데이터(Operational Data)
- 조직의 목적을 위해 존재 가치가 확실하고 반드시 필요한 데이터
4. 공유 데이터(Shared Data)
- 여러 프로그램들이 공동으로 사용하는 데이터
특징
1. 실시간 접근성(Real Time Accessibility)
- 사용자의 요청에 대해 즉시 처리, 응답
2. 계속적인 진화(Continous Evolution)
- 항상 최신의 정확한 데이터를 동적으로 유지
3. 동시 공유(Concurrent Sharing)
- 여러 사용자가 데이터를 동시에 공용
4. 내용에 의한 참조(Content Reference)
- 데이터 참조 시 주소나 위치가 아닌 내용으로 참조
5. 독립성(Independence)
1) 논리적 독립성
- 응용 프로그램과 DB를 독립 -> DB의 논리적 구조를 변경해도 응용 프로그램에 영향 X
2) 물리적 독립성
- 응용 프로그램과 물리적 장치 독립 -> 새로운 물리 장치를 도입해도 응용 프로그램에 영향 X
데이터 언어
1. DDL(Data Definition Language)
- 구조, 형식, 접근 방식 등 데이터베이스를 구축, 변경하기 위한 언어
- DB의 논리적, 물리적 구조 정의, 변경
- 스키마 제약 조건 정의
- 데이터의 물리적 순서 규정
2. DML(Data Manipulation Language)
- 데이터 처리를 위한 언어(검색, 삽입, 삭제, 갱신)
- 절차적 DML : 사용자가 어떤(What) 데이터와 어떻게(How) 데이터를 구하는지 명시하는 언어
- 비절차적 DML : 사용자가 어떤(What) 데이터를 필요로 하는지만 명시하는 언어
3. DCL(Data Control Language)
- 보안, 권한 제어, 무결성, 회복, 병행 제어를 위한 언어
사용자
1. 데이터베이스 관리자(DBA)
- DDL, DCL로 DB를 정의하고 제어
- 설계, 관리, 운용, 통제, 감시, 성능분석
2. 데이터 관리자
- 데이터에 대한 정의, 체계화
- 데이터 관리, 통제
3. 데이터 설계자
- 데이터 구조를 체계적으로 정의
- 데이터 모델 생성
4. 응용 프로그래머
- 호스트 프로그래밍 언어에 DML을 삽입해 DB에 접근
5. 일반 사용자
- 쿼리문을 이용해 DB에 접근(삽입, 갱신, 삭제, 검색)
데이터베이스 관리 시스템(DBMS)
- 사용자-데이터베이스 관계에서 사용자의 요구에 따라 정보 생성, 데이터베이스 관리해주는 소프트웨어
- 기존 파일 시스템이 갖는 데이터 종속성, 데이터 중복성 문제 해결
-> 데이터 종속성 : 데이터 저장, 접근 방식 변경에 따라 응용도 수정해야함
-> 데이터 중복성 : 데이터의 중복으로 일관성 X, 동등한 보안 유지 X, 무결성 X
장점
- 무결성
- 실시간 처리
- 일관성
- 보안
- 논리적, 물리적 독립성
단점
- 대용량 디스크로의 집중 접근 -> 과부하
- 비용이 큼
- 데이터 백업, 회복 어려움
- 시스템 복잡
스키마(Schema)
- 데이터베이스의 구조, 제약 조건에 대한 명세
특징
- 데이터 사전(Data Dictionary)에 저장
- 시간에 따라 불변하는 특성
- 데이터의 논리적 단위에 명칭 부여
Data Dictionary(시스템 카탈로그)
- DB에 저장되는 모든 data에 대한 정보를 유지, 관리하는 시스템
- 데이터에 관한 데이터(Metadata) 저장
Metadata format
1. MARC : 목록 레코드 식별 -> 축적, 유통을 위해 코드화한 메타데이터
2. DC(Dublin Core) : 네트워크 환경에서 전자정보를 기술한 메타데이터
3. ONIX : 정상적인 유통, 관리를 위한 메타데이터
4. MODS : 디지털 도서관 범용 서지 정보 표준 메타데이터(MARC, DC, ONIX를 절충 -> 상호운용성, 정밀성 만족)
ref) MDR : 등록과 인증을 통해 메타데이터를 유지, 관리
계층
1. 외부 스키마(= 서브 스키마)
- 사용자, 응용 프로그래머가 각자 필요로하는 DB의 논리적 구조 정의
- 하나의 DBMS에 여러 개의 외부 스키마 존재 가능, 하나의 외부 스키마는 여러 사용자에 의해 공유 가능
2. 개념 스키마
- 개체 간의 관계, 제약 조건, 접근 권한, 보안 정책 등에 대한 명세
- DBA에 의해 작성
3. 내부 스키마
- DB의 물리적 구조 정의
- 시스템 프로그래머, 시스템 설계자가 보는 관점의 스키마
데이터베이스 설계
- 데이터베이스 구조(스키마)를 설계, 개발하는 과정
1. 요구 조건 분석
- 사용자 요구 조건 분석 -> 요구 조건 명세 작성
2. 개념적 설계
- 개념 스키마 모델링, 트랜잭션 모델링
3. 논리적 설계
- 컴퓨터가 처리 가능한 데이터 형태로 DBMS가 지원하는 논리적 데이터 구조로 변환
- 정규화 과정, 트랜잭션의 기본과 인터페이스 설계
4. 물리적 설계
- DB 구조, 물리 스키마 설계
- 트랜잭션 Throughput 고려
- 트랜잭션 인터페이스로부터 상세 트랜잭션 정의
5. 데이터베이스 구현
- DDL로 스키마, DB 구축
ER(Entitiy Relationship) Model
- 개념적 데이터 모델
- 개체, 속성, 관계를 ER도형(ERD)으로 표현
1. 관계(Relationship)
- 개체 사이의 연관성
- 차수(Degree) : 관계에 참여하는 개체 타입의 수
- 대응 카디널리티(Mapping Cardinality) : 관계에 참여하는 개체 occurence의 수
- 차수에 따른 종류 : 단항관계, 이항관계, 삼항관계, n항 관계(관계에 참여하는 개체 타입의 개수)
- 대응 카디널리티에 따른 종류 : 1:1 관계, 1:N 관계, N:M 관계(관계에 참여하는 개체 타입이 가진 개체 occurence )
- ISA 관계 : 상위-하위 개체로 표현되는 관계
-> disjoint : 상위 개체가 하위 개체 하나에만 포함
-> overlapping : 상위 개체가 하위 개체 여러 개에 포함
2. 속성
- 개체의 특성, 상태
- Domain : 속성이 가질 수 있는 모든 값들의 집합
관계형 데이터 모델
- 데이터를 원자 값으로 갖는 2차원 테이블로 표현(릴레이션)
- 릴레이션 스키마 : 구조, 릴레이션 인스턴스 : 값
- 열 : 속성, 행 : 튜플
- Domain : 하나의 속성의 가질 수 있는 모든 값들의 집합
- Degree : 속성의 수, Cardinality : 튜플의 수
ER 모델 -> 관계형 데이터 모델
- 개체 -> 개체 릴레이션, 관계 -> 관계 릴레이션
- 매핑룰이라고도 불림
1. 변환 과정
1) 개체 A,B를 독립적인 릴레이션 A, B로 표현
2) 관계에 따라(A:B)
-> 1 : 1 관계 : A의 기본키를 B의 외래키로 OR B의 기본키를 A의 외래키로 추가
-> 1 : N 관계 : A의 기본키를 B의 외래키로 추가
-> N : M 관계 : A, B의 기본키를 모두 포함한 별도의 릴레이션으로 표현(교차 릴레이션)
-> ISA 관계 : 상위 개체의 기본키를 하위 개체들의 외래키로 추가하는 방법, 상위 개체의 속성을 포함하는 하위 릴레이션을 생성하는 방법
식별관계/비식별관계
1. 식별관계(Identifying)
- 개체 A, B 관계에서 A의 기본키가 B의 외래키이면서 기본키인 관계(혹은 반대)
2. 비식별관계(Non-identifying)
- 개체 A, B 관계에서 A의 기본키가 B의 기본키가 아니면서 외래키인 관계(혹은 반대)
Key
1. 슈퍼키(Super Key)
- 속성들의 집합으로 구성된 키
- 유일성 O, 최소성 X
2. 후보키(Candidate Key)
- 튜플을 유일하게 식별하기 위한 속성들의 부분집합
- 유일성 O, 최소성 O
3. 기본키(Primary Key)
- 후보키 중에서 선정된 키
- 중복된 값 X
- 유일성 O, 최소성 O
- 튜플들을 식별하기 위해 반드시 필요
- NULL 값을 가질 수 없음
4. 대체키(Alternate Key)
- 후보 키 중에서 기본키를 제외한 나머지 키
5. 외래키(Foreign Key)
- 다른 릴레이션의 기본키를 참조하는 속성, 속성들
무결성
- 데이터 값과 실제 값이 일치하는 정확성
무결성 제약 조건
- 정확하지 않은 data가 DB에 저장되는 것을 방지하기 위한 제약 조건
1. NULL 무결성
- 릴레이션의 특정 속성이 NULL이 되지 않도록 함
2. 고유(Unique) 무결성
- 특정 속성에 대해 각 튜플이 갖는 값이 달라야함
3. 도메인(Domain) 무결성
- 특정 속성의 값이 그 속성에 정의된 Domain에 속해야함
4. 키(Key) 무결성
- 릴레이션에는 적어도 하나의 키가 존재해야함
5. 관계(Relation) 무결성
- 릴레이션에 튜플 삽입 가능 여부 확인, 서로 다른 릴레이션의 튜플들 사이 관계의 적절성 여부 지정
6. 참조(Reference) 무결성
- 외래키 값은 NULL이거나 참조 릴레이션의 기본키와 동일해야함
7. 개체(Entity) 무결성
- 기본키를 구성하는 속성이 NULL이 아니어야함
관계대수
- 관계형 데이터에서 원하는 정보와 그 정보를 유도하는 방법을 나타내는 절차적 언어
순수 관계 연산자
1. SELECT
- 특정 조건을 만족하는 튜플들의 부분집합을 릴레이션으로 생성
- 수평 연산(튜플을 이용)
- σ(조건)(R)
2. PROJECT
- 주어진 속성들 값만 추출해 새로운 릴레이션 생성
- 중복을 삭제함
- π(속성 리스트)(R)
3. JOIN
- 공통 속성을 중심으로 2개의 릴레이션을 합쳐서 새로운 릴레이션 생성
- 차수 = 두 릴레이션 차수의 합
- Cartensian Product + SELECT와 같음
- R1 ᛞ(조건)R2
- 세타 조인 : 조건을 일반화하여 세타로 표현
- 자연 조인(Natural Join) : 중복된 속성을 제거하여 같은 속성은 한번만 표시(R1 ᛞ R2)
4. DIVISION
- R1[X ÷ Y]R2
- R2의 Y 속성의 모든 튜플과 연관되어 있는 R1의 튜플들 출력(X 속성 제외되고 출력됨)
일반 집합 연산자
1. UNION
- 튜플들의 합집합
- 중복된 튜플 제거됨
- R1 ∪ R2
2. INTERSECTION
- 튜플들의 교집합
- R1 ∩ R2
3. DIFFERENCE
- 튜플들의 차집합
- R1 - R2
4. Cartensian Product
- 튜플들의 교차곱, 결합된 튜플들로 구성
- R1 × R2
관계해석
- 관계 데이터의 연산 표현
- 원하는 정보가 무엇인지만 정의 -> 비절차식 언어
- 질의어 표현
- 도메인 관계해석, 튜플 관계해석
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 용어 정리, 신기술 용어 - 1 (0) | 2018.04.10 |
---|---|
[정보처리기사 실기] 업무프로세스 (0) | 2018.04.09 |
[정보처리기사 실기] 데이터베이스 - 이상, 함수적 종속, 정규화,기타 (0) | 2018.04.08 |
[정보처리기사 실기] 데이터베이스 - SQL,View, 내장 SQL, Stored Procedure (0) | 2018.04.07 |
[정보처리기사 실기] 객체 지향 기법 (0) | 2018.04.02 |