3. 응용 SW 기초 기술 활용 : 데이터베이스

강재훈·2026년 4월 6일

Chapter 3 : 데이터베이스


🍀 Section 1 | 데이터베이스 종류 및 선정

1. 데이터 베이스

1) 데이터 베이스 개념

  • 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합
  • IT 시스템의 발달로 인한 급증하는 데이터에 대한 효과적인 관리가 중요해졌다.
  • 데이터베이스 관리의 핵심
    • 자료의 중복성 제거
    • 무결성 확보
    • 일관성 유지
    • 유용성 보장


1-1) 데이터베이스 특징

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


1-2) 데이터베이스 설계 순서

➀ 요구조건 분석
➁ 개념적 설계
➂ 논리적 설계
➃ 물리적 설계
➄ 구현


2) 데이터베이스용어

  • 릴레이션(Relation)
    • 속성(열)과 튜플(행)로 구성된 중복 없는 데이터의 집합
  • 속성(Atrribute)
    • 릴레이션 내의 하나의 열
    • 어떤 개체(Entity)를 표현하고 저장한 것
    • 컬럼(Column) 또는 필드(Feild)로 표현하기도 한다.
  • 튜플(Tuple)
    • 릴레이션 내의 하나의 행
    • 레코드(Record) 또는 로우(Row)로 표현하기도 한다.
  • 차수(Degree)
    • 하나의 릴레이션 내에 들어있는 속성의 수(열의 개수)
  • 기수(Cardinality)
    • 하나의 릴레이션 내에 들어있는 튜플의 수(행의 개수)
  • 도메인(Doamin)
    • 릴레이션 내 각각의 속성들이 가질 수 있는 값들의 집합

  • 뷰(View)
    • 하나 이상의 기본 테이블로부터 유도된 가상의 테이블
    • 구조와 조작도 기본 테이블과 매우 유사하다.

  • 트랜잭션(Transaction)
    • 데이터베이스 내에서 하나의 작업 수행을 위한 연산들의 집합

💡 ACID (트랜잭션의 안정성)

  • Atomicity
    • 원자성
    • 전부 실행되거나, 전부 취소
    • 부분 성공은 없음
  • Consistency
    • 일관성
    • 데이터는 항상 규칙을 만족해야한다
  • Isolation
    • 독립성
    • 트랜잭션끼리 서로 간섭하지 않는다.
  • Durability
    • 지속성
    • 커밋되면 무조건 저장된다.
    • 데이터 유지
  • 스키마(Schema)

    • 데이터베이스의 구조와 제약조건에 관한 전반적인 명세

    • 스키마 종류

      스키마설명
      내부 스키마(물리)시스템 프로그래머나 설계자의 관점에서 정의하는 데이터베이스
      개념 스키마(논리)사용자들이 필요로 하는 데이터를 기관이나 조직의 관점에서 정의하는 데이터베이스
      외부 스키마(서브)사용자 등의 개인적 입장에서 필요로 하는 데이터베이스
  • 키(Key)
    • 무언가를 식별하는 고유한 식별자(Identifier) 기능을 하는 것
    • 슈퍼키
      • Super Key
      • 유일성 만족, 최소성 불만족하는 속성들의 집합
    • 후보키
      • Candidate Key
      • 유일성 만족, 최소성 만족하는 속성들의 집합
    • 기본키
      • Primary Key
      • 후보키 중 선정된 키
      • 중복값 입력 불가능
      • Null 값을 가질 수 없음
    • 대체키
      • Alternate Key
      • 후보키 중 기본키로 선택되지 못한 후보키들
    • 외래키
      • Foreign Key
      • 다른 테이블의 행을 식별하는 키

💡 유일성

  • 하나의 키로 특정 행을 바로 찾아낼 수 있는 고유한 데이터의 속성
  • 유일성만 만족해도 슈퍼키가 될 수 있다.


2. 데이터베이스 관리 시스템 (DBMS, DataBase Management System)

1) 데이터베이스 관리 시스템 개념

  • 데이터 관리의 복잡성을 해결할 수 있다.
  • 데이터 추가/변경/검색/삭제 및 백업/복구/보안 등의 기능을 지원하는 소프트웨어
  • 저장되는 정보는 텍스트, 이미지, 음악 파일, 지도 데이터 등으로 매우 다양하다.
  • SNS의 발달과 빅데이터의 폭넓은 활용으로 데이터의 종류와 양이 급격히 증가하는 추세이다.

DBMS장점
• 데이터 중복 최소화• 데이터 표준화 적용 가능
• 데이터 공유(일관성 유지)• 데이터 접근 용이
정합성, 무결성, 보안성 유지• 데이터 저장 공간 공유로 인한 절약
사용자 중심의 데이터 처리

DBMS단점
• 데이터베이스 전문가(DBA) 필요• 시스템의 복잡성
• DBMS 구축 서버 필요 및 유지비• 대용량 디스크로 엑세스 집중 시 병목 현성으로 과부하 발생
• 데이터 백업과 복구가 어려움• 대용량 데이터 처리가 어려움

2) DBMS 특징

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

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

  • DB를 직접 활용하기보다는 사용자를 위해 DB설계 및 구축하고, 제대로 서비스할 수 있도록 DB관리하고 제어한다.

💡 DBA의 주요 업무

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

4) DBMS 종류

4-1) 파일 시스템

  • 파일에 이름을 부여
  • 저장이나 검색을 위하여 노리적으로 그것들을 어디에 위치시켜야 하는지 등을 정의한 뒤 관리
  • DB 전 단계의 관리 방식
파일 시스템설명
ISAMIndexed Sequential Access Method
• 자료 내용은 주 저장부
• 자료의 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 시스템
VSAMVirtual Storage Access Method
대형 운영 체계에서 사용되는 파일 관리 시스템


4-2) 계층형 DB 관리 시스템

  • HDBMS : Hierarchical DBMS
  • 데이터를 상하 종속적인 관계로 계층화하여 관리하는 DB이다.
  • 데이터에 대한 접근 속도가 빠르다.
  • 종속적인 구조로 인하여 변화하는 데이터 구조에 유연하게 대응하기가 쉽지 않다.
  • IMS, System 2000과 같은 제품이 있다.


4-3) 망형 DB 관리 시스템

  • NDBMS : Network DBMS
  • 데이터의 구조를 네트워크 상의 망상 형태로 논리적으로 표현한 데이터 모델
  • 트리 구조나 HDBMS보다는 유연하지만 설계가 복잡하다는 단점이 있다.
  • IDS, TOTAL, IDMS와 같은 제품이 있다.


4-4) 관계형 DB 관리 시스템

  • RDBMS : Relational DBMS
  • 가장 보편화 된 DB 관리 시스템
  • 데이터를 저장하는 테이블의 일부를 다른 테이블과 상하 관계로 표시하며 상관 관계를 정리한다.
  • 변화하는 업무나 데이터 구조에 대한 유연성이 좋아 유지 관리가 용이하다.
RDBMS설명
Oracle미국 오라클사에서 개발한 RDBMS로, 유료이다.
• 리눅스, 유닉스, 윈도우 모두를 지원하며 대형 시스템에서 많이 사용한다.
SQL ServerMS사에서 개발한 RDBMS
• MS사 제품 이기 때문에 Windows에서만 구동된다.
• MS사의 개발 언어인 C# 등과 가장 잘 호환된다.
MySQL• 썬 마이크로시스템에서 소유했던 RDBMS였으나 오라클에서 인수했다.
• 리눅스, 유닉스, 윈도우에서 모두 사용이 가능하고, 오픈소스 기반을 ㅗ개발되었다.
Maria DBMySQL 출신 개발자가 만든 DB이다.
MySQL과 완벽히 호환된다.


4-5) NoSQL

  • Not Only SQL
  • 전통적인 RDBMS보다 덜 제한적인 일관성 모델을 이용
  • 빅 데이터실시간 웹 앱의 상업적 이용에 쓰인다.


5) DBMS 구조


6) DBMS 분류

6-1) 시스템 특징별 분류

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


6-1) 시스템 특징별 분류

DBMS설명
상용화 DBMS상업적 목적으로나, 판매를 목적으로 생성되는 소프트웨어
• ex) Oracle, MS SQL Server, DB2, Microsoft Access, Teradata
오픈소스 기반 DBMS• 누구에게나 공개해 누구나 제한 없이 사용할 수 있는 소프트웨어
• MySQL, PostgreSQL, Mongo DB, Rdis, Elasticsearch

🚀 예상문제


1) 다음 보기에서 설명하는 데이터베이스 관리 시스템은 무엇인지 쓰시오.

관계형 데이터베이스 시스템인 RDBMS 중 하나로, 유료이며 리눅스/유닉스/윈도우 모드를 지원하고 대형 시스템에서 많이 사용한다.

  • 답 : Oracle


2) 다음 보기에서 설명하는 용어를 작성하시오.

데이터베이스의 중앙처리시스템인 DBMS를 관리하며 데이터의 검색, 삽입, 수정, 삭제를 수행하는 관리자를 의미한다.

  • 답 : DBA


3) 아래 테이블의 카디널리티(Cardinality)의 수와 디그리(Degree)의 수를 구하시오.

사번부서직급성명전화번호
111영업부팀장김*111-1111
222무역부과장이*222-2222
333홍보부사원박*333-3333
    • 카디널리티 : 3
    • 디그리 : 5

🍀 Section 2 | 관계형 데이터베이스 활용

1. 개체-관계 다이어그램(ERD, E-R Diagram)

1) ERD 개요

  • 업무 분석 결과로 도출된 실체(Entity)와 Entity 간의 관계를 도식화한 것
  • 요소들 간 연관성을 도식화하기 때문에 데이터베이스 관리자, 개발자, 사용자 모두 데이터의 흐름과 연관성을 공통적으로 쉽게 확인할 수 있다.


2) E-R Model

  • ERD의 구성요소인 개체, 관계, 속성을 추출하기 위해서는 업무나 시스템에 대한 명확한 정의가 있어야 한다.
  • ERD로 도식화하기 전 각 객체를 사각형, 화살표, 마름모로 표기한 형태를 E-R Model이라고 한다.
  • ex) 업무에 대한 개체, 관계 속성 추출
정의설명
업무• 각각의 종업원은 한 매장소속된다.
종업원에 관해서는 사번, 이름, 주소, 휴대전화번호의 정보관리한다.
매장에 대해서는 매장 코드, 매장명, 매장 전화번호, 매장 주소 정보가 유지된다.
개체, 관계, 속성개체 : 종업원, 매장
관계 : 소속
속성 : 사번, 이름, 주소, 휴대전화번호, 매장 코드, 매장명, 매장 전화번호, 매장 주소


2-1) 엔티티(Entity)

  • 사물 또는 사건을 의미하며, 개체라고도 한다.
  • ERD에서 Entity사각형( ▢ )으로 나타내고, 사각형 안에는 Entity의 이름을 넣는다.
    • Entity 이름은 가능한 대문자로 쓰며 단수명으로 명명한다.
    • 유일한 단어로 정한다.


2-2) 속성(Attribute)

  • Entity가 가지고 있는 요소 또는 성질
  • 속성은 선으로 연결된 타원( ○ )으로 표기(Chen Model)하거나 형식으로 표기(Crow's Foot Model)한다.

  • 관계형 데이터베이스 활용을 위해서는 Crow's Foot Model이 편리하다.
    • 속성명단수형으로 명명
    • 엔티티명을 사용하지 않는다.
    • 속성이 필수사항(Not Null)인지 필수 사항이 아닌지(Null)를 고려하여 작성한다.


2-3) 관계(Relationship)

  • Entity 간의 관계를 정의한다.
  • 개체는 사각형( ▢ ), 속성타원( ○ )을 이용하여 표시한다.


3) E-R Model 표기법

2. ERD 작성 절차

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

📝 시나리오

(1) 보험사에서 사용하는 데이터베이스를 설계한다.
(2) 고객이있고 고객이 이용하는 계좌가 있다.
(3) 고객에 대한 정보로는 이름, 주소, 휴대전화번호, 주민등록번호가 있다.
(4) 고객 계좌에 대한 정보로는 계좌번호, 계좌종류, 잔고, 개설일자, 인출한도가 있다.
(5) 주소에 대한 정보로는 시군구, 동, 상세 주소, 우편번호가 있다.

업무로부터 추출내용
개체• 고객, 계좌, 주소
속성• 이름, 휴대전화번호, 주민등록번호
• 계좌번호, 계좌종류, 잔고, 개설일자, 인출한도
• 시군구, 동, 상세주소, 우편번호
관계• 고객이 계좌번호를 소유한다.
• 고객이 주소를 소유한다.


2) E-D Model 작성

  • 추출된 요소를 가지고 ERD를 작성한다.
  • 일부 작성된 ERD에 추출 요소들을 입력한다.


3) ERD 관계형 스키마 작성

3-1) 관계형 스키마 작성을 위한 테이블 형태를 표시한다.

  • 테이블의 가장 윗칸은 유일하게 필드를 구분할 수 있는 구분자(유일키)가 되어야 한다.
  • 유일키를 만드는 방법은 여러 가지가 있으며, 일련번호를 부여하기도 한다.
  • 유일키 아래 칸에는 속성들을 기입한다.
  • 제약조건
    • 고객은 다수의 집을 보유할 수 있다.
    • 고객은 다수의 계좌를 보유할 수 있다.


3-2) 테이블 간 관계를 한다.

  • 테이블 간 관계를 표시한다.
  • 표시 시에는 1:1, 1:N, M:1, M:N의 관계를 고려해야 한다.
  • 테이블 간 연결할 수 있는 속성을 부여하여, 하나의 테이블에서 다른 테이블의 값을 찾아갈 수 있어야 한다.


4) 관계형 데이터베이스 테이블 생성

4-1) 관계형 테이블 생성을 위한 물리 스키마를 작성한다.

  • SQL 표준 언어는 한글 입력이 허용되지 않는다.
  • 논리 스키마와 매칭되는 물리 스키마를 작성한다.


4-2) 테이블 생성을 위한 SQL 명령어를 작성한다.

  • 작성 시 필요한 datatype은 정수형, 실수형, 날짜형 등 다양하다.
  • SQL 표준을 참조하여 필요로 하는 데이터형을 입력한다.

💡 SQL 명령어

CREATE TABLE table_name(
  column1 datatype,
  column2 datatype,
  ....
)

💡 SQL 예제

CREATE TABLE Address(
  Address1 varchat(255),
  Address2 varchat(255),
  Address3 varchat(255),
  Postal_Code varchat(255),
  Client_ID varchat(255);
)

🚀 예상문제

1) E-R Diagram은 1976년 P.Chen이 제안한 현실 세계를 개념적으로 표현한 방법으로 업무 분석 결과로 도출된 개체와 관계를 도식화한 표현이다. 다음 괄호에 들어갈 단어를 쓰시오.

기호의미
사각형개체 집합
타원( ➀ )
마름모( ➁ )
연결
    • ➀ : 속성
    • ➁ : 관계

🍀 Section 3 | 데이터베이스 관리

1. 데이터베이스 연산

  • CRUD는 데이터베이스가 가지는 기본적인 데이터 처리 기능이다.
    • Create : 생성
    • Read : 읽기
    • Update : 수정
    • Delete : 삭제
기본 처리SQL설명
CreateInsert데이터 내 컬럼에 데이터를 추가한다.
ReadSelect데이터 내 컬럼에 저장된 데이터를 불러온다.
UpdateUpdate데이터 내 컬럼에 저장된 데이터를 수정한다.
DeleteDelete데이터 내 컬럼에 저장된 데이터를 삭제한다.

2. 데이터베이스 연산 수행 절차

1) 데이터 삽입

  • 테이블에서 데이터를 삽입하기 위해서는 "Insert" 명령어를 사용한다.
# SQL 명령어
INSERT INTO table_name
VALUES(value1, value2, value3, ...);

# SQL 예제
INSERT INTO Address
VALUES('서울특별시', '성동구 XX동', '대신아파트 1동 101호', '09100', '121');


2) 데이터 읽기

  • 테이블에서 데이터를 읽기 위해서는 "Select" 명령어를 사용한다.
  • Select 다음 * 표기를 사용하면 모든 데이터를 읽어온다.
    • 컬러명을 지정하면 특정 컬럼만을 읽어 온다.
# SQL 명령어
SELECT column1, column2, ...
FROM table_name;

# SQL 예제
SELECT * FROM Address

# 또는
SELECT SEQ_ID, address1 FROM Address;


3) 데이터 갱신

  • 테이블에서 데이터를 갱신하기 위해서는 "Update" 명령어를 사용한다.
  • where 조건절을 사용하여 업데이트 할 데이터를 특정해야 한다.
# SQL 명령어
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

# SQL 예제
UPDATE Address
SET address1 = `제주도`, address2 = `서귀포시 색달동`, address3 = `청아아파트 11111`
WHERE SEQ_ID = 1;


4) 데이터 삭제

  • 테이블에서 데이터를 삭제하기 위해서는 "Delete" 명령어를 사용한다.
  • where 조건절을 사용하여 삭제할 데이터를 특정해야 한다.
# SQL 명령어
DELETE FROM table_name
WHERE condition;

# SQL 예제
DELETE FROM Address
WHERE address1 = '서울특별시';


5) 기타 SQL 명령어

  • ALTER DATABASE명령어로 데이터베이스를 수정한다.
  • ALTER TABLE명령어로 테이블 구조를 수정한다.
  • DROP TABLE명령어로 테이블을 전체 삭제한다.
  • CREATE INDEX명령어로 테이블 내 데이터의 검색 속도를 향상시킬 수 있는 인덱스를 생성한다.
  • DROP INDEX명령어로 인덱스를 삭제한다.
  • JOINT기능으로 복수의 테이블로부터 데이터를 조합하여 가져온다.
  • 그 외 UNION, GROUP BY 등의 다양한 명령어를 활용한다.

🚀 예상문제

1) 데이터베이스 연산 CRUD는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신) 그리고 이것이 있는데 이것은 무엇인지 쓰시오.

  • 답 : Delete(삭제)
profile
꿈을 향해 끊임없이 성장하기

0개의 댓글