IT 이야기/DB

Engineer Information Processing (TIL) - 데이터베이스

클톡(CloudTalk) 2021. 10. 22. 01:05

EIP (Engineer Information Processing)

History


1장. 데이터베이스

  • 데이터베이스의 특성
    • 실시간 접근성(Real-Time Accessibility) 리얼타임 엑세스보얼
    • 계속적인 변화(Continuous Evolution) 컨티니워스 에볼루션
    • 동시 공용(Concurrent Sharing) 컨커넌트 쉐어링
    • 내용에 의한 참조(Content Reference) 컨텐트 레퍼런스
  • 릴레이션 관련 용어
    • 릴레이션 (relation)
      • 같은 성격의 데이터들의 집합을 의미. 흔히 테이블이라고 말하는 용어와 같은 의미로 이론적인 용어. 릴레이션은 튜플과 에트리뷰트로 데이터를 정렬하여 관리한다.
    • 튜플 (tuple)
      • 릴레이션의 각 행을 의미. 흔히 일반적인 용어로 레코드(record)와 로우(row)와 같은 의미로 사용된다.
    • 에트리뷰트(attribute) = 속성
      • 릴레이션에서 이름을 가진 하나의 열을 말한다. 흔히 일반적인 용어로 칼럼(column)과 같은 의미로 사용된다.
    • 디그리(degree)
      • 에트리뷰트의 수를 말한다.
    • 카디널러티(cardinality)
      • 튜플들의 수를 말한다.
    • 도메인(Domain)
      • 하나의 애트리뷰트가 취할 수 있는 같은 타입의 모든 원자 값 들의 집합
  • 릴레이션 특징
    • 한 릴레이션에 정의된 튜플들은 모두 다르다.
    • 한 릴레이션에 정의된 튜플들은 순서에 무관하다.
    • 튜플들은 시간에 따라 변한다.
    • 릴레이션 스키마를 구성하는 에트리뷰트의 값은 동일해도 된다.
    • 에트리뷰트는 더 이상 쪼갤 수 없는 원자값으로 구성된다.
    • 릴레이션을 구성하는 튜플을 유일하게 식별하기 위한 속성들의 부분집합을 키(Key)로 설정한다.
  • 릴레이션 구성
    • 릴레이션 스키마(스킴=내표)/정적: 테이블의 항목 수준의 정의 (도서번호, 도서이름, 출판사)
    • 릴에이션 인스턴스/동적: 릴레이션 스키마에 실제 저장된 데이터의 집합
  • 시스템 카탈로그 란?
    • 시스템 카탈로그는 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
    • 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블이다.
    • 데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장한다.
    • 카탈로그들이 생성되면 자료사전에 저장되기 떄문에 좁은 의미로는 카탈로그를 자료 사전이라고도 한다.
    • 카탈로그에 저장된 정보를 메타 데이터라고 한다.
  • 카탈로그의 특징
    • 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해볼 수 있다.
    • INSERT, DELETE, UPDATE문으로 카탈로그를 갱신하는 것은 허용되지 않는다.
    • 데이터베이스 시스템에 따라 상이한 구조를 갖는다.
    • 카탈로그는 DBMS가 스스로 생성하고 유지한다.
    • 카탈로그의 갱신 : 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신한다.
    • 분산 시스템에서의 카탈로그 : 보통의 릴레이션, 인덱스, 사용자 등에 정보를 포함할 뿐 아니라 위치 투명성 및 중복 투명성을 제공하기 위해 필요한 모든 제어 정보를 가져야 한다.
  • 데이터베이스 물리적 설계 시 고려할 사항
    • 저장 레코드 양식 설계
    • 접근 경로 설계
    • 레코드 집중의 분석 및 설계
    • 인덱스 구조
    • 레코드 크기
    • 파일에 존재하는 레코드 개수
    • 파일에 대한 트랜잭션의 갱신과 참조 성향
    • 시스템 운용 시 파일 크디의 변화 가능성
  • 데이터 베이스 언어
    • DDL (Data Definition Language)
      • 데이터베이스를 구축하거나 수정하는데 사용되며 데이터베이스의 구조와 데이터의 형식, 접근방식을 정의하는 언어입니다. DDL은 번역된 결과가 Data Dictionary 라는 데이터 사전 파일에 저장이 됩니다. 명령어로는 CREATE, ALTER, DROP, RENAME, TRUNCATE 가 있습니다.
    • DML (Data Manipulation Language) 메뉴펠레이트?
      • 사용자 DBMS와 응용프로그램 간의 interface를 제공하며 사용자가 데이터를 직접 처리할 수 있게 하는 명령어로 데이터베이스의 Sub Language 역할을 합니다. 명령어로는 SELECT, INSERT, UPDATE, DELETE 가 있습니다.
    • DCL (Data Control Language)
      • 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어입니다. 주된 명령어로는 COMMIT, ROLLBACK, GRANT, REVOKE 가 있습니다.
  • 스키마(Schema) 란?
    • 스키마는 데이터베이스의 구조와 제약 조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다.
    • 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다.
    • 스키마는 사용자의 관점에 따라 외부 스키마, 개념 스키마, 내부 스키마로 나눠진다.
  • 스키마의 특징
    • 스키마는 데이터 사전(Data Dictionary)에 저장되며, 다른 이름으로 메타데이터라고도 한다.
    • 스키마는 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어진다.
    • 스키마는 시간에 따라 불변인 특성을 갖는다.
    • 스키마는 데이터의 구조적 특성을 의미하며, 인스턴스에 의해 규정된다.
  • 데이터 베이스 정의
    • 통합된 데이터(Integrated Data): 자료의 중복을 배제한 데이터의 모임이다.
    • 저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료이다.
    • 운영 데이터(Operational Data): 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 자료이다.
    • 공용 데이터(Shared Data): 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료이다.

  • 트리의 차수: 차수가 많은 노드의 차수를 의미 (C=4)
  • 노드의 차수: 한 지점에서 나온 가지의 수 (B=1, C=4)
  • 터미널 노드의 수: 터미널 노드란 자식이 없는 노드의 수 (E,F,G,H,I,D)
  • 전위 순회(preorder) -> (root, left, right)
  • 중위 순회(Inorder) -> (left, root, right)
  • 후위 순회(postorder) -> (left, right, root)
  • 데이터 모델의 구성 요소
    • 구조(Structure)스트럭처: 논리적으로 표현된 개체들 간의 관계를 표시함
    • 연산(Operation)아퍼레이션: 데이터베이스에 저장된 실제 데이터를 처리하는 방법을 표시함
    • 제약조건(Constraint)컨스트레인트: 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건을 표시함
  • 데이터 모델의 구성 요소
    • Structure (구조): 논리적으로 표현된 개체들 간의 관계를 표시함
    • Operation (연산): 데이터베이스에 저장된 실제 데이터를 처리하는 방법을 표시
    • Constraint (제약조건): 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건을 표시함
  • 관계대수 / 관계해석 비교
  • 트랜잭션의 특성 / 정의
  • 키 종류
  • 데이터베이스 논리적 설계시 고려사항
  • 해싱 테이블
  • 객체-관계 모델
  • 정규화 개념 / 목적
  • 자료구조 분류

'IT 이야기 > DB' 카테고리의 다른 글

MYSQL replication & mysql 이중화 (master,slave)  (0) 2015.10.17