본문 바로가기
시험

#실기 P3 응용 SW 기초 기술 활용 - DB (데이터베이스)

by 키튼햄 2023. 3. 8.

S1. 데이터베이스 종류 및 선정

1. 데이터베이스 (DB ;DataBase)

- 다수의 인원, 시스템, 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합.

- 자료의 중복성, 무결성 확보, 일관성 유지, 유용성 보장

 

DB 특징

  • 실시간 접근성 (Real-Time Accessibility)
  • 계속적인 변화 (Continuous Evolustion)
  • 동시 공유 (Concurrent Sharing)
  • 내용에 의한 참조 (COntent Reference)

 

DB 설계 순서 : 요구조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현

 

DB 용어

속성 (Attribute) = 컬럼 (Column) = 필드 (Field)  :릴레이션 내의 하나의 . 어떤 개체(Entity)를 표현하고 저장한 것.

튜플 (Tuple) = 레코드 (Record) = 로우(Row)  :릴레이션 내의 하나의 행.

차수 (Degree)  : 하나의 릴레이션 내에 들어있는 속성의 수

기수 (Cardinality)  : 하나의 릴레이션 내에 들어있는 튜플의 수

도메인 (Domain)  : 릴레이션 내 각각의 속성들이 가질 수 있는 값들의 집합

뷰 (View)  : 가상의 테이블

트랜잭션 (Transaction)  : DB 내에서 하나의 작업 수행을 위한 연산들의 집합

  • ACID(트랜잭션의 안정성) : 원자성, 일관성, 독립성, 지속성

스키마 (Schema)  : DB구조와 제약조건에 관한 전반적인 명세

  • 내부 스키마 (물리)  - 시스템 프로그래머나 설계자 관점에서 정의 DB
  • 개념 스키마 (논리)  - 기관이나 조직의 관점에서 정의 DB
  • 외부 스키마 (서브)  - 사용자 필요 DB

키 (Key)  : 고유한 식별자

  • 후보키 (Candidate Key)  - 유일성 & 최소성 만족하는 속성들의 집합
  • 기본키 (Primary Key)  - 후보키 중 선정된 키. 중복값과 Null 입력 불가.
  • 슈퍼키 (Super Key)  - [=복합키]. 유일성O, 최소성X 하는 속성들의 집합.
  • 대체키 (Alternate Key)  - 후보키 중 선택되지 못한 키들
  • 외래키 (Foreign Key)  : 다른 테이블의 행을 식별하는 키

* 유일성 : 하나의 키로 특정 행을 바로 찾아낼 수 있는 고유한 데이터의 속성

 

 

DBMS (DataBase Management System; 데이터베이스 관리 시스템)

- 데이터 관리의 복잡성 해결, 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능 지원하는 SW.

- 저장되는 정보 : 텍스트, 이미지, 음악 파일, 지도 데이터 등 매우 다양.

장점 단점
- 데이터 중복 최소화
- 데이터 공유 (일관성 유지)
- 정합성, 무결성, 보안성 유지
- 사용자 중심의 데이터 처리
- 데이터 표준화 적용 가능
- 데이터 접근 용이
- 데이터 저장 공간 공유로 인한 절약
- DBA 필요
- DBMS 구축 서버 필요 및 유지비
- 데이터 백업과 복구 어려움
- 시스템의 복잡성
- 대용량 디스크로 엑세스 집중 시 병목 현상으로 과부하 발생
- 대용량 데이터 처리가 어려움

 

DBA (DataBase Administrator; 데이터베이스 관리자)

- DB 설계 및 구축, 관리, 제어함.  직접 활용X

- DB 구성요소 선정, DB 스키마 정의, 물리적 저장 구조와 접근 방법 결정, 무결성 유지를 위한 제약조건 정의, 보안 및 접근 권한 정책 결정, 백업 및 회복 기법 정의, 시스템 DB 관리, 시스템 성능 감시 및 성능 분석, DB 재구성

 

 

2. DB 종류

1) 파일 시스템

- 파일에 이름부여, 위치정의.

- 데이터베이스 전 단계의 데이터 관리 방식

- ISAM (색인부에 기록), VSAM (대형운영체계에서 사용)

 

2) 계층형 데이터베이스 관리 시스템 (HDBMS; Hierarchical DataBase Management System)

- 데이터를 상하 종속적인 관계로 계층화해 관리

- 접근 속도 빠름. 변화하는 데이터 구조에 유연한 대처X

- IMS, System 2000

 

3) 망형 데이터베이스 관리 시스템 (NDBMS; Network DataBase Management System)

- 데이터의 구조를 네트워크 상의 망상 형태로 논리적으로 표현

- 설계 복잡

- IDS, TOTAL, IDMS

 

4) 관계형 데이터베이스 관리 시스템 (RDBMS; Relational DataBase Management System)

- 가장 보편화

- 데이터를 저장하는 테이블의 일부를 다른 테이블과 상하 관계로 표시하여 상관관계 정리

- 변화하는 업무, 데이터 구조에 유연성 좋아 유지 관리 용이

  • Oracle  -유료. 리눅스/유닉스/윈도우 모두 지원. 대형 시스템에서 많이 사용
  • MS SQL serve  -MS사에서 개발. 윈도우즈에서만 구동. C#과 가장 잘 호환
  • MySQL  -리눅스/유닉스/윈도우 모두 지원. 오픈소스 기반으로 개발됨
  • Maria DB  -MySQL과 완벽히 호환

5) NoSQL (Not Only SQL)

- 전통적인 RDB보다 덜 제한적인 일관성 모델 사용. 빅데이터와 실시간 웹 애플리케이션의 상업적 이용에 쓰임.

 

 

 

3. DBMS 특징

  • 데이터 무결성  -부적절한 자료가 입력되어 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질
  • 데이터 일관성  -삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정해야 하는 성질
  • 데이터 회복성  - 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질
  • 데이터 보안성  -불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질
  • 데이터 효율성  -응답시간, 저장 공간 활용 등이 최적화 되어 사용자, 소프트웨어, 시스템 등의 요구 조건을 만족시켜야 하는 성질

 

 

4. DBMS 분류

1) 시스템 특징별 분류

- 관리하는 데이터의 형태 및 관리 방식에 따라

관계형 DBMS (Relational DBMS) - 테이블의 구조(스키마)를 정의하고 테이블 간의 관계를 정의하여 데이터 관리
- 가장 광범위하게 쓰이는 DBMS
- 비관계형 부분까지 확장하여 관리 범위를 넓힌 형태의 관계형 DBMS 출시
ex. Oracle, MySQL, MS SQL Server, PostgreSQL, DB2, Maria DB
문서 저장 DBMS (Document Store DBMS) - 스키마 구조 & 일관된 구조 필요X
- 컬럼은 하나 이상의 값을 가질 수 있음
- Client 에서 후처리 필요
ex. Mongo DB, Amazon Dynamo DB, Couchbase, MS Azure cosmos DB
그래프 DBMS (Graph DBMS) - 노드와 에지로 특징되는 요소 특화
- 노드 간 관계를 구조화 하여 저장
ex. Neo4j, MS Azure cosmos DB, Orient DB, Arango DB
키값 DBMS (Key-value DBMS) - 가장 간단한 형태의 DBMS
- 임베디드 시스템과 같은 간단한 시스템에 적합
ex. Redis, Amazon Dynamo DB, Memcached

 

2) 상용화 및 오픈소스 기반 분류

  • 상용화 DBMS  - Oracle, MS SQL Server, DB2, Microsoft Access, Teradata
  • 오픈소스 기반 DBMS  - MySQL, PostgreSQL, Mongo DB, Redis, Elasticsearch

 

 

 

S2. 관계형 데이터베이스 활용

1. ERD (Entity-Relational Diagram; 개체-관계 다이어그램)

- 업무분석 결과로 도출된 실체(Entity; 엔티티)와 엔티티 간의 관계를 도식화 한 것

- 요소들 간 연관성을 도식화

- 구성요소 : 개체, 관계, 속성

 

E-R Model

- ERD로 도식화하기 전 각 개체를 사각형, 화살표, 마름모로 표기한 형태.

- 업무, 개체, 관계, 속성

 

① 엔티티 (Entity) = 개체

- 사물, 사건, 개체

- 사각형으로 나타냄. (이름은 대문자. 단수형. 유일한 단어)

 

② 속성 (Attribute)

- 엔티티가 가지고 있는 요소 또는 성질

- 선으로 연결된 동그라미(Chen Model)  or  표 형식 (Crow's Foot Model)

- 표 형식(Crow's Foot Model)이 관계형 데이터베이스 활용에서 더 편함

- (속성명 단수형. 엔티티명 사용하면X. 속성이 필수사항(Not Null)인지 필수사항이 아닌지(Null) 고려해서 작성)

 

③ 관계 (Relationship)

- 두 엔티티 간의 관계 정의

 

 

2. ERD 작성 절차

1) ERD 작성을 위한 요소 추출

  • 시나리오
  • 업무로부터 추출 - 개체, 속성, 관계

2) E-R Model 작성

  • 추출된 요소로 ERD 작성 후 추출 요소 입력.

3) ERD 관계형 스키마 작성 (논리스키마(개념스키마))

  1. 관계형 스키마 작성을 위한 테이블 형태를 표시  -테이블의 가장 윗칸은 유일하게 필드를 구분할 수 있는 유일키가 되어야 함. 유일키 아래 칸에 속성 기입.
  2. 테이블 간 관계 설정.  - 표기 시 1:1, 1:N, N:1, N:M 의 관계 고려해야. 테이블간 연결할 수 있는 속성 부여.

4) 관계형 DB 테이블 생성

  1. 관계형 테이블 생성을 위한 물리스키마 작성  - SQL 표준언어는 한글 입력 허용X. 3)의 논리 스키마와 매칭되는 물리스키마 작성해야함.
  2. 테이블 생성을 위한 SQL 명령어 작성