본문 바로가기

DB/오라클

2일차 - 데이터 베이스 이론및 개념

학교 공부를 정리한 글입니다.

(chap1)

  • data의 정의
    1. 의미를 내포하고 있으며 **알려저 있는 사실(know facts)**을 저장한 것
    2. 거짓된 data는 data가 아니다
    3. 아무거나 데이터라고 하지 않으며 함축적인 의미를 지니고 있어야 한다.
  • DataBase의 정의
    • 관련되어 있는 데이터들의 정렬되어 있는 collection
  • DBMS의 정의
    • DB를 잘 관리하기 위해 필요한 것들의 패키지(데이터 중복과 데이터 종속 문제를 해결하기 위한 소프트웨어)
  • DataBase system
    • DB + DBMS (+DB Application)
  • 최근 개발 툴
    • NoSQL (example)
      • 높은 성능
      • 스키마가 필요없음
      • document data model
    • 하둡
      • 대량의 자료를 분산 저장과 분석을 위한 프레임 워크
      • 예를 들어 100만개의 연산이 필요하면 이를 100만개의 독립된 컴퓨터에서 처리하는 것 처럼 연산
    • 스파크
      • 하둡에서 연산된 데이터를 공유되는 메모리에 써서 디스크 IO를 줄임
  • Application은 DB와 QueryTransaction을 통해 상호작용한다
    • Query는 특정 data를 검색하기 위해 위한 클라이언트의 요청
    • Transaction은 데이터베이스에 atomically read/write하기 위해 발생하는 일련의 작업 혹은 연산
  • Application은 비인가된 사용자의 접근을 막아햐 한다 → data protection
  • DB를 사용할때 변경된 사항이 있으면 클라이언트의 요청에 즉각적으로 반영되어야 한다.
  • DBMS의 전형적인 특징
    1. 데이터 베이스속에 존재하는 data의 타입, 구조, 제약들이 define 되어있다.
    2. 물리적으로 2차 저장 장치에 저장하도록 Constructing있다.(HDD or SSD)
    3. DataBase를 manipulate할 수 있다.
      1. Retrieval : 쿼리를 통해 검색을 전달할 수 있다.
      2. Modification : 컨텐츠의 삽입, 삭제, 수정을 할수 있디.
      3. Access : 웹 어플리케이션을 통해 접근할 수 있다.
    4. Processing, Sharing : 동시에 많은 유저들이 와도 ,데이터의 동시성과 유효성을 그대로 지니면서, 처리하고 공유할 수 있다.
  • entities : 실체, 객체, 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것
    • 엔티티는 실제 DB나 SQL상에 존재하지 않으며 이는 Conceptual Data Model에만 존재하는 일종의 개념이다.
  • instance는 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값이다.
  • attribute : entity는 자신이 가지는 인스턴스들을 설명할 수 있는 속성(attribute)를 가진다.

참고 자료 : https://blog.naver.com/PostView.naver?blogId=kkh0977&logNo=222219007292&redirect=Dlog&widgetTypeCall=true&directAccess=false

  • relation
    • relation은 테이블을 말한다.
    • relation은 스키마와 인스턴스로 이루어져 있다.
  • schema
    • schema란 관계형 데이터 베이스에서 기본 구조를 정의하는 것.(자바에서의 클래스 역할)
    • schema는 테이블의 첫 행인 헤더를 나타내며, 속성, 자료 타입들의 정보를 내포하고 있습니다.
  • instance
    • instance는 테이블에서 실제로 저장된 데이터이다.
  • Tuple
    • tuple은 relation에서 행의 개수를 의미한다.
    • 사진에서의 튜블의 개수는 3이다.
    • 튜플은 행 혹은 카디널리티라고 불리기도 한다.
  • attribute
    • attribute는 relation에서 열의 개수를 의미한다.
    • 사진에서의 속성의 개수는 3이다.
    • 속성은 열, 차수라고 불리고도 한다.
  • domain
    • 도메인은 속성이 가질 수 있는 값의 집합이다.

  • relation의 정의
    1. 행(Row)은 개체에 대한 데이터를 포함한다.
    2. 열(Column)은 개체의 속성에 대한 데이터를 포함한다.
    3. 한 열의 모든 항목은 동일한 종류이다.
    4. 각 열(Column)은 유일한 이름을 가진다.
    5. 테이블의 셀은 단일 값을 포함한다.
    6. 열(Column)의 순서는 중요하지 않다.
    7. 행(Row)의 순서는 중요하지 않다.
    8. 어떤 두개의 행(Row)도 동일하지 않다.
  • relation이 정의되어야 DB가 정의 된다. 결론적으로 테이블이 조금 더 큰 개념이고 릴레이션은 데이터베이스에 사용되기 위한 조건을 만족하는 테이블이라고 보면 될 것 같다.
  • DB의 특징들
    • catalog : catalog는 database에 저장되어있는 테이터를 정확하고 효율적으로 이용하기 위해 참고해야 되는 스키마, 사상정보, 다양한 제약조건, 구조, 데이터 타입들을 저장하고 있으며 메타데이터라고도 불린다.
    • Insulation : 프로그램과 데이터의 독립을 말한다
      • 이를 program-data independence라고도 한다.
      • DB를 바꾸지 않고도 프로그램을 수정해도 제대로 동작
      💡 만약 스키마에 새롭게 추가한다면 catalog에 추가만 하면 된다.
  • Data abstraction
    • 데이터 추상화로 인해 프로그램-데이터, 프로그램-동작이 서로 분리 시켜준다.
    • data model은 데이터 추상화의 종류이다.
  • data를 여러개의 view로 제공해준다.
    • 유저마다 볼 관심이 있는 데이터가 다르므로 이를 따로 구분해서 보여준다.
  • sharing of data, multiuser transaction processing
    • 여러명의 유저가 동시에 데이터로 접근하는 것을 제어 해준다. concurrency controll
    • transaction
    • ACID(atomicity, concistency, isolation, durability) → 시험에 나옴
    • Recovery 트랜잭션이 DB에 영구적으로 영향을 가게 해준다.
    • OLTP(online Transaction Processing) : DB에 중요한 부분중 하나
  • DB의 특징
    1. Data normalization(데이터 정규화)을 통해 중복을 제어한다.
    2. 권한이 없는 접근을 제어한다.
    3. 객체의 영속적 저장을 지원한다. (기존의 DBMS에서는 객체의 저장을 지원하지 않았으나 OODBMS에서는 지원한다.)
    4. 효율적 질의 처리를 위한 저장 구조 제공(인덱스를 통해서)
  • DBMS를 사용하지 않는게 더 좋은 경우
    • 초기 투자 자본이 너무 클 때
    • 특수한 데이터를 주로 다룰 떄
    • 나만 사용할 때

chap2

  • data model
    • 데이터 모델은 구조, 연산, 제약 조건을 설명한다.
    • 데이터 모델의 구조에는 elementsrelationship이 있다.
    • valid한 데이터를 위해 특정한 **제약 조건(Constraint)**이 있다.
  • 데이터 모델의 종류가 있다.
    1. Conceptual data model
      1. 매우 개념적인 모델이다.
      2. end 유저와 밀접한 관련이 있다.
    2. Physical data model
      1. 매우 자세한 모델링이다.
    3. Implementation data model
      1. Conceptual data model과 Physical model의 중간 정도
      2. 대부분의 상용 DB는 해당 모델을 채택한다.
    4. self-Describing
      1. XML or JSON
  • data base state → 해당 시점에서의 데이터베이스의 내용을 말하며 instance라고도 한다.
  • Three-Schma Architecture (제일 중요)
    • 목적 : physical database로부터 유저의 application을 분리하기
    • Internal Schema(physical schema) : 저장장치의 관점에서 이해하고 표현한다.
    • Conceptual Schma(Logical schema) : 데이터 베이스를 이용하는 사용자들의 관점을 통합하여 데이터베이스를 조직 전체의 관점에서 이해하고 표현한다.
    • 하나의 데이터 베이스에는 하나의 개념 스키마만 존재한다.
    • External Schema(view level) schema : 개별 사용자의 관점에서 데이터베이스를 이해하고 표현한다.
    • 외부 스키마는 전체 데이터베이스 중 사용자가 관심을 가지는 일부분으로 볼 수 있어 서브 스키마라고도 한다.
  • 스키마 사이의 대응관계를 Mapping이라고 한다.
  • data independence (매우 중요!!!!!!!)
    • 하위 단계의 데이터 구조가 변경 되어도 상위 단계에 영향을 미치치 않는 속성
    • Logical data independence :
      • 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지않도록 지원하는 것
      • 논리적 구조가 변경되어도 응용 프로그램에 영향 없음
    • Physical data independence :
      • 내부 스키마가 변경되어도 외부/개념 스키마에는 영향을 받지 않도록 지원하는 것
      • 저장 장치의 구조변경은 응용 프로그램과 개념 스키마에 영향 없음

  • tab : 쿼리를 수행한 유저 소유의 모든 테이블 이름

참고

용어 정리 → https://inpa.tistory.com/entry/DB-📚-테이블-용어-🕵️-정리