정보처리기사(필기) 📝 03. 데이터베이스 구축 (2)
정보처리기사(필기) 📝 03. 데이터베이스 구축 (2)
📌 1. 논리 데이터베이스 설계
✅ 1) 데이터베이스 설계
♦️ 데이터베이스 설계시 고려사항
- 무결성: DML 연산 후에도 제약조건 항상 만족
- 일관성
- 회복: 장애 발생 시 발생 직전의 상태로 복구 가능
- 보안
- 효율성
- 확장성
1️⃣ 요구 조건 분석
2️⃣ 개념적 설계
- 추상적 개념으로 표현
- E-R 다이어그램 작성
3️⃣ 논리적 설계
- RDB 경우 테이블 설계하는 단계
4️⃣ 물리적 설계
- 물리적 구조의 데이터로 변환
5️⃣ 구현
- DDL로 DB 생성
- 트랜잭션 작성
♦️ 데이터 모델
- 현실 세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술하는 개념적 도구
- 구성 요소:
- 🟥 개체(Entity) ⇒ DB에 표현하려는 것, 사람이 생각하는 개념이나 정보
- 🔴 속성(Attribute) ⇒ 데이터의 가장 작은 논리적 단위
- ♦️ 관계(Relationship) ⇒ 개체 간의 관계, 속성 간의 논리적인 연결
♦️ 데이터 모델에 표시할 요소
- 구조(Structure): 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 성질
- 연산(Operation): DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세
- 제약조건(Constraint): 실제 데이터의 논리적인 제약조건
♦️ 개체(Entity)
집게리아 사원 개체
| 사원번호 | 이름 | 직급 | 급여 | 지역번호 |
|---|---|---|---|---|
| 1 | 집게사장 | 사장 | 300 | 062 |
| 2 | 스폰지밥 | 대리 | 200 | 02 |
| 3 | 징징이 | 과장 | 230 | 031 |
- 실제 독립적으로 존재하는 정보로서 서로 연관된 몇 개의 속성으로 구성
- 속성 ⇒ 사원번호, 이름, 직급, 급여, 지역번호
✅ 2) 개념적, 논리적, 물리적 설계
✅ 3) E-R Diagram
♦️ E-R Diagram
- ‘Entity 개체’와 ‘Relationship 관계’를 중점적으로 데이터베이스 구조를 한 눈에 알아보기 위한 다이어그램
- 개체 관계도라고도 불리며 요구분석사항에서 얻은 엔티티와 속성들의 관계를 그림으로 표현
♦️ Peter-Chen 표기법
- Entity 는 직사각형, Attribute 는 타원, Relation 은 마름모로 도식화한다.
✅ 4) 관계형 데이터 구조
♦️ 관계형 데이터 모델
- 관계형 데이터 모델은 2차원 형태의 테이블로 자료를 표현하는 것을 말한다.
- 1970년 IBM에 근무하던 코드(E.F.Codd)에 의해 제안
- 개체(Entity), 관계(Relationship)을 모두 Relation이라는 Table로 표현
- 개체 릴레이션, 관계 릴레이션
✅ 5) 데이터베이스 키
♦️ EMPLOYEE
| 사원번호 | 이름 | 직급 | 급여 | 지역번호 |
|---|---|---|---|---|
| 1 | 짱구 | 과장 | 150 | 02 |
| 2 | 맹구 | 차장 | 300 | 031 |
| 3 | 훈이 | 인턴 | 061 |
- 사원번호는 Primary Key(unique, NotNull)
- 지역번호는 Foreign Key (AREA 테이블의 Primary Key)
♦️ AREA
| 지역번호 | 지역명 |
|---|---|
| 02 | 서울 |
| 031 | 경기 |
| 061 | 전남 |
- 지역번호는 Primary Key(unique, NotNull)
- 맹구의 지역은? 경기
- 후보키(Candidate Key): 기본키가 될 수 있는 키
- 대체키(Alternate Key): 후보키 중 기본키가 아닌 키
- 슈퍼키(Super Key): 속성들의 집합
- 유일성은 만족시키지만, 최소성은 만족 못 시킨다.
- 학번 + 주민번호, 학번 + 이름, 학번 + 이름 + 주민번호
✅ 6) 무결성
- 개체 무결성(Entity Integrity)
- Primary Key는 유일하고, null이 아니어야 함
- 도메인 무결성(Domain Integrity)
- ex) 지역번호를 -83으로 준 경우 > 도메인 무결성 위반
- 참조 무결성(Referential Integrity)
- 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 같아야 한다.
✅ 7) Trigger
♦️ Trigger
- DML(Insert, Update, Delete) 일어날 때마다 무결성 조건 바로 검증
✅ 8) 관계대수 관계해석
♦️ 관계대수 vs 관계해석
✏️ Query Language
- HOW > 절차적 (물낉여서 라면넣고 3분낉여와)
- 관계대수
- WHAT > 비절차적 (라면낉여와
- 관계해석
» SQL
♦️ 관계대수
- RDB에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는지 기술하는 절차적인 언어
- 연산자, 피연산자, 결과도 모두 릴레이션이다.
- 순수관계연산자: Select, Project, Join, Division
- 📌 Project (π): 속성 값 추출
- 📌 Select (σ): 선택 조건을 만족하는 튜플의 부분 집합
- 📌 Join (▷◁): 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합침
- 📌 Division (÷): 나누는 릴레이션의 모든 튜플과 연관되어 있는 튜플 중 나누는 속성을 제외한다.
- 일반집합연산자: Union(합집합), Intersection(교집합), Difference(차집합), Cartesian Product(곱집합)
♦️ 관계해석의 개요
- E.F Codd가 수학의 술어해석에 기반을 두고 RDB를 위해 제안
- 원하는 정보가 무엇이라는 것만 정의하는 비절차적 언어
- 관계 데이터의 연산을 표현하는 방법
- 관계해석, 관계대수는 관계 데이터베이스 처리 기능, 능력 동등
- 관계대수로 표현한 식은 관계해석으로 표현 가능
- 질의어로 표현
- 튜플 관계해석, 도메인 관계해석
This post is licensed under CC BY 4.0 by the author.


