[정보처리기사] 데이터베이스 구축

2024. 1. 25.·🤓 기술 학습 & 공부 기록/컴퓨터 일반

정규화의 목적: 이상현상을 제거하기 위해

 

이상현상 3가지

- 삽입 이상: 잘못된 데이터가 들어옴

- 갱신 이상: 의도치 않은 다른 데이터도 수정되어 버림

- 삭제 이상: 다른 데이터도 연쇄적으로 삭제되어 버림

 

개념 -> ERD

논리 -> 정규화, 트랜잭션

물리 -> 성능 향상

 

반정규화: 성능 향상

 

1정규형

- 테이블 R에 속한 모든 도메인이 원자값만으로 구성되어 있다

 

2정규형, 3정규형

- 테이블 R에서 키가 아닌 모든 필드가 키에 대해 함수적으로 종속됨

- 키의 부분 집합이 결정자가 되는 부분 종속이 존재하지 않는다

 

BCNF

- 테이블 R에 존재하는 모든 함수적 종속에서 결정자가 후보키이다

 

비정규 Relation -> 제1정규형: 도메인(필드)이 원자값

제1정규형 -> 제2정규형: 부분 함수적 종속 제거

제2정규형 -> 제3정규형: 이행적 함수 종속 제거하여 완전한 함수적 종속

제3정규형 -> BCNF: 결정자이면서 후보키가 아닌 것 제거

BCNF -> 제4정규형: 다치 종속 제거

제4정규형 -> 제5정규형: 조인 종속성 이용

 

트랜잭션 - 하나의 일처리 단위

특성 4가지

- 원자성(Atomicity): 모두 반영되거나(commit) 모두 반영되지 말아야 한다(rollback)

- 일관성(Consistency): 데이터가 일관적이어야 한다

- 격리성=독립성(Isolation): 하나의 트랜잭션이 다른 트랜잭션에 영향을 미치면 안

- 영속성(Durability): 트랜잭션의 결과는 영구히 보존되어야 한다

 

트랜잭션 상태

트랜잭션 상태

 

분산 데이터베이스 구성요소

- 분산 처리기: 자체적으로 처리 능력을 가지며, 지리적으로 분산되어 있는 컴퓨터 시스템

- 분산 데이터베이스: 지리적으로 분산되어 있는 데이터베이스. 해당지역의 특성에 맞게 데이터베이스 구성

- 통신 네트워크: 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 

분산 투명성: 데이터베이스가 분산되어 있음을 사용자가 인식할 수 없어야 함

위치 투명성, 중복 투명성, 병행 투명성, 장애 투명성 지향

 

데이터베이스 언어(SQL)

- DDL(정의어): CREATE, DROP, ALTER(view는 ALTER 없음) -> 기본 테이블, 뷰 테이블, 인덱스 등에 대해

- DML(조작어): SELECT, INSERT, UPDATE, DELETE

- DCL(제어어): COMMIT, ROLLBACK, GRANT (to), REVOKE (from) -> 트랜잭션을 제어하거나, 권한을 부여

 

CREATE

- 속성의 NOT NULL 여부 지정

- 기본키를 구성하는  속성 지정

- CHECK 제약조건 정의

 

ALTER

- 열 이름 다시 부여 가능

 

 

DELETE

- 테이블의 행을 삭제

- DELETE FROM 테이블 [WHERE 조건];

 

DISTINCT

- 중복값 제거 가능

 

UNION

- 중복 제거 O

 

UNION ALL

- 중복 제거 X

 

 

<푸드> 테이블에서 강남지점의 제품명과 판매량을 출력하는데, 판매량이 많은 순으로 나열

SELECT 제품명, 판매량

FROM 푸드

WHERE 지점명 = 강남지점

ORDER BY 판매량 DESC

 

인덱스

- CREATE, DROP 으로 생성, 삭제

- 테이블 삭제 시 인덱스 테이블도 삭제됨

 

물리적 데이터베이스 구조의 기본 데이터 단위인 저장 레코드 양식 설계 시 고려사항

- 데이터 타입

- 데이터 값의 분포

- 접근 빈도

 

데이터 사전=시스템 카탈로그=시스템 데이터베이스

- 데이터베이스에 저장된 모든 개체에 대한 정의, 명세 정보 저장

- 메타 데이터를 저장

- 사용자, 데이터베이스 관리 시스템 접근 가능

- 사용자가 생성, 유지, 수정은 불가 (접근만 가능)

 

릴레이션

- 모든 튜플(필드)은 서로 다른 값을 가짐

- 튜플은 무순서성

- 각 속성(컬럼)은 릴레이션 내에서 유일한 이름 가짐

- 모든 속성 값은 원자값을 가짐 (원론적으로..)

 

view

- 가상의 테이블

- 다른 뷰(혹은 테이블)를 기반으로 새로운 뷰 만들 수 있음

- 업데이에 제약 있음 (ALTER 불가, DROP 후 새로 CREATE 해야 함)

- create view 사용하여 만듬

- 물리적으로 존재X

 

슈퍼키: 유일성만 만족

 

후보키, 기본키(Primary), 대체키: 유일성+최소성 만족

- 후보키 중 대표성 높은것이 기본키, 나머지는 대체

 

기본키(개체 무결성 제약 조건)

- NOT NULL

- 중복 금지

- 외래키로 참조 가능

 

제약조건

- 도메인 무결성: 릴레이션 내의 튜플들이 각 속성의 도메인에 정해진 값만을 가져야 함

- 참조 무결성: 자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인 동일해야 함

자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약 받음

 

cascade: 연쇄 삭제

restrict: 삭제 시도 시 제한

 

개념적 설계: 현실세계를 데이터 관점으로 추상화하는 단계

- ERD 만들기

 

논리적 설계: 특정 데이터 모델(계층, 관계, 객체지향)을 적용한 설계

- 사용할  DBMS 특성을 고려한 설계

- 릴레이션 스키마(테이블), 트랜잭션 인터페이스 만들기

- 스키마 정제

- 정규화 수행 (이상현상 제거)

 

물리적 설계: 물리적 구조, 저장 구조, 분산 형태, 데이터 특징, 인덱스

- 성능 향상 (인덱싱, 파티션, 클러스터링, 반정규화)

- 오브젝트, 접근 방법, 트랜잭션 분석, 인덱스, 뷰, 용량 설계

- 응답 시간, 저장 공간 효율화, 트랜잭션 처리량 고려

- 물리적 스키마

- 특정 DB(오라클, MySQL.. )에 맞게 만들기

- DDL 문 사용

 

Cardinality: 튜플(행)의 수

Degree: 속성(열)의 수

 

관계해석

관계해석

 

관계 대수식을 SQL문으로 바꾸기

관계 대수식

SQL문

 

SELECT 이름

FROM 학생

WHERE 학과='교육'

 

병행제어

목적

- 데이터베이스 일관성, 무결성 유지

'🤓 기술 학습 & 공부 기록/컴퓨터 일반' 카테고리의 다른 글
  • [정보처리기사 필기] 정보시스템 구축관리
  • [정보처리기사] 소프트웨어 설계
  • 3. 코드 계약
  • 2. 추상화 계층 (2) 클래스, 인터페이스, 마이크로서비스 아키텍쳐(msa)
지식물원
지식물원
지식이 자라는 식물원!
  • 지식물원
    지식물원
    지식물원
  • 전체
    오늘
    어제
    • 분류 전체보기 (510)
      • 🎨 프론트엔드 공부 (247)
        • JS & TS (86)
        • HTML & CSS (22)
        • React & Next (49)
        • Vue & Nuxt (22)
        • 기타 (68)
      • 🤓 기술 학습 & 공부 기록 (116)
        • Node.js (0)
        • Python (37)
        • 백엔드 (0)
        • 딥러닝 (1)
        • 컴퓨터 일반 (72)
        • 개발 인프라 (6)
      • 👨‍💻 프로젝트 경험 (6)
        • Work (0)
        • Toy (6)
      • ⚙️ 개발 팁 & 노하우 (21)
        • 프론트엔드 (6)
        • 기타 (15)
      • ☕️ 커리어 & 인터뷰 준비 (88)
        • 코딩 테스트 (88)
      • 📰 기술 트렌드 & 생각 정리 (4)
      • 📚 기타 (25)
        • 마케팅 (15)
        • 비개발서적 (10)
  • 블로그 메뉴

    • 태그
  • 링크

  • 공지사항

    • 모바일 접속 시 코드 하이라이팅 깨질 때
  • 인기 글

  • hELLO· Designed By정상우.v4.10.3
지식물원
[정보처리기사] 데이터베이스 구축
상단으로

티스토리툴바