정보처리기사 준비

2. 데이터입·출력 구현 - 핵심 내용 정리

안개바다 2024. 1. 21. 01:28

데이터 베이스 개요

1. 데이터 저장소

데이터를 논리적인 구조로 조직화(논리 데이터 저장소) or 물리적인 공간에 구축(물리 데이터 저장소)

  - 논리 데이터저장소 : 데이터 간의 연관성, 제역조건 등을 논리적인 구조로 조직화 한 것
  - 물리 데이터 저장소 : 논리 데이터 저장소를 실제 저장장치에 저장한 것

2. 데이터베이스

공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장장치에 저장하여 사용할 수 있도록 운영하는 운영 데이터

 

데이터 베이스 설계

해당 설계가 개념적, 논리적, 물리적 중 어떻것인지만 구분할 수 있으면 문제해결 가능

1.  설계시 고려사항

 - 무결성 : CRUD 중에도 데이가 제약조건을 벗어나면 X
 - 일관성 : 저장된 데이터나 DB의 응답값이 '일정'해야한다.
 - 회복 : 장애 발생 직전의 상태로 복귀가 가능한지
 - 보안 : 데이터 유출, 변경, 손실로부터 보호가 가능한지
 - 효율성 : 더 빠르게, 더 작은 용량, 더 효율적인지
 - DB 확장 : 운영에 영향을 안주면서 지속적으로 용량 확장이 가능한지

 

2. 데이터베이스 설계 순서

요구 조건 분석 -> 설계 -> 구현
설계 3단계 : 개념적 설계 -> 논리적 설계 -> 물리적 설계

(1) 요구 조건 분석

사람들에게 해당 DB가 필요한 용도를 파악, 수집한 정보(데이터 종류, 용도, 처리형태, 제약조건 등) 을 바탕으로 요구조건 명세 작성

(2-1) 개념적 설계

정보를 구조화 하기 위해 추상적 개념으로 표현하는 과정, 요구조건 분석을 통해 DBMS 독립적인 E-R 다이어그램 작성

(2-2) 논리적 설계

자료를 컴퓨터가 이해할 수 있도록 특정 DBMS의 논리적 자료 구조로 변환하는 과정, 관계형 DB의 경우 이 단계에서 테이블을 설계 및 정규화 수행

(2-3) 물리적 설계

논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정, DB 파일의 저장 구조 및 엑세스 경로를 결정
저장 레코드의 정보(형식,순서,접근경로 등)를 사용하여 에디터가 컴퓨터에 저장되는 방법을 묘사

(3) DB 구현

앞선 설계 단계에서 도출된 데이터베이스 스키마를 실제 파일로 생성하는 단계, 특정 DBMS에서 데이터베이스 스키마를 생성한 후 데이터를 입력하며, 응용 프로그램에서 사용하기 위한 트랜잭션을 작성

 

관계형 DB의 구조 / 관계형 데이터 모델

1. 관계형 DB란?

2차원 표를 이용해서 데이터 상호 관계를 정의하는 DB 구조, 대표적으로 SQL이 있습니다.
- 데이터베이스를 단순한 자료구조에 저장
- high-level language로 데이터에 접근
- 기본키(Primary Key)와 외래키(Foreign Key)로 데이터간의 관계를 표현
- 1:1, 1:N, 1:M 관계를 자유롭게 표현 가능

2. 관계형 DB의 구조

개체(Entity)와 관계(Relationship)을 모두 릴레이션(Realtion)표로 표현
장점 : 간결하고 보기 편리, 다른 DB로 변환하기도 쉽습니다.
단점 : 성능이 다른 DB대비 떨어집니다.

3.  관계형 DB의 릴레이션 구조

텍스트보다 이미지로 이해하는게 좋다

해당 표의 속성을 나타내는 각각의 용어 정리가 필수이다.

- 튜플(Tuple) : 릴레이션 표의 행
 > 위의 표에서 튜플 하나를 예시로 지정해보면 [89001/홍길동/2/170/CD] 가 된다.
- 카디널리티(Cardinality)-기수 : 튜플의 수
 > 위의 표에서 카디널리티는 '4'이다.
- 속성(Attribute) : DB를 구성하는 가장 작은 논리단위, 릴레이션 표의 열
 > 위의 표에서 학번, 이름, 학년, 신장, 학과가 속성이 된다.
- 차수(Degree) : 속성의 개수
 > 위의 표에서는 속성이 5개이므로 차수는 5이다. 
- 도메인(Domain) : 속성 값의 집합이다. 
 > 위의 표에서 속성'학년'의 도메인은 [2,1,2,4]이다.
     단순히 값들의 집합을 이야기 하기도 하지만, 해당 속성의 데이터가 가질수 있는 타입이나 범위를 지정하는 개념이다.
     도메인 설정에 따라서 원하지 않는 값의 추가를 방지 할 수 있다.

- 릴레이션 스키마
 > 속성 들이 적혀 있는 행을 의미
- 릴레이션 인스턴스
 > 튜플이 있는 행의 의미

4. 릴레이션의 특징

- 릴레이션은 순서가 없는 집합(unordered set)의 개념
- 튜플 간, 속성 간 순서가 없고, 동일한 튜플은 존재할 수 없으니 각 튜플이 모두 유일하며 각각 식별 가능 
- 튜플들의 삽입, 갱신, 삭제가 실시간으로 발생하므로 릴레이션은 자주 변함

 

5. 관계형 DB의 제약조건 - Key

정의를 물어보는 문제가 자주 출제, 유일성과 최소성 만족 여부에 따라 후보키와 슈퍼키로 구분되는 문제도 자주 출제
- Candidate Key (후보키)
   > 속성들 중 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합, 유일성과 최소성을 동시에 만족시켜야 함
   Super Key 중에서 최소성을 갖는 Key. 위의 예시에서는 (학번)이 됩니다.
   DBMS는 새로운 튜플을 릴레이션에 삽입할 때, 기존의 튜플과 후보키를 비교 중복 여부를 확인합니다.
- Primary Key (기본키)
   > 특별히 선정된 메인키, 중복된 값 불가능
   Candidate Key 중의 하나가 Primary Key가 되며, 개체 식별자로 튜플을 유일하게 식별가능
   일부 DBMS는 primary key를 별도로 정하지 않으면 자동적으로 내부 primary key를 생성
   NULL값을 갖지 않는 속성이어야 하며, 데이터의 빠른 검색을 위해 간단한 값을 갖는 속성이 유리합니다.
- Super Key (슈퍼키)
   > 유일성은 만족하지만 최소성은 만족하지 못 하는 경우
   릴레이션에서 튜플을 식별할 수 있는 유니크한 속성의 집합, 유일성을 가짐. 즉, 위의 예시에서 (학번, 이름), (학번, 이름, 학년), (학번, 전공) 등이 모두 Super Key가 될 수 있습니다.   
- Alternate Key (대체키) - Primary Key를 제외한 나머지 Candidate Key를 의미, Primary Key가 될 수 있는 후보, 보조키라고도 합니다.
- Foreign Key (외래키) - 한 릴레이션으로부터 다른 릴레이션의 튜플을 참조하는 데 사용되는 속성

 

 

 

참조

1. [DB] 1. Relational Model (관계형 모델) https://rebro.kr/143