1) 데이터 베이스 개념
1-1) 데이터베이스 특징
1-2) 데이터베이스 설계 순서
➀ 요구조건 분석
➁ 개념적 설계
➂ 논리적 설계
➃ 물리적 설계
➄ 구현
2) 데이터베이스용어



💡 ACID (트랜잭션의 안정성)
Atomicity
- 원자성
- 전부 실행되거나, 전부 취소
- 부분 성공은 없음
Consistency
- 일관성
- 데이터는 항상 규칙을 만족해야한다
Isolation
- 독립성
- 트랜잭션끼리 서로 간섭하지 않는다.
Durability
- 지속성
- 커밋되면 무조건 저장된다.
- 데이터 유지
스키마(Schema)
데이터베이스의 구조와 제약조건에 관한 전반적인 명세
스키마 종류
| 스키마 | 설명 |
|---|---|
| 내부 스키마(물리) | 시스템 프로그래머나 설계자의 관점에서 정의하는 데이터베이스 |
| 개념 스키마(논리) | 사용자들이 필요로 하는 데이터를 기관이나 조직의 관점에서 정의하는 데이터베이스 |
| 외부 스키마(서브) | 사용자 등의 개인적 입장에서 필요로 하는 데이터베이스 |

💡 유일성
- 하나의 키로 특정 행을 바로 찾아낼 수 있는 고유한 데이터의 속성
- 유일성만 만족해도 슈퍼키가 될 수 있다.
1) 데이터베이스 관리 시스템 개념
| DBMS | 장점 |
|---|---|
| • 데이터 중복 최소화 | • 데이터 표준화 적용 가능 |
| • 데이터 공유(일관성 유지) | • 데이터 접근 용이 |
| • 정합성, 무결성, 보안성 유지 | • 데이터 저장 공간 공유로 인한 절약 |
| • 사용자 중심의 데이터 처리 |
| DBMS | 단점 |
|---|---|
| • 데이터베이스 전문가(DBA) 필요 | • 시스템의 복잡성 |
| • DBMS 구축 서버 필요 및 유지비 | • 대용량 디스크로 엑세스 집중 시 병목 현성으로 과부하 발생 |
| • 데이터 백업과 복구가 어려움 | • 대용량 데이터 처리가 어려움 |
2) DBMS 특징
| DBMS 특징 | 설명 |
|---|---|
| 데이터 무결성 | • 부적절한 자료가 입력되어 동일한 내용에 대하여 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질 |
| 데이터 일관성 | • 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정해야하는 성질 |
| 데이터 회복성 | • 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성질 |
| 데이터 보안성 | • 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질 |
| 데이터 효율성 | • 응답 시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 등의 요구 조건을 만족시켜 하는 성질 |
3) 데이터베이스 관리자 (DBA, DataBase Administrator)
💡 DBA의 주요 업무
- DB 구성요소 선정
- DB 스키마 정의
- 물리적 저장 구조와 접근 방법 결정
- 무결성 유지를 위한 제약조건 정의
- 보안 및 접근 권한 정책 결정
- 백업 및 회복 기법 정의
- 시스템 DB 관리
- 시스템 성능 감시 및 성능 분석
- DB 재구성
4) DBMS 종류
4-1) 파일 시스템
| 파일 시스템 | 설명 |
|---|---|
| ISAM | • Indexed Sequential Access Method |
| • 자료 내용은 주 저장부 | |
| • 자료의 색인은 자료가 기록된 위치와 함께 색인부에 기록되는 시스템 | |
| VSAM | • Virtual Storage Access Method |
| • 대형 운영 체계에서 사용되는 파일 관리 시스템 |
4-2) 계층형 DB 관리 시스템
4-3) 망형 DB 관리 시스템
4-4) 관계형 DB 관리 시스템
| RDBMS | 설명 |
|---|---|
| Oracle | • 미국 오라클사에서 개발한 RDBMS로, 유료이다. |
| • 리눅스, 유닉스, 윈도우 모두를 지원하며 대형 시스템에서 많이 사용한다. | |
| SQL Server | • MS사에서 개발한 RDBMS |
| • MS사 제품 이기 때문에 Windows에서만 구동된다. | |
• MS사의 개발 언어인 C# 등과 가장 잘 호환된다. | |
| MySQL | • 썬 마이크로시스템에서 소유했던 RDBMS였으나 오라클에서 인수했다. |
| • 리눅스, 유닉스, 윈도우에서 모두 사용이 가능하고, 오픈소스 기반을 ㅗ개발되었다. | |
| Maria DB | • MySQL 출신 개발자가 만든 DB이다. |
| • MySQL과 완벽히 호환된다. |
4-5) NoSQL
RDBMS보다 덜 제한적인 일관성 모델을 이용
5) DBMS 구조



6) DBMS 분류
6-1) 시스템 특징별 분류
관계형 DB, 문서 저장 시스템, 그래프 DB, Key-Value 스토어 등으로 구분된다.| DBMS | 설명 |
|---|---|
| 관계형 DBMS | • RDBMS(Relational DBMS) |
| • 테이블의 구조(스키마)를 정의하고 테이블 간의 관계를 정의하여 데이터 관리 | |
| • 가장 광범위하게 쓰이는 DBMS | |
| • 비관계형 부분까지 확장하여 관리 범위를 넓힌 형태의 관계형 DBMS 출시 | |
| • ex) Oracle, MySQL, MS SQL Server, PostgreSQL, DB2, Maria DB | |
| 문서 저장 DBMS | • DSDBMS(Document Stroe DBMS) |
| • 관계형 DBMS와는 달리 스키마 구조가 필요 없음 | |
| • 일관된 구조가 필요 없음 | |
| • 컬럼은 하나 이상의 값을 가질 수 있음 | |
| • Client에서 후처리 필요 | |
| • ex) Mongo DB, Amazon Dynamo DB, Couchbase, MS Azure cosmos DB | |
| 그래프 DBMS | • GDBMS(Graph DBMS) |
| • 노드와 에지로 특징되는 요소 특화 | |
| • 노드 간 관계를 구조화하여 저장 | |
| • ex) Neo4j, MS Azure cosmos DB, Orient DB, Arango DB | |
| 키값 DBMS | • Key-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 중 하나로, 유료이며 리눅스/유닉스/윈도우 모드를 지원하고 대형 시스템에서 많이 사용한다.
2) 다음 보기에서 설명하는 용어를 작성하시오.
데이터베이스의 중앙처리시스템인 DBMS를 관리하며 데이터의 검색, 삽입, 수정, 삭제를 수행하는 관리자를 의미한다.
3) 아래 테이블의 카디널리티(Cardinality)의 수와 디그리(Degree)의 수를 구하시오.
| 사번 | 부서 | 직급 | 성명 | 전화번호 |
|---|---|---|---|---|
| 111 | 영업부 | 팀장 | 김* | 111-1111 |
| 222 | 무역부 | 과장 | 이* | 222-2222 |
| 333 | 홍보부 | 사원 | 박* | 333-3333 |
1) ERD 개요
Entity)와 Entity 간의 관계를 도식화한 것
2) E-R Model
E-R Model이라고 한다.| 정의 | 설명 |
|---|---|
| 업무 | • 각각의 종업원은 한 매장에 소속된다. |
| • 종업원에 관해서는 사번, 이름, 주소, 휴대전화번호의 정보를 관리한다. | |
| • 매장에 대해서는 매장 코드, 매장명, 매장 전화번호, 매장 주소 정보가 유지된다. | |
| 개체, 관계, 속성 | • 개체 : 종업원, 매장 |
| • 관계 : 소속 | |
| • 속성 : 사번, 이름, 주소, 휴대전화번호, 매장 코드, 매장명, 매장 전화번호, 매장 주소 |
2-1) 엔티티(Entity)
Entity는 사각형( ▢ )으로 나타내고, 사각형 안에는 Entity의 이름을 넣는다.Entity 이름은 가능한 대문자로 쓰며 단수명으로 명명한다.
2-2) 속성(Attribute)
Entity가 가지고 있는 요소 또는 성질
Crow's Foot Model이 편리하다.
2-3) 관계(Relationship)
Entity 간의 관계를 정의한다.
3) E-R Model 표기법

1) ERD 작성을 위한 요소 추출
📝 시나리오
(1) 보험사에서 사용하는 데이터베이스를 설계한다.
(2) 고객이있고 고객이 이용하는 계좌가 있다.
(3) 고객에 대한 정보로는 이름, 주소, 휴대전화번호, 주민등록번호가 있다.
(4) 고객 계좌에 대한 정보로는 계좌번호, 계좌종류, 잔고, 개설일자, 인출한도가 있다.
(5) 주소에 대한 정보로는 시군구, 동, 상세 주소, 우편번호가 있다.
| 업무로부터 추출 | 내용 |
|---|---|
| 개체 | • 고객, 계좌, 주소 |
| 속성 | • 이름, 휴대전화번호, 주민등록번호 |
| • 계좌번호, 계좌종류, 잔고, 개설일자, 인출한도 | |
| • 시군구, 동, 상세주소, 우편번호 | |
| 관계 | • 고객이 계좌번호를 소유한다. |
| • 고객이 주소를 소유한다. |
2) E-D Model 작성

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

3-2) 테이블 간 관계를 한다.
1:1, 1:N, M:1, M:N의 관계를 고려해야 한다.
4) 관계형 데이터베이스 테이블 생성
4-1) 관계형 테이블 생성을 위한 물리 스키마를 작성한다.

4-2) 테이블 생성을 위한 SQL 명령어를 작성한다.
datatype은 정수형, 실수형, 날짜형 등 다양하다.💡 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이 제안한 현실 세계를 개념적으로 표현한 방법으로 업무 분석 결과로 도출된 개체와 관계를 도식화한 표현이다. 다음 괄호에 들어갈 단어를 쓰시오.
| 기호 | 의미 |
|---|---|
| 사각형 | 개체 집합 |
| 타원 | ( ➀ ) |
| 마름모 | ( ➁ ) |
| 선 | 연결 |
CRUD는 데이터베이스가 가지는 기본적인 데이터 처리 기능이다.Create : 생성Read : 읽기Update : 수정Delete : 삭제| 기본 처리 | SQL | 설명 |
|---|---|---|
Create | Insert | 데이터 내 컬럼에 데이터를 추가한다. |
Read | Select | 데이터 내 컬럼에 저장된 데이터를 불러온다. |
Update | Update | 데이터 내 컬럼에 저장된 데이터를 수정한다. |
Delete | Delete | 데이터 내 컬럼에 저장된 데이터를 삭제한다. |
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 = `청아아파트 111동 11호`
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(갱신) 그리고 이것이 있는데 이것은 무엇인지 쓰시오.