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:1, 1:N, N:1, N:M 의 관계 고려해야. 테이블간 연결할 수 있는 속성 부여.
4) 관계형 DB 테이블 생성
- 관계형 테이블 생성을 위한 물리스키마 작성 - SQL 표준언어는 한글 입력 허용X. 3)의 논리 스키마와 매칭되는 물리스키마 작성해야함.
- 테이블 생성을 위한 SQL 명령어 작성
'시험' 카테고리의 다른 글
| #실기 P1. ch2 프로그래밍 언어 활용 (0) | 2023.03.13 |
|---|---|
| #실기 P3 응용 SW 기초 기술 활용 - 네트워크 (0) | 2023.03.07 |
| #실기 P3 응용 SW 기초 기술 활용 - 운영체제 (0) | 2023.03.04 |
| #실기 P2 애플리케이션 테스트 수행 (0) | 2023.02.28 |