Post

정보처리기사(필기) 📝 03. 데이터베이스 구축 (2)

정보처리기사(필기) 📝 03. 데이터베이스 구축 (2)

📌 1. 논리 데이터베이스 설계

✅ 1) 데이터베이스 설계

♦️ 데이터베이스 설계시 고려사항

  • 무결성: DML 연산 후에도 제약조건 항상 만족
  • 일관성
  • 회복: 장애 발생 시 발생 직전의 상태로 복구 가능
  • 보안
  • 효율성
  • 확장성

Image

1️⃣ 요구 조건 분석

2️⃣ 개념적 설계

  • 추상적 개념으로 표현
  • E-R 다이어그램 작성

3️⃣ 논리적 설계

  • RDB 경우 테이블 설계하는 단계

4️⃣ 물리적 설계

  • 물리적 구조의 데이터로 변환

5️⃣ 구현

  • DDL로 DB 생성
  • 트랜잭션 작성

♦️ 데이터 모델

  • 현실 세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 기술하는 개념적 도구
  • 구성 요소:
    • 🟥 개체(Entity) ⇒ DB에 표현하려는 것, 사람이 생각하는 개념이나 정보
    • 🔴 속성(Attribute) ⇒ 데이터의 가장 작은 논리적 단위
    • ♦️ 관계(Relationship) ⇒ 개체 간의 관계, 속성 간의 논리적인 연결

♦️ 데이터 모델에 표시할 요소

  • 구조(Structure): 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 성질
  • 연산(Operation): DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세
  • 제약조건(Constraint): 실제 데이터의 논리적인 제약조건

♦️ 개체(Entity)

집게리아 사원 개체

사원번호이름직급급여지역번호
1집게사장사장300062
2스폰지밥대리20002
3징징이과장230031
  • 실제 독립적으로 존재하는 정보로서 서로 연관된 몇 개의 속성으로 구성
  • 속성 ⇒ 사원번호, 이름, 직급, 급여, 지역번호

✅ 2) 개념적, 논리적, 물리적 설계

Image

✅ 3) E-R Diagram

♦️ E-R Diagram

Image

  • ‘Entity 개체’와 ‘Relationship 관계’를 중점적으로 데이터베이스 구조를 한 눈에 알아보기 위한 다이어그램
  • 개체 관계도라고도 불리며 요구분석사항에서 얻은 엔티티와 속성들의 관계를 그림으로 표현

♦️ Peter-Chen 표기법

  • Entity 는 직사각형, Attribute 는 타원, Relation 은 마름모로 도식화한다.

✅ 4) 관계형 데이터 구조

♦️ 관계형 데이터 모델

  • 관계형 데이터 모델은 2차원 형태의 테이블로 자료를 표현하는 것을 말한다.

Image

  • 1970년 IBM에 근무하던 코드(E.F.Codd)에 의해 제안
  • 개체(Entity), 관계(Relationship)을 모두 Relation이라는 Table로 표현
  • 개체 릴레이션, 관계 릴레이션

✅ 5) 데이터베이스 키

♦️ EMPLOYEE

사원번호이름직급급여지역번호
1짱구과장15002
2맹구차장300031
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.