본문 바로가기

정보처리기사/필기

2과목 / 3과목 - 데이터베이스, 정규화

  • 사용대상
    • 일반사용자
    • Application User
    • 데이터베이스 관리자(DBA)
  • 데이터베이스 용어
    • 트랜잭션 : 하나의 작업단위
  •  DBMS
    • 정의
      • Type, 제약조건
      • 스키마 3계층 / 3단계 데이터(베이스)의 구조
        • 구조
          • 외부 : 외부에서 보임 [내가 누구냐?에 따라 권한에 따라 보여지는 view가 다르다.]
          • 개념 : 전제 정의 / 논리(실제로 존재하지 않고 생각 | 같은 뜻 : 가상 virtual)적 구조
            • 제약조건
            • 무결성 규칙
              • 예를 들어 CREATE테이블에 일반키, 컬럼 등을 설정하는 것
          • 내부 : 하드디스크에 어떻게 저장할 것인지? / 물리(실제로 존재하는 것)적 구조
            •  파티션 : 테이블이나 인덱스를 더 작은 부분으로 쪼개기 
            • 장점 : 일관성과 무결성을 방지하기 위해서 테이블을 쪼갠다. 그 쪼깰때.. 수직, 수평 나뉜다. 
              • 암기 : 나 조해범 이야!! 
              • 합 분할 파티션
              • 라(나)운드-로빈 분할
              • 시 분할 파티션
                • 해싱함수를 사용하여 데이터 분할
                • 속도가 빠르다.
              • 위 분할 파티션
                • 현장에서 사용되는 파티션
                  • 수평 분할 파티션
                    • 테이블을 가로로 쪼갠다.
                  • 수직 분할 파티션
                    • 테이블을 세로로 쪼갠다.
    • 조작
      • 데이터베이스 언어
        • DDL - 데이터베이스 정의어
          • TABLE, 스키마를 ALTER, CREATE, DROP
        • DML - 데이터베이스 조작어(삭제, 삽입, 조회)
          • SELECT, UPDATE, DELETE, INSERT
        • DCL - 데이트베이스 제어어
          • DCL
            • GRANT : 권한 부여
            • REVOKE : 권한 뺏기
          • TCL
            • COMMIT : 확인
            • ROLLBACk : 취소(다시 돌아감)
            • CHECKPOINT
    • 제어
      • 무결성
      • 보안, 권한
    • 정규화 : 테이블을 조각내는 것
      • 데이터를 중복 최소화하여 무결성 유지
      • 이상현상(Anomaly) 방지 
        • 이상현상이 무엇인가?
          • 결점이 발생한다는 것 - 불필요한 중복이 생김
      • 논리적 설계 단계에서 정규화함 
        • 정확성, 안정성, 중복 방지, 단순성, 일치성  
        • 이상 종류 
          • 삽입 이상 : 해당하지도 않은 데이터(불필요한 데이터)를 입력하는 부분
            • 수강생이 아닌데, 불필요한 정보까지 넣어야함
          • 갱신 이상 : 회원이 등급업으로 변경되었는데, 이전 데이터로 갱신되지 않음
          • 삭제 이상 : 관련 없는 내용을 삭제 했는데, 맞물려 있는 키로 중요 정보까지 삭제되는 부분
    • 반정규화
      • JOIN을 사용해서 검색하려니, 성능을 향상시키기 위해서 데이터의 중복을 일부 허용 
        • 집계 테이블 추가
        • 진행 테이블 추가
        • 특정 부분만 포함하는 테이블의 추가
    • 종속성 - 다른 속성관 연게 있는 종속성
      • 이행 종속성 - A는 B이고, B는 C이다. 그래서 A를 알면, C를 알 수 있다.
      • 함수 종속성 - A -> B | 즉, A는 B와 JOIN됨 즉, A는 B에 종속되어 있다.
        • Y는 A에 종속됨, 즉 이것을 표현하면, A->Y
  • 절차형 SQL의 테스트와 디버깅
    • 테스트 : 오류 발견(찾기)
    • 디버깅 : 추적 및 수정