티스토리 뷰

728x90
반응형
3과목은 헷갈리는 것만 적어야쥥

데이터베이스 설계 시 고려사항) 무결성 / 일관성 / 회복 / 보안 / 효율성 / 데베확장
순서) 요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현

  • 개념적 설계 : 현실 세계 이해 / 개념 스키마 모델링, 트랜잭션 모델링 병행 수행 / DBMS에 독립적인 E-R 다이어그램, 개념 스키마 설계
  • 논리적 설계(데이터 모델링) : 현실 세계를 컴터가 이해할 수 있도록 변환 / 개념 스키마 평가, 정제 / 트랜잭션 인터페이스 설계 / (관계형의 경우) 테이블 설계
  • 물리적 설계(데이터 구조화) : 논리적 구조로 표현된 데이터를 물리적 저장장치에 저장할 수 있는 물리적 구조로 데이터 변환 / 저장구조, 액세스 경로 결정 / 트랜잭션 처리량, 응답시간, 디스크용량, 저장공간 효율화 등 고려

데이터모델

  • 구성요소) 개체, 속성(디그리, 차수), 관계
  • 종류) 개념적/논리적/물리적
  • 표시 요소) 구조, 연산, 제약조건

관계 표현 : | (필수) / O (선택적) / < (다중)
식별/비식별

  • 식별 관계 : A 기본키가 B 외래키면서 동시에 기본키가 되는 관계(실선표현)
  • 비식별 관계 : A 기본키가 B 비기본키 영역에서 외래키가 되는 관계

식별자) 에는 주/보조 식별자가 있다! / 주 식별자 특징 - 유일성, 최소성, 불변성, 존재성
 
E-R 모델) 피터 첸 제안 / 현실 세계를 개념적 표현 / 데이터를 개체, 관계, 속성으로 묘사 / DBMS 고려한건 X / 관계 유형 제한 없이 나타낼 수 있음
E-R 다이어그램) 나머지는 헷갈릴 때 찾아보기 >_~♡

관계형 데이터 모델) 표 이용해서 데이터 상호관계 정의하는 DB 구조
 
관계형 데이터베이스 릴레이션 구조

  • 튜플) 각각의 행 / 속성들의 모임 / 카디널리티, 기수, 대응수
  • 속성) DB 구성하는 가장 작은 논리적 단위 / 개체 특성 기술 / 디그리, 차수
  • 도메인) 속성이 취할 수 있는 같은 타입의 원자 값들의 집합 / 학년의 도메인 = 1~4

릴레이션 특징) 중복 X / 튜플 사이엔 순서 X / 시간에 따라 변함(삭제, 삽입) / 스키마를 구성한느 속성들 간 순서는 안 중요함 / 속성 명칭은 유일해야 하지만 구성 값은 동일 값이 있을 수 있음 / 튜플 유일하게 식별하기 위해 속성들의 부분집합을 키로 설정 / 속성은 논리적으로 더 이상 쪼갤 수 없는 원자값만 저장
 
키 종류

  • 후보키(Candidate Key) : 유일하게 식별하기 위해 사용하는 속성들의 부분집합... 기본키로 사용 가능 / 반드시 하나 이상의 후보키 존재 / 유일성, 최소성 만족
  • 기본키(Primary Key) : 중복된 값 X / 유일하게 구별할 수 있는 속성 / 기본키는 후보키 성질 갖음(유일, 최소성 만족) / NULL 값 X
  • 대체키(Alternate Key) : 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
  • 슈퍼키(Super Key) : 릴레이션을 구성하는 모든 튜플들 중 슈퍼키로 구성된 속성의 집합과 동일 값은 나타나지 않음 / 유일성 만족, 최소성은 X
  • 외래키(Foreign Key) : 다른 릴레이션의 기본키를 참조하는 속성 or 속성들의 집합

무결성) 개체, 도메인, 참조, 사용자 정의 등

  • 개체 무결성(Entity) : 기본 테이블의 기본키를 구성하는 어떤 속성도 Null, 중복값 x
  • 도메인 무결성(Domain) : 주어진 속성 값이 정의된 도메인에 속한 값이어야 함
  • 참조 무결성(Referential) : 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 함(= 참조할 수 없는 외래키 값 가질 수 없다!)
  • 사용자 정의 무결성 : 속성 값들이 사용자가 정한 제약조건에 만족

관계대수 : 관계형DB에서 원하는 정보, 정보 검색 위해 어떻게 유도하는지 기술한 절차적 언어

  • 순수 관계 연산자 : select, project(제시된 속성값만 추출), join(공통으로 합침), division
  • 일반 집합 연산자 : UNION(합) / INTERSECTION(교) / DEFFERENCE(차) / CARTESIAN PRODUCT(교차곱)
  • 관계해석 : 관계 데이터 연산 표현 방법 / 비절차성

정규화 : 함수적 종속성 등 종속성 이론을 이용해 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 쪼개 바람직한 스키마로 만들어가는 과정 / 논리적 설계 단계에서 수행 / 일관성, 정확성, 단순성, 비중복성, 안정성 등 보장 / 수준 높을수록 유연한 데이터 구축 가능&정확도↑지만, 물리적 접근 복잡해 성능 저하될 수 있다
정규화 목적) 데이터구조 안정성, 무결성 유지 / 효과적인 검색 알고리즘 생성 / 중복 배재 ~> 이상 발생 방지, 자료 저장 공간 최소화 / 단순화 가능 / 배열 상태 검증 가능 등등등
이상(Anomaly) : 정규화 안 거쳐서 DB내 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 못한 곤란한 현상 발생하는 것

  • 삽입 이상 : 원치 않은 값도 같이 삽입
  • 삭제 이상 : 원치 않은 값도 삭제
  • 갱신 이상 : 일부 튜플 정보만 갱신 되어 정보에 모수 ㄴ생김

정규화 과정

  • 제1정규형 : 릴레이션에 속한 모든 메인이 원자값으로만 구성
  • 제2정규형 : 릴레이션이 1NF&기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종석을 만족
  • 제3정규형 : R이 2NF& 기본키가 아닌 모든 속성이 기본키에 대해 행적 종속(삼단논법)을 만족하지 않는 정규형
    • BCNF(보이스코드)정규형 : R에서 정자가 모두 후보키인 정규형 / 강한 제3정규형이라고도 함 / 모든 BCNF정규형이 종속성 보장하는 건 아님
  • 제4정규형 : R이 다치 종속 A ->> B 가 성립하는 경우
  • 제5정규형 : R의 모든 인 종속이 R의 후보키를 통해서만 성립
  • 이걸 외울 때 도부이결다조(두부이결다줘?)라고 외우라네요 ㅋ

반정규화(Denormalization) : 정규화된 데이터 모델을 의도적으로 정규화 원칙을 위배하는 행위 / 성능&관리 효율성 증가, 일관성&정합성 저하될 수 있음 / 과도하게 하면 오히려 안 좋음

  • 테이블 통합 / 테이블 분할 / 중복 테이블 추가 / 중복 속성 추가 등

시스템 카탈로그 : 그 자체에 관련 있는 다양한 객체에 관한 정보 포함하는 시스템 데이터베이스
시스템 카탈로그 저장 정보(메타데이터)

  • DB 객체 정보 : 테이블, 인덱스, 뷰 등 구조 및 통계 정의
  • 사용자 정보 : 아이디, 패스워드, 접근 권한 등
  • 테이블 무결성 제약 조건 정보 : 기본키, 외래키, NULL 값 허용 여부 등
  • 함수, 프로시저, 트리거 등에 대한 정보

카탈로그 특) 일반 이용자도 SQL 이용해 검색 가능 / INSERT, DELETE, UPDATE문으로 갱신 x / DBMS에 따라 상이한 구조, 스스로 생성하고 유지함

  • 갱신) 사용자가 SQL문을 해서 기본 테이블, 뷰, 인덱스 등에 변화 주면 시스템이 자동으로 갱신함
  • 분산 시스템에서 카탈로그) 보통의 릴레이션, 인덱스, 사용자 등의 정보를 포함할 뿐 아니라 위치 투명성, 중복 투명성 제공 위해 필요한 모든 제어 정보 가져가야 함

카탈로그/데이터 사전 참조하기 위한 DBMS 내 모듈시스템

  • 데이터 정의어 번역기(DDL compiler)
  • 데이터 조작어 번역기(DML compiler)
  • Data Directory : 실제 접근하는 데 필요한 정보를 관리 유지하는 시스템
  • 질의 최적화기 : 사용자 요구를 효율적인 형태로 변환&질의를 처리하는 좋은 전략 모색
  • 트랜잭션 처리기 : 복수 사용자 환경에서 동시에 일어나는 트랜잭션 문제 해결, 각각 사용자가 DB자원을 배타적으로 사용할 수 있도록 함

 

728x90
반응형
최근에 올라온 글
최근에 달린 댓글
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Total
Today
Yesterday
반응형